Обновить

Комментарии 16

Подбор PID-коэффициентов - это вообще отдельное ремесло и наука, и здесь мы этого вряд ли раскроем…

это все , что нужно знать про ПИД.... к большому сожалению. хорошо, когда процесс быстрый - можно методом научного тыка перебрать много значений. а когда длительный... можно затянуться на недели...

А процесс медленный даже при подаче максимального сигнала управления? Если так и при подаче любого фиксированного сигнала управления выходная величина монотонная ограниченная функция, то можно снять кривую разгона и по ней определить коэффициенты.

да, так называемая подача "единичного воздействия" и его снятие - построение кривых. и по ним определять. вот только как определить - в этом и хитрость, наука... а нужно ещё учесть не линейность воздействия .к примеру управление нагревом через длительность включения тэн в периоде сетевого напряжения... давно была такая задача , до сих пор удивляюсь как удалось её решить за реальное время :)

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

Да, когда банальная задача научить робота ехать вдоль линии превращается в еще тот квест

Регулирование компрессорного цеха на газоперекачке. Время устаканивания - полчаса. Капец, долгая настройка)))

ПИД на основе наблюдателя сам подбирает коэффициенты через несколько циклов работы, наблюдая за реакцией системы. Часто используется в ПЛК.

В Овен-ТРМ 500 тоже есть функция автоподбора коэффициентов.

Много где есть. Но работает не то, чтобы отлично. В частности потому, что для каждой температуры коэффициенты хорошоб свои иметь.

Вот в серводвигателях для чпу управляемых по положению автоподбор отличный, но там сдается мне всё сложнее устроено.

В ЧРП тоже есть и не плохо работает, но там модель поля просчитывается.

Здесь уровень воды должен быть «полным». Если есть ненулевая ошибка

то клапан приоткрывается и подаёт управляющий сигнал u(t), пропорциональный этой ошибке:

Поздравляю, Ваша система борьбы с затоплением стала причиной затопления. При первоначальном заполнении уровень неизбежно превысил нужный, но Вы любое отклонение трактуете как сигнал для включения воды.

Почему же? Мы все равно клипуем от 0 до любого положительного.

Как будет обрабатываться ошибка "уровень воды превысил необходимый"?

Получится отрицательное значение, его округлим до 0. Вода не пойдет, но ошибка останется ;)

Это вы сейчас так думаете, закладываясь на то, что используемые вами агрегаты не просто имеют то поведение, которое Вы считаете разумным, но и то, что это поведение сохранится в будущем, включая замену агрегатов. :)

Как странно звучит слово "ошибка" по отношению к дельте в глазах программиста... )

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации