Разработайте и моделируйте явный образцовый прогнозирующий контроллер
Библиотека Simulink MPC
Блок Explicit MPC Controller использует следующие входные сигналы:
Измеренный объект выходные параметры (mo
)
Ссылка или заданное значение (ref
)
Измеренное воздействие объекта (md
), если любой
Основное отличие - то, что блок Explicit MPC Controller использует закон о надзоре поиска по таблице во время каждого интервала управления вместо того, чтобы решить квадратичную программу. Уменьшаемое онлайновое вычислительное усилие выгодно в приложениях, требующих короткого интервала управления. Первичный компромисс является более тяжелым оффлайновым вычислительным усилием определить закон о надзоре и больший объем потребляемой памяти, чтобы сохранить его. Комбинаторный символ этого вычисления ограничивает свое использование приложениями с относительно немногими вход, вывод, и переменные состояния, короткий горизонт прогноза и немного выходных ограничений.
Явный Контроллер MPC поддерживает только подмножество дополнительных функций MPC, как обрисовано в общих чертах в следующей таблице.
Поддерживавшие функции | Неподдерживаемые функции |
---|---|
|
|
Блок Explicit MPC Controller имеет следующие группировки параметра:
Явный контроллер MPC объект, содержащий закон о надзоре, который будет использоваться. Это должно существовать в рабочей области. Используйте команду generateExplicitMPC
, чтобы создать этот объект.
Дополнительный объект mpcstate
, задающий начальное состояние контроллера. По умолчанию блок использует свойство Model.Nominal
объекта контроллера.
Если ваш диспетчер использует оценку состояния по умолчанию, этот импорт маркирован mo
. Соедините этот импорт в измеренные выходные сигналы объекта. Диспетчер MPC использует измеренный объект выходные параметры, чтобы улучшить его оценки состояния.
Включить пользовательскую оценку состояния, в разделе General, Use custom estimated states instead of measured outputs проверки. Проверка этой опции изменяет метку на этом импорте в x[k|k]
. Соедините сигнал, который обеспечивает оценки состояния контроллера (объект, воздействие и шумовые образцовые состояния). Используйте пользовательские оценки состояния, когда альтернативный метод оценки рассматривается выше встроенного средства оценки или когда состояния полностью измеримы.
В каждый момент управления сигнал ref
должен содержать текущие ссылочные значения (цели или заданные значения) для выходных переменных ny, где ny является общим количеством выходных параметров, включая измеренные и неизмеренные выходные параметры. Поскольку этот блок не поддерживает ссылочный предварительный просмотр, ref
не может быть задан как матрица.
Выходной порт mv
обеспечивает сигнал, задающий переменные, которыми управляют, для управления объектом. Контроллер обновляет его выходной порт mv
в каждый момент управления использование закона о надзоре, содержавшегося в явном контроллере MPC объект. Если оценка закона о надзоре перестала работать, этот сигнал неизменен; то есть, это сохранено в предыдущем успешном результате.
Добавьте импорт (md
), с которым можно соединить векторный сигнал, содержащий элементы nmd, где nmd является количеством измеренных воздействий.
Поскольку этот блок не поддерживает измеренный предварительный просмотр воздействия, md
не может быть задан как матрица.
Добавьте импорт (ext.mv
), с которым вы соединяете векторный сигнал, который содержит фактические переменные, которыми управляют, (MV), используемые на объекте. Диспетчер использует этот сигнал обновить их оценки состояния контроллера в каждом интервале управления. Используя этот импорт улучшает точность оценки состояния, когда MVS, используемый на объекте, отличается от MVS, вычисленного блоком, например, должным сигнализировать о насыщении или условии переопределения.
Используя эту опцию может вызвать алгебраический цикл в модели Simulink®, поскольку существует прямое сквозное соединение от импорта ext.mv
до выходного порта mv
. Чтобы предотвратить такие алгебраические циклы, вставьте блок Блок памяти или Unit Delay.
Для получения дополнительной информации смотрите соответствующий раздел страницы с описанием блока MPC Controller.
Добавьте выходной порт (status
), который указывает ли последняя явная оценка закона о надзоре MPC, за которой следуют. Выходной порт обеспечивает скалярный сигнал, который имеет одно из следующих значений:
1 — Успешная явная оценка закона о надзоре
0 — Отказ: Один или несколько параметров закона о надзоре из области значений.
– 1 — Неопределенный: параметры Закона о надзоре были в допустимой области значений, но экстраполяция была необходима.
Если status
или 0 или –1, выходной порт mv
остается в последнем известном хорошем значении.
Добавьте выходной порт (region
), обеспечивающий индекс многогранной области, используемой в последней явной оценке закона о надзоре (скаляр). Если оценка закона о надзоре перестала работать, сигнал в этом выходном порту равняется нулю.
Добавьте выходной порт (est.state
) для оценок состояния контроллера, x[k|k]
, в каждый момент управления. Эти оценки включают объект, воздействие и шумовые образцовые состояния.
Замените mo
на импорт x[k|k]
для пользовательской оценки состояния, как описано в Необходимом Inports.
Задайте тип данных блока переменных, которыми управляют, как одно из следующего:
'double'
Плавающая точка двойной точности (значение по умолчанию)
единственный
Плавающая точка с одинарной точностью
Если вы реализуете блок на цели с одинарной точностью, задаете тип выходных данных как single
.
Для примера симуляции с одинарной точностью и с двойной точностью и генерации кода для контроллера MPC, смотрите Симуляцию и Генерацию кода Используя Simulink Coder.
Чтобы просмотреть типы данных порта в модели, в Редакторе Simulink, выбирают Display > Signals & Ports Port Data Types.
Используйте шаг расчета родительской подсистемы как шаг расчета блока. Выполнение так позволяет вам условно выполнять этот блок в Подсистеме вызова функций или Инициированных блоках Subsystem. Для примера смотрите Используя диспетчера MPC Блока В Вызове функции и Инициированных Подсистемах.
Необходимо выполнить Подсистему вызова функций или Инициированные блоки Subsystem на уровне частоты дискретизации контроллера. В противном случае вы видите неожиданные результаты.
Чтобы просмотреть шаг расчета блока, в Редакторе Simulink, выбирают Display > Sample Time. Выберите Colors, Annotations или All. Для получения дополнительной информации, информация о Шаге расчета вида на море (Simulink).
Добавьте импорт (switch
), вход которого задает, оценивает ли контроллер его закон о надзоре. Если входной сигнал является нулем, контроллер обычно ведет себя. Если входной сигнал является ненулевым, блок Explicit MPC Controller выключает оценку контроллера. Это действие уменьшает вычислительное усилие, когда контроллер, вывод не нужен, такой как тогда, когда система действует вручную или другой контроллер, вступил во владение. Однако контроллер продолжает обновлять его оценки внутреннего состояния обычным способом. Таким образом это готово возобновить вычисления оптимизации каждый раз, когда switch
сигнализирует о возвратах к нулю. В то время как оценка контроллера выключена, блок MPC Controller передает текущий сигнал ext.mv
выводу контроллера. Если импорт ext.mv
не включен, контроллер, которым вывод сохранен в значении, которое это имело, когда оценка была отключена.