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 является количеством переменных, которыми управляют. Используйте этот входной порт, чтобы улучшить точность оценки состояния когда:

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

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

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

Примечание

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

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

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

Зависимости

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

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

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

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

Зависимости

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

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

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

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

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

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

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

Введенный в R2014b