Комментарии 16
Подбор PID-коэффициентов - это вообще отдельное ремесло и наука, и здесь мы этого вряд ли раскроем…
это все , что нужно знать про ПИД.... к большому сожалению. хорошо, когда процесс быстрый - можно методом научного тыка перебрать много значений. а когда длительный... можно затянуться на недели...
А процесс медленный даже при подаче максимального сигнала управления? Если так и при подаче любого фиксированного сигнала управления выходная величина монотонная ограниченная функция, то можно снять кривую разгона и по ней определить коэффициенты.
да, так называемая подача "единичного воздействия" и его снятие - построение кривых. и по ним определять. вот только как определить - в этом и хитрость, наука... а нужно ещё учесть не линейность воздействия .к примеру управление нагревом через длительность включения тэн в периоде сетевого напряжения... давно была такая задача , до сих пор удивляюсь как удалось её решить за реальное время :)
На медленных процессах, производствах, управление лучше делать через mpc. Там слишком много ограничений и оптимизации, чтобы на одном вход-выход вывозить.
Да, когда банальная задача научить робота ехать вдоль линии превращается в еще тот квест
Регулирование компрессорного цеха на газоперекачке. Время устаканивания - полчаса. Капец, долгая настройка)))
ПИД на основе наблюдателя сам подбирает коэффициенты через несколько циклов работы, наблюдая за реакцией системы. Часто используется в ПЛК.
В Овен-ТРМ 500 тоже есть функция автоподбора коэффициентов.
Много где есть. Но работает не то, чтобы отлично. В частности потому, что для каждой температуры коэффициенты хорошоб свои иметь.
Вот в серводвигателях для чпу управляемых по положению автоподбор отличный, но там сдается мне всё сложнее устроено.
Здесь уровень воды должен быть «полным». Если есть ненулевая ошибка
то клапан приоткрывается и подаёт управляющий сигнал
, пропорциональный этой ошибке:
Поздравляю, Ваша система борьбы с затоплением стала причиной затопления. При первоначальном заполнении уровень неизбежно превысил нужный, но Вы любое отклонение трактуете как сигнал для включения воды.
Почему же? Мы все равно клипуем от 0 до любого положительного.
Как будет обрабатываться ошибка "уровень воды превысил необходимый"?
Получится отрицательное значение, его округлим до 0. Вода не пойдет, но ошибка останется ;)
Как странно звучит слово "ошибка" по отношению к дельте в глазах программиста... )

ПИД-регулятор — это весело