Автор Тема: Самодельный «РМ-2» с внешним управлением.  (Прочитано 3105 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн sechevoy

  • Опытный
  • ***
  • Сообщений: 359
  • Спасибо
  • -Отправлено: 59
  • -Получено: 91
  • Хочется блеснуть, а кроме голого зада нечем
А есть ли к ESPшке типа Sonoff TH10/ТН16/basic прошивка для blynk, чтобы до десятичных значений температуры работала? В стоковой прошивке для eWelink выставляю десятые через небольшое время округляется до целых значений и при этом гистрезис более 2°С (например, задан параметр 10°С, при этом включение при падении до значения 9°С, а выключение при установлении температуры 11°С), что очень много и его никак не сузить в стоке.
Приду домой, проверю. Имею Sonoff с такой прошивкой https://electronic-crafts.blogspot.com/2018/03/myhomeiot-sonoff-esp8266-blynk.html я его для приготовления ветчины использую.

Оффлайн ДимаС

  • Эксперт
  • ******
  • Сообщений: 2439
  • Спасибо
  • -Отправлено: 876
  • -Получено: 948
  • Бориспіль
А есть ли к ESPшке типа Sonoff TH10/ТН16/basic прошивка для blynk, чтобы до десятичных значений температуры работала? В стоковой прошивке для eWelink выставляю десятые через небольшое время округляется до целых значений и при этом гистрезис более 2°С (например, задан параметр 10°С, при этом включение при падении до значения 9°С, а выключение при установлении температуры 11°С), что очень много и его никак не сузить в стоке.
Приду домой, проверю. Имею Sonoff с такой прошивкой https://electronic-crafts.blogspot.com/2018/03/myhomeiot-sonoff-esp8266-blynk.html я его для приготовления ветчины использую.
Спасибо, жду. Потому что с самим блинком получилось одну из прошивок запустить, но не видела прошивка ДСку. Говорят что может не хватать библиотек...
Най будуть кожному дані граблі по розміру лобу його...

Оффлайн sechevoy

  • Опытный
  • ***
  • Сообщений: 359
  • Спасибо
  • -Отправлено: 59
  • -Получено: 91
  • Хочется блеснуть, а кроме голого зада нечем
Всё ок, с десятыми показывает. Внимательно прочтите инструкцию к прошивке.

Оффлайн Игорь

  • Администратор
  • Эксперт
  • *****
  • Сообщений: 18861
  • Спасибо
  • -Отправлено: 1210
  • -Получено: 13441
  • Думи мої думи...
    • Каптерка
Вказані контролери виконують аналогічну функцію?
Вказані контролери виконують будь-яку функцію, яку ти здатен придумати. Але якщо мова йде про регулювання тиску, я б не вигадував велосипед, а взяв би за 20 баксів МРХ5010. Регулювати 220 вольт таким контролером я вже навчився.
Віриш ти в Бога чи ні, йому байдуже.
Важливо, щоб Бог в тебе вірив, а не навпаки.

Оффлайн m16

  • Политолог
  • Специалист
  • *
  • Сообщений: 513
  • Спасибо
  • -Отправлено: 39
  • -Получено: 123
Всё изложенное в этой статье - моё личное мнение, основанное на моём личном опыте
и без претензии на истину в первой инстанции.
Костя, ты не против если  я выложу  свою реализацию РМ с внешним управлением?
*********************************************************************
     Собсно  решил перейти на  3-х фазное питание энергией своих кубов - 50л кег с тэнами  1,2кВт х3 для ректификации  и   90л куб  2кВт х3 для дистилляции.   Посему понадобился  3-х фазный  РМ с управлением от внешнего контроллера.  Под  эту задачу хорошо вписался  простенький  контроллер  TINY 13.  Напряжение  стабилизации  задаётся  ШИМом от внешнего контроллера  через оптопару  ОК2 .  Если напряжение на  тэне  отличается  больше чем на 10В  чем  заданное внешним контроллером то  на последний  выдаётся  сигнал аварии  через оптопару  ОК4. Через оптопару ОК1  внешний  контроллер отключает 3-х фазный  дифавтомат  обесточивая  РМ  в аварийной ситуации  либо по окончании процесса.

84195-0

     Пунктиром  выделен один канал  РМ,  т.е.  таких  три  канала  с общим   управлением.  Долгое время  вынашивал мысль сделать  3-х фазный РМ  на одном жирном контроллере  но поразмыслив  о том что больно геморный софт  вырисовывается  остановился  на варианте  с тремя  одинаковыми РМ.  По софту - тынька  вычисляет  RMS  напряжение на тэне  обсчитывая одну полуволну  переменки так же  как  это  сделано ив РМ-2. Кстати  точность  вполне приемлемая  1-2В  в диапазоне  60-220В.   Точность стабилизации  напряжения на тэне в тех же пределах.  Включен вачдог.  Стабилизация напряжения  осуществляется по следующему алгоритму:
 if U_ctrl = U_rms  TOP_T0 = TOP_T0
 if U_ctrl < U_rms  TOP_T0 = TOP_T0 + step_fase
 if U_ctrl > U_rms  TOP_T0 = TOP_T0 - step_fase
 где U_ctrl - заданное напряжение на нагрузке, U_rms - измеренное напряжение на нагрузке, TOP_T0 - модуль счёта таймера,  step_fase - шаг изменения модуля счёта при рассогласовании.

    Выглядит это так:

84197-1

    Блок питания - раздербаненная  зарядка от мобилы.  РМ  отработал три сезона  безупречно.

Оффлайн Игорь

  • Администратор
  • Эксперт
  • *****
  • Сообщений: 18861
  • Спасибо
  • -Отправлено: 1210
  • -Получено: 13441
  • Думи мої думи...
    • Каптерка
У меня тоже ноль сети соединен с минусом питания, поэтому я не заморачивайся с лишними опторазвязками. Если ноль сети соединен с минусом питания, то зерокросс на тиньках прекрасно ловится через резистор на 1-2 мегаома, подключенного напрямую к пину прерывания.  Такой вариант подсмотрел в атмеловсктх аппноутах. Кроме того, соединение минуса с нулем позволяет организовать бестрансформаторное питание, что я и сделал по принципу РМ-2.
Для измерения мгновенного напряжения сначала парился, потом перестал. Тоже измеряю только положительную полуволну. Подключил выходной контакт ТЭНа к входу АЦП через делитель, одно из плеч которого - мегаом, второе - с подстроечкиком, килоом 15. Параметры делителя настраиваю так, чтобы даже при экстремально повышенном напряжении сети на вход АЦП приходило не больше 2.5 вольт, так как для  опоры использовал 431-й стабилизатор 2.54 вольта.По зерокроссу обнуляю счётчик суммы, делаю прерывания по таймеру 200 с чем-то раз за период. В каждом прерывании измеряю напругу, возвожу в квадрат и прибавляю к сумме.  При очередном зерокроссе делю полученную сумму квадратов на количество придавленных за период значений, то есть строго по классике. Корень из суммы не извлекаю, поэтому полученное значение пропорционально не напряжению , а мощности. Сравнение вычисленной мощности с заданной обрабатываю аналогично м16. Если надо сделать больше, не важно на сколько, запускаю симистор на один тик таймера раньше, если меньше, то позже. Таймер тот-же, который разбивает период на части для замера напруги. Несмотря на то, что минус питания сидит на нуле сети, "поджигаю" симистор через 3023-ю моську. Просто привык. Хотя в другом устройстве делал запуск симистора напрямую с ножки тиньки, все работает.Главный недостаток схемы - постоянная и непрерывная занятость устройсива в прерываниях чаще 20000 раз в секунду. А при общении с датчиками температуры прерывания приходится запрещать. Поэтому раз в 6 секунд управление симистором прекращается на 2 периода. Если настроенная мощность меньше 50%,  симистор на эти два периода оставляется закрытым, если больше 50% , открытым. Это вызывает незначительное мерцание, которое из нескольких сотен пользователей заметил только один, вернее не он сам, а его соседка на той-же фазе.
Віриш ти в Бога чи ні, йому байдуже.
Важливо, щоб Бог в тебе вірив, а не навпаки.

Оффлайн m16

  • Политолог
  • Специалист
  • *
  • Сообщений: 513
  • Спасибо
  • -Отправлено: 39
  • -Получено: 123
зерокросс на тиньках прекрасно ловится через резистор на 1-2 мегаома, подключенного напрямую к пину прерывания
Да, есть такая апнота но есть и косяк. Косяк заключается в том , что  от момента перехода через ноль до возникновения прерывания проходит   значительное , на мой взгляд, время  порядка нескольких сот мкС.

Главный недостаток схемы - постоянная и непрерывная занятость устройсива в прерываниях чаще 20000 раз в секунду. А при общении с датчиками температуры прерывания приходится запрещать.
Разве это недостаток? Каждый  должен заниматься своим делом, имхо.  РМ - своим,  контроллер автоматики - своим,  совмещение в одном всего тянет  за собой  гемор.  Взять РМ :  три вектора прерываний - ADC, zero-cross, Timer + вычисление  rms и по мелочи. Весьма загруженно,   контроллер автоматики  живёт весьма  вольготно.

А при общении с датчиками температуры прерывания приходится запрещать
От этих датчиков ds1820  давно  пора избавляться.  Бюджетный вариант - LM35 + ADC 16bit, и подороже  RTD + ADC 24 bit.  Мне повезло,  я прикупил много PT1000  по цене  ДСок  и недорогой ADC 22bit  MCP3551.

Оффлайн vadiv

  • Мастер
  • ****
  • Сообщений: 999
  • Спасибо
  • -Отправлено: 3
  • -Получено: 186
  • Мы в ответе за тех, кого напоили
Мне повезло,  я прикупил много PT1000  по цене  ДСок  и недорогой ADC 22bit  MCP3551.
Посмотри CS1237 (1238)  24 бита и цена хорошая. При PGA=128 "честных" 21 бит  .

Оффлайн Игорь

  • Администратор
  • Эксперт
  • *****
  • Сообщений: 18861
  • Спасибо
  • -Отправлено: 1210
  • -Получено: 13441
  • Думи мої думи...
    • Каптерка
Да, есть такая апнота но есть и косяк. Косяк заключается в том , что  от момента перехода через ноль до возникновения прерывания проходит   значительное , на мой взгляд, время  порядка нескольких сот мкС.
я не наблюдал на осциллоскопе таких задержек, а если они и есть, но насколько это критично? В моей схеме это момент, когда я начинаю новый отсчёт суммы квадратов напряжения. ЕслЕго смещение ни на что не влияет.
Віриш ти в Бога чи ні, йому байдуже.
Важливо, щоб Бог в тебе вірив, а не навпаки.

Оффлайн vadiv

  • Мастер
  • ****
  • Сообщений: 999
  • Спасибо
  • -Отправлено: 3
  • -Получено: 186
  • Мы в ответе за тех, кого напоили
.Главный недостаток схемы - постоянная и непрерывная занятость устройсива в прерываниях чаще 20000 раз в секунду.
Интересно  какой процессор и есть там аппаратное умножение (деление).

Оффлайн Игорь

  • Администратор
  • Эксперт
  • *****
  • Сообщений: 18861
  • Спасибо
  • -Отправлено: 1210
  • -Получено: 13441
  • Думи мої думи...
    • Каптерка
Атмега8. Аппаратное умножение есть. Деления кажется нет, но делить приходится редко в 200 с хвостиком раз реже, чем возводить в квадрат и складывать.Но .. такой алгоритм без проблем работал и на аттини26, в которой нет аппаратного умножения.


добавлено: 17-12-2019, 10:55:53

Настройку произвожу переменным многооборотные резистором в цепи делителя измеряемого напряжения. Настраиваю 50% и кручу до тех пор, пока true rns  вольтметр не покажет 155,6 вольт. Потом проверяю при заданиях 20% и 80%. Если наблюдаю не 98,4 и 196,8 вольт соответственно, подстройку повторяю.
« Последнее редактирование: 17-12-2019, 10:57:01 от Игорь »
Віриш ти в Бога чи ні, йому байдуже.
Важливо, щоб Бог в тебе вірив, а не навпаки.

Оффлайн vadiv

  • Мастер
  • ****
  • Сообщений: 999
  • Спасибо
  • -Отправлено: 3
  • -Получено: 186
  • Мы в ответе за тех, кого напоили
В Atmege8 кажись аппаратное умножение только  8 и 16 бит. ...

Но .. такой алгоритм без проблем работал и на аттини26, в которой нет аппаратного умножения.
Ну там наверно не 20000 измерений в секунду (И на Atmege наверно 10000 измерений в секунду).

Посмотрите в сторону STM32.

На stm32 реализовать можно намного проще - 1 таймер, 1 канал DMA, 1 канал АЦП для одной фазы (можно спокойно делать трехфазный "РМ". Старт измерений, отсчеты таймера, измерения АЦП, сохранение промежуточных измерений -все без прерываний и "загрузки процессора". И это все 32 битные числа.



Оффлайн Игорь

  • Администратор
  • Эксперт
  • *****
  • Сообщений: 18861
  • Спасибо
  • -Отправлено: 1210
  • -Получено: 13441
  • Думи мої думи...
    • Каптерка
По количеству измерений не помню - надо посмотреть исходник. Кажется я таки наврал. Там больше 2 сотен замеров, не помню только это за период или за полупериод.
Віриш ти в Бога чи ні, йому байдуже.
Важливо, щоб Бог в тебе вірив, а не навпаки.

Оффлайн mekkaodАвтор темы

  • Мастер
  • ****
  • Сообщений: 787
  • Спасибо
  • -Отправлено: 74
  • -Получено: 555
  • Одесса, не торопясь
всё же мне кажется, что вы сильно заморачиваетесь темой с точностью измерения, особенно с его многократностью.
этот сезон я отработал на БРУ с тремя своими самопальными РМ-ками.
управляемость и повторяемость - без нареканий, при том что напряжение питания в течении дня меняется +30, -50 Вольт.
дача, у соседей кондиционеры, насосы, старые холодильники, а ещё сварка и т.п.

при этом я измеряю напряжение всего один! раз за период 10 битным АЦП, из которых мелкие два можно попросту игнорировать из-за шумов.
вообще не парюсь по поводу "истинной" мощности, для меня главное стабильность установленной и отклик давления.
и если у меня на непрерывке 24 часа не меняется давление в трубе - значит мощность поддерживается постоянной.
в случае с кубовым процессом , та же картина, выставляешь мощность по давлению вначале процесса, от неё , теплопотерь и температуры в кубе считаешь скорости отбора, а за давлением только наблюдаешь.


Оффлайн vadiv

  • Мастер
  • ****
  • Сообщений: 999
  • Спасибо
  • -Отправлено: 3
  • -Получено: 186
  • Мы в ответе за тех, кого напоили
всё же мне кажется, что вы сильно заморачиваетесь темой с точностью измерения, особенно с его многократностью.
Это не "заморочки". Кое где алгоритм и схема используются и в других "приложениях" (У меня например  фазовое регулирование необходимо в ПИД регуляторе, а там желательно поддерживать на выходе точность 1 градус в диапазоне до 280 градусов). "Загрубить" всегда проще.
Ну и опять же, тут дело в  "личных ощущениях" .