DIA00215 ПИД-регулятор для поддержания темепературы Пропорционально-интегрально-дифференцирующий (ПИД) регулятор — устройство в управляющем контуре с обратной связью. Используется в системах автоматического управления для формирования управляющего сигнала с целью получения необходимых точности и качества переходного процесса. ![]() Для настройки коэффициентов ПИД-регулятора требуется сначала получить периодический отклик при воздействии на систему управляющим воздействием Далее Тут Однако, если процесс ассиметричный, к примеру, остывание системы быстрее чем нагрев, то необходимо учесть поправку к этой ошибке Для определения поправки, охладим систему на максимальной мощности, и потом дождёмся, когда она вновь нагреется. ![]() Так примерно мы сможем определить разницу в характерных временах для двух напревлений процесса и умножать либо делить разницу Теперь нам надо найти ![]() ![]() Для нашей системы Тогда согласно теории для управляющего воздействия на шаге
где Формула содержит как дифференциальную часть, где учитывается разница ошибки на текущем и предыдущем шаге, так и интегральная накопительная ошибка. В виде программного кода в прошивке прибора данный алгоритм реализован следующим образом: PROCEDURE SetPeltPWM (data: INTEGER); CONST dt = 0.1; delKp = 2.0; Ku = 105.0; Tu = 1.1; (* 1.1 c *) Kp = 63.0; (* Ku * 0.6 *) Td = 0.1375; (* Tu * 0.125 *) Kip = 1.818; (* 1 / (0.5 * Tu) *) VAR e, u: REAL; BEGIN currentTemp := data; e := FLT(data - temp); IF e > 0.0 THEN (* температура ниже заданной *) e := e * delKp ELSE e := e / delKp END; eInt := eInt + e; u := Kp * (e + Td * (e - ePr) / dt + Kip * eInt * dt); ePr := e; u := - u; coolPWM := FLOOR(u) + 4000; IF coolPWM < 0 THEN coolPWM := 0; eInt := eInt - e; ELSIF coolPWM > 7999 THEN coolPWM := 7999; eInt := eInt - e; END; PWM.SetTIM5(1, coolPWM); END SetPeltPWM;
![]() Ivan Denisov 01 Mar 2023 07:11
© International Open Laboratory for Advanced Science and Technology — MOLPIT, 2009–2025
|