Здоровый минимализм.capsolo, 30 Дек. 16, 16:03Я тоже за здоровый минимализм. Трудность в управлении ректификационной колонны только одна-управление отбором, где переменные это количество спирта в кубе и атмосферное давление. Контроллер (ИМХО) должен следить только за этими функциями. Все остальное, как то регулировка мощности, подаваемая в куб, система безопасности, система подачи,воды в ДЕФ- это отдельные вещи, которые реализуются просто и с наименьшими возможностями отказа.
Ненавязчивая автоматизация ректификационной установки
A0467
Кандидат наук
СПб
336 157
Отв.20 02 Янв. 17, 12:38
OldBean
Доцент
Красноярск
1K 1.4K
Отв.21 02 Янв. 17, 13:28, через 51 мин
В-третьих, нагрузочная способность атмеги (40мА на ногу, 200мА на корпус) позволяет легко обходиться без буферов.sevproКак же без буферов-то, sevpro? Ну хотя бы миллиампер 10 на сегмент нужно положить. Правильно? А если мы хотим показать, например, восьмерку, то через пин, к которому подцеплены общие катоды (или аноды) побежит уже 70 мА. Я бы не стал так рисковать.
проще заказать десяток плат в китаеwoddyКонечно, давно пора уходить от старого доброго "лазерного утюга", хлорного железа, лужения и сверления плат маленькой ручной дрелью-моторчиком :) Это уже почти такой-же анахронизм, как традиционная фотография. Помните? Проявитель, фиксаж, бачок, красный фонарь и увеличитель! Я пару раз уже порывался перейти на "китайскую" технологию изготовления плат, но поскольку в последние годы я берусь за паяльник не так часто и очень эпизодически, то "утюжок" почему-то всегда перевешивал :(( Хотя, конечно, - нужно...
alekslug
Научный сотрудник
винокур, Лобня.
5.2K 1.7K
Отв.22 02 Янв. 17, 13:52, через 24 мин
Я тоже за здоровый минимализм. Трудность в управлении ректификационной колонны только одна-управление отбором, где переменные это количество спирта в кубе и атмосферное давление....A0467, 02 Янв. 17, 12:38Решаемо. Алгоритм такой. Управление отбором продукта привязать к дельте температур между верхом и низом колонны. Как только дельта начинает увеличиваться - уменьшать отбор, вплоть до 0 мл. Может даже пропорционально, что думаю несложно для программиста. Атмосферное давление при использовании дельты температур в РК, вообще не волнует, потому как не влияет на процесс управления отбором.
Контроллер (ИМХО) должен следить только за этими функциями. Все остальное, как то регулировка мощности, подаваемая в куб, система безопасности, система подачи,воды в ДЕФ- это отдельные вещи, которые реализуются просто и с наименьшими возможностями отказа.A0467, 02 Янв. 17, 12:38
А вот здесь может быть засада. Я о регулировке подачи мощности в куб. Используемый сейчас большинством ректификаторов метод стабилизации напряжения или тока в цепи ТЭНа не идеален. Потому как не стабилизирует скорость пара в РК.
сообщение удалено
Zapal
Модератор
Амурская область
6.5K 4.4K
Отв.23 02 Янв. 17, 15:28
Решаемо. Алгоритм такой. Управление отбором продукта привязать к дельте температур между верхом и низом колонны. Как только дельта начинает увеличиваться - уменьшать отбор, вплоть до 0 мл. Может даже пропорционально, что думаю несложно для программиста. Атмосферное давление при использовании дельты температур в РК, вообще не волнует, потому как не влияет на процесс управления отбором.alekslug, 02 Янв. 17, 13:52И зачем там волшебное слово - дельта? В нижней части колонны - перепад температур достигает 20 градусов на 4-5 см..
если конечно датчик стоит аккурат - выше квалификационной зоны укрепления.. примерно 10- 15 см от нижнего среза уровня насадки..
OldBean
Доцент
Красноярск
1K 1.4K
Отв.24 02 Янв. 17, 15:45, через 17 мин
Решаемо. Алгоритм такой. .... Атмосферное давление при использовании дельты температур в РК, вообще не волнует, потому как не влияетalekslugСтрого говоря, дельта (разность температур) тоже зависит от атмосферного давления. Просто гораздо слабее, чем просто температура. Но главная причина, почему дельту нельзя считать панацеей, совсем не в этом. Дельта (впрочем, как и любой другой параметр, связанный с температурой кипения флегмы в колонне) связан только с одной примесью - с водой и ничего не говорит о распределении других (вонючих и вредных) примесей в колонне. Поэтому,ИМХО, вопросы управления колонной и отбором, в частности, еще очень далеки от своего окончательного разрешения.
OldBean, Экономически сколько получается затрат в рублях на блок индикации?Описанный гибрид - это не индикатор и не дисплей. Это микроконтроллер для "низкоуровневой работы", снабженный очень дешевым и простым индикатором для отображения какого-нибудь одного текущего параметра микроконтроллера (например, мощности, если МК управляет ТЭНом). Т.е. главное в гибриде - это микроконтроллер, а не дисплей.
Готовое: "0.96inch OLED (A), OLED дисплей с разрешением 128х64px, интерфейсы SPI/I2C" не дешевле получиться?ys1797
сообщение удалено
OldBean
Доцент
Красноярск
1K 1.4K
Отв.25 02 Янв. 17, 17:56
это первый шаг к глюкам и зависаниям.m16Да. Концепция ардуино сильно расслабляет - забываем первоистоки. Нужно обязательно проверить что там с фьюзами у Pro Mini 5V/16MHz. Спасибо за напоминание!
OldBean, зря ты децимальную точку игнорируешьm16Да я не игнорирую. Есть и другие варианты "модульков". Просто в данной работе они не используются, т.к. просто избыточны.
сообщения удалены (3)
OldBean
Доцент
Красноярск
1K 1.4K
Отв.26 03 Янв. 17, 07:35
Ну не надо пинать всуе ассемблер! Если его использовать без фанатизма и там где надо, получается очень хорошо. Ощущение полного контроля над чипом - это ни чем не сравнимые ощущения! В свое время приходилось писать критичные по времени программы для AVR-ок на асме - знаю что это такое. У меня тогда настольной книжкой была книжка Юрия Ревича "Практическое программирование микроконтроллеров Atmel AVR на языке ассемблера". До сих пор вон стоит на полке (увы, уже давно на дальней) вся, как ежик, в закладках из листиков календаря :)))
==================================
Но продолжим тему...
==================================
3.2. Доработка железа
Как уже отмечалось выше, в установке используется покупное железо от Добровара, основные узлы которого немного доработаны. Рассмотрим эти доработки подробнее.
3.2.1. Куб
Использован стандартный куб на 23 л литра из модельного ряда 2016 года. Куб симпатичный, удобный с деревянными ручками, пластиковыми барашками и крышкой с фланцем под кламп на 1½" (40мм). Модификация куба заключалась в его теплоизоляции, врезке ТЭНа на 1.5 кВт и пальца для датчика температуры. Теплоизоляция оказалась недостаточной, поэтому описывать ее смысла нет - все равно собираюсь переделывать. Для нагрева в куб был врезан гибкий ТЭН (нержавейка, диаметром 8.5 мм, длиной 650 мм). ТЭН был согнут в виде плоского "кренделька" и уплотнен силиконовыми прокладками. Объем жидкости, необходимой для покрытия ТЭНа, получился около 2.5л.
Куб размещен на толстой гетинаксовой подставке, ориентацию которой можно отрегулировать так, чтобы колонна была вертикальна. Фотография куба с подставкой приведена на рисунке ниже.
3.2.2. Царги
На данный момент используются две последовательно соединенные царги 500 мм и 750 мм. Соединение кламповое. Внутренний диаметр труб - 38мм. В царги засыпана спирально-призматическая насадка (троечка), запыжованная небольшими моточками регулярной насадки Панченкова. Штатные гильзы для термометров открытые. Я их не использую. На одной (верхней) царге она просто заглушена снаружи, а гильза на нижней царге используется для подключения U-образной трубки водяного манометра (просто для визуального контроля давления в колонне). Для температурного же датчика, в нижнюю царгу под углом около 45° к вертикали впаян глухой палец из нержавеющей трубки (диаметр - 8 мм, толщина стенки - 1 мм), в который залито силиконовое масло ПМС-100 и погружен сам датчик DS18B20. Решение оказалось довольно удачным - силиконовое масло инертно и обеспечивает отличный тепловой контакт датчика с трубкой. Секс с термопастой остался в прошлом. Фотография фрагмента колонны и схема этого узла показана на рисунке ниже.
Теплоизоляция колонны многослойная. Непосредственно к трубе колонны примыкает слой термостойкого нетканного материала, толщиной 6 мм. Материал был порезан на ленты шириной 3 см, которые были навиты виток к витку на колонну в три слоя. Вся эта трехслойная шуба была снаружи покрыта металлизированным скотчем. А снаружи на все это надета обычная водопроводная трубная изоляция подходящего диаметра. Температура внешней поверхности колонны во время работы (даже на чистой воде) чуть-чуть выше комнатной. Так что такой вариант изоляции колонны получился вполне удачным.
3.2.3. Дефлегматор
В установке используется довольно "свежая" разработка от Добровара - дефлегматор "Кудесница NEW" с кламповым соединением. Его схема приведена на рисунке ниже.
В целом дефлегматор неплох, но две вещи очень хотелось поправить. Во-первых, выходной шланг контура охлаждения дефлегматора постоянно пережимался. Это, конечно, мелочь, но жутко раздражает. Пришлось припаять к выходной трубке охлаждения дефлегматора небольшую загнутую трубку такого же диаметра (8 мм) так, чтобы шланг выходящей из дефлегматора воды охлаждения сразу шел вниз. За одним ударом, прилепил к этой трубке снаружи (но под небольшим слоем теплоизоляции) еще один датчик температуры. Он сработает, если поток охлаждающей воды станет сильно слабеньким или вообще прекратится.
Со второй проблемой пришлось повозиться подольше и немного поэкспериментировать. Она связана с гильзой для датчика температуры. Во-первых, в отличие от предыдущих вариантов, эта гильза не заглушена внутри дефлегматора. Т.е. открытый корпус DS18B20 туда просто так не засунуть. Слава Богу, внутренний диаметр колонны достаточно большой, туда пролез и фен и паяльник. Торец был заглушен каплей чисто оловянного припоя. В получившийся палец было залито силиконовое масло, в которое был погружен корпус датчика. Этот вариант изображен на следующем рисунке слева.
К сожалению, первые же испытания продемонстрировали неудовлетворительную работу этого датчика. Слишком высокий уровень шума, сильные и непредсказуемые дрейфы средней температуры датчика. В общем-то причина была понятна с самого начала - неудачное расположение датчика. Датчик расположен в зоне сильных температурных градиентов (см.рисунок выше). В центре трубы - горячий пар, тут же в трех-четырех сантиметрах проходит трубка змеевика с охлаждающей водой. Пришлось заменить палец термодатчика на более длинный и расположить датчик так, как показано на рисунке справа. Картина радикально поменялась - после выхода колонны на рабочий режим температура стоит как вкопанная! Колебания - в пределах одного кванта.
Более наглядно эту разницу видно на температурных логах. На следующем рисунке показаны фрагменты температурных логов при разном расположении датчиков. Логи, естественно, записаны в разные дни, в разные процессы ректификации. По времени эти фрагменты соответствуют начальному этапу отбора тела (после отбора подголовников). Сильно различались в эти дни и атмосферное давление. Но масштаб шкал (по температуре) на обоих графиках одинаков. Поэтому легко сравнивать. Из графиков отчетливо видно качественное различие в характере температурных кривых.
Но вот, пожалуй и все об основных доработках железа. Перейдем теперь к описанию первого модуля установки - контроллеру ТЭНа.
========================================================
Предыдущий топик Вернуться к оглавлению Следующий топик
==================================
Но продолжим тему...
==================================
3.2. Доработка железа
Как уже отмечалось выше, в установке используется покупное железо от Добровара, основные узлы которого немного доработаны. Рассмотрим эти доработки подробнее.
3.2.1. Куб
Использован стандартный куб на 23 л литра из модельного ряда 2016 года. Куб симпатичный, удобный с деревянными ручками, пластиковыми барашками и крышкой с фланцем под кламп на 1½" (40мм). Модификация куба заключалась в его теплоизоляции, врезке ТЭНа на 1.5 кВт и пальца для датчика температуры. Теплоизоляция оказалась недостаточной, поэтому описывать ее смысла нет - все равно собираюсь переделывать. Для нагрева в куб был врезан гибкий ТЭН (нержавейка, диаметром 8.5 мм, длиной 650 мм). ТЭН был согнут в виде плоского "кренделька" и уплотнен силиконовыми прокладками. Объем жидкости, необходимой для покрытия ТЭНа, получился около 2.5л.
Куб размещен на толстой гетинаксовой подставке, ориентацию которой можно отрегулировать так, чтобы колонна была вертикальна. Фотография куба с подставкой приведена на рисунке ниже.
3.2.2. Царги
На данный момент используются две последовательно соединенные царги 500 мм и 750 мм. Соединение кламповое. Внутренний диаметр труб - 38мм. В царги засыпана спирально-призматическая насадка (троечка), запыжованная небольшими моточками регулярной насадки Панченкова. Штатные гильзы для термометров открытые. Я их не использую. На одной (верхней) царге она просто заглушена снаружи, а гильза на нижней царге используется для подключения U-образной трубки водяного манометра (просто для визуального контроля давления в колонне). Для температурного же датчика, в нижнюю царгу под углом около 45° к вертикали впаян глухой палец из нержавеющей трубки (диаметр - 8 мм, толщина стенки - 1 мм), в который залито силиконовое масло ПМС-100 и погружен сам датчик DS18B20. Решение оказалось довольно удачным - силиконовое масло инертно и обеспечивает отличный тепловой контакт датчика с трубкой. Секс с термопастой остался в прошлом. Фотография фрагмента колонны и схема этого узла показана на рисунке ниже.
Теплоизоляция колонны многослойная. Непосредственно к трубе колонны примыкает слой термостойкого нетканного материала, толщиной 6 мм. Материал был порезан на ленты шириной 3 см, которые были навиты виток к витку на колонну в три слоя. Вся эта трехслойная шуба была снаружи покрыта металлизированным скотчем. А снаружи на все это надета обычная водопроводная трубная изоляция подходящего диаметра. Температура внешней поверхности колонны во время работы (даже на чистой воде) чуть-чуть выше комнатной. Так что такой вариант изоляции колонны получился вполне удачным.
3.2.3. Дефлегматор
В установке используется довольно "свежая" разработка от Добровара - дефлегматор "Кудесница NEW" с кламповым соединением. Его схема приведена на рисунке ниже.
В целом дефлегматор неплох, но две вещи очень хотелось поправить. Во-первых, выходной шланг контура охлаждения дефлегматора постоянно пережимался. Это, конечно, мелочь, но жутко раздражает. Пришлось припаять к выходной трубке охлаждения дефлегматора небольшую загнутую трубку такого же диаметра (8 мм) так, чтобы шланг выходящей из дефлегматора воды охлаждения сразу шел вниз. За одним ударом, прилепил к этой трубке снаружи (но под небольшим слоем теплоизоляции) еще один датчик температуры. Он сработает, если поток охлаждающей воды станет сильно слабеньким или вообще прекратится.
Со второй проблемой пришлось повозиться подольше и немного поэкспериментировать. Она связана с гильзой для датчика температуры. Во-первых, в отличие от предыдущих вариантов, эта гильза не заглушена внутри дефлегматора. Т.е. открытый корпус DS18B20 туда просто так не засунуть. Слава Богу, внутренний диаметр колонны достаточно большой, туда пролез и фен и паяльник. Торец был заглушен каплей чисто оловянного припоя. В получившийся палец было залито силиконовое масло, в которое был погружен корпус датчика. Этот вариант изображен на следующем рисунке слева.
К сожалению, первые же испытания продемонстрировали неудовлетворительную работу этого датчика. Слишком высокий уровень шума, сильные и непредсказуемые дрейфы средней температуры датчика. В общем-то причина была понятна с самого начала - неудачное расположение датчика. Датчик расположен в зоне сильных температурных градиентов (см.рисунок выше). В центре трубы - горячий пар, тут же в трех-четырех сантиметрах проходит трубка змеевика с охлаждающей водой. Пришлось заменить палец термодатчика на более длинный и расположить датчик так, как показано на рисунке справа. Картина радикально поменялась - после выхода колонны на рабочий режим температура стоит как вкопанная! Колебания - в пределах одного кванта.
Более наглядно эту разницу видно на температурных логах. На следующем рисунке показаны фрагменты температурных логов при разном расположении датчиков. Логи, естественно, записаны в разные дни, в разные процессы ректификации. По времени эти фрагменты соответствуют начальному этапу отбора тела (после отбора подголовников). Сильно различались в эти дни и атмосферное давление. Но масштаб шкал (по температуре) на обоих графиках одинаков. Поэтому легко сравнивать. Из графиков отчетливо видно качественное различие в характере температурных кривых.
Но вот, пожалуй и все об основных доработках железа. Перейдем теперь к описанию первого модуля установки - контроллеру ТЭНа.
========================================================
Предыдущий топик Вернуться к оглавлению Следующий топик
сообщение удалено
OldBean
Доцент
Красноярск
1K 1.4K
Отв.27 03 Янв. 17, 12:33
Вообще же, в принципе, по уму на сдвиговых регистрах это делать желательно.sevproДа. Это хороший, часто используемый вариант. Но тогда пришлось бы организовывать какую-нибудь дополнительную платку и т.п. А мне хотелось обойтись только платой ардуинки и индикатором. Вот если бы на этой ардуинке был бы еще небольшой кусочек макетки на сотню-другую металлизированных отверстий - тогда - да. Хотя, для наших задач, и оставшихся ног за глаза хватает: 6 чисто цифровых пинов (на два их которых можно заводить внешние прерывания) плюс 5 аналоговых.
OldBean, а чем не устроили китайские DS-ки в гильзах? Или просто из наличия?sevproДа не... Есть парочка. Я сначала в колонну именно такой и поставил (как раз в открытую гильзу). Но для дефа они коротковаты - все равно что-то лепить нужно было. Да и в колонну - почти на пределе. Пришлось, даже изоляцию с гильзы немного подрезать, чтобы уплотнился нормально. Поэтому остановился на самодельных гильзах, заполненных силиконовым маслом, и DS18B20 в корпусах TO-92. Пока не жалею о таком решении.
Отв.28 03 Янв. 17, 12:49, через 17 мин
OldBean, по-моему у тебя на контроллерах были пару кнопочек для ручного режима управления
PavelSaratov
Доктор наук
Саратов
622 80
Отв.29 03 Янв. 17, 13:12, через 23 мин
Я не могу понять момент про автономные модульки. Это вы купили пучок ардуин и связали их с мастером во главе (малинкой)? А питаются они как?
OldBean
Доцент
Красноярск
1K 1.4K
Отв.30 03 Янв. 17, 15:34
на контроллерах были пару кнопочек для ручного режима управленияcapsolo
Я не могу понять момент про автономные модульки. Это вы купили пучок ардуин и связали их с мастером во главе (малинкой)? А питаются они как?PavelSaratovСпайку "ардуинка + индикатор" рассматривайте просто как некую гибридную микросхему. У нее нет никаких кнопок и других элементов (кроме самой платы ардуники и индикатора). Это просто мозг с простейшим индикатором на один параметр (число) и штырьками для подключения его к платам контроллеров ТЭНа, клапана отбора и т.п. Я сейчас как раз описываю контроллер ТЭНа - сразу все станет понятно. А питание у него (у гибрида), как и просто у обычной цифровой микросхемы (ТТЛ) - 5В и берется оно от платы куда он вставлен через соответствующие штырьки. По i2c питание не идет, т.к. у мастера (малинки) 3.3В (для slave не обязательно подавать питание по i2c).
сообщение удалено
OldBean
Доцент
Красноярск
1K 1.4K
Отв.31 03 Янв. 17, 18:22
Да нет. Разводить и паять все равно приходится. Электроника установки состоит из нескольких модулей (контроллер ТЭНа, контроллера клапана отбора, датчик RMS и еще будут), содержащих одинаковые фрагменты (правда, прошивки разные). Почему бы этот фрагмент не оформить в некий унифицированный элемент с ножками? Этот элемент и есть "модулек". Вот и все. Ничего особенного.
OldBean
Доцент
Красноярск
1K 1.4K
Отв.32 04 Янв. 17, 05:36
4. Контроллер ТЭНа
Назначение контроллера ТЭНа - регулирование мощности нагрева ТЭНа в кубе. Данный контроллер можно использовать автономно (как обычный диммер). В этом случае для регулирования мощности используется пара кнопок "+" и "-" (при удерживании - "сильно +" и "сильно -" :))). Можно использовать контроллер и под управлением внешнего управляющего компьютера. В этом случае контроллер подключается к управляющему компьютеру по шине i2c. Контроллер ТЭНа являтся ведомым (slave, с адресом 4, который можно изменить в скетче контроллера), а управляющий компьютер является ведущим (master). Управляющий компьютер может считать с контроллера один байт. Это текущее значение мощности нагрева в процентах от номинальной мощности подключенного ТЭНа. Он может также и записать некоторое целое число (от 0 до 100) в контроллер ТЭНа. Это - мощность (в процентах от номинальной мощности ТЭНа), которую контроллер должен обеспечить. Рассмотрим немного подробнее каким же способом контроллер ТЭНа может это "обеспечить".
4.1. Принципы регулирования мощности нагрева ТЭНа
Подавляющее большинство современных регуляторов мощности используют электронные ключи (тиристоры, симисторы, мощные полевые транзисторы и т.п.) для регулирования мощности, потребляемой нагрузкой. Т.е. являются импульсными (ключевыми) устройствами. В каждый момент времени нагрузка либо полностью подключена к сети, либо полностью отключена. Переходные состояния занимают очень короткие промежутки времени и мы их здесь не рассматриваем. Считаем, что ключи включаются и выключаются мгновенно.
В наших процессах мы используем обычные сети переменного тока. В этом случае ключи могут подключать и отключать нагрузку по-разному. Наиболее широко используются три варианта: фазовая регулировка, широтно-инпульсная модуляция (ШИМ, PWM)) и модуляция плотности импульсов (pulse density modulation - PDM) или, как его часто называют, метод Брезенхема (по фамилии человека, который придумал такой алгоритм для задач растровой компьютерной графики).
Рассмотрим кратко особенности этих трех методов регулирования мощности. На рисунке ниже показаны формы напряжения на активной нагрузке при их использовании.
Фазовый регулятор пропускает в нагрузку кусочки каждого полупериода сетевого напряжения. Изменяя время включения ключа относительно начала полупериода можно регулировать среднюю мощность, потребляемую нагрузкой. У такого регулятора есть ряд недостатков. Во-первых, зависимость средней мощности от времени включения ключа нелинейна. Это несколько усложняет построение систем автоматического регулирования мощности. Во-вторых, при больших нагрузках и относительно слабой сети, форма напряжения сети перестает быть синусоидальной и, при больших искажениях, может нарушить нормальную работу других устройств, чуствительных к форме сетевого напряжения. В-третьих, ключи включаются в моменты, когда сетевое напряжение отлично от нуля. Т.е. ключи работают в, так называемом, жестком режиме. При этом существенно возрастают динамические потери в ключах и создаются высокочастотные помехи как в сети, так и в эфире. Разработчики фазовых регуляторов используют разные методы смягчения этих недостатков. Но они есть и они генетически присущи фазовому методу регулирования мощности.
При ШИМ-регулировании ключ пропускает к нагрузке уже целые полупериоды сетвого напряжения. Причем, делает это пачками. Т.е. сколько-то полупериодов подряд пропускается к нагрузке, затем сколько-то (тоже подряд) не пропускается. Отношение числа пропущенных и непропущенных полупериодов определяет среднюю мощность, потребляемую нагрузкой.
Работа с целыми полупериодами дает возможность привязать моменты включения ключей к началу полупериода и обеспечить, так называемые, "мягкие" режимы работы ключей. В данном случае у нас нагрузка чисто активная. Поэтому включение,выключение ключей происходит и в нуле напряжения, и в нуле тока одновременно. Это, так называемые, режимы ZVS-ZCS (Zero-Voltage and Zero-Current Switching). Очень щадящие режимы. Как по отношению к ключам, так и по отношению к сети и эфиру. Высокочастотные помехи отсутсвуют. Форма напряжения сети (синус) не искажается.
Еще к достоинствам этого метода следует отнести линейность регулирования мощности. Т.е. потребляемая нагрузкой мощность строго пропорциональна числу полупериодов, пропущенных к нагрузке.
У этого метода регулирования есть один существенный недостаток, связанный с самим принципом регулирования. Для достижения приемлемой точности регулирования необходимы достаточно большие периоды ШИМ. Например, для 1% точности, период ШИМ должен быть равен 100 периодам сетевого напряжения. Для сети 50 Гц это 1 секунда (или 2 сек, если позаботиться об отсутствии постоянной составляющей напряжения сети). При больших нагрузках и слабой сети такая модуляция может оказаться заметной. Тем не менее, здесь необходимо отметить, что "просадка" касается только напряжения сети. Сама форма (синус) при этом методе не искажается. Это тоже относится к достоинствам этого метода.
Отмеченный выше недостаток в определенной степени смягчается в методе регулирования Брезенхема. В этом методе пропущенные к нагрузке полупериоды сетевого напряжения идут не сплошными "пачками", а более-менее равномерно распределяются во времени так, чтобы средняя мощность в нагрузке была максимально близка к желаемой. Плата за это - более сложный алгоритм управления.
У этого метода регулирования почти нет недостатков: он не дает высокочастотных помех, не искажает форму напряжения сети, ключи работают в "мягком" режиме, регулировка мощности линейная. Слегка модифицированный алгоритм (о нем речь пойдет в конце топика) дополнительно позволяет минимизировать как постоянную составляющую, так и низкочастотную модуляцию напряжения. Для инерционных нагрузок (какой как раз и является ТЭН в кубе) это почти идеальный метод регулирования. Конечно, если нагрузка сильно превышает возможности сети, просадки амплитуды напряжения сети будут заметны другим потребителям этой сети (практически только малоинерционным лампочкам накаливания). Но это уже, скорее, проблемы сети а не метода регулирования. В нормальной бытовой сети при уровнях мощности 1-2 кВт (что более, чем достаточно для любых ректификационных установок "бытового" масштаба) таких проблем обычно не возникает.
Поэтому в рассматриваемом контроллере ТЭНа используется именно такой метод регулирования мощности. Более подробно алгоритм будет рассмотрен в конце этого топика. А сейчас займемся аппаратной частью контроллера.
4.2. Принципиальная схема контроллера ТЭНа
Принципиальная схема контроллера ТЭНа изображена на рисунке ниже. Он состоит из трех функциональных блоков: наш "модулек", содержащий плату Arduino Pro Mini и трехразрядный 7-сегментный индикатор (справа на схеме), детектор нуля сетевого напряжения (фрагмент слева сверху) и электронный ключ (фрагмент слева внизу).
Первый блок ("Модулек") мы уже подробно рассматривали здесь. Его задача в данном контроллере заключается в управлении электронным ключом по алгоритму Брезенхема. По спаду импульса поступающего от детектора нуля на вход D2 (это происходит чуть раньше, чем натупит нуль напряжения в сети), инициируется аппаратное прерывание процессора модулька. Процессор должен быстренько сообразить пропускать ему следующий полупериод в нагрузку или нет. Если решение положительное (пропускать), то формируется сигнал на выходе D9, открывающий электронный ключ, и полупериод сетевого напряжения поступает в нагрузку (ТЭН). Если нет - то нет.
Задача детектора нуля - сформировать фронт импульса (точнее - отрицательный фронт, спад) приблизительно на 100 мкс раньше, чем начнется очередной полупериод. Этого времени вполне достаточно, чтобы процессор "модулька" принял решение. Схема детектора нуля довольно простая. Импульс в районе нуля напряжения сети формируется парой транзисторов T1 и T2. Питаются они от цепи, образованной резисторами R1, R2, диодом D1 и конденсатора C1. Стабилитрон D2 служит для защиты транзисторов от возможных выборосов в сети. Выпрямленное при помощи мостика IC1 напряжение сети поступает на цепь питания транзисторов и на делитель напряжения, образованный резисторами R3, R4 и "нелинейным резистором", образованным R5 и стабилитроном D2. Напряжение с этого делителя поступает на базу T1. Когда напряжение в сети далеко от нуля, транзистор T1 открыт, а T2 закрыт. Через светодиод оптопары IC2 ток не течет и на входе D2 микроконтроллера присутствует высокий потенциал. Как только напряжение сети начнет приближаться к нулю, напряжение на базе T1 уменьшится и T1 закроется, а T2 откроется. Через диод оптопары IC2 потечет ток, фототразистор ее откроется и сформирует низкий потенциал на входе D2 микроконтроллера. По спаду инициируется аппаратное прерывание и микроконтроллер начнет думать: пропускать ему полупериод, который уже "на подходе", или нет.
Осциллограммы импульсов, выдаваемых таким детектором нуля можно посмотреть здесь и здесь.
Электронный ключ (слева внизу по схеме) выполнен по стандартной схеме из datasheet к оптосимистору IC2. Он многократно описан в литературе, поэтому не будем на нем останавливаться подробно. Отметим только некоторые моменты. Оптосимистор, используемый в данной схеме, содержит свой детектор нуля. Поэтому разрешающий сигнал от микроконтроллера модулька должен прийти чуть раньше нуля сети. Цепочка, содержащая резистор R13 и светодиод предназначена просто для визуального контроля работы контроллера ТЭНа. Иногда это бывает полезно. Снаббер R9, C2 служит для гашения высокочастных импульсов, если нагрузка содержит индуктивную составляющую. У нас практически чисто активная нагрузка и эта цепочка не очень нужна. Но пусть стоит на всякий случай.
Вот и все по схеме. Перейдем теперь к ее практической реализации.
4.3. Изготовление и тестирование
Печатная плата в формате SprintLayout 6 приведена в приложении к данному топику (файл teh_16.11.27.lay6.zip). Фотография собранного контроллера и одного "модулька", который будет работать с этим контроллером показана на следующем рисунке.
Прошиваем "модулек" скетчем, который находится в приложении к данному топику (файл teh_16.11.27.ino.zip), вставляем прошитый модулек в соответствующие гнезда на плате контроллера и приступаем к испытаниям.
Для испытаний подключаем сеть к соответствующим клеммникам. В качестве нагрузки возьмем небольшую лампочку (ватт на 100, т.к. симистор пока без радиатора) и подключем ее к клеммникам нагрузки. Подадим питание 5V от отдельного источника питания (например, от 5 вольтовой зарядки, "потрошки" которой как раз показаны на рисунке ниже) и подадим сетевое напряжение. Кнопокй "+" увеличиваем мощность. Контролируем значения по индикатору. Если все собрано правильно и все элементы исправны, то начнет мигать светодиод на плате контроллера и лампочка-нагрузка. Картинка должна напоминать ту, что изображена на следующем рисунке.
Все. Изготовление первого модуля установки (контроллера ТЭНа) прошло успешно. Теперь можно прикрутить симистор BTA16 к радиатору и подключить к ТЭНу. Симисторы BTA (с буквой A) удобны тем, что аноды электрически изолированы от подошвы, к которой прикручивается радиатор. Это позволяет обойтись без изолирующих прокладок и/или изоляции радиатора от корпуса. Общий вид контроллера ТЭНа с прикрученным радиатором - на следующем рисунке.
В таком виде контроллером ТЭНа уже вполне можно пользоваться для управления мощностью нагрева куба в "ручном режиме".
4.4. Поиск неисправностей
Я сделал уже 4 такие штуки. Все они заработали с первого раза. Но что делать, если контроллер все-таки не заработал? Предполагаем, что "модулек" был изготовлен раньше, тестовый скетч (который использовался при изготовлении модулька) отработал нормально и сейчас он перепрошит правильной прошивкой (скетчем, приложенным к данному топику). Смотрим по ситуации.
1. Лампочка не мигает, а светодиод на плате контроллера мигает. Значит неисправность в электронном ключе. Проверяем монтаж, номиналы установленных деталей, оптосимистор и симистор BTA16.
2. Ничего не мигает. Ни лампочка, ни светодиод. Скорее всего неисправность в детекторе нуля. Тут уже потребуется осциллограф. Смотрим есть ли сигнал (короткие как иглы импульсы с частотой 100 Гц) на входе D2. Если их нет - то действительно проблема в детекторе нуля.
Далее работаем очень осторожно (!!!), т.к. компоненты детектора нуля не имеют гальванической развязки с сетью!!! Используем осциллограф, позволяющий работать с высоким (сетевым) напряжением.
Проверяем сигналы на выходе выпрямительного мостика, базе T1, коллекторе T1 и T2. На всякий случай и на конденсаторе C1. После этого картина, скорее всего, станет ясна.
3. Если ничего не мигает, а сигнал с детектора нуля идет, то вероятная причина уже в "модульке". Скорее всего неверно залит скетч (или не тот скетч). Либо (маловероятно, но...) частично сдохла периферия микроконтроллера "модулька" (напомню, что здесь мы предполагаем, что тестовый скетч, который использовался при изготовлении модулька работал нормально).
Для облегчения поиска неисправностей детектора нуля здесь приведены осциллограммы сигналов в некоторых контрольных точках.
4.5. Немного подробнее о методе диффузии ошибки (методе Брезенхема)
Скетч, прилагаемый к данному топику, достаточно подробно прокомментирован. Поэтому разобраться в его работе по тексту программы несложно. Единственное на чем хотелось бы остановиться немного подробнее - это на самом алгоритме управления электронным ключом.
Импульсные системы дискретны. В нашем случае электрическая мощность поступает в нагрузку целыми полупериодами. Т.е. квантом является мощность (точнее энергия) одного полупериода сети, которая выделится в нагрузке (ТЭНе). Примем ее за 100% (так удобнее, чтобы оперировать целыми числами). Если мы не пропускаем к нагрузке ни одного полупериода, то средняя мощность нагрева будет равна 0. А если мы пропускаем к нагрузке все полупериоды, то средняя мощность будет 100%. А как быть, если нам нужна промежуточная мощность, например, 65%? Мы же не можем пропускать к нагрузке только кусочек (65%) полупериода. Это можно сделать при фазовом регулировании, но мы от него отказались. Единственное, что нам остается - это пропускать к нагрузке 65 полупериодов из каждой сотни полупериодов. Тогда средня мощность в нагрузке будет как раз 65% от максимальной.
Но как нам сделать это правильно? Есть очень простой алгоритм, который позволяет минимизировать пульсации средней мощности, возникающие из-за того, что мы "отпускаем" мощность нагрузке целыми квантами (это называется - ошибка дискретизации). Рассмотрим работу этого алгоритма на примере.
Мы работаем ключом :))) В нагрузку мы еще ничего не пропустили. Смотрим на наши желаемые 65%. Это больше половины (50%). Поэтому мы принимаем решение - пропустить первый полупериод в нагрузку. Дело нехитрое - замкнули ключ и пропустили. Быстро соображаем что же нам делать дальше. Мы отдали нагрузке целый полупериод, а нужно было только 65%. Мы немного "переборщили" - в нагрузке выделилось на 35% энергии больше, чем нужно. Ошибка дискретизации +35%. Но мы знаем, что на следующем полупериоде нам опять нужно пустить в нагрузку 65% энергии полупериода. Но 35 лишних процентов мы уже "переложили" на предыдущем шаге. Мы учтем это. Это значит, что нам нужно отправить в нагрузку не 65% а всего 65% - 35% = 30%. Смотрим на эти 30%. Это меньше половины от кванта (50%). Значит не будем отдавать нагрузке следующий полупериод. Сидим, отдыхаем, соображаем и понимаем, что на данном этапе мы все-таки "недоложили" в нагрузку 30% энергии. Это уже отрицательная ошибка: -30%. Ну что же, учтем это на следующем шаге, на котором мы должны положить в нагрузку уже 65% - (-30%) = 95% энергии полупериода. Отлично! 95% больше половины, поэтому следующий полупериод мы с удовольствием пропускаем к нагрузке. Но при этом мы опять чуть-чуть (на 5%) переборщили. Теперь мы знаем что нужно делать. Опять переносим эту ошибку на следующий полупериод. И так трудимся дальше... Самое замечательное, что через 100 полупериодов мы с удивлением увидим, что в нагрузке выделилось РОВНО 65% от максимальной мощности!
Вот так работает метод диффузии (или переноса) ошибки (ака Брезенхем). Простой и изящный алгоритм. Он очень легко программируется и не требует много вычислительных ресурсов. Поэтому, если спад импульса с детектора нуля приходит хотя бы за 100 мкс до начала следующего полупериода сети, то микроконтроллер вполне успевает принять правильное решение и сформировать импульс управления электронным ключом.
Алгоритм, используемый в прилагаемом скетче, немного отличается от описанного выше. Дело в том, при некоторых значениях мощности количество положительных полупериодов, пропущенных в нагрузку, может очень сильно отличаться от количества отрицательных полупериодов, пропущенных туда же. Если сеть слабенькая, а мощность ТЭНа очень велика, то в сети появится заметная постоянная составляющая, которая может приводить к ухудшению работы трансформаторов (насыщение сердечника). На это обстоятельство в свое время обратил внимание коллега sevpro. Поэтому я немного модифицировал описанный выше алгоритм так, чтобы на каждом шаге минимизировать разницу между количеством отрицательных и положительных полупериодов, пропущенных в нагрузку.
Суть модификации заключается в следующем. В процессе работы алгоритма на каждом шаге считается постоянная составляющая. Если на следующем шаге нужно пропустить полупериод в нагрузку, но это действие приведет к увеличению постоянной составляющей, то полупериод на этом шаге все-таки НЕ пропускается, а все накопившиеся ошибки переносятся еще на один шаг дальше. Там полупериод другого знака и он будет уже уменьшать постоянную составляющую. пропуск полупериода Эта несложная модификация позволяет поддерживать постоянную составляющею вблизи нуля. Подробности этих экспериментов с постоянной составляющей можно посмотреть здесь.
========================================================
Предыдущий топик Вернуться к оглавлению Следующий топик
Назначение контроллера ТЭНа - регулирование мощности нагрева ТЭНа в кубе. Данный контроллер можно использовать автономно (как обычный диммер). В этом случае для регулирования мощности используется пара кнопок "+" и "-" (при удерживании - "сильно +" и "сильно -" :))). Можно использовать контроллер и под управлением внешнего управляющего компьютера. В этом случае контроллер подключается к управляющему компьютеру по шине i2c. Контроллер ТЭНа являтся ведомым (slave, с адресом 4, который можно изменить в скетче контроллера), а управляющий компьютер является ведущим (master). Управляющий компьютер может считать с контроллера один байт. Это текущее значение мощности нагрева в процентах от номинальной мощности подключенного ТЭНа. Он может также и записать некоторое целое число (от 0 до 100) в контроллер ТЭНа. Это - мощность (в процентах от номинальной мощности ТЭНа), которую контроллер должен обеспечить. Рассмотрим немного подробнее каким же способом контроллер ТЭНа может это "обеспечить".
4.1. Принципы регулирования мощности нагрева ТЭНа
Подавляющее большинство современных регуляторов мощности используют электронные ключи (тиристоры, симисторы, мощные полевые транзисторы и т.п.) для регулирования мощности, потребляемой нагрузкой. Т.е. являются импульсными (ключевыми) устройствами. В каждый момент времени нагрузка либо полностью подключена к сети, либо полностью отключена. Переходные состояния занимают очень короткие промежутки времени и мы их здесь не рассматриваем. Считаем, что ключи включаются и выключаются мгновенно.
В наших процессах мы используем обычные сети переменного тока. В этом случае ключи могут подключать и отключать нагрузку по-разному. Наиболее широко используются три варианта: фазовая регулировка, широтно-инпульсная модуляция (ШИМ, PWM)) и модуляция плотности импульсов (pulse density modulation - PDM) или, как его часто называют, метод Брезенхема (по фамилии человека, который придумал такой алгоритм для задач растровой компьютерной графики).
Рассмотрим кратко особенности этих трех методов регулирования мощности. На рисунке ниже показаны формы напряжения на активной нагрузке при их использовании.
Фазовый регулятор пропускает в нагрузку кусочки каждого полупериода сетевого напряжения. Изменяя время включения ключа относительно начала полупериода можно регулировать среднюю мощность, потребляемую нагрузкой. У такого регулятора есть ряд недостатков. Во-первых, зависимость средней мощности от времени включения ключа нелинейна. Это несколько усложняет построение систем автоматического регулирования мощности. Во-вторых, при больших нагрузках и относительно слабой сети, форма напряжения сети перестает быть синусоидальной и, при больших искажениях, может нарушить нормальную работу других устройств, чуствительных к форме сетевого напряжения. В-третьих, ключи включаются в моменты, когда сетевое напряжение отлично от нуля. Т.е. ключи работают в, так называемом, жестком режиме. При этом существенно возрастают динамические потери в ключах и создаются высокочастотные помехи как в сети, так и в эфире. Разработчики фазовых регуляторов используют разные методы смягчения этих недостатков. Но они есть и они генетически присущи фазовому методу регулирования мощности.
При ШИМ-регулировании ключ пропускает к нагрузке уже целые полупериоды сетвого напряжения. Причем, делает это пачками. Т.е. сколько-то полупериодов подряд пропускается к нагрузке, затем сколько-то (тоже подряд) не пропускается. Отношение числа пропущенных и непропущенных полупериодов определяет среднюю мощность, потребляемую нагрузкой.
Работа с целыми полупериодами дает возможность привязать моменты включения ключей к началу полупериода и обеспечить, так называемые, "мягкие" режимы работы ключей. В данном случае у нас нагрузка чисто активная. Поэтому включение,выключение ключей происходит и в нуле напряжения, и в нуле тока одновременно. Это, так называемые, режимы ZVS-ZCS (Zero-Voltage and Zero-Current Switching). Очень щадящие режимы. Как по отношению к ключам, так и по отношению к сети и эфиру. Высокочастотные помехи отсутсвуют. Форма напряжения сети (синус) не искажается.
Еще к достоинствам этого метода следует отнести линейность регулирования мощности. Т.е. потребляемая нагрузкой мощность строго пропорциональна числу полупериодов, пропущенных к нагрузке.
У этого метода регулирования есть один существенный недостаток, связанный с самим принципом регулирования. Для достижения приемлемой точности регулирования необходимы достаточно большие периоды ШИМ. Например, для 1% точности, период ШИМ должен быть равен 100 периодам сетевого напряжения. Для сети 50 Гц это 1 секунда (или 2 сек, если позаботиться об отсутствии постоянной составляющей напряжения сети). При больших нагрузках и слабой сети такая модуляция может оказаться заметной. Тем не менее, здесь необходимо отметить, что "просадка" касается только напряжения сети. Сама форма (синус) при этом методе не искажается. Это тоже относится к достоинствам этого метода.
Отмеченный выше недостаток в определенной степени смягчается в методе регулирования Брезенхема. В этом методе пропущенные к нагрузке полупериоды сетевого напряжения идут не сплошными "пачками", а более-менее равномерно распределяются во времени так, чтобы средняя мощность в нагрузке была максимально близка к желаемой. Плата за это - более сложный алгоритм управления.
У этого метода регулирования почти нет недостатков: он не дает высокочастотных помех, не искажает форму напряжения сети, ключи работают в "мягком" режиме, регулировка мощности линейная. Слегка модифицированный алгоритм (о нем речь пойдет в конце топика) дополнительно позволяет минимизировать как постоянную составляющую, так и низкочастотную модуляцию напряжения. Для инерционных нагрузок (какой как раз и является ТЭН в кубе) это почти идеальный метод регулирования. Конечно, если нагрузка сильно превышает возможности сети, просадки амплитуды напряжения сети будут заметны другим потребителям этой сети (практически только малоинерционным лампочкам накаливания). Но это уже, скорее, проблемы сети а не метода регулирования. В нормальной бытовой сети при уровнях мощности 1-2 кВт (что более, чем достаточно для любых ректификационных установок "бытового" масштаба) таких проблем обычно не возникает.
Поэтому в рассматриваемом контроллере ТЭНа используется именно такой метод регулирования мощности. Более подробно алгоритм будет рассмотрен в конце этого топика. А сейчас займемся аппаратной частью контроллера.
4.2. Принципиальная схема контроллера ТЭНа
Принципиальная схема контроллера ТЭНа изображена на рисунке ниже. Он состоит из трех функциональных блоков: наш "модулек", содержащий плату Arduino Pro Mini и трехразрядный 7-сегментный индикатор (справа на схеме), детектор нуля сетевого напряжения (фрагмент слева сверху) и электронный ключ (фрагмент слева внизу).
Первый блок ("Модулек") мы уже подробно рассматривали здесь. Его задача в данном контроллере заключается в управлении электронным ключом по алгоритму Брезенхема. По спаду импульса поступающего от детектора нуля на вход D2 (это происходит чуть раньше, чем натупит нуль напряжения в сети), инициируется аппаратное прерывание процессора модулька. Процессор должен быстренько сообразить пропускать ему следующий полупериод в нагрузку или нет. Если решение положительное (пропускать), то формируется сигнал на выходе D9, открывающий электронный ключ, и полупериод сетевого напряжения поступает в нагрузку (ТЭН). Если нет - то нет.
Задача детектора нуля - сформировать фронт импульса (точнее - отрицательный фронт, спад) приблизительно на 100 мкс раньше, чем начнется очередной полупериод. Этого времени вполне достаточно, чтобы процессор "модулька" принял решение. Схема детектора нуля довольно простая. Импульс в районе нуля напряжения сети формируется парой транзисторов T1 и T2. Питаются они от цепи, образованной резисторами R1, R2, диодом D1 и конденсатора C1. Стабилитрон D2 служит для защиты транзисторов от возможных выборосов в сети. Выпрямленное при помощи мостика IC1 напряжение сети поступает на цепь питания транзисторов и на делитель напряжения, образованный резисторами R3, R4 и "нелинейным резистором", образованным R5 и стабилитроном D2. Напряжение с этого делителя поступает на базу T1. Когда напряжение в сети далеко от нуля, транзистор T1 открыт, а T2 закрыт. Через светодиод оптопары IC2 ток не течет и на входе D2 микроконтроллера присутствует высокий потенциал. Как только напряжение сети начнет приближаться к нулю, напряжение на базе T1 уменьшится и T1 закроется, а T2 откроется. Через диод оптопары IC2 потечет ток, фототразистор ее откроется и сформирует низкий потенциал на входе D2 микроконтроллера. По спаду инициируется аппаратное прерывание и микроконтроллер начнет думать: пропускать ему полупериод, который уже "на подходе", или нет.
Осциллограммы импульсов, выдаваемых таким детектором нуля можно посмотреть здесь и здесь.
Электронный ключ (слева внизу по схеме) выполнен по стандартной схеме из datasheet к оптосимистору IC2. Он многократно описан в литературе, поэтому не будем на нем останавливаться подробно. Отметим только некоторые моменты. Оптосимистор, используемый в данной схеме, содержит свой детектор нуля. Поэтому разрешающий сигнал от микроконтроллера модулька должен прийти чуть раньше нуля сети. Цепочка, содержащая резистор R13 и светодиод предназначена просто для визуального контроля работы контроллера ТЭНа. Иногда это бывает полезно. Снаббер R9, C2 служит для гашения высокочастных импульсов, если нагрузка содержит индуктивную составляющую. У нас практически чисто активная нагрузка и эта цепочка не очень нужна. Но пусть стоит на всякий случай.
Вот и все по схеме. Перейдем теперь к ее практической реализации.
4.3. Изготовление и тестирование
Печатная плата в формате SprintLayout 6 приведена в приложении к данному топику (файл teh_16.11.27.lay6.zip). Фотография собранного контроллера и одного "модулька", который будет работать с этим контроллером показана на следующем рисунке.
Прошиваем "модулек" скетчем, который находится в приложении к данному топику (файл teh_16.11.27.ino.zip), вставляем прошитый модулек в соответствующие гнезда на плате контроллера и приступаем к испытаниям.
Для испытаний подключаем сеть к соответствующим клеммникам. В качестве нагрузки возьмем небольшую лампочку (ватт на 100, т.к. симистор пока без радиатора) и подключем ее к клеммникам нагрузки. Подадим питание 5V от отдельного источника питания (например, от 5 вольтовой зарядки, "потрошки" которой как раз показаны на рисунке ниже) и подадим сетевое напряжение. Кнопокй "+" увеличиваем мощность. Контролируем значения по индикатору. Если все собрано правильно и все элементы исправны, то начнет мигать светодиод на плате контроллера и лампочка-нагрузка. Картинка должна напоминать ту, что изображена на следующем рисунке.
Все. Изготовление первого модуля установки (контроллера ТЭНа) прошло успешно. Теперь можно прикрутить симистор BTA16 к радиатору и подключить к ТЭНу. Симисторы BTA (с буквой A) удобны тем, что аноды электрически изолированы от подошвы, к которой прикручивается радиатор. Это позволяет обойтись без изолирующих прокладок и/или изоляции радиатора от корпуса. Общий вид контроллера ТЭНа с прикрученным радиатором - на следующем рисунке.
В таком виде контроллером ТЭНа уже вполне можно пользоваться для управления мощностью нагрева куба в "ручном режиме".
4.4. Поиск неисправностей
Я сделал уже 4 такие штуки. Все они заработали с первого раза. Но что делать, если контроллер все-таки не заработал? Предполагаем, что "модулек" был изготовлен раньше, тестовый скетч (который использовался при изготовлении модулька) отработал нормально и сейчас он перепрошит правильной прошивкой (скетчем, приложенным к данному топику). Смотрим по ситуации.
1. Лампочка не мигает, а светодиод на плате контроллера мигает. Значит неисправность в электронном ключе. Проверяем монтаж, номиналы установленных деталей, оптосимистор и симистор BTA16.
2. Ничего не мигает. Ни лампочка, ни светодиод. Скорее всего неисправность в детекторе нуля. Тут уже потребуется осциллограф. Смотрим есть ли сигнал (короткие как иглы импульсы с частотой 100 Гц) на входе D2. Если их нет - то действительно проблема в детекторе нуля.
Далее работаем очень осторожно (!!!), т.к. компоненты детектора нуля не имеют гальванической развязки с сетью!!! Используем осциллограф, позволяющий работать с высоким (сетевым) напряжением.
Проверяем сигналы на выходе выпрямительного мостика, базе T1, коллекторе T1 и T2. На всякий случай и на конденсаторе C1. После этого картина, скорее всего, станет ясна.
3. Если ничего не мигает, а сигнал с детектора нуля идет, то вероятная причина уже в "модульке". Скорее всего неверно залит скетч (или не тот скетч). Либо (маловероятно, но...) частично сдохла периферия микроконтроллера "модулька" (напомню, что здесь мы предполагаем, что тестовый скетч, который использовался при изготовлении модулька работал нормально).
Для облегчения поиска неисправностей детектора нуля здесь приведены осциллограммы сигналов в некоторых контрольных точках.
4.5. Немного подробнее о методе диффузии ошибки (методе Брезенхема)
Скетч, прилагаемый к данному топику, достаточно подробно прокомментирован. Поэтому разобраться в его работе по тексту программы несложно. Единственное на чем хотелось бы остановиться немного подробнее - это на самом алгоритме управления электронным ключом.
Импульсные системы дискретны. В нашем случае электрическая мощность поступает в нагрузку целыми полупериодами. Т.е. квантом является мощность (точнее энергия) одного полупериода сети, которая выделится в нагрузке (ТЭНе). Примем ее за 100% (так удобнее, чтобы оперировать целыми числами). Если мы не пропускаем к нагрузке ни одного полупериода, то средняя мощность нагрева будет равна 0. А если мы пропускаем к нагрузке все полупериоды, то средняя мощность будет 100%. А как быть, если нам нужна промежуточная мощность, например, 65%? Мы же не можем пропускать к нагрузке только кусочек (65%) полупериода. Это можно сделать при фазовом регулировании, но мы от него отказались. Единственное, что нам остается - это пропускать к нагрузке 65 полупериодов из каждой сотни полупериодов. Тогда средня мощность в нагрузке будет как раз 65% от максимальной.
Но как нам сделать это правильно? Есть очень простой алгоритм, который позволяет минимизировать пульсации средней мощности, возникающие из-за того, что мы "отпускаем" мощность нагрузке целыми квантами (это называется - ошибка дискретизации). Рассмотрим работу этого алгоритма на примере.
Мы работаем ключом :))) В нагрузку мы еще ничего не пропустили. Смотрим на наши желаемые 65%. Это больше половины (50%). Поэтому мы принимаем решение - пропустить первый полупериод в нагрузку. Дело нехитрое - замкнули ключ и пропустили. Быстро соображаем что же нам делать дальше. Мы отдали нагрузке целый полупериод, а нужно было только 65%. Мы немного "переборщили" - в нагрузке выделилось на 35% энергии больше, чем нужно. Ошибка дискретизации +35%. Но мы знаем, что на следующем полупериоде нам опять нужно пустить в нагрузку 65% энергии полупериода. Но 35 лишних процентов мы уже "переложили" на предыдущем шаге. Мы учтем это. Это значит, что нам нужно отправить в нагрузку не 65% а всего 65% - 35% = 30%. Смотрим на эти 30%. Это меньше половины от кванта (50%). Значит не будем отдавать нагрузке следующий полупериод. Сидим, отдыхаем, соображаем и понимаем, что на данном этапе мы все-таки "недоложили" в нагрузку 30% энергии. Это уже отрицательная ошибка: -30%. Ну что же, учтем это на следующем шаге, на котором мы должны положить в нагрузку уже 65% - (-30%) = 95% энергии полупериода. Отлично! 95% больше половины, поэтому следующий полупериод мы с удовольствием пропускаем к нагрузке. Но при этом мы опять чуть-чуть (на 5%) переборщили. Теперь мы знаем что нужно делать. Опять переносим эту ошибку на следующий полупериод. И так трудимся дальше... Самое замечательное, что через 100 полупериодов мы с удивлением увидим, что в нагрузке выделилось РОВНО 65% от максимальной мощности!
Вот так работает метод диффузии (или переноса) ошибки (ака Брезенхем). Простой и изящный алгоритм. Он очень легко программируется и не требует много вычислительных ресурсов. Поэтому, если спад импульса с детектора нуля приходит хотя бы за 100 мкс до начала следующего полупериода сети, то микроконтроллер вполне успевает принять правильное решение и сформировать импульс управления электронным ключом.
Алгоритм, используемый в прилагаемом скетче, немного отличается от описанного выше. Дело в том, при некоторых значениях мощности количество положительных полупериодов, пропущенных в нагрузку, может очень сильно отличаться от количества отрицательных полупериодов, пропущенных туда же. Если сеть слабенькая, а мощность ТЭНа очень велика, то в сети появится заметная постоянная составляющая, которая может приводить к ухудшению работы трансформаторов (насыщение сердечника). На это обстоятельство в свое время обратил внимание коллега sevpro. Поэтому я немного модифицировал описанный выше алгоритм так, чтобы на каждом шаге минимизировать разницу между количеством отрицательных и положительных полупериодов, пропущенных в нагрузку.
Суть модификации заключается в следующем. В процессе работы алгоритма на каждом шаге считается постоянная составляющая. Если на следующем шаге нужно пропустить полупериод в нагрузку, но это действие приведет к увеличению постоянной составляющей, то полупериод на этом шаге все-таки НЕ пропускается, а все накопившиеся ошибки переносятся еще на один шаг дальше. Там полупериод другого знака и он будет уже уменьшать постоянную составляющую. пропуск полупериода Эта несложная модификация позволяет поддерживать постоянную составляющею вблизи нуля. Подробности этих экспериментов с постоянной составляющей можно посмотреть здесь.
========================================================
Предыдущий топик Вернуться к оглавлению Следующий топик
сообщение удалено
OldBean
Доцент
Красноярск
1K 1.4K
Отв.33 04 Янв. 17, 06:31, через 56 мин
Просто смазать поверхность симистора BTA термопастой (тонким слоем) и прикрутить к радиатору винтом на М3. Симистор специально расположен на краю платы так, чтобы его можно было прикрутить к плоскости радиатора. Чуть позже сфотографирую крупнее этот модуль в сборе и покажу (просто я сейчас километрах в 10 от установки :))).
========================
PS
PavelSaratov, я прикрепил еще одну фотографию к предыдущему посту. Там можно рассмотреть как монтируется симистор на радиатор.
========================
PS
PavelSaratov, я прикрепил еще одну фотографию к предыдущему посту. Там можно рассмотреть как монтируется симистор на радиатор.
сообщения удалены (2)
OldBean
Доцент
Красноярск
1K 1.4K
Отв.34 04 Янв. 17, 11:30
резисторы R9, R10, R11 должны быть не менее 1ватт, из соображений допустимого рабочего напряженияwoddyЗамечание, конечно, абсолютно справедливое. Просто закончились полуваттные МЛТ-шки (я обычно их ставил). Хотел поставить пары последовательно (так же как R1-R2 и R3-R4), но что-то, видимо, отвлекло...
-----
Как показывает жизнь, у МЛТ-шек (у низкоомных) какой-то огромный технологический запас по напряжению. Их пробить не так-то просто. Только "иглами". А так - сгорят раньше. Но, тем не менее, спасибо за замечание. Конечно ТУ надо стараться соблюдать.
===================================
2 PavelSaratov, sorry, но было бы неэтично с моей стороны ругать какие-то конкретные решения, в теме, посвященной другим устройствам. Тем более что ругать РМ-2 в общем-то не за что. У РМ-2 есть очень большое достоинство - огромный опыт внедрения и эксплуатации. Это отработанное серийное устройство. РМ-2 очень широко обсуждался (и обсуждается) на форуме. Я думаю, если хорошо порыться - можно получить ответы на все вопросы в соответствующих ветках.
Просто я не люблю фазовые регуляторы, по причинам, описанным выше. Поэтому использую Брезенхема. Для ректификационных задач бытового масштаба это очень хорошее решение. Но идеального во всех отношения решения в природе не существует. Поэтому в каждом случае нужно взвешивать все плюсы-минусы конкретно.
HBB
Кандидат наук
Москва
357 94
Отв.35 04 Янв. 17, 12:40
Просто я не люблю фазовые регуляторыOldBean, 04 Янв. 17, 11:30
http://www.530.ru/electronics/projects.php?do=p022
Добавлено через 31мин.:
Вот кто бы помог мне РМ к Малинке прикрутить?
PavelSaratov
Доктор наук
Саратов
622 80
Отв.36 04 Янв. 17, 13:19, через 40 мин
Эмм не совсем понятно что вы хотите. Я не уверен что на РМ-2 зашито управление по входному сигналу. Вернее я уверен в обратном -раз не заявлено явно возможность управления внешними сигналами - то максимум не задокументированная функция может быть, которую нам никто не расскажет.
HBB
Кандидат наук
Москва
357 94
Отв.37 04 Янв. 17, 13:26, через 7 мин
Эмм не совсем понятно что вы хотитеPavelSaratov, 04 Янв. 17, 13:19
У РМ-2 есть 2 управляющие кнопки. Вот думаю, может к ним привязаться? Только вот как быть с регулировкой. Уж больно привык я к РМ. Надежен, точен, и, главное, работает как стабилизатор.
OldBean
Доцент
Красноярск
1K 1.4K
Отв.38 04 Янв. 17, 13:39, через 13 мин
http://www.530.ru/electronics/projects.php?do=p022HBBВидел я эту статью. Хорошая статья, но мне ноль от трансформатора как-то не очень нравится.
работает как стабилизатор.HBBКонтроллер ТЭНа вместе с малинкой превратится в стабилизатор когда подключим к малинке датчик среднеквадратичного напряжения сети. Но об этом - чуть позже.
woddy
Доцент
Новосиб
1.3K 489
Отв.39 04 Янв. 17, 14:01, через 23 мин
у нас давно есть собственная разработка [Регулятор напряжения и тока на Arduino Pro Mini]
заголовок у нее неправильный, она именно мощность стабилизирует, как надо.
заголовок у нее неправильный, она именно мощность стабилизирует, как надо.