Константин, CANNY пишет:Dmitry30Rus пишет:Я сделал тестовый вариант программы буст контроллера с 3D картой наддува по оборотам двигателя и положению дроссельной заслонки с неким подобием физической модели чтобы оценить работоспособность логики. Все работает.
Отличная работа! Спасибо, что поделились результатами вашего труда!
Dmitry30Rus пишет:Программа выше использует PID контроллер из соседней ветки. Я сегодня проверял логику работы этого модуля, он написан неверно.
Что именно неверно в PID-регуляторе?
не знаю как выкладывать на этом форуме картинки в тексте, мне пишет "Слишком много ссылок в сообщении. Разрешено 0 ссылок". Поэтому просто приложу скрин как файл.
В данной программе модель регулятора наддува взята как в бойлере, т.е. вкл или выкл. Если же изменить модель на реальную для регулятора наддува, т.е. величина PID будет описывать величину открытия клапана наддува от 0 до 100%, вся программа летит в тартарары.
Причины такого поясню ниже:
Итак например рассмотрим сумматор параметров P, I, D. Они в сумме должна дать некую величину, которая будет описывать величину воздействия (в данном случае процент открытия клапана наддува), которая будет уменьшать возмущение (в данному случае разницу между фактическим наддувом и желаемым).
Когда разница между желаемым и фактическим наддувом велика, большую часть на себя должен взять P параметр. Он так и называется - пропорциональный. Потому что он тем больше, чем больше разница между уставкой и фактом. И он действительно большой - 61286. Что близко к предельной величине в вычислениях Канни 65536.
Но смотрим что происходит дальше - к P величине добавляется I величина, которая тоже близка к предельной величине, а именно 64303. И в сумме они дают 125589? Нет, Канни не понимает цифр больше 65536 и выдает их сумму как если бы вычисления пошли на второй круг и выдает результат суммы P и I как 60053.
Я не спорю, логика PID регулятора в целом описана верно, за это огромный респект. Но не учтены все ограничения Канни в вычислениях. Разве что учли необходимость суммирования отрицательных величин, хотя довольно необычным способом. И то, что регулятор работает для режима ВКЛ/ВЫКЛ, говорит о большом запасе прочности самой PID логики к ошибкам в ходе ее вычислений.
После исправления этих ограничений, PID регулятор работает так как должен для всех режимов работы включая правильное определение величины открытия регулирующего клапана, а именно:
P параметр - увеличивается пропорционально разницы между уставкой и фактом, но никогда не достигнет ее.
I параметр - выполняет роль корректировки той самой величины, на которую не достигнет P параметр. Кстати вместо него можно поставить константу - конечную величину.
D параметр - сглаживает возможные колебания. В целом не самый важный параметр, если I ведет себя адекватно и не вводит систему в дисбаланс. В некоторых случаях можно вообще не использовать.
Вложений в сообщении before SV.JPG 736.46 кб, скачивался 47 раз, последний раз 2022-05-09