Как настроить ПИД-контроль, если постоянные времени контролируемой системы являются переменными?

9

Общее описание для непрерывного ПИД-контроллера записывается так: Лучший значение констант , и для заданной управляемой системы будет зависеть от ее постоянной (ей) времени, будь то система система и т. д. ...

y(t)=Kpe(t)+Ki0te(τ)dτ+Kdde(t)dt
KpKiKdPT1PT2

Что вы делаете, если постоянная времени такой системы является переменной. , он варьируется между и ( ). Как вы проектируете PID-константы?TaTbTa<Tb

Джон Х.К.
источник

Ответы:

8

Одним из способов было бы реализовать некоторую форму адаптивного управления. Если ваш диапазон временных констант невелик и известен, вы можете использовать то, что называется «расписанием усиления», где вы заранее определяете все временные константы, с которыми вы будете иметь дело (надеюсь, это конечно), и используете логику if / then для определения PI и D. Может быть сложно убедиться, что вы охватили достаточно изменчивости, чтобы обеспечить стабильность и производительность во всем диапазоне. Хорошая история успеха для планирования усиления - вертолет Chinook. Это может быть сделано.

Если у вас нет реалистичного прогноза относительно того, какими будут временные константы, вы можете изучить использование адаптивного контроля модели (MRAC). В этой схеме управления у вас есть эталонная модель (ваша идеальная система) с выбранным вами ПИД-регулятором. MRAC сводит к минимуму ошибку между тем, что фактически делает установка, и тем, что делает ваша эталонная модель. Таким образом, вы заставляете свой изменяющийся завод действовать как ваша модель LTI.

Или вы можете попробовать использовать адаптивный контроллер идентификации модели (MIAC). Здесь схема управления выполняет идентификацию системы в режиме реального времени и использует закон обновления для вашего контроллера. Этот требует самого передового навыка из трех идей.

Поскольку ваша система изменяет временные константы с течением времени, она больше не является LTI. Это означает, что вам нужно либо планировать усиление (довольно просто, если вы знаете диапазон постоянных времени), либо идентифицировать систему с помощью закона обновления для вашего PID.

willpower2727
источник
почему бы не динамически выровнять временные шаги, спроектировав для большего временного шага и сделать программное обеспечение квазиреальным, ожидая во время каждой итерации перед отправкой команд привода?
Гюркан Четин
@ GürkanÇetin чего ждет программное обеспечение? Можете ли вы помочь мне понять, что происходит, когда программное обеспечение намеренно задерживает обновление элемента управления?
willpower2727
Если я правильно понимаю, существует неизвестная задержка времени на каждом цикле итераций вычислений (т. Е. Из-за связи ввода-вывода или других задач ЦП). Это общая проблема для цели не в реальном времени (ОС). Итак, настраивая контроллер на заранее определенный (длинный) delta_t (скажем, 100 мсек), а затем на каждой итерации, пытаясь настроить общее время цикла до этого delta_t (предположим, что алгоритмы управления завершены к 80-й мсек, подождите дополнительные 20 мсек. ) подавать управляющие команды; может работать, если известно, что все другие задачи занимают менее 100 мс (минус время вычисления закона управления).
Гюркан Четин
@ GürkanÇetin, если я правильно понимаю исходный вопрос, вопрос заключается в том, как контролировать, когда физические аспекты установки изменяются со временем (т. Е. Ракета теряет массу со временем), а не в том, как справляться со временем выполнения нереального рабочего цикла. Я думаю, что ваше предложение может быть верным с точки зрения работы с нереальной ОС, работающей с контроллером.
willpower2727
о да. Я ошибся вопросом. В этом случае, если установка меняется во времени (внезапно или постепенно), я бы сказал, что реконфигурация - это еще одна возможность. Конечно, работает, только если вы знаете, изменение модели динамики. Как потеря массы, расход топлива, извлечение / убирание шасси и т. Д.
Гюркан Четин