exponenta event banner

Явный контроллер MPC

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

  • Библиотека:
  • Панель инструментов управления прогнозом модели

  • Explicit MPC Controller block

Описание

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

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

  • Опорная или уставка (ref)

  • Измеренное возмущение установки (md), при наличии

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

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

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

  • Отчет о результатах оценки состояния

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

  • Блочные данные с одинарной точностью (по умолчанию двойная точность)

  • Наследуемое время выборки

  • Онлайн-настройка (корректировка веса штрафа)

  • Интерактивные корректировки зависимостей

  • Изменяемые в оперативном режиме целевые корректировки переменных

  • Предварительный просмотр эталонных и/или измеренных возмущений

Порты

Вход

развернуть все

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

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

Зависимости

Чтобы включить этот порт, снимите флажок Use custom state easimation вместо использования встроенного параметра фильтра Калмана.

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

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

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

Зависимости

Чтобы включить этот порт, вместо встроенного параметра фильтра Калмана выберите Use custom state assessment.

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

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

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

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

Зависимости

Для активизации этого порта выберите параметр Measured ristances.

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

  • Вы знаете, что ваш контроллер не всегда управляет заводом.

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

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

Примечание

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

  • Когда контроллер управляет установкой, вставьте блок памяти или блок задержки блока для обратной передачи сигнала СН, подаваемого на установку в предыдущем интервале управления. Это также позволяет избежать прямого перехода от входа ext.mv к выходу mv, таким образом предотвращая алгебраические петли в модели Simulink ®.

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

Зависимости

Чтобы включить этот порт, выберите параметр внешней управляемой переменной.

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

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

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

Зависимости

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

Продукция

развернуть все

Требуемые выходные данные

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

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

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

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

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

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

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

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

Зависимости

Чтобы включить этот порт, выберите параметр оценки состояния кусочно-аффинной функции.

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

Зависимости

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

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

Зависимости

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

Параметры

развернуть все

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Параметр блока: 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) или Trigggered Subsystem (Simulink). Пример см. в разделе Использование блока контроллера MPC внутри функциональных подсистем вызова и инициирования.

Примечание

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

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

Чтобы просмотреть образец времени блока, в окне модели Simulink на вкладке Отладка (Debug) в разделе Информационные наложения (Information Overlays) выберите цвета или текст. Дополнительные сведения см. в разделе Просмотр информации о времени образца (Simulink).

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

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

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

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

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

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

Создание кода C/C + +
Создайте код C и C++ с помощью Simulink ® Coder™

.

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

.
Представлен в R2014b