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.502

    Senkiivan

    электронщик

    Senkiivan

    электронщик

    Регистрация:
    23.08.12
    Сообщения:
    2.634
    Благодарности:
    1.502
    Адрес:
    Боровичи
    /переменые работы регулятора ПИД
    double Setpoint, Input, Output;
    /коэфицентты регулятора
    double aggKp=3, aggKi=0.3, aggKd=1.1;
    double consKp=2, consKi=0.2, consKd=1;
    PID myPID(&Input, &Output, &Setpoint, consKp, consKi, consKd, DIRECT);

    В основном цикле программы.
    / Настройка пид
    Input=temp1;
    Setpoint=setTmp7;
    /работа пид регулятора
    double gap = abs (Setpoint-Input); /смотрим разницу заданного от уставки
    if (gap<5){myPID.SetTunings (consKp, consKi, consKd);} /если меньше 5 то работаем на коэфицентах
    else {myPID.SetTunings (aggKp, aggKi, aggKd);} /если больше 5 то работаем на коэфицентах
    myPID. Compute();
     
  2. Senkiivan
    Регистрация:
    23.08.12
    Сообщения:
    2.634
    Благодарности:
    1.502

    Senkiivan

    электронщик

    Senkiivan

    электронщик

    Регистрация:
    23.08.12
    Сообщения:
    2.634
    Благодарности:
    1.502
    Адрес:
    Боровичи
    Обратная связь по дымовым газам и привязка вентилятор2 к вентилятор1 программным коэф.
    Dimmer1-вентилятор 1
    Dimmer2-вентилятор 2

    float temp1=0;/текущая температура подачи теплоносителя
    float temp2=0;/текущая температура дымовых газов
    float temp3=0;/текущая температура обратки теплоносителя
    long setTmp8=0; / температура дымовых газов минимальная
    long setTmp9=0; / температура дымовых газов максимальная

    if (temp1-temp3)<25){ / если дельта подача/обратка меньше 25 то работаем с учетом температуры дымовых газов
    if (temp2>=setTmp8&&(temp2<=setTmp9){
    if (pusk=HIGH&&pauza=LOW){Dimmer1=vv3;}} /вентилятор работает при команде старт и нет команды пауза температура дымовых газов в норме
    if (temp2<setTmp8){
    if (pusk=HIGH&&pauza=LOW){Dimmer1=vv3-(abs (setTmp8-temp2);Dimmer1=max (Dimmer1,1);}} /вентилятор работает при команде старт и нет команды пауза температура дымовых газов ниже нормы
    if (temp2>setTmp9){
    if (pusk=HIGH&&pauza=LOW){Dimmer1=vv3+(abs (temp2-setTmp9);Dimmer1=min (Dimmer1,170);}} /вентилятор работает при команде старт и нет команды пауза температура дымовых газов выше нормы
    }

    if (Dimmer1=255){Dimmer2=255;}
    else{Dimmer2=(Dimmer1*vv4)/100;}
    vv4 -величина задаётся в % в меню настройки.
     
  3. Senkiivan
    Регистрация:
    23.08.12
    Сообщения:
    2.634
    Благодарности:
    1.502

    Senkiivan

    электронщик

    Senkiivan

    электронщик

    Регистрация:
    23.08.12
    Сообщения:
    2.634
    Благодарности:
    1.502
    Адрес:
    Боровичи
    Пример тригера на одной кнопке и отключения куска программы при аварии датчика температуры, который задействован в ней.

    if (Feature=4&&pog=0){pogoda=HIGH; EEPROM_write_byte (11,pogoda);} / включить погодозависимую автоматику нажать кнопку влево
    if (Feature!=4&&pogoda=HIGH){pog=1;}
    if (Feature=4&&pog=1){pogoda=LOW; EEPROM_write_byte (11,pogoda);} / выключить погодозависимую автоматику нажать кнопку влево
    if (Feature!=4&&pogoda=LOW){pog=0;}
    if (avaria4=HIGH){pogoda=LOW;}
     
  4. Atm67
    Регистрация:
    26.11.12
    Сообщения:
    27
    Благодарности:
    7

    Atm67

    Участник

    Atm67

    Участник

    Регистрация:
    26.11.12
    Сообщения:
    27
    Благодарности:
    7
    Адрес:
    Набережные Челны
    Что-то я совсем затупил...:faq: Даже стыдно спрашивать и ни как не могу сформулировать вопрос.
    Попробую так:
    Если мы имеем два вентилятора или вентилятор + дымосос которые программно связаны между собой. То и на котле стоят их два,(по воздуху), зачем...?
    В моем понятии, если стоит дутьевой вентилятор то не нужен дымосос, а если стоит дымосос то ненужен вентилятор.
    Если рассмотреть "двух-вентиляторный " котел, то один вентилятор должен быть основной. А второй меньший по производительности, должен "поддувать или отдувать :) " дымогазы. Тем самым создавать разряжение или же давление в камере сгорании. Помните гдето выше был разговор про разряжение в несколько мм. вод. столба. То-есть работать программно по какому-то другому закону а не в процентном соотношении одного вентилятора к другому.
    Короче я запутался:faq:... Начну читать тему с самого начала. Временно ухожу в творческий ступор:).
     
  5. Senkiivan
    Регистрация:
    23.08.12
    Сообщения:
    2.634
    Благодарности:
    1.502

    Senkiivan

    электронщик

    Senkiivan

    электронщик

    Регистрация:
    23.08.12
    Сообщения:
    2.634
    Благодарности:
    1.502
    Адрес:
    Боровичи
    Это же унивирсальный вариант.
    Для обычного пиролизника небольшой мощности достаточно одного вентилятора-
    и всё будет шуршать;)
    Или дымосос и заслонка.

    Но допустим у вас котёл на 200кВт то тогда 2 вентилятора один ПВ, другой ВВ и они настраиваются.

    Или допустим котёл с сыпучим топливом- тогда вентилятор для подачи в топку и дымосос для стабилизации тяги при многоходовом теплообменике.
    И много ещё вариантов.
     
  6. Senkiivan
    Регистрация:
    23.08.12
    Сообщения:
    2.634
    Благодарности:
    1.502

    Senkiivan

    электронщик

    Senkiivan

    электронщик

    Регистрация:
    23.08.12
    Сообщения:
    2.634
    Благодарности:
    1.502
    Адрес:
    Боровичи
    Всё прогнал во всех режимах:)]
    Выплыли маленькие нестыковки, поправил.
    Теперь готов конечный продукт.
    Видео обзор.


    Мне понравился:|:.
    Задумка реализована на 120% от первоначальных мыслей.
    Чётко держит заданный коридор по температуре дымовых газов.
    Датчики DS18B20 работают стабильно.

    DSC06405.JPG DSC06406.JPG DSC06407.JPG DSC06408.JPG
     
  7. kama3er
    Регистрация:
    10.12.13
    Сообщения:
    76
    Благодарности:
    8

    kama3er

    Живу здесь

    kama3er

    Живу здесь

    Регистрация:
    10.12.13
    Сообщения:
    76
    Благодарности:
    8
    Адрес:
    Шостка
    @Senkiivan, корплю над регулятором и некоторые подводные камни уже победил ... вопрос как впереди идущему ... как подбирались коэффициенты П И Д ... на каком временном интервале ? подбор коэффициентов довольно не тривиальный процесс. Да и как вам видится сам процесс Алгоритм работы котла (начало)... (регулировка)...(конец) какие действия в промежутках?
     
  8. Senkiivan
    Регистрация:
    23.08.12
    Сообщения:
    2.634
    Благодарности:
    1.502

    Senkiivan

    электронщик

    Senkiivan

    электронщик

    Регистрация:
    23.08.12
    Сообщения:
    2.634
    Благодарности:
    1.502
    Адрес:
    Боровичи
    Вы в начале пути;)
    Вот небольшая цитата по настройке ПИД регулятора.

    "Наиболее часто использующимся методом настройки коэффициентов является метод Циглера-Никольса. Заключается он в следующем…
    Метод Циглера-Никольса.
    • Для начала обнуляем все коэффициенты регулятора (пропорциональный, интегральный и дифференциальный)
    • Постепенно начинаем увеличивать пропорциональный коэффициент и следим за реакцией системы. При определенном значении возникнут незатухающие колебания регулируемой величины.
    • Фиксируем коэффициент К, при котором это произошло. Кроме того, замеряем период колебаний системы Т.
    Собственно, на этом практическая часть метода заканчивается) Из полученного коэффициента К рассчитываем пропорциональный коэффициент ПИД-регулятора:
    Кр=К*0,6
    А из него получаем и остальные:
    Ки=(2*Кр)/Т
    Кд=(Кр*Т)/8
    Метод довольно прост, но применить его можно далеко не всегда. Если честно, мне еще ни разу не приходилось настраивать регулятор таким образом Но тем не менее, этот метод является основным и, по большому счету, единственным широко известным. Просто подходит не всем и не всегда.
    Что же делать, если метод Циглера-Никольса не сработал? Тут придет на помощь «аналитический» метод настройки =)
    Опять же обнуляем все коэффициенты и начинаем увеличивать пропорциональный. Но теперь не ждем появления колебаний, а просто фиксируем поведение системы для каждого значения коэффициента (отличным вариантом будет построение графика величины, которую необходимо стабилизировать, для каждого значения коэффициента). Если видим, что, например, система очень медленно выходит на нужное значение, увеличиваем пропорциональный коэффициент. Система начинает сильно колебаться относительно нужной величины? Значит, коэффициент слишком велик, уменьшаем и переходим к настройке других составляющих.
    Понимая, как работает ПИД-регулятор в целом, и представляя, как должна работать настраиваемая система, можно довольно-таки быстро и точно настроить коэффициенты регулятора. Особенно, если есть возможность построить графические зависимости и визуально следить за поведением системы.
    Вот некоторые правила, которые могут помочь при настройке:
    • Увеличение пропорционального коэффициента приводит к увеличению быстродействия, но снижение устойчивости системы
    • Увеличение дифференциальной составляющей также приводит к значительному увеличению быстродействия
    • Дифференциальная составляющая призвана устранить затухающие колебания, возникающие при использовании только пропорциональной составляющей
    • Интегральная составляющая должна устранять остаточное рассогласование системы при настроенных пропорциональной и дифференциальной составляющих
    Кстати, стоит добавить, что не всегда необходимо использовать все три составляющие ПИД-регулятора, порой хватает пропорциональной и дифференциальной, например (ПД-регулятор). В общем, все сводится к тому, что для каждой системы необходим свой собственный подход при настройке и использовании ПИД-регулятора.
     
  9. kama3er
    Регистрация:
    10.12.13
    Сообщения:
    76
    Благодарности:
    8

    kama3er

    Живу здесь

    kama3er

    Живу здесь

    Регистрация:
    10.12.13
    Сообщения:
    76
    Благодарности:
    8
    Адрес:
    Шостка
    @Senkiivan, ну эээ теорией вы меня как действующего инженера станков с ЧПУ не напугали :um::cool: тут я как уже писал выше практически для каждого котла свои коэффициенты ... до сих пор с ПИД регуляторами я сталкивался на быстрых или относительно быстрых процессах... вот котел это уже совершенно другое дело скорость реакции котла на воздействие регулятора может быть минуты или десятки минут... тайминг процесса (период квантования ПИД) какой ? Если убрать коэффициэнты И и Д то с какой частотой котел начнет тримерить (включать выключать вент)?
     
  10. Оксфорд
    Регистрация:
    12.04.12
    Сообщения:
    9.356
    Благодарности:
    1.859

    Оксфорд

    Живу здесь

    Оксфорд

    Живу здесь

    Регистрация:
    12.04.12
    Сообщения:
    9.356
    Благодарности:
    1.859
    Адрес:
    Уфа
    Если регулировать дымогазы, то нужен датчик температуры малоинерционный. Ставил сопротивления овеновский, тормоз конкретный. Температура может сгулять туда обратно на 50 гр. Он даже не почувствует. Какое уж туд регулирование.
     
  11. Senkiivan
    Регистрация:
    23.08.12
    Сообщения:
    2.634
    Благодарности:
    1.502

    Senkiivan

    электронщик

    Senkiivan

    электронщик

    Регистрация:
    23.08.12
    Сообщения:
    2.634
    Благодарности:
    1.502
    Адрес:
    Боровичи
    Первое котёл далеко не тормоз;)
    У меня на котле скорость изменения температуры 0,1 град за 4,5сек- никаких десятков минут.
    Задача ПИД регулятора подвести котёл к уставки и держать её.

    В алгоритме программы идёт изменение скорости вращения вентилятора от минимума до максимума.
    Чем температура ниже уставки тем больше скорость вращения вентилятора- соответсвенно больше тепловая мощность котла.
    Настройка ПИД приводится к чёткому подходу котла к уставке и стабильная работа на ней.

    То что вы описываете это работа в сарт/стоп режиме.
     
  12. kama3er
    Регистрация:
    10.12.13
    Сообщения:
    76
    Благодарности:
    8

    kama3er

    Живу здесь

    kama3er

    Живу здесь

    Регистрация:
    10.12.13
    Сообщения:
    76
    Благодарности:
    8
    Адрес:
    Шостка
    @Senkiivan, получается котелок у вас в стоп не ставиться ?
     
  13. V757V
    Регистрация:
    23.11.11
    Сообщения:
    1.682
    Благодарности:
    633

    V757V

    Живу здесь

    V757V

    Живу здесь

    Регистрация:
    23.11.11
    Сообщения:
    1.682
    Благодарности:
    633
    Адрес:
    Москва
    чтобы датчик был малоинерционным он должен обладать малой массой. думаю хорошо в качестве датчика будет работать маломощная лампочка накаливания с разбитойколбой
     
  14. Senkiivan
    Регистрация:
    23.08.12
    Сообщения:
    2.634
    Благодарности:
    1.502

    Senkiivan

    электронщик

    Senkiivan

    электронщик

    Регистрация:
    23.08.12
    Сообщения:
    2.634
    Благодарности:
    1.502
    Адрес:
    Боровичи
    Лучьше всего термопара, самый быстрый отклик.

    Выход в паузу когда минимальная мощность превышает необходимую.
     
  15. Оксфорд
    Регистрация:
    12.04.12
    Сообщения:
    9.356
    Благодарности:
    1.859

    Оксфорд

    Живу здесь

    Оксфорд

    Живу здесь

    Регистрация:
    12.04.12
    Сообщения:
    9.356
    Благодарности:
    1.859
    Адрес:
    Уфа
    Выход в паузу когда минимальная мощность превышает необходимую.[/QUOTE]
    Крассиво сказал!