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

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

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

Метки:
  1. montirovka
    Регистрация:
    07.09.11
    Сообщения:
    165
    Благодарности:
    56

    montirovka

    Живу здесь

    montirovka

    Живу здесь

    Регистрация:
    07.09.11
    Сообщения:
    165
    Благодарности:
    56
    Адрес:
    Геленджик
    На форуме FLprog мне подсказали, что большая чувствительность у того датчика, у которого больше разница. Получается, что у ДАД с Газели большая разница - 2 вольта. У этого датчика название ПА6-210-КС.
     
  2. Виктрычч
    Регистрация:
    05.06.17
    Сообщения:
    2.387
    Благодарности:
    1.327

    Виктрычч

    Живу здесь

    Виктрычч

    Живу здесь

    Регистрация:
    05.06.17
    Сообщения:
    2.387
    Благодарности:
    1.327
    Проверил. Поправил. Заработало.
    Спасибо.
     
  3. Виктрычч
    Регистрация:
    05.06.17
    Сообщения:
    2.387
    Благодарности:
    1.327

    Виктрычч

    Живу здесь

    Виктрычч

    Живу здесь

    Регистрация:
    05.06.17
    Сообщения:
    2.387
    Благодарности:
    1.327
    Всём добра!
    В ПИД регуляторе напрашивается синхронное действие Р и Д.
    Суть:
    При отклонении температуры от заданной за такт допустим вперёд естественно срабатывает и Д пытаясь вернуть ошибку. Всё так и задумано. НО! При возвращении температуры из за этого воздействия назад на место снова срабатывает Д и с обратным знаком! Да не нужна она уже! Только вредит в данном алгоритме управления при не меняющемся задании.
    Посему теоретическая попытка исправить сей казус. Вопрос про больше-меньше правильно расставил?

    Err_T=Set_T-sensors.getTempC (sensor2);

    Dif_Err=(Err_T-prevErr);
    prevErr=Err_T;
    if (Dif_Err>0&& Err_T<0) { Dif_Err=0; };
    if (Dif_Err<0&& Err_T>0) { Dif_Err=0; };
     
  4. V757V
    Регистрация:
    23.11.11
    Сообщения:
    1.683
    Благодарности:
    633

    V757V

    Живу здесь

    V757V

    Живу здесь

    Регистрация:
    23.11.11
    Сообщения:
    1.683
    Благодарности:
    633
    Адрес:
    Москва
    Не очень понятно. Как это у вас за один отсчет температура туда, а на следующий обратно?
     
  5. Виктрычч
    Регистрация:
    05.06.17
    Сообщения:
    2.387
    Благодарности:
    1.327

    Виктрычч

    Живу здесь

    Виктрычч

    Живу здесь

    Регистрация:
    05.06.17
    Сообщения:
    2.387
    Благодарности:
    1.327
    Не за один. За следующий. Лог такой. Я их всё грохнул, поэтому на словах.
    Допустим задано 20. Текущая 19,8. Пид не справляется ввиду зажатия топки по минимому. Он конечно интегралом выведет, но потом. Опустилась 19,7. Диф отработал и приоткрыл заслонку на допустим 20 градусов. Строб. 19.7. Диф 0. Строб. 19, 8. Диф согласно закону -20! А нужно, что бы промолчал. Текущая то ниже задания. А он её опять пытается уронить. И если следующий допустим опять 19,7, то снова +20 на такт. В итоге +40 за три такта как планируется. А не средняя 0 по классике.
    На полной мощи это несущественно. Там запасенным интегралом ведётся. А вот сейчас потеплело и на малых оборотах топки Диф не помогает как положено. И регулятор паралельно пиду уходит в старт-стоп по минимальным дымовым. Хотя судя по логам мог бы держать линейно.
     
    Последнее редактирование: 15.03.22
  6. V757V
    Регистрация:
    23.11.11
    Сообщения:
    1.683
    Благодарности:
    633

    V757V

    Живу здесь

    V757V

    Живу здесь

    Регистрация:
    23.11.11
    Сообщения:
    1.683
    Благодарности:
    633
    Адрес:
    Москва
    По всему выходит, что у вас велик коэффициент Кд. Не должен ПИД регулятор так работать, чтобы небольшие невязки уставки приводили к раскачке. То, что вы пишете выше, это не ПИД, это что-то ваше личное и необычное. На мой взгляд, я бы тогда уже усреднял, диф. ошибку за 3...5 вычислений.
     
  7. Виктрычч
    Регистрация:
    05.06.17
    Сообщения:
    2.387
    Благодарности:
    1.327

    Виктрычч

    Живу здесь

    Виктрычч

    Живу здесь

    Регистрация:
    05.06.17
    Сообщения:
    2.387
    Благодарности:
    1.327
    Согласен. Одного такта для Д маловато. Была мысль растянуть его вычисление. Где то это попадалось в классическом варианте. Попробую. Но полярное действие Д сильно напрашивается.
    Есть ощущение, что стандартный ПИД не совсем подходит для печи хоть и длительного, но всё равно периодического действия. Очень разная теплотворность в начале и конце топки. Вот и крою.
    П. С. На самом деле Д играет пару градусов. Реакция достаточна в течение одного такта когда общий угол, набраный интегралом 5-8 в крейсерском. Но в следующем такте всё отыгрывается не в ту сторону.
     
    Последнее редактирование: 15.03.22
  8. Оксфорд
    Регистрация:
    12.04.12
    Сообщения:
    9.415
    Благодарности:
    1.871

    Оксфорд

    Живу здесь

    Оксфорд

    Живу здесь

    Регистрация:
    12.04.12
    Сообщения:
    9.415
    Благодарности:
    1.871
    Адрес:
    Уфа
    Невозможно описать процессы в котле на дровах пидом с одинаковыми коэффициентами.
     
  9. Виктрычч
    Регистрация:
    05.06.17
    Сообщения:
    2.387
    Благодарности:
    1.327

    Виктрычч

    Живу здесь

    Виктрычч

    Живу здесь

    Регистрация:
    05.06.17
    Сообщения:
    2.387
    Благодарности:
    1.327
    Ну почему же. Добавить в него дымовые и внешнюю температуру. Т. е статическую точку начального обсчета сделать динамической привязав её к теплопотерям и мощи. У оригинального Буля так и сделано. Тупо шкала внешней температуры на заслонке первичного воздуха. Всё к этому и идёт. Эволюционным путём.
    Да и коэффициенты можно править по ходу. Не вопрос. Пока статистика напрашивается разобраться с Д на минимуме дымовых. В моём варианте выдергивание из затухания идёт мимо ПИД. Эта точка минимума дымовых кстати тоже меняется. Начальная 80. потом спускается до 60. И выдернуть её можно и Д. Но классический её в следующем такте снова задергивает. Смотри выше.
    Всё это кроится для работы на минимуме без пропадания факела. Т. Е. Исключения зарастания и дёгтя в дымоходе и вообще.
    Но не обязательно.
     
    Последнее редактирование: 16.03.22
  10. Оксфорд
    Регистрация:
    12.04.12
    Сообщения:
    9.415
    Благодарности:
    1.871

    Оксфорд

    Живу здесь

    Оксфорд

    Живу здесь

    Регистрация:
    12.04.12
    Сообщения:
    9.415
    Благодарности:
    1.871
    Адрес:
    Уфа
    Да потому что не описываются процессы одной функцией. Мечтайте дальше.
     
  11. Виктрычч
    Регистрация:
    05.06.17
    Сообщения:
    2.387
    Благодарности:
    1.327

    Виктрычч

    Живу здесь

    Виктрычч

    Живу здесь

    Регистрация:
    05.06.17
    Сообщения:
    2.387
    Благодарности:
    1.327
    Тем не менее скетч зналит и работает как и задумано. Дифф подключается избирательно и синфазно. Подталкивает заслонку всегда в сторону выполнения задания при любом шорохе ошибки и не дожидаясь замедленного действия интеграла и незначительного пропорционала.
    Караван идёт вторые сутки.
     
  12. arsenty
    Регистрация:
    15.01.15
    Сообщения:
    3.095
    Благодарности:
    1.079

    arsenty

    Живу здесь

    arsenty

    Живу здесь

    Регистрация:
    15.01.15
    Сообщения:
    3.095
    Благодарности:
    1.079
    Вот жду окончания ОПЫТА...хоть на что это будет похоже.
     
  13. Виктрычч
    Регистрация:
    05.06.17
    Сообщения:
    2.387
    Благодарности:
    1.327

    Виктрычч

    Живу здесь

    Виктрычч

    Живу здесь

    Регистрация:
    05.06.17
    Сообщения:
    2.387
    Благодарности:
    1.327
    IMG_20220331_122335.jpg Вести с полей. Подкрученное формирование D состовляющей работает. Третий столбец с конца. Его доля соизмерима с общим углом открытия заслонки. Это последний столбец. Задание 25. При переходе через него D чётко меняет знак.
    Второй столбец как всегда датчик температуры помещения. Третий дымовые. Ну и в конце I, D, P и pos сервы.
     
    Последнее редактирование: 31.03.22
  14. Виктрычч
    Регистрация:
    05.06.17
    Сообщения:
    2.387
    Благодарности:
    1.327

    Виктрычч

    Живу здесь

    Виктрычч

    Живу здесь

    Регистрация:
    05.06.17
    Сообщения:
    2.387
    Благодарности:
    1.327
    Добрый день? :hello:
    Добрался до таймеров процессора. Скроен некий регулятор, коммуттрующий нагрузку по прерыванию. Пока чисто регулятор мощности. Задание с кнопок. Нужно вкрячить ПИД. Формулу в блок прерывания втискивать, или можно отдельно? Частота прерываний 100 Гц. Период 20 тактов. Опрос датчика пусть 10 Гц. Успеет ПИД просчитать за 20 тактов прерывания, если сунуть его в его блок?
     
  15. V757V
    Регистрация:
    23.11.11
    Сообщения:
    1.683
    Благодарности:
    633

    V757V

    Живу здесь

    V757V

    Живу здесь

    Регистрация:
    23.11.11
    Сообщения:
    1.683
    Благодарности:
    633
    Адрес:
    Москва
    Период, есть величина обратная частоте. Для 100 Гц - период 10 мС. А что такое 20 тактов?

    Только в том случае, если период дискретизации равен периоду прерываний. А период дискретизации определяется наивысшей частотой характеристики замкнутого контура регулирования по теореме Котельникова-Найквиста. Вы же собираетесь опрашивать датчик с периодом 100 мС, значит 9 прерываний из 10 будут нагружены впустую, если считать в прерываниях.
    К сведению, 18B20 не может быть опрошен с такой частотой.
    И еще к сведению, если будете использовать float, то это очень сильно увеличивает время выполнения операций. Нужно использовать целочисленную математику, или математику с фиксированной точкой.
    А так, читайте таймер до и после операции, по разности определите фактическое время иполнения.