1. Уважаемые форумчане! Убедительная просьба, используйте наиболее подходящие темы для своих сообщений. Спасибо за понимание.
    Скрыть объявление

ПИД параметры для автоматики

Тема в разделе "Автоматика", создана пользователем flexx, 25 ноя 2014.

Поделиться этой страницей

  1. flexx

    flexx Active Member

    Регистрация:
    22.08.2014
    278
    25
    Вроде как собрал свою автоматику на базу ArdBir. Скоро буду проводить полевые испытания, но есть вопрос.
    Господа, подскажите кто в теме, какие вы выставляете параметры ПИД-регулятора и есть ли какой-то метод подбора оптимальных параметров?
     
  2. HBPro

    HBPro Admin Команда форума

    Регистрация:
    10.02.2012
    624
    158
    Для объема 30-35л пользуемся такими - Kp = 50, Ki=1, Kd=15, Windowsize = 3000
    Ссылки могут видеть только зарегистрированные пользователи. Зарегистрируйтесь или авторизуйтесь для просмотра ссылок!
     
    • Поучительно Поучительно x 2
    • Полезно Полезно x 1
  3. kBace4ka

    kBace4ka Новенький

    Регистрация:
    28.09.2014
    8
    0
    У нас при первой варке получилось Kp практически 100. Иначе невозможно ждать когда температура достигнет нужного значения. В итоге быстро доходим до нужной температуры и спокойно держим.
     
  4. flexx

    flexx Active Member

    Регистрация:
    22.08.2014
    278
    25
    А эти параметры получены эмпирически или расчитаны? Пробовали ли их менять и что из того получилось?
     
  5. Виталий НК

    Виталий НК Участник

    Регистрация:
    09.12.2013
    29
    16
    А можно расшифровать что значат эти:
    Kp, Ki, Kd и Windowsize?
    А лучше расписать - при уменьшении параметра будет то, при увеличении будет это.
     
  6. flexx

    flexx Active Member

    Регистрация:
    22.08.2014
    278
    25
    Kp - Пропорциональная составляющая
    Ki - Интегральная составляющая
    Kd - Дифференциальная составляющая

    Windowsize - переменная используемая для эмуляции режима ШИМ (Ссылки могут видеть только зарегистрированные пользователи. Зарегистрируйтесь или авторизуйтесь для просмотра ссылок!)

    Описание того на что влияет тот или иной параметр можно прочитать тут -> Ссылки могут видеть только зарегистрированные пользователи. Зарегистрируйтесь или авторизуйтесь для просмотра ссылок!
     
  7. flexx

    flexx Active Member

    Регистрация:
    22.08.2014
    278
    25
    Для меня тема ПИД - темный лес, и я решил вспомнить студенческие годы и поиграться с мат моделированием ПИД-регулятора. Представляю вам результаты!

    Описание матмодели. Сразу оговорюсь, что мат модель построена на основании алгоритма ArdBir. Теплопотери считаются постоянными, хотя в реальности это не так, и теплопотери зависят от наличия утеплителя и разности температур между котлом и окружающей средой. Сходу не придумал как это учесть, но если у кого-то есть мысли как рассчитать теплопотери буду рад внести коррективы. Испарение воды в модели не учитывается, т.к оно очень мало если учитывать, что во время варки котел накрыт крышкой.
    Мат модель не учитывает, что в прошивке регулирование начинается при разнице температур 5°. Также не учитывается и разрядность термодатчика.
    Моделирование выполнено по 5000 точек. Интервал между точками задается переменной WindowSize.

    Описание результатов. Для начала наверно стоит объяснить влияние параметров модели на конечный результат. На приведенных графиках изменяется только один параметр, остальные остаются неизменными.
    01.png
    Пропорциональная составляющая, как видно на рис. 1 влияет на скорость нагрева вблизи конечной температуры. Стоит отметить, что особой разницы между значением Кр=50 и Кр=100 нет. Т.е. она конечно существует, но разница во времени нагрева до установившегося значения составляет около 2,5 мин, что согласитесь несущественно. Также Кр влияет и на значение установившейся температуры, и чем Кр мельше, тем больше эта ошибка регилирования.
    02.png
    Интегральная составляющая отвечает за перерегулирование системы. Как видно на рис. 2 при значении Ki=0 перерегилирование отсутствует, но вместе с тем это вызывает недорегирование, т.е. при Ki=0 температура никогда не достигнет требуемого значения. С другой стороны уже при значении Ki=1 перерегулирование системы слишком велико, нагрев происходит до ~73°С. На практике это недопустимо, т.к. бетта-амилаза инктивируется и никакого осахаривания не произодет.
    03.png
    Дифференциальная составляющая определяет реакцию системы на изменение ошибки регулирования. На рис. 3 видно, что при больших (очень больших) значениях Kd система начинает сопротивляться регулятору и идет вразнос, причем чем больше Kd, тем больше колебания системы.
    04.png
    Интересно заметить, что до этого момента рассматривалось влияние параметров ПИД-регулятора на систему по отдельности (один параметр меняется, а два других остаются постоянными). И это влияние довольно несложно. Однако все меняется если отслеживать влияние изменения нескольких параметров. Так можно заметить, что увеличение параметра Kp снижает влияние Ki. На рис. 4. видно, что перерегулирование при Kр=10 значительно больше, чем при Kр=50, а в случае Kр=100 оно не превышает пары градусов.
    Думаю если поиграть с параметрами можно найти много таких интересных особенностей.

    Выводы. Необходимо отметить, что прошивка ArdBir позволяет регулировать значения параметров в очень узком диапазоне. Поэтому если считать, что значения параметров должны находится в интервале 0...100, мне представляется разумным устанавливать Kр максимально возможным, а Ki снижать до нуля (единица слишком много). Kd вообще в таком малом интервале значения не способна повлиять на регилятор, потому может выставляться любым.
    А вообще во время этой работы у меня сложилось ощущение, что ПИД-регулирование вообще не нужно. Инерционность системы огромна, а интервал регулирования очень мал. Так к примеру в моей модели при количестве воды 30 л, нагревателе 2кВт и шаге регулирования 3 сек. получается следующее: прирост температура за время шага составляет максимум 0,05°С, что составляет 0,08% от конечной температуры - ничтожная величина. При такой инерции системы никого ПИД вообще не нужно, достаточно банального порогового регулятора.

    Самокритика. Где я мог ошибиться или что надо доделать? Ну во-первых, надо конечно разобраться с теплопотерями. Может статься так, что при высоких температурах эти потери достаточно высоки чтобы их влияние приходилось регулировать. Во-вторых надо конечно плотнее разбираться с методами синтеза регуляторов, а не заниматься научным "тыком".

    ЗЫ. Почему-то не могу прикрепить excel-файл с расчетами. Кто захочет сам поиграться - пишите, скину на почту.

    ЗЫЫ. Мат модель в приложении

    30.11.2014 - Внес небольшие изменения. Ссылки могут видеть только зарегистрированные пользователи. Зарегистрируйтесь или авторизуйтесь для просмотра ссылок!
     

    Вложения:

    • PID_v1.1.zip
      Размер файла:
      1,6 МБ
      Просмотров:
      71
    Последнее редактирование: 30 ноя 2014
    • Полезно Полезно x 3
    • Класс Класс x 2
  8. HBPro

    HBPro Admin Команда форума

    Регистрация:
    10.02.2012
    624
    158
    flexx, молодец, научно подошел к вопросу
    Его надо заархивировать, чтобы приложить.
     
  9. flexx

    flexx Active Member

    Регистрация:
    22.08.2014
    278
    25
    В последнем варианте учел изменение теплоемкости воды при изменении температуры. В общем не лишнее, но на самом деле баловство, т.к. изменения теплоемкости при нагреве составляют около 0,5%.

    Вопрос - как честь теплопотери?
     
  10. HBPro

    HBPro Admin Команда форума

    Регистрация:
    10.02.2012
    624
    158
    Где-то я уже похожее видел, вот ведь, у меня же был такой расчет от того самого австралийца, который и написал исходный код для контроллера. Извиняюсь :oops:, что не выложил его ранее.
     

    Вложения:

  11. Виталий НК

    Виталий НК Участник

    Регистрация:
    09.12.2013
    29
    16
    flexx, ты маньяк и красавчик в одном лице!
    Я ничего не понял, но у меня проблема. Подскажи как её решить.
    При задаче температурной паузы к примеру 68 гр, у меня температура сусла снаружи бункера выше на 1-2 гр, т.е 69-70 гр., а с верху бункера где стекает сусло 66-67 гр.
    И я не могу понять как мерить температуру сусла - за бункером или сверху бункера???.
    Как правильно настроить Брау?
    У меня при температуре больше 50 гр. датчик начинает врать на 1,5-2 гр.
    Т.е. мне приходится при температуре 68 гр. выставлять на контролере 66,5. Как внести поправку на датчик или в пошивку? Гильза от HBpro.
     
  12. flexx

    flexx Active Member

    Регистрация:
    22.08.2014
    278
    25
    Я честно не особо понял, потому давай разбираться по пунктам.

    Ну по-моему все логично, сусло нагревается снаружи бункера, а датчик температуры, который образует обратную связь с контроллером расположен внутри бункера. Т.е. ТЭН греет сусло, и пока нагретое до 68° сусло дотечет до датчика, прогреет гильзу и контроллер даст команду на отключение нагрева проходит время в течение которого ТЭН успевает нагреть сусло еще на градус другой. Пока перегретое сусло протекает через бункер оно немного остывает и на выходе получаем как раз те самые 66-67°.

    Самое правильное мерить температуру непосредственно внутри бункера. Вот только вопрос: как это сделать? Ответ: можно и внутри бункер, но слишком геморойно с инженерной точки зрения. Поэтому температуру сусла меряют перед бункером - т.е. снизу бункера. Смотри, я так понимаю у тебя получается следующая схема: сусло до подачи в бункер немного перегревается (69-70°), на выходе из бункера у тебя - 66-67°. Значит внутри как раз требуемые 68°!!! По-моему все в норме.

    Как ты узнал что датчик врет? Проверял китайским термометром? Как по мне, так для того чтобы узнать врет ли датчик надо:
    1. погрузить его в воду со льдом (температура такой воды заведомо 0°С) и посмотреть на показания датчика.
    2. погрузить его в кипяток (температура 100°С) и посмотреть на показания датчика.
    3. сравнить показания датчика при средней температуре с показаниями лабораторного ртутного термометра.
    При этом надо помнить, про атмосферное давление, т.к. при разном давлении температура кипения и кристаллизации отличаются от 0° и 100°.

    ну в настройках должен быть пункт вроде "correction". Там можно задавать величину которую контроллер будет вычитать или прибавлять к показаниям датчика.

    Поясни что конкретно ты имеешь в виду. ПИД или что другое?
     
  13. flexx

    flexx Active Member

    Регистрация:
    22.08.2014
    278
    25
    Немного переписал и доработал модель.
    1. Исправил ошибки, теперь все в точности как у ArdBir.
    2. Добавил графики по параметрам.
    3. Добавил расчет теплопотерь.

    В связи с изменениями немного поменялась реакция модели на Ki и Kd. Описывать ее не буду - сами разберетесь поигравшись с параметрами.
    Про теплопотери надо оговориться, расчет очень приблизительный и не учитывает многих факторов. Что поменялось фактически: раньше теплопотери считались постоянным, теперь они зависят от разницы температур между суслом и окр. средой. Однако для их точного расчета надо знать большое количество теплофизических параметров. Значения этих параметров, нагугленные в интернете, дают уж очень большие теплопотери - порядка 500 Вт. Не верю!!! Когда руки дойдут - буду ставить эксперимент на своем клоне, тогда и посмотрим.
     

    Вложения:

    • PID_v1.1.zip
      Размер файла:
      1,6 МБ
      Просмотров:
      108
  14. Smk787

    Smk787 Участник

    Регистрация:
    08.01.2015
    36
    3
    ЕСть ли у кого данные пид регулятора для 50 литрового клона? Если есть выложите пожалуйста.
     
  15. EGoR

    EGoR Участник

    Регистрация:
    03.02.2015
    43
    2
    Всем доброго дня!
    Помогите разобраться в чем дело, собрал клон 20-30л. ТЭН стоит 2 кВт.
    P.I.D параметры Kp-100, Ki-100 Kd-0, Windowsize-3000
    Бак утеплен, температура поднимается очень долго, примерно 1 градус за 5-8 мин.
    для кипячения пришлось закинуть кипятильник, чтоб по быстрей поднять температуру.
    В теме про ТЭНы прочел что 1 градус за 1мин. поднимать должно.
    В чем может быть дело?
     
  16. Ers

    Ers Admin Команда форума

    Регистрация:
    02.01.2012
    109
    13
    Имя:
    Иван
    Точно? Померяй отдельно сопротивление.
    При нагреве ТЭН включен постоянно?
     
  17. EGoR

    EGoR Участник

    Регистрация:
    03.02.2015
    43
    2
    ТЭН покупал у dragon
    Напругу не мерил на ТЭНе, индикатор горит постоянно
     
  18. HBPro

    HBPro Admin Команда форума

    Регистрация:
    10.02.2012
    624
    158
    Ссылки могут видеть только зарегистрированные пользователи. Зарегистрируйтесь или авторизуйтесь для просмотра ссылок!
     
  19. Ers

    Ers Admin Команда форума

    Регистрация:
    02.01.2012
    109
    13
    Имя:
    Иван
    Нужно померить не напряжение, а сопротивление в отключенном состоянии. По нему уже можно посчитать - перепроверить мощность.
    По расчету Ссылки могут видеть только зарегистрированные пользователи. Зарегистрируйтесь или авторизуйтесь для просмотра ссылок! 30 литров 2 кВт будут греть как раз градус в минуту.
     
  20. EGoR

    EGoR Участник

    Регистрация:
    03.02.2015
    43
    2
    Вечером, всё проверю
    И сопротивление и параметры поменяю.
    по результату отпишусь.
    спасибо за помощь!!!
    --- сообщения объединены, 21 сен 2015, дата первого сообщения: 21 сен 2015 ---
    Променял P.I.D параметры как указал HBPro, клон стал нагревать 1градус за минуту.
    Спасибо огромное!