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

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

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

Метки:
  1. Виктрычч
    Регистрация:
    05.06.17
    Сообщения:
    2.387
    Благодарности:
    1.327

    Виктрычч

    Живу здесь

    Виктрычч

    Живу здесь

    Регистрация:
    05.06.17
    Сообщения:
    2.387
    Благодарности:
    1.327
    Периодически собирает разницу задания и текущей и корректирует с тем или иным знаком параллельно с пропорциональному. Так как пропорциональный сам никогда не выведет в ноль. Я сейчас могу просто добавить задание. Но при изменении ситуации устану добавлять и убавлять (день, ночь к примеру).Но это же несерьёзно. Вот интегральная и собирает и накапливает эту ошибку и подпрягается.
    Имеется ввиду установившийся режим.
    Может с терминологией каша, но думаю что сам процесс представляю. Приходилось крутить ручки по методикам. Сорок лет назад:)].
     
    Последнее редактирование: 29.11.21
  2. Виктрычч
    Регистрация:
    05.06.17
    Сообщения:
    2.387
    Благодарности:
    1.327

    Виктрычч

    Живу здесь

    Виктрычч

    Живу здесь

    Регистрация:
    05.06.17
    Сообщения:
    2.387
    Благодарности:
    1.327
    На сей момент серва излишне суетится. Моторесурс тоже не вечен. И убрать разницу. Ошибку. Сейчас она градуса 2 и гуляет. Хотя один пробег не пробег.
     
  3. Виктрычч
    Регистрация:
    05.06.17
    Сообщения:
    2.387
    Благодарности:
    1.327

    Виктрычч

    Живу здесь

    Виктрычч

    Живу здесь

    Регистрация:
    05.06.17
    Сообщения:
    2.387
    Благодарности:
    1.327
    Пока музыкальная пауза вспомнил из прошлой жизни. Определённые изделия для армии в обязательном порядке испытывались в климатических камерах. Задаётся температура 63 градуса и относительная влажность не помню, вроде даже 95%. Камеру периодически поверяли. Дык настроить её мог только ваш покорный слуга. Дотошно разобравшись в инструкции по картинкам на не русском языке. Так как перевод тот ещё был. При этом пускатели включения парогенератора и затем клапана подачи пара тарахтели как эпилепсики. Согласно картинкам. Температара то тоже регулировалась и паровым клапанам приходилось танцевать вокруг неё. Контрролер подписывал акты и устанавливался паровой кран. Потому что включаться раз в 6 секунд изображая аналоговое управление наша промышленность долго не протянет. Зато стрелки приборов стояли как вкопаные и на диаграмме прямая трое суток.
    До меня просто уводили чувствительность приборов в ноль, а контролёру накрывали поляну. И пришпиливали куда надо таким способом полученную диаграмму. Селяви.
    А тот паровой кран тоже специально обученный человек крутил. По приборам.
     
    Последнее редактирование: 29.11.21
  4. V757V
    Регистрация:
    23.11.11
    Сообщения:
    1.683
    Благодарности:
    633

    V757V

    Живу здесь

    V757V

    Живу здесь

    Регистрация:
    23.11.11
    Сообщения:
    1.683
    Благодарности:
    633
    Адрес:
    Москва
    Дело не в терминологии. Вот смотрите, возьмем для примера И- регулятор, отключим пропорциональную часть.
    Код:
    
    float Int_Err=0; // начальное значение интеграла
    float Int_gain=0.0001 // интегральный коэффициент
    float P_gain=0; // отключили пропорциональную компоненту
    ......
    Err_T=Tуставка - Ттекущая; // текущая ошибка
    Int_Err=Int_Err+Err_T; // интегрируем ошибку
    
    pos=Err_T*P_gain + Int_gain*Int_Err + 45; // вычисление позиции
    
    
    Теперь начальные условия, затопили. Т в помещении +5. Уставка +25.
    Отсчет температуры, вычислении позиции и отправка сервомеханизм один раз в минуту.
    Вопрос? Через какое время заслонка полностью откроется? Для простоты зададим следующее условие, температура в помещении, за это время не изменилась и остается +5. Здесь есть все для ответа на этот вопрос.
     
  5. Виктрычч
    Регистрация:
    05.06.17
    Сообщения:
    2.387
    Благодарности:
    1.327

    Виктрычч

    Живу здесь

    Виктрычч

    Живу здесь

    Регистрация:
    05.06.17
    Сообщения:
    2.387
    Благодарности:
    1.327
    На пальцах у меня не получится. На первой минуте повернётся на 0.002 градуса. На второй добавится еще 0,004. И так в прогрессии. Две недели.
     
    Последнее редактирование: 29.11.21
  6. V757V
    Регистрация:
    23.11.11
    Сообщения:
    1.683
    Благодарности:
    633

    V757V

    Живу здесь

    V757V

    Живу здесь

    Регистрация:
    23.11.11
    Сообщения:
    1.683
    Благодарности:
    633
    Адрес:
    Москва
    А зачем на пальцах? По формуле, она же написана, и Ардуино также будет считать, как в программе.
    Ошибка по температуре, как договорились, всегда одна 5-25= -20
    Интеграл ошибки будет 20* количество минут.
    Чтобы позиция стала 0, произведение интеграла ошибки на интегральный коэффициент должно быть -45
    Это будет, когда интеграл ошибки умноженный на коэффициент станет -45. Тогда интеграл должен быть -45000. Отсюда количество минут -45000/20=2250 минут.
    Это очень медленно. Ну а если нам нужно, чтобы быстрее отрабатывал? Что нужно изменить?
     
  7. Виктрычч
    Регистрация:
    05.06.17
    Сообщения:
    2.387
    Благодарности:
    1.327

    Виктрычч

    Живу здесь

    Виктрычч

    Живу здесь

    Регистрация:
    05.06.17
    Сообщения:
    2.387
    Благодарности:
    1.327
    Коэфициент. Больше нечего.
    Я интегралы и логарифмы в школе пропустил. А для решения задачу загнал бы в эксель
     
  8. V757V
    Регистрация:
    23.11.11
    Сообщения:
    1.683
    Благодарности:
    633

    V757V

    Живу здесь

    V757V

    Живу здесь

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

    Виктрычч

    Живу здесь

    Виктрычч

    Живу здесь

    Регистрация:
    05.06.17
    Сообщения:
    2.387
    Благодарности:
    1.327
    Доходчиво. Осталось выбрать на что упор.
     
  10. V757V
    Регистрация:
    23.11.11
    Сообщения:
    1.683
    Благодарности:
    633

    V757V

    Живу здесь

    V757V

    Живу здесь

    Регистрация:
    23.11.11
    Сообщения:
    1.683
    Благодарности:
    633
    Адрес:
    Москва
    Можно загнать куда угодно, но при этом надо понять принцип. Программа вторична, первичен алгоритм.
    Касательно коэффициентов.
    Коэффициент пропорциональности проще выбрать из ширины полосы пропорцинальности, а именно:
    Допустим, установим полосу пропорциональности 5 градусов. Это значит, что если ошибка -2.5 градуса - система должна дать полную мощность (открыть 100%), а при перегреве в +2.5 (закрыть полностью).
    получим уравнения
    pos=0=P_gain*(-2.5) +45
    pos=90=P_gain*(2.5) +45
    отсюда P_gain=22.5
    Теперь относительно времени дискретизации, все определяется верхней частотой передаточной характеристики замкнутого контура регулирования. Не буду вдаваться, просто не получится. Раз в минуту за глаза, для системы отопления дома, да раз в 5 минут тоже. А вот Коэффициент интегральной компоненты следует выбрать, чтобы скажем заслонка полностью за 1..2 часа, при той же полосе рассогласования, т. е. Время дискретизации возьмем 1 мин, тогда
    pos=0=(-2.5)*Nмин*I_gain +45, при Nмин=60 (1 час), тогда
    I_gain=45/150=0.3
    Это в общем, а так есть тонкость. Есть понятие интегрального насыщения... В общем I_gain лучше поменьше брать, или ограничивать интегральный вклад в общее значение pos. Например, как достигла интегральная часть 45/3=15 градусов, то замораживать интеграл ошибки.
     
  11. Виктрычч
    Регистрация:
    05.06.17
    Сообщения:
    2.387
    Благодарности:
    1.327

    Виктрычч

    Живу здесь

    Виктрычч

    Живу здесь

    Регистрация:
    05.06.17
    Сообщения:
    2.387
    Благодарности:
    1.327
    Немного не понял.
    P_gain=22.5 ?
    У меня получается 18
     
  12. V757V
    Регистрация:
    23.11.11
    Сообщения:
    1.683
    Благодарности:
    633

    V757V

    Живу здесь

    V757V

    Живу здесь

    Регистрация:
    23.11.11
    Сообщения:
    1.683
    Благодарности:
    633
    Адрес:
    Москва
    Ошибся я, но это даже хорошо. Значит вы начинаете вникать, раз нашли.
     
  13. Виктрычч
    Регистрация:
    05.06.17
    Сообщения:
    2.387
    Благодарности:
    1.327

    Виктрычч

    Живу здесь

    Виктрычч

    Живу здесь

    Регистрация:
    05.06.17
    Сообщения:
    2.387
    Благодарности:
    1.327
    Я так и подумал что очепятка. Или контрольный. Начинаю вникать в суть.
    А так то я давно пытался в неё вникнуть через гугл. Как то общие фразы не заходили. Ещё раз респект про некоторые нюансы.
     
    Последнее редактирование: 29.11.21
  14. Виктрычч
    Регистрация:
    05.06.17
    Сообщения:
    2.387
    Благодарности:
    1.327

    Виктрычч

    Живу здесь

    Виктрычч

    Живу здесь

    Регистрация:
    05.06.17
    Сообщения:
    2.387
    Благодарности:
    1.327
    С утра накропал фрагмент, который будет закинут в блок миллис 1 минута

    Err_T=Set_T-sensor2.getTemp();
    Int_Err=constrain (Int_Err+Err_T),-15,15); / интегрируем и ограничиваем ошибку

    pos=(int)(P_gain*Err_T+I_gain*Int_Err+45.); /для цикла 1 мин I_gain =0,3
    pos = constrain (pos, 0, 180);
    Serial. print("pos=");
    Serial. println (pos);
    myservo. write (pos);
    Годится? Компилятор пропустил.
    Ну и сразу возник вопрос. Если фрагмент будет в блоке миллис, то сработает только через минуту после включения/сброса? Не смертельно, просто на будущее.
    Ну и кошерность выделенной строки. Может на две разбить?
     
    Последнее редактирование: 30.11.21
  15. Виктрычч
    Регистрация:
    05.06.17
    Сообщения:
    2.387
    Благодарности:
    1.327

    Виктрычч

    Живу здесь

    Виктрычч

    Живу здесь

    Регистрация:
    05.06.17
    Сообщения:
    2.387
    Благодарности:
    1.327
    Наткнулся
    https://en.m.wikipedia.org/wiki/Ziegler%E2%80%93Nichols_method
    Подозреваю, что Тi (третья колонка) как раз и ограничивает интегральное насыщение. По таблице 0.8 от общего периуда для ПИ. Я правильно понял?