Pull to refresh

Comments 56

Погодите, симисторы же не управляются с помощью ШИМ. Они закрываются всегда при переходе питания через 0, раньше их не закроешь. Вы совершенно ничего не написали про то, как вы с этим работаете.

Это не совсем так. тиристор можно закрыть и открыть в любой момент времени полуволны. Не обязательно ждать перехода через ноль. Большинство диммеров для освещения именно так и делают. Только те, что подешевле рвут полуволну до того, как она достигнет пика, т.е. на подъеме, а те, что подороже — после, на спаде, маркетологами считается, что так они вроде как снижают помехи в сети.

Существуют схемы управления тиристором, например, с оптодрайвером на динисторе, — вот они действительно открывают или закрывают тиристор в момент перехода через ноль. Но, к таким схемам нужно еще доп. управление, как правило в виде микроконтроллера.
тиристор можно закрыть и открыть в любой момент времени полуволны.

Открыть — да. А закрыть — только при усложнении схемы.

Но ведь «закрыть можно только при усложнении схемы» != «нельзя закрыть»…
А как Вы собираетесь закрывать тиристор в середине полупериода? Поделитесь секретом, пожалуйста. Насколько я знаю, все тиристорные (симисторные) диммеры регулируют момент открытия тиристора относительно начала полупериода, а закрывается он уже сам, при переходе протекающего через него тока через ноль.
По поводу оптодрайверов. Есть обычные, которые позволяют открыть тиристор в любой момент, и их можно использовать для управления мощностью (подавать куски синуса на нагрузку). А есть с датчиком перехода ч-з ноль, они будут открывать тиристор только вблизи перехода сетевого напряжения ч-з ноль, такие используются для релейного управления нагрузкой (вкл-выкл) и дают гораздо меньше помех при коммутации, т.к. переключение происходит в момент перехода напряжения через ноль. Если нагрузка достаточно инерционная, последние тоже можно использовать для регулировки мощности, изменяя количество целых полупериодов, подаваемых на нагрузку за единицу времени (как правило, не менее 0,1с), такая регулировка даст меньше помех в сеть, чем коммутировать нагрузку в середине полупериода. Но это так, для активной нагрузки, с реактивной всё гораздо интереснее.
тиристор можно закрыть… в любой момент времени

Можно, но так никто не делает, т.к для этого управляющий ток должен быть больше тока коммутируемой нагрузки. Поэтому всё-таки нельзя

UFO just landed and posted this here
Запираемые тиристоры — экзотика, а если у нас есть ключ, с характеристиками, позволяющими запереть тиристор при параллельном подключении, то почему бы его не использовать в качестве силового ключа? Ведь максимальный ток такого ключа должен быть не меньше, чем у тиристора, а падение напряжения на открытом ключе — меньше, чем у тиристора. Получается, что такой ключ более эффективен, чем тиристор.
а если у нас есть ключ, с характеристиками, позволяющими запереть тиристор при параллельном подключении, то почему бы его не использовать в качестве силового ключа?

Потому что этому «закрывающему» ключу нет необходимости держать нагрузку все 20мс, а только достаточно чтобы симистор закрылся — подозреваю что время там будет микросекундами измеряться.
Как только количество переполнений достигнет нужного числа из таблички, подаем низкий уровень на управляющую ножку.


… и ничегошеньки не произойдет. симистор останется открытым до конца полупериода.

Чтобы работало как и задумано, надо словить ноль, подождать расчитанный интервал, и затем подать открывающий импульс на управляющую ногу симистора.
Да, Вы абсолютно правы, поменял местами. Методики расчета это не меняет просто инвертирует табличку для четверть волны.

Там это, pulse density modulation есть, которая вообще без какой либо математики делается и прегенерированных массивов.

не слышал про это, а как она работает?
Есть статья на русском хорошая, прям по хардкору в пдфе. Лучше ее посмотреть. Способ простой, но алгоритм немного хитрый, описывать долго.

А почему для вашего термостата выбран диммер, а не банальное включение/выключение нагревателя, как это обычно делается (инертность "объекта управления" позволяет)?

собственно инертность как раз таки не позволяет) если делать простым включением-выключением температура плавает в пределах 10 градусов. Используя же диммер в купе с ПИД регулятором можно добиться точной регулировки (пока что у меня вышло ± 2 градуса)

Т.е. только точность управления?


У вас мощности нагревателя хватает, чтобы за 20 мс нагреть обьект, скажем, на 1 градус? Если нет – то должно хватать ПИД с простым включением/выключением нагрузки (при проходе через 0 синусоиды, чтобы меньше шуметь в сеть).
Грубо говоря, выход ПИД – на сколько периодов включать нагрев.


UPD: Ниже FGV описал такую схему, применяемую в реальности.

в середине 90 делал нечто подобное на 580 таймере. тэн 1.5 квт. пид регулятор. 8 битный контроллер, кажется что-то с 51 в названии. точность поддержания 0.02 градуса. диапазон 36.6 + 2градуса. можно было и поднять верхний, но для такой точности разрядности ацп не хватало. выходило на режим довольно быстро 3-5 минут. отрабатывало изменение температуры (помещение в воду пробирок) вообще быстро. вода перемешивалась очень оригинальным способом… но по сети фонило… без хорошего фильтра лучше не включать
три тэна по 1700 Ватт …

хе. При таких мощностях подозреваю что постоянная времени у печи часа так полтора ( т.е. ~5400 с). И накой так мудрить с коммутацией, когда можно сделать дискрет шим-а 20мс с периодом 2с? На фоне 5000с постоянной времени печи это даст колебания 0.0002 от максимальной температуры, чем можно пренебречь.


p.s. В своих регуляторах (тэн 1.5квт, тау объекта 1800с, макс. темп. ~ 1100 гр. Ц) использую шим с периодом 2с и дискретом 10мс. На выходе твердотельные релюхи с коммутацией при проходе через 0.

Этой штукой планируется управлять также более мелкими емкостями с меньшими тэнами, отсюда такая универсальность
Всё нужно бы сначала оценить время нагрева-остывания конструкции. Желательно с учетом теплопроводности материала.
… мелкими емкостями с меньшими тэнами...

Используя же диммер в купе с ПИД регулятором можно добиться точной регулировки (пока что у меня вышло ± 2 градуса)

Пара примеров печек с ПИД регуляторами без волшебной математики вычисления мощности. На выходе обычный ШИМ и твердотельные реле щелкающие при переходе через 0.
На графиках: по оси OY — ошибка выдерживания температуры, по оси OX — заданная температура (нагрев идет со скоростью 3 градуса в минуту, так что по сути это время). Температура — в градусах Цельсия.
1) Печь — стальная ванна с припоем, вес припоя — около килограмма. Нагреватель 750 Вт, спираль намотана вокруг ванны. Период ШИМ = 20 секунд, дискретность 200мс:

2) Печь — стальной стакан, по весу пару кило. Нагреватель 1.5кВт расположен под стаканом и закрыт кварцевым стеклом. Период ШИМ = 2 секунды, дискретность 10мс:

Хороший велосипед. Жаль, что ненужный. По личному опыту: ПИ регулятора по схеме «температура-угол открытия симистора» более чем достаточно для решения таких задач. Причем, тут даже фазовое регулирование не особо нужно.
а как вы определяете угол открытия симистора?

Тупо отсчитать таймером время от перехода через 0.

UFO just landed and posted this here

Да, возможно, уже выше отвечал, что голову, возможно будут подключать к другим емкостям с другими мощностями, поэтому перестраховался. Плюс на момент написания прошивки и рассчета регулятора про управлениеями ТЭНами я знал только то что на них надо подавать ток и они будут греть)

Рвать синусоиду, не важно, в начале или конце полупериода — не самое элегантное решение.
Даже простой китайский диммер на лампу накаливания в 100 Ват создает в сети кучу помех, а тут, три тэна по 1700 Ватт.

Управление ТЭНом можно и нужно делать проще — при переходе через ноль, пропускать или не пропускать нужно кол-во полупериодов. Этот способ не подойдет для управления лампой накаливания- она будет неприятно мерцать, но для управления ТЕНа — самое то. Плюс нет необходимости, как в вашем варианте, в огромных радиаторах для тиристоров.

Какое-то время назад была статья на хабре, в которой предлагали использовать алгоритм брезенхейма для равномерного распределения мощности. Можно даже прикрутить к нему ПИД. С удовольствием прочитал бы об этом.
… нужно кол-во полупериодов.

Лучше — целых периодов. С такой инерционностью объекта это будет незаметно, а постоянного тока в цепи — не будет.

и ещё совет из статьи где всё это разобратно чуть раньше и немного подробней — все ТЭНы включать только на нагрев, а регулировать одним. Так и помех меньше.
ps но я бы на чисто активную нагрузку поставил IGBT и нормальный ШИМ с LC фильтром в сторону сети.
Как раз по той статье я ориентировался. В целом статья отличная, но самого расчета остался непонятен, поэтому решил описать его подробнее. Если угодно можете считать эту статью некоторым дополнением к той)

Рассматривали ступенчатое регулирование путëм разного кол-ва одновременно включенных нагревателей?

UFO just landed and posted this here
Тэны регулируют количеством пропущенных на тэн периодов сетевого напряжения. Если нужна точность 1% то 1 период пропускаем а 99 нет. Как бы шим с периодом в 2 секунды. И не надо никаких таблиц и пересчётов городить.
А если мощность ТЭНов избыточна более чем на порядок (не требуется быстрый первоначальный нагрев), то их можно соединить последовательно. И не мучить сеть скачками нагрузки (а то лампочки мигать начнут). Или хотябы включать их каждый своим тиристором с равным смещением во времени.
Решил как-то отец собрать для дачи некое устройство, в котором, по его заверению, можно будет варить сыр.

Ага, в кф «Зелёный фургон» помнится варение варили. Вот от этих энтузиастов и брали бы готовое решение типа вот этого — luckycenter.ru/forum/konstruktorskoe-bjuro/avtomatizacija/avtomatika-luckybox
Я бы поставил в систему несколько ТЭНов разной мощности. Далее, включая и выключая их, можно подобрать нужную мощность — такую, чтобы температура была максимально близка к нужной.
Либо поставил бы что-то типа автотрансформатора, управляющего мощностью ТЭНа.

Сейчас работаю над подобной задачей.
Вообщем идея такова:
100 волн (периодов) сетевого напряжения есть 100% мощности подводимой к ТЭНу. На основании расчёта ПИД регулятора получаем, к примеру 25%. Следовательно за период регулирования (он составляет 2с, что для инертных систем время небольшое) подаём на ТЭН 25 волн из 100. Порядок включённых (1) и отключенных (0) волн определяем алгоритмом Брезенхема. Всё коммутации осуществляются при переходе напряжения через "0", что снижает выбор помех в сеть. Отслеживание перехода чез "0" реализовано на обработке внешнего прерывания. Точность регулирования 1% (можно сделать любую). Почти все расчёты целочисленные, алгоритм очень простой. Кому интересно могу поделиться схемами и программами.

"Точность регулирования 1% (можно сделать любую)."


Кроме точности ШИМ (ее действительно можно сделать любой), есть ещё точность измерения, и неравномерность прогрева печки. Так что не все так просто.

Мощность — это скорость преобразования или передачи энергии. Вт = Дж/с. Напряжение умноженное на ток, лишь один из способов её вычисления.

конкретно в этом случае меня интересовал этот её аспект

Не считая того, что открытие в середине волны будет генерировать мощную помеху, есть ещё cos фи, который тут будет ниже плинтуса и по европейским нормам уже нужен PFC. Что мешает просто пропускать часть полупериодов?

Ничего не мешает, просто взял более универсальное решение. А также тот момент, что отлаживал работу регулятора я на лампочках — те вместо тэнов к симисторам были подключены лампы, которые начинали сильно моргать при пропуске полуволн. Это меня сильно раздражало, поэтому регулятор получился именно таким :)

О! Вот правда-то и всплыла :-)

Если честно не понял зачем такие сложности.
Нелинейность ШИМ в случае переменного тока будет проявлятся только при очень малой ширине.
Частота переменного тока 50Гц — и если у вас будет ширина импульса в районе 1/50секунды и меньше -тогда да, будет нелинейность.
А если ширину импульса делать в пределах 1секунды и более — никакой нелинейности не будет.

Для большого бака и мощных нагревательных приборов такие импульсы вполне нормальны, инертность там приличная.
Интересный расчёт, только в нём в самом начале ошибка.
Мощность, как правильно написано в начале статьи — это произведение напряжения и тока.

P = U*I

Также в начале статьи правильно написано, что при постоянном сопротивлении ток будет зависеть от напряжения.

I = U/R

Таким образом в нашем случае мощность будет зависеть от напряжения не линейно, а квадратично.

P = U^2/R

Но при переходе от постоянного тока к переменному этот факт почему-то упущен.
Соответственно при расчёте мощности нужно считать не площадь под графиком sin(t), а под графиком sin^2(t).
Я считал мощность как ток*напряжение и для переменного тоже
UFO just landed and posted this here
нихром и вольфрам с точки зрения ТКС — «слегка» разные металлы…
UFO just landed and posted this here

Расчетная часть проекта красивая, но на практике не применимо… В реальном проекте достаточно поделить секунду на десять частей и включать нагрузку на эти промежутки, отслеживанием перехода через ноль будет заниматься условная МОС3061, не будет импульсных помех в сети с которыми устанете бороться. Больше проблем будет с подбором коэффициентов пид для точного поддержания графика температуры. Тут много зависит от расположения датчика температуры и его инерцией.

Sign up to leave a comment.

Articles