1 2 3 4 5 6 7 8 9 10 10/10 9,80оценок: 15

Автоматика управления ТТ котлами своими руками

Тема в разделе "Котлы, горелки, котельное об-е своими руками", создана пользователем Senkiivan, 28.03.14.

Метки:
  1. Senkiivan
    Регистрация:
    23.08.12
    Сообщения:
    2.634
    Благодарности:
    1.503

    Senkiivan

    электронщик

    Senkiivan

    электронщик

    Регистрация:
    23.08.12
    Сообщения:
    2.634
    Благодарности:
    1.503
    Адрес:
    Боровичи
    Схема простая и выложенна по частям. ;)
    Програмные аспекты тоже озвучивал. Как показывает практика проще написать самому чем лазить по чужому коду.

    Полевые испытания покажут. дальнейшее развитие.
    Там ничего сложного. :|:
     
  2. milaa
    Регистрация:
    28.12.11
    Сообщения:
    228
    Благодарности:
    129

    milaa

    Живу здесь

    milaa

    Живу здесь

    Регистрация:
    28.12.11
    Сообщения:
    228
    Благодарности:
    129
    Адрес:
    Украина
    Для меня то все понятно, но есть участники форума которые дружат с паяльником но не могут писать программы для МК;), да и исходник выкладывать никто не просит, скомпилированый НЕХ я думаю достаточно.
    Ну это Вам решать, Вы автор темы, я просто спросил:|:.
     
  3. Senkiivan
    Регистрация:
    23.08.12
    Сообщения:
    2.634
    Благодарности:
    1.503

    Senkiivan

    электронщик

    Senkiivan

    электронщик

    Регистрация:
    23.08.12
    Сообщения:
    2.634
    Благодарности:
    1.503
    Адрес:
    Боровичи
    Тут ещё проще скетч для ардуино.
    Я это закладывал изначально, что может быть проще ардуино?
    Жду полевых испытаний.
    Я себе представляю выложить костяк программы, и каждый может подпилить под свои нужды.

    У меня идёт как снежный ком. сначала написан основной алгоритм потом начинает обрастать примочками.
    Из последних зарядка бойлера по трём точкам (температура на выходе из котла, температура обратки, температура бойлера)
    останов котла по прогоранию (температура ниже уставки и не растет при работе в течении определённого времени)
    предупреждения о "необходима чистка теплообменника".
    Котёл работает в режиме недостатка мощности выход на форсаж.
     
  4. Бигфаер
    Регистрация:
    02.12.12
    Сообщения:
    1.168
    Благодарности:
    1.130

    Бигфаер

    Большой Огонь

    Бигфаер

    Заблокирован

    Большой Огонь

    Регистрация:
    02.12.12
    Сообщения:
    1.168
    Благодарности:
    1.130
    Адрес:
    Россия
    :super: Я один раз в два дня, умышленно устраиваю форсаж, что бы труба не заростала, а если продувка будет на автомате, это вообще супер :super:
     
  5. Senkiivan
    Регистрация:
    23.08.12
    Сообщения:
    2.634
    Благодарности:
    1.503

    Senkiivan

    электронщик

    Senkiivan

    электронщик

    Регистрация:
    23.08.12
    Сообщения:
    2.634
    Благодарности:
    1.503
    Адрес:
    Боровичи
    идею взял от "овена" у них в регуляторах есть фича быстрый выход на уставку.
     
  6. Бигфаер
    Регистрация:
    02.12.12
    Сообщения:
    1.168
    Благодарности:
    1.130

    Бигфаер

    Большой Огонь

    Бигфаер

    Заблокирован

    Большой Огонь

    Регистрация:
    02.12.12
    Сообщения:
    1.168
    Благодарности:
    1.130
    Адрес:
    Россия
    :super: Я видел котёл ,импортный, сейчас название не помню, на диз. топливе, так там строго, через определённый период продувка. горячим. :super:
     
  7. Бигфаер
    Регистрация:
    02.12.12
    Сообщения:
    1.168
    Благодарности:
    1.130

    Бигфаер

    Большой Огонь

    Бигфаер

    Заблокирован

    Большой Огонь

    Регистрация:
    02.12.12
    Сообщения:
    1.168
    Благодарности:
    1.130
    Адрес:
    Россия
    У меня дымовая труба, стальная в течении первых 15 минут нагревается, до 300 с лишним градусов, а потом 53 максимум. :super:
     
  8. StF
    Регистрация:
    06.06.09
    Сообщения:
    426
    Благодарности:
    344

    StF

    Nobody is perfect

    StF

    Nobody is perfect

    Регистрация:
    06.06.09
    Сообщения:
    426
    Благодарности:
    344
    Адрес:
    Москва
    @xvovanx, Я пробовал управлять двигателями маломощными (до 200вт) которые с конденсаторами. Регулировка лучше всего работает которая, здесь в теме, @Senkiivan, приводил. Правда на малой мощности звук от вентилятора, как будто коняшка скачет :) Пробовал алгоритм Брезенхема (пропуск периодов) - чего то как то странно работает. :hello:
     
  9. Senkiivan
    Регистрация:
    23.08.12
    Сообщения:
    2.634
    Благодарности:
    1.503

    Senkiivan

    электронщик

    Senkiivan

    электронщик

    Регистрация:
    23.08.12
    Сообщения:
    2.634
    Благодарности:
    1.503
    Адрес:
    Боровичи
    Можно по подробнее. Сёйчас хочу такой попробовать чтоб транзистор разгрузить.
     
  10. StF
    Регистрация:
    06.06.09
    Сообщения:
    426
    Благодарности:
    344

    StF

    Nobody is perfect

    StF

    Nobody is perfect

    Регистрация:
    06.06.09
    Сообщения:
    426
    Благодарности:
    344
    Адрес:
    Москва
    @Senkiivan,
    пропуск периодов:
    -
    Заводим переменную. В каждом INT-прерывании прибавляем к ней уставку. Проверяем переменную на переполнение, т. е. больше или равно максимального значения. Если переполнения небыло - выключаем управление. Если переполнение было - вычитаем макс. значение и включаем управление.
    После вычитания, ошибка останется. И после каждого переполнения она будет сводиться к нулю.

    Немного обрисую ситуацию на примере.
    Предположим уставка =20%, максимальное значение = 100%
    Первый шаг.
    К переменной прибавляем 20, получаем 20. Переполнения нет, выключаем нагрузку.
    Второй шаг.
    Прибавляем ещё 20, получаем 40. Переполнения нет, выключаем нагрузку.
    Третий шаг.
    Прибавляем ещё 20, получаем 60. Переполнения нет, выключаем нагрузку.
    Четвёртый шаг.
    Прибавляем ещё 20, получаем 80. Переполнения нет, выключаем нагрузку.
    Пятый шаг.
    Прибавляем ещё 20, получаем 100. Переполнение есть, включаем нагрузку, вычитаем 100. В переменной остаётся 0.
    В итоге, получаем 5 шагов, из них 1 - включено, 4 - выключено. Т. е. 1:5 = 20%

    Возьмём другую уставку, например = 60%
    Первый шаг.
    К переменной прибавляем 60, получаем 60. Переполнения нет, выключаем нагрузку.
    Второй шаг.
    Прибавляем ещё 60, получаем 120. Переполнение есть, включаем нагрузку, вычитаем 100. В переменной остаётся 20.
    Третий шаг.
    Прибавляем ещё 60, получаем 80. Переполнения нет, выключаем нагрузку.
    Четвёртый шаг.
    Прибавляем ещё 60, получаем 140. Переполнение есть, включаем нагрузку, вычитаем 100. В переменной остаётся 40.
    Пятый шаг.
    Прибавляем ещё 60, получаем 100. Переполнение есть, включаем нагрузку, вычитаем 100. В переменной остаётся 0.
    В итоге, получаем 5 шагов, из них 3-включено, 2-выключено. 3:5 = 60%

    Я привёл примеры уставок, для которых ошибка своидится к нулю за маленькое кол-во шагов. А так, кол-во шагов будет звисисть от уставки. Т. е. от кратности уставки и максимального значения. Например, для 10% будет 10 шагов, для 50% - 2, для 80% - 5, и т. д. Кол-во шагов умноженное на уставку будет кратным максимальному значению.
    На каждом переполнении, выходной процент будет гулять рядом с уставкой и в итоге, через n-ное колво переполнений, он сравняется с уставкой (ошибка будет = 0).
    -
    Добавим Брезенхема
    * есть две глобальные переменные:
    regValue - то, что хотим получить, пусть будет в интервале [0..99];
    regError - накопление ошибки, это придумал Брезенхем.

    * когда выяснилось, какую мощность хотим передать в нагрузку (пусть будет 20 из интервала [0..99]):
    regValue = 20;
    Устанавливаем regError = 99/2, середина интервала. Это нужно делать каждый раз при изменении regValue;

    * в начале каждого полного периода сетевого напряжения делаем:

    regError = regError - regValue;
    if (regError < 0) {
    regError = regError + 99; / максимальное значение
    _симистор_открыть_; / на весь период
    } else
    _симистор_не_открывать_; / весь период

    Всё, собственно.
    -
    У меня оно на симисторе, ибо смотрел когда схемки для транзистора еще питание 9в надо, а у меня все от 5в блока питания универсального питается. (для зарядки сотовых).

    @Бигфаер, Если сегодня доделаю новую версию горелки выложу видео со звуком.
     
  11. Senkiivan
    Регистрация:
    23.08.12
    Сообщения:
    2.634
    Благодарности:
    1.503

    Senkiivan

    электронщик

    Senkiivan

    электронщик

    Регистрация:
    23.08.12
    Сообщения:
    2.634
    Благодарности:
    1.503
    Адрес:
    Боровичи
    @StF,
    Транзистор полевик.
    Питание на его управление берём из сети 220VAC.
    (Берём через делитель накапливаем на конденсаторе, ограничиваем стабилитроном)
    Алгоритм заложил намного проще. Контролируем переход через ноль каждый полупериуд.
    Устака1 количество полупириодов (100 полупириодов-100%) это 50 периудов или 1 сек.
    Уставка2 мощность передаваямая в нагрузку.
    Управление по прерыванию запускаем счётчик и считаем прерывания по уставке2.
    пока счетчик не дошёл до уставки держим выход открытый, после выход отключаем.
    При нагрузке 10% это выглядит первые 10 полупериудов отправляем в нагрузку остальные 90 отключаем. И так вцикле.

    При нагрузке 80% это выглядит первые 80 полупериудов отправляем в нагрузку остальные 20 отключаем. И так вцикле.

    вот и хочу посмотреть как с вентилятором это будет. Может потом разбить на подциклы.
    Надежда на инерционость вентилятора.
     
  12. xvovanx
    Регистрация:
    02.12.11
    Сообщения:
    826
    Благодарности:
    439

    xvovanx

    Живу здесь

    xvovanx

    Живу здесь

    Регистрация:
    02.12.11
    Сообщения:
    826
    Благодарности:
    439
    Адрес:
    Латвия
    Идеально было бы считать полупериоды, скажем, при нагрузке 80% первые 8 полупериодов отправляем в нагрузку остальные 2 отключаем или даже первые 4 полупериода отправляем в нагрузку остальной 1 отключаем. Усложнится прога, зато козлик вентилятор бы не "брыкался" :aga:
     
  13. StF
    Регистрация:
    06.06.09
    Сообщения:
    426
    Благодарности:
    344

    StF

    Nobody is perfect

    StF

    Nobody is perfect

    Регистрация:
    06.06.09
    Сообщения:
    426
    Благодарности:
    344
    Адрес:
    Москва
    @Senkiivan,
    Работать будет с вентилятором. С брезенхамом равномерное распределение периодов обеспечивает свечение лампочки, подключенной в виде нагрузки, почти равномерно, однако мой вентилятор пропуск периодов переваривает хуже, чем по стандартному алгоритму (как у вас): прилетела пачка полупериодов, потом тишина, потом снова прилетела.

    Кстати, а почему транзистор выбрали для коммутации?
     
  14. Senkiivan
    Регистрация:
    23.08.12
    Сообщения:
    2.634
    Благодарности:
    1.503

    Senkiivan

    электронщик

    Senkiivan

    электронщик

    Регистрация:
    23.08.12
    Сообщения:
    2.634
    Благодарности:
    1.503
    Адрес:
    Боровичи
    @StF,
    Транзистор для обкатки всех режимов. Плюс меньше шумит в сеть при переключениях.
    Полевик -чтобы использовать маломощную схему питания управления.
     
  15. Senkiivan
    Регистрация:
    23.08.12
    Сообщения:
    2.634
    Благодарности:
    1.503

    Senkiivan

    электронщик

    Senkiivan

    электронщик

    Регистрация:
    23.08.12
    Сообщения:
    2.634
    Благодарности:
    1.503
    Адрес:
    Боровичи
    @xvovanx,
    Пока простейшее далее посмотрим.
    Думал о разделение.
    Допустим усиавка 56% разбиваем ее на 50% и 6%
    И отрабатываем десятки и еденицы. Но это после пока интересно чем проще тем лучьше.

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