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.

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

Как для блока 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 является количеством переменных, которыми управляют. Все диспетчеры кандидата используют этот сигнал обновить их оценки состояния контроллера в каждом контрольном интервале. Это помогает минимизировать передачу bumpless, когда ведущий контроллер переключается. Используя этот вход также улучшает точность оценки состояния, когда вектор переменных, которыми управляют, (MV), используемый на объекте, отличается от вектора мВ, вычисленного блоком, например, должный сигнализировать о насыщении или условии переопределения.

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

Примечание

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

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

Для примера, который использует внешний порт ввода переменной, которым управляют, для передачи bumpless, смотрите Контроллер Переключателя Онлайн и Оффлайн с Передачей Bumpless.

Зависимости

Чтобы включить этот порт, выберите параметр 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"единственный, data type expression
Значение по умолчанию: "double"

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

Примечание

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

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

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

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

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

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

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

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

Введенный в R2017b