Масштабирование PID (Пропорционально-Интегральная Производная) Выход - PullRequest
0 голосов
/ 08 октября 2010

Я реализовал функцию PID по формуле:

correction = Kp * error + Kd * (error - prevError) + kI * (sum of errors)

Что я должен сделать, чтобы мой выходной сигнал находился в определенном диапазоне?скажем, 0-255 Если я игнорирую какое-либо значение, не находящееся в диапазоне от 0 до 255, это вызывает колебательное поведение?

1 Ответ

0 голосов
/ 21 марта 2011
correction = ...

correction2 = correction;
if(correction < least) {correction2 = least;}
if(correction > most) {correction2 = most;}

Затем используйте коррекцию и коррекцию2 в качестве выходного сигнала, где это уместно.

Не корректируйте на основе коррекции2, а затем удивляйтесь, почему оно ведет себя странным образом, когда вы достигаете минимального края <->больше всего.

...