exponenta event banner

Несколько явных контроллеров MPC

Несколько явных контроллеров MPC

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

  • Multiple Explicit MPC Controllers block

Описание

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

  • Измеренные выходы установки (mo)

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

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

  • Сигнал переключения (switch)

Блок «Несколько явных контроллеров MPC» позволяет переходить между несколькими явными контроллерами MPC в режиме реального времени в соответствии с текущими рабочими условиями. Обычно каждый контроллер проектируется для определенной области рабочего пространства. Используя доступные измерения, вы обнаруживаете текущую рабочую область и выбираете соответствующий активный контроллер с помощью switch ввод.

Сигнал переключения выбирает активный контроллер из списка двух или более возможных явных MPC-контроллеров. Эти контроллеры уменьшают вычислительные усилия в режиме онлайн за счет использования закона управления табличным поиском в течение каждого интервала управления вместо решения задачи квадратичного программирования. Дополнительные сведения см. в разделе Явный контроллер MPC.

Для повышения эффективности неактивные контроллеры не оценивают свой закон управления. Однако для обеспечения безударной передачи между контроллерами неактивные контроллеры продолжают выполнять оценку состояния.

Как и для блока «Несколько контроллеров MPC», нельзя отключить оценку для блока «Несколько явных контроллеров MPC». Один контроллер всегда должен быть активным.

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

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

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

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

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

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

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

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

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

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

Порты

Вход

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

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

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

Если switch сигнал находится вне диапазона от 1 до Nc, блок сохраняет предыдущий выход контроллера.

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

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

Зависимости

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

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

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

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

Зависимости

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

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

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

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

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

Зависимости

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

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

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

Примечание

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

  • Использование этой опции, когда контроллер управляет установкой, может вызвать алгебраический цикл в модели Simulink ®, так как имеется прямой проход от входа ext.mv к выходу mv. Чтобы предотвратить такие алгебраические циклы, вставьте блок памяти или блок задержки блока.

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

Зависимости

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

Продукция

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

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

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

Блок множественных явных контроллеров MPC передает выходной сигнал активного контроллера на выходной сигнал mv. Поэтому активный контроллер обновляет выходной сигнал mv в каждый момент управления, используя закон управления, содержащийся в явном объекте контроллера MPC. Если оценка закона управления завершается неуспешно, этот сигнал остается неизменным; то есть проводится при предыдущем успешном результате.

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

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

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

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

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

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

Зависимости

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

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

Зависимости

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

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

Зависимости

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

Параметры

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

Контроллеры-кандидаты, указанные как один из следующих:

  • Массив ячеек explicitMPC объекты

  • Массив ячеек строк или массив ячеек векторов символов, где каждый элемент является именем explicitMPC объект в рабочей области MATLAB ®

Указанный массив должен содержать не менее двух возможных контроллеров. Первая запись в массиве ячеек является контроллером, который соответствует входному значению коммутатора 1, вторая соответствует входному значению коммутатора 2 и так далее.

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

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

Начальные состояния для контроллеров-кандидатов, указанные как одно из следующих:

  • Массив ячеек mpcstate объекты.

  • Массив ячеек строк или массив ячеек векторов символов, где каждый элемент является именем mpcstate в рабочей области MATLAB.

  • {[],[],...}, {'[]','[]',...}, или {"[]","[]",...} - использовать номинальное условие, определенное в Model.Nominal свойство каждого контроллера-кандидата в качестве его начального состояния.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Выберите этот параметр для добавления выходного порта est.state к блоку.

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

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

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

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

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

Укажите тип данных блока для обрабатываемых переменных как одно из следующих:

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

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

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

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

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

Параметр блока: BlockDataType_multiple
Тип: строка, символьный вектор
Значения: "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_multiple
Тип: строка, символьный вектор
Значения: "off", "on"
По умолчанию: "off"

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

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

.

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

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