Симулируйте переключение между несколькими неявными контроллерами MPC
Model Predictive Control Toolbox
В каждый момент управления блок 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
— Выходные значения ссылки моделиОбъект выходные значения ссылки в виде вектора-строки сигнализирует или матричный сигнал.
Чтобы использовать те же ссылочные значения через горизонт предсказания, соедините ref с сигналом вектора-строки с элементами NY, где Ny является количеством выходных переменных. Каждый элемент задает ссылку для выходной переменной.
Чтобы варьироваться ссылки по горизонту предсказания (предварительный просмотр) со времени k +1 ко времени k +p, соедините ref с матричным сигналом со столбцами Ny и до строк p. Здесь, k является текущим временем, и p является горизонтом предсказания. Каждая строка содержит ссылки для одного шага горизонта предсказания. Если вы задаете меньше, чем строки p, итоговые ссылки используются для остающихся шагов горизонта предсказания.
switch
— Выбор контроллераИспользуйте входной порт switch, чтобы выбрать активный контроллер. Входной сигнал switch должен быть скалярным целым числом от 1
к N c, где N c является количеством заданных контроллеров кандидата. В каждый момент управления этот сигнал определяет активный контроллер. Значение переключателя 1
соответствует первой записи в массиве ячеек контроллеров кандидата, значении 2
соответствует второму контроллеру, и так далее.
Если switch
сигнал находится вне области значений 1 к N c, блок сохраняет предыдущий контроллер выход.
mo
— Измеренный выходИзмеренные выходные сигналы в виде векторного сигнала. Диспетчеры кандидата используют измеренный объект выходные параметры, чтобы улучшить их оценки состояния.
Все диспетчеры кандидата должны использовать ту же опцию оценки состояния, или значение по умолчанию или пользовательский. Если ваши диспетчеры кандидата используют оценку состояния по умолчанию, необходимо соединить измеренный объект выходные параметры с входным портом mo. Если ваши диспетчеры кандидата используют пользовательскую оценку состояния, необходимо соединить предполагаемый сигнал состояния объекта с входным портом x[k|k].
Чтобы включить этот порт, очистите параметр Use custom state estimation instead of using the built-in Kalman filter.
x[k|k]
— Пользовательская оценка состоянияПользовательская оценка состояния в виде векторного сигнала. Диспетчеры кандидата используют связанные оценки состояния вместо того, чтобы оценить состояния с помощью встроенного средства оценки. Используйте пользовательские оценки состояния, когда альтернативный метод оценки рассматривается выше встроенного средства оценки или когда состояния полностью измеримы.
Все диспетчеры кандидата должны использовать ту же опцию оценки состояния, или значение по умолчанию или пользовательский. Если ваши диспетчеры кандидата используют пользовательскую оценку состояния, необходимо соединить оценки текущего состояния с входным портом x[k|k]. Если ваши диспетчеры кандидата используют оценку состояния по умолчанию, необходимо соединить измеренные выходные параметры с входным портом mo.
Когда вы используете пользовательскую оценку состояния, у всех контроллеров кандидата должны быть те же размерности. Все диспетчеры кандидата должны использовать те же определения состояния (номер и порядок состояний) для их соответствующего объекта, воздействия и моделей шума измерения.
Чтобы включить этот порт, выберите параметр Use custom state estimation instead of using the built-in Kalman filter.
md
входной параметрЕсли ваша модель предсказания контроллера измерила воздействия, необходимо включить этот порт и подключение к нему вектор-строка или матричный сигнал.
Чтобы использовать те же измеренные значения воздействия через горизонт предсказания, соедините md с сигналом вектора-строки с элементами Nmd, где Nmd является количеством переменных, которыми управляют. Каждый элемент задает значение для измеренного воздействия.
Чтобы варьироваться воздействия по горизонту предсказания (предварительный просмотр) со времени k ко времени k +p, соедините md с матричным сигналом со столбцами Nmd и до p +1 строка. Здесь, k является текущим временем, и p является горизонтом предсказания. Каждая строка содержит воздействия для одного шага горизонта предсказания. Если вы задаете меньше, чем p +1 строка, итоговые воздействия используются для остающихся шагов горизонта предсказания.
Чтобы включить этот порт, выберите параметр Measured disturbances.
ext.mv
— Управляющие сигналы используются на объекте в предыдущем контрольном интервалеУправляющие сигналы использовали на объекте в предыдущем контрольном интервале в виде векторного сигнала длины 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.
ymin
— Минимальные ограничения выходной переменнойЧтобы задать минимальные ограничения выходной переменной во время выполнения, включите этот входной порт. Если этот порт отключен, блок использует нижние границы, заданные в 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.
ymax
— Максимальные ограничения выходной переменнойЧтобы задать максимальные ограничения выходной переменной во время выполнения, включите этот входной порт. Если этот порт отключен, блок использует верхние границы, заданные в 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.
umin
— Минимальные переменные ограничения, которыми управляют,Чтобы задать минимальные переменные ограничения во время выполнения, которыми управляют, включите этот входной порт. Если этот порт отключен, блок использует нижние границы, заданные в ManipulatedVariables.Min
свойство его mpc
объект контроллера. Если переменная, которой управляют, не имеет никакой нижней границы, заданной в объекте контроллера, то во время выполнения блок игнорирует соответствующий связанный сигнал.
Чтобы изменить границы по горизонту предсказания со времени k ко времени k +p-1, соедините umin с матричным сигналом со столбцами Nmv и до строк p. Здесь, Nmv является количеством переменных, которыми управляют, k является текущим временем, и p является горизонтом предсказания. Каждая строка содержит границы для одного шага горизонта предсказания. Если вы задаете меньше, чем строки p, границы в итоговой строке запрашивают остаток от горизонта предсказания. Если существует только одна переменная, которой управляют, и векторный сигнал без больше, чем записей p соединяется, то эти записи используются через горизонт предсказания.
i
столбец th сигнала umin соответствует i
th управлял переменной и заменяет ManipulatedVariables(i).Max
свойство mpc
объект во время выполнения. Заменяющее поведение зависит от размерностей обеих переменных.
Скалярный ManipulatedVariables(i).Min
в mpc
объект (константа, направляющаяся в i
th управлял переменной, которая будет применена ко всем шагам предсказания),
Размерность 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
объект (изменяющееся во времени направляющееся в i
th управлял переменной с различными значениями на различных шагах предсказания),
Размерность 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.
umax
— Максимальные переменные ограничения, которыми управляют,Чтобы задать максимальные переменные ограничения во время выполнения, которыми управляют, включите этот входной порт. Если этот порт отключен, блок использует верхние границы, заданные в ManipulatedVariables.Max
свойство его mpc
объект контроллера. Если переменная, которой управляют, не имеет никакой верхней границы, заданной в объекте контроллера, то во время выполнения блок игнорирует соответствующий связанный сигнал.
Чтобы изменить границы по горизонту предсказания со времени k ко времени k +p-1, соедините umax с матричным сигналом со столбцами Nmv и до строк p. Здесь, Nmv является количеством переменных, которыми управляют, k является текущим временем, и p является горизонтом предсказания. Каждая строка содержит границы для одного шага горизонта предсказания. Если вы задаете меньше, чем строки p, границы в итоговой строке запрашивают остаток от горизонта предсказания. Если существует только одна переменная, которой управляют, и векторный сигнал без больше, чем записей p соединяется, то эти записи используются через горизонт предсказания.
i
столбец th сигнала umax соответствует i
th управлял переменной и заменяет ManipulatedVariables(i).Max
свойство mpc
объект во время выполнения. Заменяющее поведение зависит от размерностей обеих переменных.
Скалярный ManipulatedVariables(i).Max
в mpc
объект (константа, направляющаяся в i
th управлял переменной, которая будет применена ко всем шагам предсказания),
Размерность 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
объект (изменяющееся во времени направляющееся в i
th управлял переменной с различными значениями на различных шагах предсказания),
Размерность 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.
y.wt
— Настраивающие веса выходной переменнойЧтобы задать переменную вывода во время выполнения настраивающиеся веса, включите этот входной порт. Если этот порт отключен, блок использует настраивающиеся веса, заданные в Weights.OutputVariables
свойство его объекта контроллера. Эти настраивающие веса штрафуют отклонения от выходных ссылок.
Если диспетчер MPC возражает, использует постоянные выходные настраивающие веса по горизонту предсказания, можно задать только постоянные выходные настраивающие веса во времени выполнения. Точно так же, если диспетчер MPC возражает использованию выходные настраивающие веса, которые варьируются по горизонту предсказания, можно задать только изменяющиеся во времени выходные настраивающие веса во времени выполнения
Чтобы использовать постоянные настраивающие веса по горизонту предсказания, соедините y.wt с сигналом вектора-строки с элементами Ny, где Ny является количеством выходных параметров. Каждый элемент задает неотрицательный настраивающий вес для выходной переменной. Для получения дополнительной информации об определении настраивающихся весов смотрите Веса Мелодии.
Чтобы варьироваться настраивающиеся веса по горизонту предсказания со времени k +1 ко времени k +p, соедините y.wt с матричным сигналом со столбцами Ny и до строк p. Здесь, k является текущим временем, и p является горизонтом предсказания. Каждая строка содержит настраивающиеся веса для одного шага горизонта предсказания. Если вы задаете меньше, чем строки p, настраивающиеся веса в итоговой строке запрашивают остаток от горизонта предсказания. Для получения дополнительной информации о различных весах по горизонту предсказания смотрите Изменяющиеся во времени Веса и Ограничения.
Чтобы включить этот порт, выберите параметр OV weights.
u.wt
— Переменные настраивающие веса, которыми управляют,Задавать время выполнения управляло переменными настраивающими весами, включите этот входной порт. Если этот порт отключен, блок использует настраивающиеся веса, заданные в Weights.ManipulatedVariables
свойство его объекта контроллера. Эти настраивающие веса штрафуют отклонения от целей мВ.
Если диспетчер MPC возражает, использует постоянные переменные настраивающие веса, которыми управляют, по горизонту предсказания, можно задать только постоянные переменные настраивающие веса, которыми управляют, во времени выполнения. Точно так же, если контроллер MPC, объектное использование управляло переменными настраивающими весами, которые варьируются по горизонту предсказания, можно задать только изменяющиеся во времени переменные настраивающие веса, которыми управляют, во времени выполнения
Чтобы использовать те же настраивающие веса по горизонту предсказания, соедините u.wt с сигналом вектора-строки с элементами Nmv, где Nmv является количеством переменных, которыми управляют. Каждый элемент задает неотрицательный настраивающий вес для переменной, которой управляют. Для получения дополнительной информации об определении настраивающихся весов смотрите Веса Мелодии.
Чтобы варьироваться настраивающиеся веса по горизонту предсказания со времени k ко времени k +p-1, соедините u.wt с матричным сигналом со столбцами Nmv и до строк p. Здесь, k является текущим временем, и p является горизонтом предсказания. Каждая строка содержит настраивающиеся веса для одного шага горизонта предсказания. Если вы задаете меньше, чем строки p, настраивающиеся веса в итоговой строке запрашивают остаток от горизонта предсказания. Для получения дополнительной информации о различных весах по горизонту предсказания смотрите Изменяющиеся во времени Веса и Ограничения.
Чтобы включить этот порт, выберите параметр MV weights.
du.wt
— Настраивающие веса с плавающей ставкой, которыми управляют,Задавать время выполнения управляло настраивающими весами с плавающей ставкой, включите этот входной порт. Если этот порт отключен, блок использует настраивающиеся веса, заданные в Weights.ManipulatedVariablesRate
свойство его объекта контроллера. Эти настраивающие веса штрафуют большие изменения в перемещениях управления.
Если диспетчер MPC возражает, использует постоянные настраивающие веса с плавающей ставкой, которыми управляют, по горизонту предсказания, можно задать только постоянные переменные настраивающие веса уровня, которыми управляют, во времени выполнения. Точно так же, если диспетчер MPC возражает использованию настраивающие веса с плавающей ставкой, которыми управляют, которые варьируются по горизонту предсказания, можно задать только изменяющиеся во времени настраивающие веса с плавающей ставкой, которыми управляют, во времени выполнения
Чтобы использовать те же настраивающие веса по горизонту предсказания, соедините du.wt с сигналом вектора-строки с элементами Nmv, где Nmv является количеством переменных, которыми управляют. Каждый элемент задает неотрицательный настраивающий вес для плавающего курса, которым управляют. Для получения дополнительной информации об определении настраивающихся весов смотрите Веса Мелодии.
Чтобы варьироваться настраивающиеся веса по горизонту предсказания со времени k ко времени k +p-1, соедините du.wt с матричным сигналом со столбцами Nmv и до строк p. Здесь, k является текущим временем, и p является горизонтом предсказания. Каждая строка содержит настраивающиеся веса для одного шага горизонта предсказания. Если вы задаете меньше, чем строки p, настраивающиеся веса в итоговой строке запрашивают остаток от горизонта предсказания. Для получения дополнительной информации о различных весах по горизонту предсказания смотрите Изменяющиеся во времени Веса и Ограничения.
Чтобы включить этот порт, выберите параметр MVRate weights.
ecr.wt
— Ослабьте переменный настраивающий весЧтобы задать время выполнения ослабляют переменный настраивающий вес, включают этот входной порт и соединяют скалярный сигнал. Если этот порт отключен, блок использует настраивающийся вес, заданный в Weights.ECR
свойство его объекта контроллера.
Слабый переменный настраивающий вес не оказывает влияния, если ваш объект контроллера не задает мягкие ограничения, чьи связанные значения ECR являются ненулевыми. Если существуют мягкие ограничения, увеличивание значения ecr.wt делает эти ограничения относительно тяжелее. Контроллер затем помещает более высокий приоритет в минимизацию величины предсказанного нарушения ограничений худшего случая.
Чтобы включить этот порт, выберите параметр ECR weight.
mv
— Оптимальное действие управления переменными, которым управляют,Оптимальное действие управления переменными, которым управляют, выход как сигнал вектор-столбца длины Nmv, где Nmv является количеством переменных, которыми управляют. Блок Multiple MPC Controllers передает выход активного контроллера к выходному порту mv.
Если решатель активного контроллера сходится к решению для локального оптимума (qp.status положителен), то mv содержит оптимальное решение.
Если решатель перестал работать (qp.status отрицателен), то mv остается в своем новом успешном решении; то есть, замораживания контроллера выход.
Если решатель достигает максимального количества итераций, не находя оптимальное решение (qp.status является нулем), и Optimization.UseSuboptimalSolution
свойство активного контроллера:
true
, затем mv содержит субоптимальное решение
false
, затем mv затем mv остается в его новом успешном решении
cost
— Целевая функция стоитсяСтоимость целевой функции, выход как неотрицательный скалярный сигнал. Стоимость определяет количество степени, до которой контроллер достиг ее целей. Величина затрат вычисляется с помощью масштабированной функции стоимости MPC, в которой каждый термин является без смещений и безразмерным.
Величина затрат только значима, когда qp.status выход является неотрицательным.
Чтобы включить этот порт, выберите параметр Optimal cost.
qp.status
— Состояние OptimizationСостояние 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.
est.state
— Предполагаемые состояния контроллераПредполагаемые состояния контроллера активного контроллера, выход как векторный сигнал. Предполагаемые состояния включают объект, воздействие и шумовые состояния модели.
Чтобы включить этот порт, выберите параметр Estimated controller states.
mv.seq
— Оптимальная переменная последовательность, которой управляют,Оптимальная переменная последовательность, которой управляют, возвращенная как матричный сигнал с p +1 строка и столбцы Nmv, где p является горизонтом предсказания и Nmv, является количеством переменных, которыми управляют.
Первые строки p mv.seq содержат расчетные оптимальные значения переменных, которыми управляют, с текущего времени k ко времени k +p-1. Первая строка mv.seq содержит текущие значения переменных, которыми управляют (выход mv). Поскольку контроллер не вычисляет перемещения оптимального управления во время k +p, итоговые две строки mv.seq идентичны.
Чтобы включить этот порт, выберите параметр Optimal control sequence.
x.seq
— Оптимальная модель предсказания утверждает последовательностьОптимальная модель предсказания утверждает последовательность, возвращенный как матричный сигнал с p +1 столбец строк и Nx, где p является горизонтом предсказания и Nx, является количеством состояний.
Первые строки p x.seq содержат расчетные оптимальные значения состояния с текущего времени k ко времени k +p-1. Первая строка x.seq содержит текущие предполагаемые значения состояния. Поскольку контроллер не вычисляет оптимальные состояния во время k +p, итоговые две строки x.seq идентичны.
Чтобы включить этот порт, выберите параметр Optimal state sequence.
y.seq
— Оптимальная последовательность выходной переменнойОптимальная последовательность выходной переменной, возвращенная как матричный сигнал с p +1 строка и столбцы Ny, где p является горизонтом предсказания и Ny, является количеством выходных переменных.
Первые строки p y.seq содержат расчетные оптимальные выходные значения с текущего времени k ко времени k +p-1. Первая строка y.seq вычисляется на основе текущих предполагаемых состояний и текущих измеренных воздействий (первая строка входа md). Поскольку контроллер не вычисляет оптимальные выходные значения во время k +p, итоговые две строки y.seq идентичны.
Чтобы включить этот порт, выберите параметр Optimal output sequence.
Cell Array of MPC Controllers
— Контроллеры кандидатаmpc
объекты | массив ячеек строк | массив ячеек из символьных векторовКонтроллеры кандидата в виде одного из следующего:
Заданный массив должен содержать по крайней мере два контроллера кандидата. Первая запись в массиве ячеек является контроллером, который соответствует входному значению переключателя 1, второе соответствует входному значению переключателя 2 и так далее.
Параметры блоков:
mpcobjs |
Ввод: строка, вектор символов, массив ячеек строк, массива ячеек из символьных векторов |
Значение по умолчанию:
"" |
Cell Array of Initial Controller States
— Начальное состояниеmpcstate
объекты | массив ячеек строк | массив ячеек из символьных векторовНачальные состояния для контроллеров кандидата в виде одного из следующего:
Массив ячеек mpcstate
объекты.
Массив ячеек строк или массива ячеек из символьных векторов, где каждым элементом является имя mpcstate
объект в рабочем пространстве MATLAB.
{[],[],...}
, {'[]','[]',...}
, или {"[]","[]",...}
— Используйте номинальное условие, заданное в Model.Nominal
свойство каждого контроллера кандидата как его начальное состояние.
Использование этот параметр заставляет состояния контроллера отразить истинную среду объекта в начале вашей симуляции в меру вашего знания. Это начальные состояния может отличаться от номинальных состояний, заданных в mpc
объекты.
Если пользовательская оценка состояния включена, блок игнорирует параметр Cell Array of Initial Controller States.
Параметры блоков:
x0s |
Ввод: строка, вектор символов, массив ячеек строк, массива ячеек из символьных векторов |
Значение по умолчанию:
"" |
Measured disturbances
— Добавьте измеренный входной порт воздействияon
(значение по умолчанию) | off
Если ваш контроллер измерил воздействия, необходимо выбрать этот параметр, чтобы добавить выходной порт md в блок.
Параметры блоков: md_inport_multiple |
Ввод: строка, вектор символов |
Значения: "off" on |
Значение по умолчанию: "on" |
External manipulated variable
— Добавьте внешний порт ввода переменной, которым управляют,Выберите этот параметр, чтобы добавить входной порт ext.mv в блок.
Параметры блоков: mv_inport_multiple |
Ввод: строка, вектор символов |
Значения: "off" on |
Значение по умолчанию: "off" |
Targets for manipulated variables
— Добавьте переменный целевой входной порт, которым управляют,Выберите этот параметр, чтобы добавить входной порт mv.target в блок.
Параметры блоков:
uref_inport_multiple |
Ввод: строка, вектор символов |
Значения:
"off" on |
Значение по умолчанию:
"off" |
Optimal cost
— Добавьте оптимальный выходной порт стоимостиВыберите этот параметр, чтобы добавить выходной порт cost в блок.
Параметры блоков:
return_cost_multiple |
Ввод: строка, вектор символов |
Значения:
"off" on |
Значение по умолчанию:
"off" |
Optimization status
— Добавьте выходной порт состояния оптимизацииВыберите этот параметр, чтобы добавить выходной порт qp.status в блок.
Параметры блоков:
return_qpstatus_multiple |
Ввод: строка, вектор символов |
Значения:
"off" on |
Значение по умолчанию:
"off" |
Estimated controller states
— Добавьте оцененный выходной порт состоянийВыберите этот параметр, чтобы добавить выходной порт est.state в блок.
Параметры блоков: return_state_multiple |
Ввод: строка, вектор символов |
Значения: "off" on |
Значение по умолчанию: "off" |
Optimal control sequence
— Добавьте выходной порт последовательности оптимального управленияВыберите этот параметр, чтобы добавить выходной порт mv.seq в блок.
Параметры блоков:
return_mvseq_multiple |
Ввод: строка, вектор символов |
Значения:
"off" on |
Значение по умолчанию:
"off" |
Optimal state sequence
— Добавьте оптимальный выходной порт последовательности состоянияВыберите этот параметр, чтобы добавить выходной порт x.seq в блок.
Параметры блоков:
return_xseq_multiple |
Ввод: строка, вектор символов |
Значения:
"off" on |
Значение по умолчанию:
"off" |
Optimal output sequence
— Добавьте оптимальный выходной выходной порт последовательностиВыберите этот параметр, чтобы добавить выходной порт y.seq в блок.
Параметры блоков:
return_ovseq_multiple |
Ввод: строка, вектор символов |
Значения:
"off" on |
Значение по умолчанию:
"off" |
Use custom state estimation instead of using the built-in Kalman filter
— Используйте пользовательский оценочный входной порт состоянияВыберите этот параметр, чтобы удалить входной порт mo и добавить входной порт x[k|k].
Параметры блоков: state_inport_multiple |
Ввод: строка, вектор символов |
Значения: "off" on |
Значение по умолчанию: "off" |
Lower OV limits
— Добавьте минимальный ограничительный входной порт OVВыберите этот параметр, чтобы добавить входной порт ymin в блок.
Параметры блоков:
ymin_inport_multiple |
Ввод: строка, вектор символов |
Значения:
"off" on |
Значение по умолчанию:
"off" |
Upper OV limits
— Добавьте максимальный ограничительный входной порт OVВыберите этот параметр, чтобы добавить входной порт ymax в блок.
Параметры блоков:
ymax_inport_multiple |
Ввод: строка, вектор символов |
Значения:
"off" on |
Значение по умолчанию:
"off" |
Lower MV limits
— Добавьте минимальный ограничительный входной порт мВВыберите этот параметр, чтобы добавить входной порт umin в блок.
Параметры блоков:
umin_inport_multiple |
Ввод: строка, вектор символов |
Значения:
"off" on |
Значение по умолчанию:
"off" |
Upper MV limits
— Добавьте максимальный ограничительный входной порт мВВыберите этот параметр, чтобы добавить входной порт umax в блок.
Параметры блоков:
umax_inport_multiple |
Ввод: строка, вектор символов |
Значения:
"off" on |
Значение по умолчанию:
"off" |
Custom constraints
— Добавьте пользовательские ограничительные входные портыВыберите этот параметр, чтобы добавить E, F, G и входные порты S с блоком.
Параметры блоков:
cc_inport_multiple |
Ввод: строка, вектор символов |
Значения:
"off" on |
Значение по умолчанию:
"off" |
OV weights
— Добавьте OV настраивающийся входной порт весовВыберите этот параметр, чтобы добавить входной порт y.wt в блок.
Параметры блоков:
ywt_inport_multiple |
Ввод: строка, вектор символов |
Значения:
"off" on |
Значение по умолчанию:
"off" |
MV weights
— Добавьте мВ, настраивающий входной порт весовВыберите этот параметр, чтобы добавить входной порт u.wt в блок.
Параметры блоков:
uwt_inport_multiple |
Ввод: строка, вектор символов |
Значения:
"off" on |
Значение по умолчанию:
"off" |
MVRate weights
— Добавьте уровень мВ, настраивающий входной порт весовВыберите этот параметр, чтобы добавить входной порт du.wt в блок.
Параметры блоков:
duwt_inport_multiple |
Ввод: строка, вектор символов |
Значения:
"off" on |
Значение по умолчанию:
"off" |
Slack variable weight
— Добавьте ECR настраивающийся входной порт весаВыберите этот параметр, чтобы добавить входной порт ecr.wt в блок.
Параметры блоков:
rhoeps_inport_multiple |
Ввод: строка, вектор символов |
Значения:
"off" on |
Значение по умолчанию:
"off" |
Block data type
— Задайте тип данных переменных, которыми управляют,double
(значение по умолчанию) | single
| data type expression
Задайте тип данных блока переменных, которыми управляют, как одно из следующего:
double
Плавающая точка двойной точности
single
Плавающая точка с одинарной точностью
Если вы реализуете блок на цели с одинарной точностью, задаете тип выходных данных как single
.
data type expression
— Выражение, которое оценивает к любому double
или single
. Для получения дополнительной информации смотрите Типы данных Управляющего сигнала (Simulink).
Параметры блоков:
BlockDataType_multiple |
Ввод: строка, вектор символов |
Значения:
"double" единственный , data type expression |
Значение по умолчанию: "double" |
Inherit sample time
— Наследуйте шаг расчета блока от родительской подсистемыoff
(значение по умолчанию) | on
Выберите этот параметр, чтобы наследовать шаг расчета родительской подсистемы как шаг расчета блока. Выполнение так позволяет вам условно выполнять этот блок в 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" |
mv.seq
размерности сигнала выходного порта изменилисьПоведение изменяется в R2018b
Размерности сигнала mv.seq
выходной порт блока Multiple MPC Controllers изменился. Ранее этим сигналом был p-by-Nmv матрица, где p является горизонтом предсказания, и Nmv является количеством переменных, которыми управляют. Теперь mv.seq
(p +1)-by-Nmv матрица, где строка p +1 строка копий p.
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.