Масштабирование PID (Пропорционально-Интегральная Производная) Выход
Я реализовал функцию PID по формуле:
correction = Kp * error + Kd * (error - prevError) + kI * (sum of errors)
Что я должен сделать, чтобы сохранить мой вывод в определенном диапазоне? скажем 0-255 Если я игнорирую какое-либо значение, не находящееся в диапазоне от 0 до 255, это вызывает колебательное поведение?
1 ответ
correction = ...
correction2 = correction;
if(correction < least) {correction2 = least;}
if(correction > most) {correction2 = most;}
Затем используйте коррекцию и коррекцию2 в качестве выходных данных, где это необходимо.
Не исправляйте на основе коррекции2, а затем удивляйтесь, почему она ведет себя странным образом, когда вы достигаете грани наименьшего <-> большинства.