D18B20, Arduino, MODBUS, Master SCADA

  • В этой теме 259 ответов, 23 участника, последнее обновление 5 лет сделано Роман.
Просмотр 15 сообщений - с 166 по 180 (из 260 всего)
  • Автор
    Сообщения
  • #18151
    Роман
    Участник
    • Ответов: 291
    @papazol

    Регулирование мощности бывает как минимум трёх видов:

    1. Ключевое. Это когда нагрузка включается, температура растёт, доходит до какого-то значения, и тогда нагрузка отключается. Температура падает опять же до какого-то значения, и нагрузка вновь включается и так всё время. Этот способ нельзя использовать в нашем случае, так как поддерживаемой величиной здесь является температура, а нам надо, чтобы это была мощность.

    2. Фазовое. Это когда ток через нагрузку обрывается, не дожидаясь окончания каждого полупериода сетевого напряжения. Так работают все китайские диммеры. Этот способ самый простой в реализации, самый дешёвый, обеспечивает плавное изменение мощности, пригоден для регулирования яркости ламп накаливания (помните светомузыку?). Однако есть и недостаток: способ приводит к появлению высших гармоник частоты сети из-за того, что коммутация тока нагрузки (его отключение) происходит в моменты, когда сетевое напряжение не равно нулю, что не слишком благоприятно сказывается на электромагнитной совместимости (помехи появляются в сети).

    3. По Брезенхему. При этом способе в нагрузку всегда подаются [полу]периоды сетевого напряжения целиком, но не все, а только часть. Например, если из каждых 100 [полу]периодов подать в нагрузку только 20, то мощность, поданная в нагрузку, будет 20% от максимальной. Причём эта часть [полу]периодов как бы “размазывается” по времени, чтобы достичь более равномерного распределения “рабочих” и “нерабочих” [полу]периодов. Такой метод позволяет регулировать мощность лишь источников тепла (ТЭНов), так как при подключении в качестве нагрузки лампы она будет мигать. Помех по сети такой метод создаёт мало, так как включение и отключение тока нагрузки всегда происходит в момент перехода сетевого напряжения через ноль.

    Любой способ регулирования мощности будет приводить в той или иной мере к просадке сетевого напряжения. И это вообще не связано с регулировкой как таковой. Просаживает напряжение сама нагрузка. Ведь ТЭНы имеют мощность в несколько киловатт, а это токи в несколько десятков ампер. Если проводка в доме сделана без необходимого запаса ( а так делалось при советской власти всегда), на проводах будет значительное падение напряжения, что, собственно, и приводит к просадке. И тут уж каким методом ни регулируй, на проводах всё равно будет падать некоторое количество ценных вольт. Только замена проводки на медную толстую может решить проблему. Кстати, все знают, что для стиральных машин-автоматов настоятельно рекомендуется сделать отдельную проводку. Это намёк 🙂

    #18154
    ers
    Участник
    • Ответов: 30
    @ersivv

    @Роман абсолютно прав, все вызвано тем, насколько сильно коммутация нагрузки просаживает напряжение в сети, и тут не только в домашней проводке. У меня дом подключен по линии электропередач к слабенькому сельскому трансформатору, и каждые 2 кВт нагрузки просаживают 10 вольт на входе.

    Для управления тенами самым оптимальным и безпомеховым для остальных потребителей является регулировка по Брезенхему.

    Вот как это наглядно работает с различным временем шага в алгоритме.

    #18158
    grizzzly
    Участник
    • Ответов: 419
    @grizzzly78

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

    Йо-хо-хо.

    #18159
    MarB
    Участник
    • Ответов: 29
    @marb

    Все правильно, программно регулировку выполнить  По Брезенхему легче, тогда придется пользоваться китайским регулятором и не тревожить любимых.

    #18161
    Роман
    Участник
    • Ответов: 291
    @papazol

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

    В любом случае ТЭНы потребляют некоторую мощность. Если сеть способна эту мощность отдать, не уменьшая напряжение, то всё будет OK. В противном случае никакие действия, кроме радикальных, ситуацию не улучшат. В принципе нет разницы, установить 40% мощности для ТЭНа 3 кВт или 80% для ТЭНа 1,5 кВт. Может, помех будет чуть меньше при 1,5.

    #18162
    Счастливчик
    Хранитель
    • Ответов: 2655
    @wpadm

    Павел как у Вас с регулировкой мощности дело обстоит? Возможно ли про тестировать Ваш скетч?

    Я в основном платформу делаю. Т.е. изначально там будет элементарная дистилляция, ректификация и затирание зерна ну и парочка графиков для затравки.

    Удобная, модульная конструкция, позволяющая переносить любой открытый код на платформу.

    Т.к. кода в сети хочешь с ПИДом, хочешь еще как “по диагонали” –  тонны, и он частенько полностью под GPL v.3, то нарастить функционал и “черта лысого” делать будет не проблема. Бери код, вставляй и пользуйся.

    Сейчас рефакторингом кода занят. Ибо просто работающий код, и логичный, понятный, доступный для модернизации и доработок – вещи разные.

    Думаю еще пара неделек и выпущу первую альфа-версию в свет. Надо еще железку собрать. Ничего сложного, но тоже мелкая моторика пальцев))

    А еще бы хорошо описание архитектуры решения написать, как модули расширения делать и добавлять и т.д. и т.п.

    Хорошо живет на свете Винни-Пух...

    #18584
    Счастливчик
    Хранитель
    • Ответов: 2655
    @wpadm

    Уперся я в необходимость добавить регулировку мощности. Ибо ставить китайский регулятор мощности и рядом твердотельное реле – дело неправильное.

    Т.к. уже совсем от обилия информации голова пухнет, то поправьте, если неправ:

    1. SSR-40DA с входом 3-32 DC можно подключать напрямую к esp8266

    2. Шим для ТЭН долгий, т.е. шаг PWM от одной мс и выше.  У товарища ers мне визуально больше всего понравился шаг 20мс. Какой для ТЭНа на ваш взгляд оптимальнее?

    3. Мы получается, что выкидываем из модуля все вольтметры и прочее, т.к при таком способе управления (медленный ШИМ) они нам ничего путного не покажут

    4. Реле само нас по Брезенхему начнет переключать, ибо это следует из его спецификации

    Нигде не ошибся?

    Хорошо живет на свете Винни-Пух...

    #18589
    ers
    Участник
    • Ответов: 30
    @ersivv

    @Счастливчик

    1. Для ssr 3.3 пограничный режим, у некоторых не заводились совсем или работали нестабильно (открывались хаотично). Лучше питать от 5В. Также не есть хорошо вешать все напрямую к чувствительным ножкам микроконтроллера.

    2. Ты упустил момент что в сети 50 Гц, и в работе шим нужно отталкиваться от этого. Длина одной синусоиды при этом составит как раз 20 мс. Как я понимаю для упрощения у тебя так же не будет обратной связи детектирования 0 в сети. Тогда шаг 20 мс я как раз и показываю, что так делать не нужно. Рисовать долго, попытаюсь так объяснить.

    В сети полная синусоида – 20 мс, переход через 0 получается два раза, в эти моменты и может переключиться указанное выше реле, т.к. имеет встроенный детектор.

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

    3. Верно

    4. В указанном реле детектор нуля, но мозгов нет, так что переключается оно не само, а в конечном счете переключает его контроллер 🙂

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

    P.S. китайские реле Fotec плохие. При вскрытии в SSR-40DA вместо 40-а амперного симистора встречаются и BTA-12, почувствуйте разницу.

    #18591
    Степан
    Участник
    • Ответов: 51
    @sten58

    Для управления тенами самым оптимальным и безпомеховым для остальных потребителей является регулировка по Брезенхему. Вот как это наглядно работает с различным временем шага в алгоритме.

    Судя по видео, это не Брезенхем, а обычный ШИМ. Делаю Брезенхема с детектором нуля, пропускаю в нагрузку целые полупериоды. Чтобы получить точность регулирования 1%, надо регулировать с периодом минимум 1 с.

    Прикладываю файл с моделью, там и ссылки есть.

    Кстати, для измерения используют алгоритм расчета “правильного” среднеквадратичного значения, True RMS по ихнему.

    Вложения:
    Вы должны войти для просмотра вложений.
    #18593
    Степан
    Участник
    • Ответов: 51
    @sten58

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

    Правильное, но, видимо, более дорогое решение. Как минимум, добавляется схема управления разгонным ТЭНом. Я второй ТЭН пока на ставил, но к тому идет 😉

    Это еще один триак с оптроном плюс кусок кода на включение-выключение. Включать при старте, выключать при включении воды охлаждения.

    Быть по сему! )))))

    #18594
    Степан
    Участник
    • Ответов: 51
    @sten58

    1. esr совершенно прав. Надо еще 5..12V питание и ключик на транзисторе.

    2. Про ШИМ уже писал. Минимум 1 с, причем просто ШИМ без синхронизации с сетью будет давать дополнительную погрешность регулирования в районе 1…5% навскидку.

    3. Для измерений/обратной связи нужно мерить мгновенный ток или напряжение на нагрузке и считать RMS (http://tel-spb.ru/rms.html).

    4. тоже esr прав. Выше уже писал и модельку выложил. Описание диммера, кстати, там уже не актуально 🙁

    Если будет интересно, закончу – выложу результат. Делаю на STM8, с датчиком тока, датчиком температуры (одним) и датчиком температуры радиатора триака (на всякий случай) плюс термоконтакт на ТЭНе (на случай осушения). Плюс контроль пробоя по длительному рассогласованию уставки и измеренной мощности на нагрузке. Скетч моделирую в FLProg, но там не все гладко и нет моего контроллера, так что потом рУками буду доделывать.

    #18595
    ers
    Участник
    • Ответов: 30
    @ersivv

    @sten58 нет, на видео как раз Брезенхем. Это самая простая реализация без обратной связи от сети, что значительно упрощает схемотехнику.

    Предварительно рассчитывается сколько и когда пропускать, далее контроллер по этому плану дергает пинами на нагрузку. Естественно при таком подходе имеем некую погрешность регулирования, но для использования на практике вполне применимо.

    Ваш вариант более правильный, но сложнее и не вписывается в разработку @wpadm

    На страничке управления у себя делал наглядную модель, ниже пример расчета по алгоритму

     

     

    Вложения:
    Вы должны войти для просмотра вложений.
    #18597
    Счастливчик
    Хранитель
    • Ответов: 2655
    @wpadm

    ers, Степан, спасибо!

    Через реле тогда буду 12 вольт подавать, у меня они для вентилятора так и так будут заведены.

    ШИМ на 100 мс или больше поставлю, поиграю.

    Пока сделаю первую приблизительную версию, без датчиков тока и напряжения. Иначе я никогда автоматику не выпущу))

    Далее идея добавить датчик напряжения (или тока, что без разницы по большому счету) и выйти на стабилизированный БП.

    Это уже думаю будем совместно делать. Платформу выпущу и ролики про ее архитектуру и принципы работы.

    Хорошо живет на свете Винни-Пух...

    #18598
    Счастливчик
    Хранитель
    • Ответов: 2655
    @wpadm

    Не, фигню написал, подавать на твердотельное реле 12В через механическую релюшку. Это я погорячился. Видимо сниму с питания esp8266 5вольт и через транзистор как ключ.

    Развязка для ножек вроде не нужна, в релюхе все предусмотрено, если не врут.

    Про китайские реле в курсе, что лотерея, но уже пара есть, сгорят – заменим на нормальные.

    Хорошо живет на свете Винни-Пух...

    #18599
    Степан
    Участник
    • Ответов: 51
    @sten58

    Сделал вариант модели с нестабильным напряжением сети (колонка Uсети) и обратной связью для стабилизации выхода.

    Там один скользкий момент, который стОит  обсудить.

    Брезенхем выдает на нагрузку целые полупериоды сети.

    Считаю, что мощность в нагрузке за полупериод равна мощности при питании без регулятора за тот же полупериод, то есть пропорциональна, в конечном итоге амплитуде напряжения в этом полупериоде.

    Исходя из этого предположения RMS для обратной связи оцениваю как среднее по полупериодам (меряю модули амплитуд полупериодов и делю на корень из двух, в файле просто среднее).

    Как считаете, насколько это корректно?

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

    Вложения:
    Вы должны войти для просмотра вложений.
Просмотр 15 сообщений - с 166 по 180 (из 260 всего)
  • Для ответа в этой теме необходимо авторизоваться.