Multiple Explicit MPC Controllers

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

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

  • Multiple Explicit MPC Controllers block

Описание

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

  • Измеренные выходы объекта (mo)

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

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

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

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

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

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

Как и для блока Multiple MPC Controllers, вы не можете отключить оценку для блока Multiple Explicit MPC Controllers. Один контроллер должен быть всегда активен.

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

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

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

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

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

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

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

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

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

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

Порты

Вход

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

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

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

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

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

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

Зависимости

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

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

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

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

Зависимости

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

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

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

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

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

Зависимости

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

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

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

Примечание

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

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

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

Зависимости

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

Выход

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

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

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

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

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

Этот выход указывает, удалось ли выполнить последнюю явную оценку закона о контроле 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 объекты

  • Массив ячеек из строк или массив ячеек из векторов символов, где каждый элемент является именем 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"

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

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

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

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

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

Параметры блоков: 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) или Triggered Subsystem (Simulink) блоков. Для получения примера смотрите Использование MPC Контроллера Блока Inside Function-Call и Триггируемых подсистем.

Примечание

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

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

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

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

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

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

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

.

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

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