Если посмотреть на осциллограмму, то можно увидеть, что момент включения и выключения транзисторов - жёлтый луч, соответствует максимуму отрицательного значения тока.
Видео: https://energy4all.ru/hunter/video/half_fault.mp4
В ролике показано, что алгоритм "пропустил" первый максимум тока и выбрал отрицательный полупериод. Произошло это потому что коэффициент заполнения (duty cicle) не меняется, значит на чуть меньшей частоте в контур поступило больше энергии, в результате токовая составляющая увеличилась. Поэтому была выбрана частота соответствующая отрицательному значению тока.
Если скорректировать алгоритм поиска резонансной частоты, то данный недостаток можно исправить.
Видео к фотографии: https://energy4all.ru/hunter/video/half_verity.mp4
Ошибкой будет считать цепочку D5/C21,С22/R16 детектором пика сигнала. Скорее это выпрямитель усиленного сигнала с датчика тока. Изменение посточнного напряжения на выходе детектора отражает изменение амплитуды сигнала на датчике тока.
Сейчас на входе компаратора после диода D5 на конденсаторе С21/C22 постоянное напряжение. Если оно уменьшится, микроконтроллер сразу получит прерывание по спаду фронта сигнала - это удобно и это быстро. Если диод закоментировать, то микроконтроллер будет получать прерывания на частоте следования импульсов тока, это осложнит программирование определения ухода с резонансной частоты в сторону уменьшения.
Делитесь своими мыслями, ставьте лайки и обязательно подписывайтесь на канал. Это Ваш вклад, который помогает миссии - открытые технологии и схемотехника построения экономных нагревателей индукционного типа для всех!