Хочу рассказать о создании несложного устройства, которое сильно облегчило жизнь домашним обитателям — автоматический регулятор температуры газовой колонки. Подобные устройства уже создавались и описывались здесь на хабре, хотелось сделать чуть более продвинутый девайс и подробно описать весь процесс создания от задумки и измерения до реализации, без использования готовых модулей типа Arduino. Устройство будет собрано на макетной плате, язык программирования — C. Это моя первая разработка законченного (и работающего!) устройства.

1. Исходные данные


Мы живем на съёмной квартире, которая обладает одним очень неприятным свойством: в доме нет горячей воды, холодная вода нагревается на месте при помощи нагревателя (Водонагреватель Проточный Газовый — ВПГ), который расположен на кухне. Во время принятия душа если происходит очередной скачок давления — приходится голышом шлепать до колонки или звать кого-нибудь. Интегрировать полноценный «умный дом» возможности нет, поэтому решено было внедрить автоматическое регулирование нагревателя. К слову, довольно быстро нашел несколько похожих решений, например здесь, а значит проблема моя известна и решена в своем виде.

Модель ВПГ: Vector lux eco 20-3 (китай)
Давление воды: около 1.5 кгс/см? (давление низкое, нагреватель работает чуть выше допустимого предела)

Требования к решению


  • Простота
  • ПИД-регулятор или его подобие
  • Возможность выбора поддерживаемой температуры
  • Отображение текущих параметров
  • Решение вопросов безопасности устройства


Архитектура системы


После некоторых размышлений архитектура устройства была набросана следующим образом:
  • Сервопривод (непосредственно в теле ВПГ)
  • Термодатчик штатный ВПГ
  • Блок усиления сигнала термодатчика и стабилизатор питания сервопривода (непосредственно в теле ВПГ)
  • Блок управления (внешний)

Далее опишу процесс разработки в хронологическом порядке.

2. Сервопривод


Так как профессия у меня программная и механика всегда оставалась самой сложной частью — начать решил с неё. Надо сказать что к первому этапу долго не мог собраться, ВПГ очень боязно было трогать, но очередной перепадок давления вынудил меня начать.

Разобрав колонку и осмотревшись — нашёл места для установки сервомашинки TowerPro MG995, как-то давно заказанной «на сдачу» на aliexpress.



Для устранения люфта привода тяг сделал одну тягу подпружиненной. Люфт был полностью устранен, но выяснилась другая проблема — сервомашинка с моментом > 10 кг*см оказалась слишком дерзкой для ВПГ. При включении переходные процессы в электронике машинки вызывают рывок в рандомное положение и через пару холостых включений тяга оказалась погнутой! Силумин колонки точно не выдержит такого обращения. Так же вызывала нарекания геометрия качалки, которая была не на оси регулятора — что приводило к нелинейности регулировки. Финальный вид узла привода дросселя:



Узел переделан — использованы пружины от ВАЗ (от карбюратора — куплены в магазине автозапчастей) и качалка теперь на геометрической оси вала. Такая конструкция имеет небольшой люфт, но зато линейна в регулировке и может демпфировать бешенство рулевой машинки. Углы выставлены на оптимальные значения для регулировки в наиболее востребованных положениях регулятора.

3. Блок датчиков ВПГ


Терморезистор ВПГ меняет своё сопротивление в пределах 20..50 КОм, использовать напрямую в качестве делителя проблематично — получим низкую точность измерения. Но как оказалась на практике — при повышении питающего напряжения до 12В можно без проблем получить приемлемый диапазон выходного сигнала — только использовать ОУ в режиме повторителя (при необходимости можно поменять коэффициент усиления) для изоляции делителя от нагрузки. Схема блока внутри ВПГ:



Делитель R2 и термодатчик колонки формирует сигнал с напряжением 1.4..4.96 В в полном диапазоне измерений (на практике — 20..60 градусов цельсия). Изначально разработал мостовую схему — которая может компенсировать уход источника питания, но была отброшена из-за того что источник питания влиял слабо, а первый пункт «ТЗ» был — «простота». Операционный усилитель обеспечивает развязку делителя и нагрузки. Стабилитрон D1 ограничивает выходное напряжение на уровне 5.1 В для случаев отсоединения датчика (в противном случае на выходе было бы 12В — что смертельно опасно для контроллера) — что схемой контроллера будет считаться безусловной ошибкой. Интегральный стабилизатор 7805 питает сервомашинку — решение неудачное, при стопоре машинки он ужасно нагревается и думаю может выйти из строя при клине привода (если не сработает встроенная защита). Более на этом блоке не буду заострять внимание.

4. Контроллер


Контроллер собран на базе ИМС Atmega8 в dip-корпусе.



Тактирование — внутренний осцилятор на 8 МГц. Питание — ещё один 7805 на плате. Индикация через стандартный LCD1602 дисплей. Схема блока:



Управление питанием блока осуществляется от колонки через транзистор — используя малогабаритное реле. Сигнал термодатчика (Контакт №4 разьема) имеет подтяжку на землю и при отсоединении датчика во время работы покажет очень высокую температуру — что приведет к уменьшению регулятора и не вызовет опасных ситуаций. Собранный блок:





4. Испытания и регулировка


Для отработки ПИД-регулятора была написана модель ВПГ на Qt. На ней были отработаны основные моменты и ситуации работы нагревателя — старт холодный/горячий, перепады давления. Для снятия характеристик был добавлен UART-разьем на плату контроллера, куда раз в секунду отправлялись данные о показателях — текущая температура, положение дросселя и т.д.



При испытаниях выявилось следующее:
  • Очень большая инерция ВПГ от начала воздействия до реакции на термодатчике — порядка 30 секунд
  • Округление до градуса в микропрограмме контроллера — плохая идея, алгоритм может работать более точно


Результаты измерения и калибровки термодатчика, Зависимость можно считать условно-линейной:



Первые прогоны в программе отрисовки телеметрии от колонки:



(забыл на графики добавить легенду. Здесь и далее — красный — температура датчика, зеленый пунктирный — положение дросселя, синий — желаемая юзером температура)


Почти удачная регулировка


Удачные варианты коэффициентов


Неплохой вариант старта

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





В процессе подбора интегральый коэффициент пришлось полностью отключить, думаю что это из-за большой инерции системы. Итоговые коэффициенты:

float Pk = 0.2;
float Ik = 0.0;
float Dk = 0.2;


5. Корпусирование


Устройство собрано в пластмассовом корпусе распределительной коробки.



И в таком виде работает.

6. Безопасность использования


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

Гальваническая развязка цепей колонки и регулятора


Что будет если блок питания 12В закоротит и на цепи датчика окажется 220 вольт? Не вызовет это подачу газа в колонку. Как оказалось — не вызовет — в колонке имеется два уровня подачи газа — электромагнитный клапан контроллера и механический клапан воды. Открыть только соленоид мало — газ не поступит без тока воды.

Отключение или отрыв датчика внутри ВПГ


При отключении терморезистора от блока внутри ВПГ на выходе будет генерироваться сигнал 0xFF (5.1В) что проверяется программой как ошибка, контроллер останавлиает выполнение программы, сервопривод выставляется на минимум.

Отключение или отрыв датчика от контроллера


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

Электронно-механическая защита ВПГ


Цени защиты ВПГ остаются функционировать в штатном режиме, в случае кипения/перегрева/датчика тяги колонки штатные системы должны отключить её.

7. Файлы


Полный архив проекта доступен на github. В директориях проекта доступны результаты измерений, прошивка контроллера и можели бойлера на Qt.

Спасибо за внимание!

Комментарии (31)


  1. RicoX
    13.07.2015 13:21
    +3

    Хорошая работа и описание, но зачем такие сложности? Проблема решается простой установкой термостатического смесителя, дел на 15 минут, механика и нечему ломаться, не зависит от питания, глюков программы и т.п.
    Цена вопроса от 20$. Наверно я не гик :(


    1. petro_64
      13.07.2015 13:24
      +4

      Хорошая штука, но с колонкой такие устройства использовать не получится — регулировка долей горячей/холодной в смесителе будет вызывать рост температуры воды из колонки из-за падения давления на входе и тока воды на выходе. В колонке надо всегда открывать полностью кран горячей воды и регулировка температуры может осуществляться только в самом ВПГ.


      1. RicoX
        13.07.2015 13:31

        У меня стоит именно после колонки, там далеко не доли регулируются к тому же учтено падение и поднятие давления, все механика и ни каких проводов, регулировка выходит очень мягкая перепады на несколько секунд и около 1 градуса, колонка включена ориентировочно на 70% мощности всегда, сбои бывают только если давление в магистрали совсем упало (раза 2 в год).


        1. petro_64
          13.07.2015 13:40
          +2

          Интересно, наверное действительно на хорошем давлении будет работать, я неправ в своей категоричности. Просто у нас трубы гнилые и на минимуме газа колонка даёт порядка 35 градусов обычно, если даже чуть-чуть отнять воды на воде — будет резкий скачок. Например если смыть унитаз то она вообще гаснет (давление ниже предельно допустимого рабочего). Возможно на хорошем давлении не будет такой ярко выраженной обратной связи — и можно будет регулировать пропорциями. На предыдущей квартире была точно такая же ситуация с давлением, человек не только к хорошему привыкает, но и к плохому :-)


          1. RicoX
            13.07.2015 13:46

            Под плохим давлением к счастью проверить не могу, давление около 4х МПа, когда замерял крайний раз, втечении суток плавает, но не критично, фильтр обратного осмоса на той же магистрали работает без нагнетателя давления с максимальной скоростью по ТТХ.


            1. dkukushkin
              13.07.2015 15:49

              около 4х МПа

              Может 4 бар? Это 0,4 МПа. Мембрана осмоса не выдержит более 1 МПа.


              1. RicoX
                13.07.2015 16:08

                конечно 0.4, опечатка


        1. vitektm
          13.07.2015 16:28

          Модель крана-термоста в студию.
          Ну и цена в 20$ фантастика. Я видел их за 4000руб и выше до подорожания $.


          1. RicoX
            13.07.2015 16:37

            22 с бесплатной доставкой ru.aliexpress.com/item/High-Quality-Newest-Retail-Brass-Thermostatic-Mixing-Valve-Pipe-Thermostat-Valve-Control-the-Mixing-Water-Temperature/32322895327.html есть модели еще проще и дешевле, у меня модель два, такой-же как по ссылке (на электробойлере) подороже (на колонке), брал до скачков валюты за примерно 80$, точную модель не скажу, коробка давно выкинута, на корпусе опознавательных знаков с видимой стороны нет.


      1. BubaVV
        13.07.2015 16:30

        Круто, а оно в резонанс с колонкой войти сможет?


        1. petro_64
          13.07.2015 17:20

          Вы имеете ввиду периодические колебания регулятора? Они есть и полностью не удалось подавить все их случаи проявления, возможно можно более лучше настроить пид-регулятор, но мне за целый день возни и экспериментах на модели не получилось это сделать. На модели колебаний нет, а в реальности всё равно есть, хотя всего ± 1 градус и с большим периодом.


          1. BubaVV
            13.07.2015 18:16

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


      1. shifttstas
        13.07.2015 17:29

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


      1. ITLav
        13.07.2015 17:49

        Если открытие крана холодной воды вызывает недопустимое падение давления на входе в ВПГ, скорее всего это означает, что ВПГ неправильно подключен — например, простым тройником к той же трубе, и что и кран холодной воды, причём после крана. Тогда вызванное открытием крана холодной воды падение давления вызовет прекращение подачи газа в колонку. В таких случах и начинают «открыть кран горячей и крутить ручку на ВПГ».
        Решение — провести отдельную холодной воды трубу к водогрею от того места, где имеется труба большего диаметра.
        Если с трубой всё нормально, то может быть засорён фильтр воды, кран или отвод от стояка. Вот у нас была проблема, что труба «заросла» именно в отводе, и достаточно было там прочистить. Раз у вас плохое давление, это можно будет сделать, не отключая магистраль :)


  1. utya
    13.07.2015 14:34
    +2

    НЕ ново, но автор крут. Молодец


  1. catharsis
    13.07.2015 16:11

    Какие исходные данные: пределы колебаний давления и модель колонки?
    Ручное управление в данном случае теряется, т.е. теперь нельзя выключить колонку поворотом ручки на 0?


    1. petro_64
      13.07.2015 16:31

      Да, важная информация пропущена, добавлю в пост.

      ВПГ Vector lux eco 20-3 (китай).

      Давление не измерял, но на глазок где-то 1.5 кгс*см^2, клапан тока воды стоит на минимальном значении. Думаю что через пару лет как трубы ещё подзасорятся колонка перестанет зажигаться вообще.

      Ручное управление можно сказать что есть — достаточно обесточить блок, это обесточит сервопривод, он достаточно легко крутится рукой. Сейчас можно для этого выдернуть джек от блока питания. надеюсь что не понадобится так делать — для этого в случае ошибки привод ставится сразу на 0% сам. В планах добавить ручной режим в прошивку, в энкодере есть кнопка — сделать переключение авто/ручное, в последнем случае вращение энкодера будет напрямую задавать положение привода.


  1. BubaVV
    13.07.2015 16:31

    А есть ли типовые способы борьбы с такими рывками сервы при включении? Проблема ведь наверняка много где мешает


    1. petro_64
      13.07.2015 16:38

      Хороший вопрос, проблему не описал далее в посте — она решилась сама собой. т.к. у нас используется голый контроллер без бутлоадера, он становится готовым к работе очень быстро, в самом начале микропрограммы выставляется изначальное положение 0% и привод не успевает никак побеситься в случайном порядке :-) На момент настройки механики я ещё не знал что переходные процессы получится сгладить.

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


      1. Alexeyslav
        14.07.2015 16:55

        а нельзя разве программно понизить резвость сервопривода? Перемещаться с позиции на позицию с большими интервалами и количеством промежуточных шагов.


        1. petro_64
          14.07.2015 20:11

          Можно, и так и получается на самом деле. Первый вариант алгоритма обрабатывал ситуацию и новую позицию раз в 5 секунд, но ускорил до раз в секунду + снижение коэффициентов, движение сервы стало очень плавным, за один шаг перемещение на одну, максимум две позиции (всего позиций 100 шагов — удачно совпало, можно сразу к процентам приравнять).


  1. Claud
    13.07.2015 19:24

    Есть калонка «neva lux 6014» у меня такая, в ней есть дисплей и две кнопки которыми можно задать желаемую температуру. Колонка ее поддерживает.

    Из недостатков.

    1. При старте электроника часто глючит и стартует на большом напоре газа, вода может греться до 70 градусов, а то и до предельных 90. По этому приходится помнить что надо открывать напор посильней.
    2. Регулировка не такая и плавная, если давление сильно упадет то ошпарит (но в доме с этим проблем не наблюдалось).


    1. petro_64
      13.07.2015 20:01

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


      1. Claud
        13.07.2015 22:05

        Хороший вопрос. Про такие рекомендации не читал. Но автоматика в этой модели далека от идеала — это я проверил на своем опыте. Но все же покупкой доволен, ибо аналогов не нашел, к тому же модель нашего производства и в случае поломки детали не будут стоить так же как новая модель.

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


        1. petro_64
          14.07.2015 20:09

          Все равно, 90 градусов — это просто жесть. Надо автора этого регулятора под такой душ поставить.

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

          Когда разрабатывал данный прибор у меня было условие что бросок должен быть не более 5 градусов от заданного.


  1. Reface
    14.07.2015 10:15

    Привет! Прочитал твою статью — очень интересно, и есть у меня необходимость выдерживать температуру нагрева электроплитки, т.е. когда надо сделать поворот рукоятки на столько-то градусов, выждать n секунд, потом поворот обратно, опять выждать и так далее. Соответственно сервопривод меня очень заинтересовал, он действительно очень жестко действует? Не оторвет рукоятку регулятора? Или можно сделать очень плавные повороты и медленные?


    1. Alexeyslav
      14.07.2015 17:05

      Сервопривод — это моторчик с редуктором (в статье вообще монстр использован — на выходном валу момент вращения 10кг/см, наверно такой сервой можно переключать каналы на телевизоре «берёзка») и датчиком положения выходного вала. Внутри стоит несложная электроника — пытается вращать моторчик так чтобы положение вала всегда соответствовало заданному. Соответственно вращение происходит с постоянной скоростью, она даже приводится в характеристиках сервы. Эту скорость можно заметить если задавать ей положение дискретно в двух крайних позициях(обычно это порядка одной секунды от края до края).

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


    1. petro_64
      14.07.2015 20:25

      По поводу самого сервопривода — соглашусь с Alexeyslav — у меня привод избыточный, для колонки достаточно момента и 1кгс*см, для плитки думаю что тоже. У меня была серва послабее и поменьше, но у неё были проблемы с управляющей электроникой, поэтому заюзал более надежную от TowerPro (+там ещё полностью металлический привод — дольше прослужит).

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


  1. RicoX
    13.07.2015 13:21
    +3

    Хорошая работа и описание, но зачем такие сложности? Проблема решается простой установкой термостатического смесителя, дел на 15 минут, механика и нечему ломаться, не зависит от питания, глюков программы и т.п.
    Цена вопроса от 20$. Наверно я не гик :(


    1. petro_64 Автор
      13.07.2015 13:24
      +4

      Хорошая штука, но с колонкой такие устройства использовать не получится — регулировка долей горячей/холодной в смесителе будет вызывать рост температуры воды из колонки из-за падения давления на входе и тока воды на выходе. В колонке надо всегда открывать полностью кран горячей воды и регулировка температуры может осуществляться только в самом ВПГ.


      1. RicoX
        13.07.2015 13:31

        У меня стоит именно после колонки, там далеко не доли регулируются к тому же учтено падение и поднятие давления, все механика и ни каких проводов, регулировка выходит очень мягкая перепады на несколько секунд и около 1 градуса, колонка включена ориентировочно на 70% мощности всегда, сбои бывают только если давление в магистрали совсем упало (раза 2 в год).


        1. petro_64 Автор
          13.07.2015 13:40
          +2

          Интересно, наверное действительно на хорошем давлении будет работать, я неправ в своей категоричности. Просто у нас трубы гнилые и на минимуме газа колонка даёт порядка 35 градусов обычно, если даже чуть-чуть отнять воды на воде — будет резкий скачок. Например если смыть унитаз то она вообще гаснет (давление ниже предельно допустимого рабочего). Возможно на хорошем давлении не будет такой ярко выраженной обратной связи — и можно будет регулировать пропорциями. На предыдущей квартире была точно такая же ситуация с давлением, человек не только к хорошему привыкает, но и к плохому :-)


          1. RicoX
            13.07.2015 13:46

            Под плохим давлением к счастью проверить не могу, давление около 4х МПа, когда замерял крайний раз, втечении суток плавает, но не критично, фильтр обратного осмоса на той же магистрали работает без нагнетателя давления с максимальной скоростью по ТТХ.


            1. dkukushkin
              13.07.2015 15:49

              около 4х МПа

              Может 4 бар? Это 0,4 МПа. Мембрана осмоса не выдержит более 1 МПа.


              1. RicoX
                13.07.2015 16:08

                конечно 0.4, опечатка


        1. vitektm
          13.07.2015 16:28

          Модель крана-термоста в студию.
          Ну и цена в 20$ фантастика. Я видел их за 4000руб и выше до подорожания $.


          1. RicoX
            13.07.2015 16:37

            22 с бесплатной доставкой ru.aliexpress.com/item/High-Quality-Newest-Retail-Brass-Thermostatic-Mixing-Valve-Pipe-Thermostat-Valve-Control-the-Mixing-Water-Temperature/32322895327.html есть модели еще проще и дешевле, у меня модель два, такой-же как по ссылке (на электробойлере) подороже (на колонке), брал до скачков валюты за примерно 80$, точную модель не скажу, коробка давно выкинута, на корпусе опознавательных знаков с видимой стороны нет.


      1. BubaVV
        13.07.2015 16:30

        Круто, а оно в резонанс с колонкой войти сможет?


        1. petro_64 Автор
          13.07.2015 17:20

          Вы имеете ввиду периодические колебания регулятора? Они есть и полностью не удалось подавить все их случаи проявления, возможно можно более лучше настроить пид-регулятор, но мне за целый день возни и экспериментах на модели не получилось это сделать. На модели колебаний нет, а в реальности всё равно есть, хотя всего ± 1 градус и с большим периодом.


          1. BubaVV
            13.07.2015 18:16

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


      1. shifttstas
        13.07.2015 17:29

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


      1. ITLav
        13.07.2015 17:49

        Если открытие крана холодной воды вызывает недопустимое падение давления на входе в ВПГ, скорее всего это означает, что ВПГ неправильно подключен — например, простым тройником к той же трубе, и что и кран холодной воды, причём после крана. Тогда вызванное открытием крана холодной воды падение давления вызовет прекращение подачи газа в колонку. В таких случах и начинают «открыть кран горячей и крутить ручку на ВПГ».
        Решение — провести отдельную холодной воды трубу к водогрею от того места, где имеется труба большего диаметра.
        Если с трубой всё нормально, то может быть засорён фильтр воды, кран или отвод от стояка. Вот у нас была проблема, что труба «заросла» именно в отводе, и достаточно было там прочистить. Раз у вас плохое давление, это можно будет сделать, не отключая магистраль :)


  1. utya
    13.07.2015 14:34
    +2

    НЕ ново, но автор крут. Молодец


  1. catharsis
    13.07.2015 16:11

    Какие исходные данные: пределы колебаний давления и модель колонки?
    Ручное управление в данном случае теряется, т.е. теперь нельзя выключить колонку поворотом ручки на 0?


    1. petro_64 Автор
      13.07.2015 16:31

      Да, важная информация пропущена, добавлю в пост.

      ВПГ Vector lux eco 20-3 (китай).

      Давление не измерял, но на глазок где-то 1.5 кгс*см^2, клапан тока воды стоит на минимальном значении. Думаю что через пару лет как трубы ещё подзасорятся колонка перестанет зажигаться вообще.

      Ручное управление можно сказать что есть — достаточно обесточить блок, это обесточит сервопривод, он достаточно легко крутится рукой. Сейчас можно для этого выдернуть джек от блока питания. надеюсь что не понадобится так делать — для этого в случае ошибки привод ставится сразу на 0% сам. В планах добавить ручной режим в прошивку, в энкодере есть кнопка — сделать переключение авто/ручное, в последнем случае вращение энкодера будет напрямую задавать положение привода.


  1. BubaVV
    13.07.2015 16:31

    А есть ли типовые способы борьбы с такими рывками сервы при включении? Проблема ведь наверняка много где мешает


    1. petro_64 Автор
      13.07.2015 16:38

      Хороший вопрос, проблему не описал далее в посте — она решилась сама собой. т.к. у нас используется голый контроллер без бутлоадера, он становится готовым к работе очень быстро, в самом начале микропрограммы выставляется изначальное положение 0% и привод не успевает никак побеситься в случайном порядке :-) На момент настройки механики я ещё не знал что переходные процессы получится сгладить.

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


      1. Alexeyslav
        14.07.2015 16:55

        а нельзя разве программно понизить резвость сервопривода? Перемещаться с позиции на позицию с большими интервалами и количеством промежуточных шагов.


        1. petro_64 Автор
          14.07.2015 20:11

          Можно, и так и получается на самом деле. Первый вариант алгоритма обрабатывал ситуацию и новую позицию раз в 5 секунд, но ускорил до раз в секунду + снижение коэффициентов, движение сервы стало очень плавным, за один шаг перемещение на одну, максимум две позиции (всего позиций 100 шагов — удачно совпало, можно сразу к процентам приравнять).


  1. Claud
    13.07.2015 19:24

    Есть калонка «neva lux 6014» у меня такая, в ней есть дисплей и две кнопки которыми можно задать желаемую температуру. Колонка ее поддерживает.

    Из недостатков.

    1. При старте электроника часто глючит и стартует на большом напоре газа, вода может греться до 70 градусов, а то и до предельных 90. По этому приходится помнить что надо открывать напор посильней.
    2. Регулировка не такая и плавная, если давление сильно упадет то ошпарит (но в доме с этим проблем не наблюдалось).


    1. petro_64 Автор
      13.07.2015 20:01

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


      1. Claud
        13.07.2015 22:05

        Хороший вопрос. Про такие рекомендации не читал. Но автоматика в этой модели далека от идеала — это я проверил на своем опыте. Но все же покупкой доволен, ибо аналогов не нашел, к тому же модель нашего производства и в случае поломки детали не будут стоить так же как новая модель.

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


        1. petro_64 Автор
          14.07.2015 20:09

          Все равно, 90 градусов — это просто жесть. Надо автора этого регулятора под такой душ поставить.

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

          Когда разрабатывал данный прибор у меня было условие что бросок должен быть не более 5 градусов от заданного.


          1. Claud
            29.07.2015 15:38

            Я в курсе про призакрыть кран на стояке. И он у меня призакрыт :), но тут палка о двух концах, если переборщить то вода не прогревается если открыть напор посильней. При этом проблема с мощным стартом если открыть послабже (например на кухне большой напор не надо, а в душе надо) все же остается, но она поменьше (скажем в пике до 60 — 65 градусов что тоже черевато).

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

            Ну и старт они сделали глупый, зачем делать подачу газа на максимум, когда еще даже не ясно сколько там воды пошло на подачу. Открывали бы на минималке, и не пришлось бы ждать сначала скачка температуры, потом обнуления ее в предел 25-30 градусов, а потом уже доход до нужной температуры.


          1. Claud
            29.07.2015 15:48

            Да, еще забыл уточнить. 2 пункт актуален если у вас и калонка и холодная вода идут от одного отвода со стояка. Именно так у меня было изначально, Если калонка работает, лучше другие источники воды не пользовать — скачек мог быть весьма сильным. После ремонта сделали отдельную ветку от стояка на газовую колонку и она идет самой нижней. Как итог проблема исчезла — можно смело включить горячею воду в ванной и открыть холодную на кухне, скачек на 1-2 градуса и быстро подгоняется под нужную температуру.


  1. Reface
    14.07.2015 10:15

    Привет! Прочитал твою статью — очень интересно, и есть у меня необходимость выдерживать температуру нагрева электроплитки, т.е. когда надо сделать поворот рукоятки на столько-то градусов, выждать n секунд, потом поворот обратно, опять выждать и так далее. Соответственно сервопривод меня очень заинтересовал, он действительно очень жестко действует? Не оторвет рукоятку регулятора? Или можно сделать очень плавные повороты и медленные?


    1. Alexeyslav
      14.07.2015 17:05

      Сервопривод — это моторчик с редуктором (в статье вообще монстр использован — на выходном валу момент вращения 10кг/см, наверно такой сервой можно переключать каналы на телевизоре «берёзка») и датчиком положения выходного вала. Внутри стоит несложная электроника — пытается вращать моторчик так чтобы положение вала всегда соответствовало заданному. Соответственно вращение происходит с постоянной скоростью, она даже приводится в характеристиках сервы. Эту скорость можно заметить если задавать ей положение дискретно в двух крайних позициях(обычно это порядка одной секунды от края до края).

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


    1. petro_64 Автор
      14.07.2015 20:25

      По поводу самого сервопривода — соглашусь с Alexeyslav — у меня привод избыточный, для колонки достаточно момента и 1кгс*см, для плитки думаю что тоже. У меня была серва послабее и поменьше, но у неё были проблемы с управляющей электроникой, поэтому заюзал более надежную от TowerPro (+там ещё полностью металлический привод — дольше прослужит).

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


  1. petro_64 Автор
    16.07.2015 23:44

    Добавил запись в EEPROM последних значений температуры выбранной (при выборе новой) и положений сервопривода (положение сохраняется раз в минуту при условии отличия от ранее сохраненной более чем на 10ед., в идеале конечно надо сохранять перед выключением, но надо переделывать блок для такой возможности).

    Старт и выход на режим существенно ускорился.