Multiple MPC Controllers

Симулируйте переключение между несколькими неявными контроллерами MPC

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

  • Multiple MPC Controllers block

Описание

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

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

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

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

  • Вы не можете отключить оптимизацию. Один контроллер должен всегда быть активным.

  • Вы не можете инициировать проектирование контроллера из диалогового окна блока; то есть, нет никакой кнопки Design. Спроектируйте все контроллеры кандидата прежде, чем сконфигурировать блок Multiple MPC Controllers.

  • Точно так же нет никакой кнопки Review. Вместо этого используйте review команда или приложение MPC Designer.

  • Вы не можете обновить пользовательские ограничения на линейные комбинации вводов и выводов во время выполнения.

И блок Multiple MPC Controllers и блок Adaptive MPC Controller позволяют вашей системе управления адаптироваться к изменению условий работы во время выполнения. В следующей таблице перечислены преимущества использования каждого блока.

БлокАдаптивный контроллер MPCНесколько контроллеров MPC
Подход адаптацииОбновите модель предсказания для одного контроллера, когда условия работы изменяютсяПереключитесь между несколькими контроллерами, спроектированными для различных операционных областей
Преимущества
  • Только должен спроектировать один контроллер оффлайн

  • Меньше вычислительного усилия во время выполнения и меньшего объема потребляемой памяти

  • Более устойчивый к реальным изменениям в условиях объекта

  • Никакая потребность в онлайновой оценке модели объекта управления

  • У контроллеров могут быть различный шаг расчета, горизонты и веса

  • Модели предсказания могут иметь различные порядки или временные интервалы

  • Конечное множество контроллеров кандидата может быть протестировано полностью

Порты

Входной параметр

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

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

Объект выходные значения ссылки в виде вектора-строки сигнализирует или матричный сигнал.

Чтобы использовать те же ссылочные значения через горизонт предсказания, соедините ref с сигналом вектора-строки с элементами NY, где Ny является количеством выходных переменных. Каждый элемент задает ссылку для выходной переменной.

Чтобы варьироваться ссылки по горизонту предсказания (предварительный просмотр) со времени k +1 ко времени k +p, соедините ref с матричным сигналом со столбцами Ny и до строк p. Здесь, k является текущим временем, и p является горизонтом предсказания. Каждая строка содержит ссылки для одного шага горизонта предсказания. Если вы задаете меньше, чем строки p, итоговые ссылки используются для остающихся шагов горизонта предсказания.

Используйте входной порт 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.

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

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

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

Чтобы варьироваться воздействия по горизонту предсказания (предварительный просмотр) со времени k ко времени k +p, соедините md с матричным сигналом со столбцами Nmd и до p +1 строка. Здесь, k является текущим временем, и p является горизонтом предсказания. Каждая строка содержит воздействия для одного шага горизонта предсказания. Если вы задаете меньше, чем p +1 строка, итоговые воздействия используются для остающихся шагов горизонта предсказания.

Зависимости

Чтобы включить этот порт, выберите параметр 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.

Онлайновые ограничения

Чтобы задать минимальные ограничения выходной переменной во время выполнения, включите этот входной порт. Если этот порт отключен, блок использует нижние границы, заданные в OutputVariables.Min свойство его mpc объект контроллера. Если выходная переменная не имеет никакой нижней границы, заданной в объекте контроллера, то во время выполнения блок игнорирует соответствующий связанный сигнал.

Чтобы изменить границы по горизонту предсказания со времени k +1 ко времени k +p, соедините ymin с матричным сигналом со столбцами Ny и до строк p. Здесь, Ny является количеством объекта выходные параметры, k является текущим временем, и p является горизонтом предсказания. Каждая строка содержит границы для одного шага горизонта предсказания. Если вы задаете меньше, чем строки p, границы в итоговой строке запрашивают остаток от горизонта предсказания. Если существует только одна выходная переменная, и векторный сигнал без больше, чем записей p соединяется, то эти записи используются через горизонт предсказания.

iстолбец th сигнала ymin соответствует iобъект th выход и замены OutputVariables(i).Max свойство mpc объект во время выполнения. Заменяющее поведение зависит от размерностей обеих переменных.

Скалярный OutputVariables(i).Min в mpc объект (константа, направляющаяся в iобъект th выход, который будет применен ко всем шагам предсказания)

Размерность yminЗаменяющее поведение
Скалярный ymin (один выход, постоянный связанный)ymin заменяет константу, связанную заданный в OutputVariables(i).Min
Вектор-столбец ymin (один выход, изменяющийся во времени связанный)ymin заменяет константу, связанную заданный в OutputVariables(i).Min со связанным изменяющимся во времени.
Вектор-строка ymin (несколько выходных параметров, постоянных границ)iэлемент th ymin заменяет константу, связанную заданный в OutputVariables(i).Min
Матричный ymin (несколько выходных параметров, изменяющихся во времени границ)iстолбец th ymin заменяет константу, связанную заданный в OutputVariables(i).Min со связанным изменяющимся во времени.

Векторный OutputVariables(i).Min в mpc объект (изменяющееся во времени направляющееся в iобъект th выход с различными значениями на различных шагах предсказания)

Размерность yminЗаменяющее поведение
Скалярный ymin (один выход, постоянный связанный)ymin заменяет первую конечную запись в OutputVariables.Min и остающиеся записи в OutputVariables.Min переключите или вниз с той же суммой смещения, чтобы сохранить профиль, заданный исходным OutputVariables.Min вектор.
Вектор-столбец ymin (один выход, изменяющийся во времени связанный)ymin заменяет изменяющееся во времени, связанное заданный в OutputVariables(i).Min, и исходный связанный профиль отбрасывается.
Вектор-строка ymin (несколько выходных параметров, постоянных границ)iэлемент th ymin заменяет первую конечную запись в OutputVariables(i).Min и остающиеся записи в OutputVariables(i).Min переключите или вниз с той же суммой смещения, чтобы сохранить профиль, заданный исходным OutputVariables(i).Min вектор.
Матричный ymin (несколько выходных параметров, изменяющихся во времени границ).iстолбец th ymin заменяет изменяющееся во времени, связанное заданный в OutputVariables(i).Min, и исходный связанный профиль отбрасывается.

Зависимости

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

Чтобы задать максимальные ограничения выходной переменной во время выполнения, включите этот входной порт. Если этот порт отключен, блок использует верхние границы, заданные в OutputVariables.Max свойство его mpc объект контроллера. Если выходная переменная не имеет никакой верхней границы, заданной в объекте контроллера, то во время выполнения блок игнорирует соответствующий связанный сигнал.

Чтобы изменить границы по горизонту предсказания со времени k +1 ко времени k +p, соедините ymax с матричным сигналом со столбцами Ny и до строк p. Здесь, Ny является количеством объекта выходные параметры, k является текущим временем, и p является горизонтом предсказания. Каждая строка содержит границы для одного шага горизонта предсказания. Если вы задаете меньше, чем строки p, границы в итоговой строке запрашивают остаток от горизонта предсказания. Если существует только одна выходная переменная, и векторный сигнал без больше, чем записей p соединяется, то эти записи используются через горизонт предсказания.

iстолбец th сигнала ymax соответствует iобъект th выход и замены OutputVariables(i).Max свойство mpc объект во время выполнения. Заменяющее поведение зависит от размерностей обеих переменных.

Скалярный OutputVariables(i).Max в mpc объект (константа, направляющаяся в iобъект th выход, который будет применен ко всем шагам предсказания)

Размерность ymaxЗаменяющее поведение
Скалярный ymax (один выход, постоянный связанный)ymax заменяет константу, связанную заданный в OutputVariables(i).Max
Вектор-столбец ymax (один выход, изменяющийся во времени связанный)ymax заменяет константу, связанную заданный в OutputVariables(i).Max со связанным изменяющимся во времени.
Вектор-строка ymax (несколько выходных параметров, постоянных границ)iэлемент th ymax заменяет константу, связанную заданный в OutputVariables(i).Max
Матричный ymax (несколько выходных параметров, изменяющихся во времени границ)iстолбец th ymax заменяет константу, связанную заданный в OutputVariables(i).Max со связанным изменяющимся во времени.

Векторный OutputVariables(i).Max в mpc объект (изменяющееся во времени направляющееся в iобъект th выход с различными значениями на различных шагах предсказания)

Размерность ymaxЗаменяющее поведение
Скалярный ymax (один выход, постоянный связанный)ymax заменяет первую конечную запись в OutputVariables.Max и остающиеся записи в OutputVariables.Max переключите или вниз с той же суммой смещения, чтобы сохранить профиль, заданный исходным OutputVariables.Max вектор.
Вектор-столбец ymax (один выход, изменяющийся во времени связанный)ymax заменяет изменяющееся во времени, связанное заданный в OutputVariables(i).Max, и исходный связанный профиль отбрасывается.
Вектор-строка ymax (несколько выходных параметров, постоянных границ)iэлемент th ymax заменяет первую конечную запись в OutputVariables(i).Max и остающиеся записи в OutputVariables(i).Max переключите или вниз с той же суммой смещения, чтобы сохранить профиль, заданный исходным OutputVariables(i).Max вектор.
Матричный ymax (несколько выходных параметров, изменяющихся во времени границ).iстолбец th ymax заменяет изменяющееся во времени, связанное заданный в OutputVariables(i).Max, и исходный связанный профиль отбрасывается.

Зависимости

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

Чтобы задать минимальные переменные ограничения во время выполнения, которыми управляют, включите этот входной порт. Если этот порт отключен, блок использует нижние границы, заданные в ManipulatedVariables.Min свойство его mpc объект контроллера. Если переменная, которой управляют, не имеет никакой нижней границы, заданной в объекте контроллера, то во время выполнения блок игнорирует соответствующий связанный сигнал.

Чтобы изменить границы по горизонту предсказания со времени k ко времени k +p-1, соедините umin с матричным сигналом со столбцами Nmv и до строк p. Здесь, Nmv является количеством переменных, которыми управляют, k является текущим временем, и p является горизонтом предсказания. Каждая строка содержит границы для одного шага горизонта предсказания. Если вы задаете меньше, чем строки p, границы в итоговой строке запрашивают остаток от горизонта предсказания. Если существует только одна переменная, которой управляют, и векторный сигнал без больше, чем записей p соединяется, то эти записи используются через горизонт предсказания.

iстолбец th сигнала umin соответствует ith управлял переменной и заменяет ManipulatedVariables(i).Max свойство mpc объект во время выполнения. Заменяющее поведение зависит от размерностей обеих переменных.

Скалярный ManipulatedVariables(i).Min в mpc объект (константа, направляющаяся в ith управлял переменной, которая будет применена ко всем шагам предсказания),

Размерность uminЗаменяющее поведение
Скалярный umin (один выход, постоянный связанный)umin заменяет константу, связанную заданный в ManipulatedVariables(i).Min
Вектор-столбец umin (один выход, изменяющийся во времени связанный)umin заменяет константу, связанную заданный в ManipulatedVariables(i).Min со связанным изменяющимся во времени.
Вектор-строка umin (несколько выходных параметров, постоянных границ)iэлемент th umin заменяет константу, связанную заданный в ManipulatedVariables(i).Min
Матричный umin (несколько выходных параметров, изменяющихся во времени границ)iстолбец th umin заменяет константу, связанную заданный в ManipulatedVariables(i).Min со связанным изменяющимся во времени.

Векторный ManipulatedVariables(i).Min в mpc объект (изменяющееся во времени направляющееся в ith управлял переменной с различными значениями на различных шагах предсказания),

Размерность uminЗаменяющее поведение
Скалярный umin (один выход, постоянный связанный)umin заменяет первую конечную запись в ManipulatedVariables.Min и остающиеся записи в ManipulatedVariables.Min переключите или вниз с той же суммой смещения, чтобы сохранить профиль, заданный исходным ManipulatedVariables.Min вектор.
Вектор-столбец umin (один выход, изменяющийся во времени связанный)umin заменяет изменяющееся во времени, связанное заданный в ManipulatedVariables(i).Min, и исходный связанный профиль отбрасывается.
Вектор-строка umin (несколько выходных параметров, постоянных границ)iкомпонент th umin заменяет первую конечную запись в ManipulatedVariables(i).Min и остающиеся записи в ManipulatedVariables(i).Min переключите или вниз с той же суммой смещения, чтобы сохранить профиль, заданный исходным ManipulatedVariables(i).Min вектор.
Матричный umin (несколько выходных параметров, изменяющихся во времени границ).iстолбец th umin заменяет изменяющееся во времени, связанное заданный в ManipulatedVariables(i).Min, и исходный связанный профиль отбрасывается.

Зависимости

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

Чтобы задать максимальные переменные ограничения во время выполнения, которыми управляют, включите этот входной порт. Если этот порт отключен, блок использует верхние границы, заданные в ManipulatedVariables.Max свойство его mpc объект контроллера. Если переменная, которой управляют, не имеет никакой верхней границы, заданной в объекте контроллера, то во время выполнения блок игнорирует соответствующий связанный сигнал.

Чтобы изменить границы по горизонту предсказания со времени k ко времени k +p-1, соедините umax с матричным сигналом со столбцами Nmv и до строк p. Здесь, Nmv является количеством переменных, которыми управляют, k является текущим временем, и p является горизонтом предсказания. Каждая строка содержит границы для одного шага горизонта предсказания. Если вы задаете меньше, чем строки p, границы в итоговой строке запрашивают остаток от горизонта предсказания. Если существует только одна переменная, которой управляют, и векторный сигнал без больше, чем записей p соединяется, то эти записи используются через горизонт предсказания.

iстолбец th сигнала umax соответствует ith управлял переменной и заменяет ManipulatedVariables(i).Max свойство mpc объект во время выполнения. Заменяющее поведение зависит от размерностей обеих переменных.

Скалярный ManipulatedVariables(i).Max в mpc объект (константа, направляющаяся в ith управлял переменной, которая будет применена ко всем шагам предсказания),

Размерность umaxЗаменяющее поведение
Скалярный umax (один выход, постоянный связанный)umax заменяет константу, связанную заданный в ManipulatedVariables(i).Max
Вектор-столбец umax (один выход, изменяющийся во времени связанный)umax заменяет константу, связанную заданный в ManipulatedVariables(i).Max со связанным изменяющимся во времени.
Вектор-строка umax (несколько выходных параметров, постоянных границ)iэлемент th umax заменяет константу, связанную заданный в ManipulatedVariables(i).Max
Матричный umax (несколько выходных параметров, изменяющихся во времени границ)iстолбец th umax заменяет константу, связанную заданный в ManipulatedVariables(i).Max со связанным изменяющимся во времени.

Векторный ManipulatedVariables(i).Max в mpc объект (изменяющееся во времени направляющееся в ith управлял переменной с различными значениями на различных шагах предсказания),

Размерность umaxЗаменяющее поведение
Скалярный umax (один выход, постоянный связанный)umax заменяет первую конечную запись в ManipulatedVariables.Max и остающиеся записи в ManipulatedVariables.Max переключите или вниз с той же суммой смещения, чтобы сохранить профиль, заданный исходным ManipulatedVariables.Max вектор.
Вектор-столбец umax (один выход, изменяющийся во времени связанный)umax заменяет изменяющееся во времени, связанное заданный в ManipulatedVariables(i).Max, и исходный связанный профиль отбрасывается.
Вектор-строка umax (несколько выходных параметров, постоянных границ)iэлемент th umax заменяет первую конечную запись в ManipulatedVariables(i).Max и остающиеся записи в ManipulatedVariables(i).Max переключите или вниз с той же суммой смещения, чтобы сохранить профиль, заданный исходным ManipulatedVariables(i).Max вектор.
Матричный umax (несколько выходных параметров, изменяющихся во времени границ).iстолбец th umax заменяет изменяющееся во времени, связанное заданный в ManipulatedVariables(i).Max, и исходный связанный профиль отбрасывается.

Зависимости

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

Онлайн настройка весов

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

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

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

Чтобы варьироваться настраивающиеся веса по горизонту предсказания со времени k +1 ко времени k +p, соедините y.wt с матричным сигналом со столбцами Ny и до строк p. Здесь, k является текущим временем, и p является горизонтом предсказания. Каждая строка содержит настраивающиеся веса для одного шага горизонта предсказания. Если вы задаете меньше, чем строки p, настраивающиеся веса в итоговой строке запрашивают остаток от горизонта предсказания. Для получения дополнительной информации о различных весах по горизонту предсказания смотрите Изменяющиеся во времени Веса и Ограничения.

Зависимости

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

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

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

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

Чтобы варьироваться настраивающиеся веса по горизонту предсказания со времени k ко времени k +p-1, соедините u.wt с матричным сигналом со столбцами Nmv и до строк p. Здесь, k является текущим временем, и p является горизонтом предсказания. Каждая строка содержит настраивающиеся веса для одного шага горизонта предсказания. Если вы задаете меньше, чем строки p, настраивающиеся веса в итоговой строке запрашивают остаток от горизонта предсказания. Для получения дополнительной информации о различных весах по горизонту предсказания смотрите Изменяющиеся во времени Веса и Ограничения.

Зависимости

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

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

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

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

Чтобы варьироваться настраивающиеся веса по горизонту предсказания со времени k ко времени k +p-1, соедините du.wt с матричным сигналом со столбцами Nmv и до строк p. Здесь, k является текущим временем, и p является горизонтом предсказания. Каждая строка содержит настраивающиеся веса для одного шага горизонта предсказания. Если вы задаете меньше, чем строки p, настраивающиеся веса в итоговой строке запрашивают остаток от горизонта предсказания. Для получения дополнительной информации о различных весах по горизонту предсказания смотрите Изменяющиеся во времени Веса и Ограничения.

Зависимости

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

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

Слабый переменный настраивающий вес не оказывает влияния, если ваш объект контроллера не задает мягкие ограничения, чьи связанные значения ECR являются ненулевыми. Если существуют мягкие ограничения, увеличивание значения ecr.wt делает эти ограничения относительно тяжелее. Контроллер затем помещает более высокий приоритет в минимизацию величины предсказанного нарушения ограничений худшего случая.

Зависимости

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

Вывод

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

Требуемый Выход

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

Если решатель активного контроллера сходится к решению для локального оптимума (qp.status положителен), то mv содержит оптимальное решение.

Если решатель перестал работать (qp.status отрицателен), то mv остается в своем новом успешном решении; то есть, замораживания контроллера выход.

Если решатель достигает максимального количества итераций, не находя оптимальное решение (qp.status является нулем), и Optimization.UseSuboptimalSolution свойство активного контроллера:

  • true, затем mv содержит субоптимальное решение

  • false, затем mv затем mv остается в его новом успешном решении

Дополнительные Выходные параметры

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

Величина затрат только значима, когда qp.status выход является неотрицательным.

Зависимости

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

Состояние Optimization активного контроллера, выход как целочисленный сигнал.

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

Решатель QP может не найти оптимальное решение по следующим причинам:

  • qp.status = 0 — Решатель QP не может найти решение в максимальном количестве итераций заданным в mpc объект. В этом случае, если Optimizer.UseSuboptimalSolution свойством активного контроллера является false, блок содержит свой mv выход в новом успешном решении. В противном случае это использует субоптимальное решение, найденное во время последней итерации решателя.

  • qp.status = -1 — Решатель QP обнаруживает неосуществимую проблему QP. Смотрите Контролирующее Состояние Оптимизации, чтобы Обнаружить Отказы контроллера для примера, где большое, длительное воздействие управляет выходной переменной вне своих заданных границ. В этом случае блок содержит свой mv выход в новом успешном решении.

  • qp.status = -2 — Решатель QP столкнулся с числовыми трудностями при решении сильно плохо обусловленной задачи QP. В этом случае блок содержит свой mv выход в новом успешном решении.

В приложении реального времени можно использовать qp.status, чтобы поставить будильник или принять другие специальные меры.

Зависимости

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

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

Зависимости

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

Оптимальные последовательности

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

Первые строки p mv.seq содержат расчетные оптимальные значения переменных, которыми управляют, с текущего времени k ко времени k +p-1. Первая строка mv.seq содержит текущие значения переменных, которыми управляют (выход mv). Поскольку контроллер не вычисляет перемещения оптимального управления во время k +p, итоговые две строки mv.seq идентичны.

Зависимости

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

Оптимальная модель предсказания утверждает последовательность, возвращенный как матричный сигнал с p +1 столбец строк и Nx, где p является горизонтом предсказания и Nx, является количеством состояний.

Первые строки p x.seq содержат расчетные оптимальные значения состояния с текущего времени k ко времени k +p-1. Первая строка x.seq содержит текущие предполагаемые значения состояния. Поскольку контроллер не вычисляет оптимальные состояния во время k +p, итоговые две строки x.seq идентичны.

Зависимости

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

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

Первые строки p y.seq содержат расчетные оптимальные выходные значения с текущего времени k ко времени k +p-1. Первая строка y.seq вычисляется на основе текущих предполагаемых состояний и текущих измеренных воздействий (первая строка входа md). Поскольку контроллер не вычисляет оптимальные выходные значения во время k +p, итоговые две строки y.seq идентичны.

Зависимости

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

Параметры

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

Контроллеры кандидата в виде одного из следующего:

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

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

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

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

Параметры блоков: mpcobjs
Ввод: строка, вектор символов, массив ячеек строк, массива ячеек из символьных векторов
Значение по умолчанию: ""

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Параметры блоков: rhoeps_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"

Вопросы совместимости

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

Поведение изменяется в R2018b

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

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

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

Представленный в R2008b