Я разработал устройства плавного пуска с использованием процессоров PIC16C74A / F77. Пересечение нуля может быть сложным, если вам также приходится работать в шумной обстановке.
Если вам не нужно, чтобы процессор был изолирован от линии, нет ничего плохого в том, что пара мощных резисторов питает вывод процессора. Я бы использовал пару диодов Шоттки, чтобы усилить диоды внутренней защиты, просто для надежности, но все будет работать нормально. Если вам нужна изоляция, используйте оптоизолятор с транзисторным выходом. Обратите внимание на скорость переключения оптики и минимизируйте ток транзисторного коллектора, чтобы максимизировать скорость переключения.
Сказав это, давайте перейдем к шуму. Если вы контролируете по фазе что-то кроме резистивного нагрева, вам придется бороться с шумом, а это значит, что очень вероятно, что вы будете иметь дело с шумом пересечения нуля. Не делайте ошибку новичка, подавая входной сигнал пересечения нуля на вывод прерывания; это превратит ваше программное обеспечение в дымящуюся массу мерзостей, когда процессор попытается справиться с прерываниями из миллиарда. (Я говорю по собственному опыту.) Включение RC или более продвинутого фильтра нижних частот на линии просто приведет к сдвигу фаз. Если вы можете работать с этим, отлично. Если нет (мне приходилось иметь дело с системами 50/60 и 400 Гц), то вы должны попробовать другие способы.
На моем собственном проекте я заботился об этом в программном обеспечении, опрашивая линию и фактически делая процедуру голосования, которая игнорировала переходные процессы. Сдвиг фазы был в пределах того, что я мог выдержать, он был быстрым и не дремал даже при сильном шуме. (Протестировано на объекте, где они снимают крышки фильтра с индукционной печи, я никогда раньше не видел такой шумной линии!) зафиксируйте «пересечение нуля», и микроконтроллер подтвердит его до того, как будет установлено следующее прерывание.
В общем и целом, я думаю, что надежное нахождение реального пересечения нуля в любой практической ситуации было одним из хитростей в конструкции устройства плавного пуска. Закрытие контура управления было вторичным, но в основном это просто настройка. Это кажется невероятно простой вещью, но я довольно много узнал о разнице между теорией и практикой за это время. :-)
изменить описание процедуры голосования:
Если я правильно помню, у меня была линия ввода-вывода, которая была высокой, когда линия была выше нуля, и низкой, когда линия была ниже нуля. Процедура голосования просто опрашивала эту линию, и если 2 из трех последних выборок были одинаковыми, я принял тот факт, что линия пересекла ноль. Это очень похоже на схему голосования UART для определения знака и пробела. Преимущество такой схемы состоит в том, что ваш фазовый сдвиг фиксирован (2 * частота дискретизации), и вы можете настроить его для типа шума, который вы испытываете. Я не припомню, насколько быстро проводился опрос, но если бы я рискнул предположить, я бы сказал 8 кГц, так как это число торчит у меня в голове.