Explicit MPC Controller

Явный прогнозирующий контроллер модели

  • Библиотека:
  • Model Predictive Control Toolbox

  • Explicit MPC Controller block

Описание

Блок Explicit MPC Controller использует следующие входные сигналы:

  • Либо измеренные выходы объекта управления (mo) или пользовательская оценка состояния (x[k|k])

  • Ссылка или уставка (ref)

  • Измеренное нарушение порядка объекта (md), при наличии

Блок Explicit MPC Controller использует интерполяционную таблицу, чтобы сохранить предварительно вычисленный кусочно-аффинный оптимальный закон управления вместо решения квадратичной задачи оптимизации программирования во время выполнения в каждом контрольном интервале, подобном блоку MPC Controller. Учитывая ту же задачу MPC, два блока возвращают одно и то же решение. Блок Explicit MPC Controller требует меньше вычислительных усилий в режиме онлайн, что полезно для приложений, которым нужен короткий контрольный интервал. Однако он имеет более тяжелые автономные вычислительные усилия и больший объем памяти. Действительно, комбинаторная природа явного MPC ограничивает его использование приложениями с относительно небольшим количеством входов, выходов и переменных состояния, коротким горизонтом предсказания и небольшими выходными ограничениями.

Этот Explicit MPC Controller поддерживает только подмножество необязательных функций MPC, как показано в следующей таблице.

Поддерживаемые функцииНеподдерживаемые функции
  • Встроенный (фильтр Калмана) и пользовательская оценка состояния

  • Выходной порт для результатов оценки состояния

  • Входной порт внешнего управляемого переменного сигнала обратной связи

  • Данные блока с одной точностью (по умолчанию это двойная точность)

  • Унаследованные шаги расчета

  • Настройка в режиме онлайн (корректировка веса штрафов)

  • Оперативные корректировки ограничений

  • Интерактивные манипулированные переменные целевые корректировки

  • Эталонное и/или измеренное предпросмотр нарушения порядка

Порты

Вход

расширить все

Необходимые входные параметры

Измеренные выходы, заданное как вектор сигнал. Блок использует измеренные выходы объекта для улучшения оценок его состояния. Если ваш контроллер использует оценку состояния по умолчанию, вы должны подключить измеренные выходы объекта к mo входному порту. Если ваш контроллер использует пользовательскую оценку состояния, вы должны подключить предполагаемое состояние объекта к x[k|k] входному порту.

Зависимости

Чтобы включить этот порт, очистите параметр Use custom state estimation instead of using the built-in Kalman filter.

Пользовательская оценка состояния, заданная как вектор сигнал. Блок использует связанные оценки состояния вместо оценки состояний с помощью встроенного оценщика. Если ваш контроллер использует пользовательскую оценку состояния, вы должны подключить текущую оценку состояния к x[k|k] входному порту. Если ваш контроллер использует оценку состояния по умолчанию, вы должны подключить измеренный выход к mo входному порту.

Даже при том, что состояния модели шума (если таковые имеются) не используются в оптимизации MPC, пользовательский вектор состояния должен содержать все состояния, заданные в mpcstate объект контроллера, включая объект, нарушения порядка и состояния шумовой модели.

Используйте пользовательские оценки состояния, когда альтернативный метод оценки рассматривается как превосходящий встроенный оценщик или когда состояния полностью измеримы.

Зависимости

Чтобы включить этот порт, выберите параметр Use custom state estimation instead of using the built-in Kalman filter.

В каждый момент управления ref сигнал должен содержать текущие опорные значения (цели или уставки) для ny выходных переменных, где ny - общее количество выходов, включая измеренные и не измеренные выходы. Поскольку этот блок не поддерживает предварительный просмотр ссылок, ref должен быть вектор сигналом.

Дополнительные входы

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

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

Зависимости

Чтобы включить этот порт, выберите параметр Measured disturbances.

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

  • Вы знаете, что ваш контроллер не всегда контролирует объект.

  • Фактические сигналы СН, подаваемые на объект, могут потенциально отличаться от значений, генерируемых контроллером, таких как насыщение сигнала управления.

Оценка состояния контроллера принимает, что MV являются кусочно-постоянными. Поэтому в tk времени значение ext.mv должно содержать эффективные MV между временем tk–1 и tk. Для примера, если MV фактически изменяются в течение этого интервала, можно задать усредненное по времени значение, рассчитанное в tk времени.

Примечание

  • Подключите ext.mv к сигналам СН, фактически примененным к объекту в предыдущем контрольном интервале. Обычно эти сигналы СН являются значениями, генерируемыми контроллером, хотя это не всегда так. Например, если ваш контроллер находится в автономном режиме и работает в режиме отслеживания (то есть контроллер выход не управляет объектом), то подача фактического управляющего сигнала на ext.mv может помочь достичь бесшумной передачи, когда контроллер переключается обратно в оперативном режиме.

  • Когда контроллер управляет объектом, вставьте блок Memory или Unit Delay блок, чтобы передать сигнал MV, приложенный к объекту в предыдущем контрольном интервале. Это также избегает прямого сквозного соединения от входного порта ext.mv к выходному порту mv, поэтому предотвращает алгебраические циклы в Simulink® модель.

Для примера, который использует внешний управляемый входной порт переменной для бесшумной передачи, смотрите Контроллер Online и Offline с бесшумной передачей.

Зависимости

Чтобы включить этот порт, выберите параметр External manipulated variable.

Чтобы выключить оценку контроллера, соедините switch с ненулевым сигналом.

Отключение оценки контроллера уменьшает вычислительные усилия, когда контроллер выход не нужен, например, когда система работает вручную или другой контроллер принял на себя. Однако контроллер продолжает обновлять свои оценки внутреннего состояния обычным способом. Поэтому он готов возобновить оценки, когда сигнал switch вернется к нулю. В то время как оценка контроллера отключена, блок передает текущий ext.mv сигнал на контроллер выход. Если порт ext.mv не включен, контроллер выход удерживается на значении, которое он имел, когда оценка была отключена.

Для примера, который использует внешний управляемый входной порт переменной для бесшумной передачи, смотрите Контроллер Online и Offline с бесшумной передачей.

Зависимости

Чтобы включить этот порт, выберите параметр Use external signal to enable controller evaluation.

Выход

расширить все

Необходимый выход

Оптимальное манипулируемое действие управления, возвращаемое как вектор-столбец сигнал длины Nmv, где Nmv - количество манипулируемых переменных.

Контроллер обновляет свой mv выход в каждый момент управления с помощью закона управления, содержащегося в явном объекте контроллера MPC. Если оценка закона о контроле не удалась, mv неизменен (то есть проводится при предыдущем успешном результате) и status выход, если присутствует, становится либо 0, либо -1.

Дополнительные выходы

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

  • 1 - Успешная явная оценка закона о контроле

  • 0 - Отказ из-за одного или нескольких параметров закона управления вне области значений

  • -1 - Параметры закона контроля были в допустимой области значений, но экстраполяция была необходима

Если status либо 0, либо -1, выход mv остается на последнем известном хорошем значении.

Зависимости

Чтобы включить этот порт, выберите параметр Status of piecewise affine function evaluation.

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

Зависимости

Чтобы включить этот порт, выберите параметр Region number of evaluated piecewise affine function.

Предполагаемое состояние контроллера в каждый момент управления, возвращаемое как вектор сигнал. Предполагаемые состояния включают в себя объект, нарушение порядка и состояния модели шума. Если используется пользовательская оценка состояния, этот выходной сигнал имеет то же значение, что и x[k|k] входной сигнал.

Зависимости

Чтобы включить этот порт, выберите параметр Estimated controller states.

Параметры

расширить все

Система координат explicitMPC объект, содержащий закон контроля, который будет использоваться. Он должен существовать в MATLAB® рабочей области. Используйте generateExplicitMPC команда для создания этого объекта.

Программное использование

Параметры блоков: empcobj
Тип: строка, вектор символов
По умолчанию: ""

Дополнительное mpcstate объект, задающий начальное состояние контроллера. Если вы оставляете этот параметр пустым, блок использует номинальные значения, определенные в Model.Nominal свойство explicitMPC объект. Чтобы переопределить значения по умолчанию, создайте mpcstate объект в рабочей рабочей области и введите его имя в поле. Можно использовать этот параметр, чтобы состояния контроллера отражали истинное окружение объекта в начале вашей симуляции до конца ваших знаний.

Если включена пользовательская оценка состояния, блок игнорирует параметр Initial Controller State.

Программное использование

Параметры блоков: x0
Тип: строка, вектор символов
По умолчанию: ""
Вкладка Общие

Если ваш контроллер имеет измеренные нарушения порядка, необходимо выбрать этот параметр, чтобы добавить md выходной порт к блоку.

Программное использование

Параметры блоков: md_inport
Тип: строка, вектор символов
Значения: "off", "on"
По умолчанию: "on"

Выберите этот параметр, чтобы добавить ext.mv входной порт к блоку.

Программное использование

Параметры блоков: mv_inport
Тип: строка, вектор символов
Значения: "off", "on"
По умолчанию: "off"

Выберите этот параметр, чтобы добавить status выходной порт к блоку.

Программное использование

Параметры блоков: return_status
Тип: строка, вектор символов
Значения: "off", "on"
По умолчанию: "on"

Выберите этот параметр, чтобы добавить region выходной порт к блоку.

Программное использование

Параметры блоков: return_region
Тип: строка, вектор символов
Значения: "off", "on"
По умолчанию: "off"

Выберите этот параметр, чтобы добавить est.state выходной порт к блоку.

Программное использование

Параметры блоков: return_state
Тип: строка, вектор символов
Значения: "off", "on"
По умолчанию: "off"

Выберите этот параметр, чтобы удалить mo входной порт и добавить x[k|k] входной порт.

Программное использование

Параметры блоков: state_inport
Тип: строка, вектор символов
Значения: "off", "on"
По умолчанию: "off"
Вкладка Другие

Задайте блок тип данных манипулируемых переменных как один из следующих:

  • double - Плавающая точка двойной точности

  • single - Одинарная точность с плавающей точкой

    Если вы реализуете блок на цели с одной точностью, задайте тип выходных данных следующим single.

  • data type expression - Выражение, которое вычисляется как double или single. Для получения дополнительной информации смотрите Типы данных сигнала управления (Simulink).

Программное использование

Параметры блоков: BlockDataType
Тип: строка, вектор символов
Значения: "double", "single", data type expression
По умолчанию: "double"

Выберите этот параметр, чтобы наследовать шаг расчета родительской подсистемы в качестве блочного шага расчета. Это позволяет вам условно выполнять этот блок внутри Function-Call Subsystem (Simulink) или Triggered Subsystem (Simulink) блоков. Для получения примера смотрите Использование MPC Контроллера Блока Inside Function-Call и Триггируемых подсистем.

Примечание

Вы должны выполнить Function-Call Subsystem или Triggered Subsystem блоки с частотой дискретизации контроллера. В противном случае можно увидеть неожиданные результаты.

Если вы очистите этот параметр, шаг расчета блока наследуется от объекта контроллера.

Чтобы просмотреть шаг расчета блока, в окне модели Simulink, на вкладке Debug, под Information Overlays, выберите colors или Text. Для получения дополнительной информации смотрите View Sample Time Information (Simulink).

Программное использование

Параметры блоков: SampleTimeInherited
Тип: строка, вектор символов
Значения: "off", "on"
По умолчанию: "off"

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

Программное использование

Параметры блоков: switch_inport
Тип: строка, вектор символов
Значения: "off", "on"
По умолчанию: "off"

Расширенные возможности

Генерация кода C/C + +
Сгенерируйте код C и C++ с помощью Coder™ Simulink ®

.

Генерация кода ПЛК
Сгенерируйте структурированный текстовый код с помощью Coder™ Simulink ® PLC

.
Введенный в R2014b