Сообщение от
Dallas
В технической литературе встречаю понятие аналоговый и цифровой регулятор. При малом периоде дискретизации цифровой регулятор ведет себя, как аналоговый.
Если период дискретизации увеличивать, то различия становятся существенными.
Цифровой алгоритм ПИ регулятора
e = w - x; //Рассоглосование
esum = esum + e; // И составляющая
if (esum < -400) {esum = -400;} //Ограничение И части
if (esum > 400) {esum = 400;}
y = Kp*e + Ki*Ta*esum; //Расчет выходной величины
if (y < 0) {y = 0;} //Ограничение выхода регулятора
if (y > 255) {y = 255;}
PWM = y; //Передача на положение ИМ
Может кто-то прокомментировать, объяснить как это все работает.
Важный момент Ta период дискретизации. Вычисления проводятся через период Ta.
Например, часто для отопления достаточно периода дискретизации 1 минута
PS. Посмотрел несколько реализаций ПИД на форуме, нигде dt (период дискретизации) не привязывается к реальному выполнению расчетов.
У кого-то 0,01 с, у кого-то 1 с. А как реально должно быть?
Я думаю, что если дискретизация 0,01 с, то и алгоритм должен расчитываться 1 раз в 0,01 с. А он рассчитывается как прибор успевает один такт сделать. Сколько это времени у ПР200 занимает не знаю.
Как реализован функциональный блок ПИД в Owen Logic - у него нет такого параметра dt, те. можно предположить, что он фиксированный, что есть неправильно или адаптируемый под скорость вычисления, тогда вопрос как это сделано.
Вывод: регуляторы ПИД, которые посмотрел на форуме являются приближением к аналоговым. Цифровых регуляторов ПИД, чтобы период дискретизации совпадал с расчетами не обнаружено.
Недостатком такого аналогового режима работы ПИД считаю:
1. Лишняя нагрузка на процессор. Для управляющего воздействия нужен один расчет за период дискретизации, а расчеты выполняются постоянно.
2. Невозможность математически рассчитать коеффициенты ПИД, т.к. такой аналоговый регулятор может серьезно не совпадать с объектом во времени.
Возможно из-за этого получаются разные косяки с настройками, как вы думаете?