В этом примере показано, как спроектировать прогнозирующий контроллер модели для непрерывного реактора смесителя (CSTR) в Simulink® использование MPC Designer.
Этот пример требует, чтобы программное обеспечение Simulink Control Design™ задало структуру MPC путем линеаризации нелинейной модели Simulink.
Если у вас нет программного обеспечения Simulink Control Design, необходимо сначала создать mpc
объект в MATLAB® рабочая область. Для получения дополнительной информации смотрите, что Контроллер Проекта Использует MPC Designer и Проект Контроллер MPC в Командной строке.
Нелинейная модель Постоянно реактора смесителя (CSTR) описана в Модели CSTR. В модели входные параметры:
Питайте Концентрацию (CAi) — концентрация реагента A в потоке канала (kgmol/m3)
Питайте Температуру (Ti) — потоковая температура Канала (K)
Температура хладагента (Tc) — Реакторная температура хладагента (K)
в то время как переменные состояния (и выходные параметры):
Температура CSTR (T) — Реакторная температура (K)
Концентрация (CA) — Концентрация реагента A в потоке продукта, также называемом residual concentration (kgmol/m3)
Цель управления состоит в том, чтобы обеспечить остаточную концентрацию, CA, в его номинальном заданном значении путем корректирования температуры хладагента, Tc. Изменения в концентрации канала, CAi, и температуре канала, Ti, вызывают воздействия в реакции CSTR.
Реакторная температура, T, обычно измеряется. Однако для этого примера, проигнорируйте реакторную температуру и примите, что остаточная концентрация измеряется непосредственно.
Откройте модель Simulink.
open_system('CSTR_ClosedLoop')
В окне модели Simulink дважды кликните блок MPC Controller.
В диалоговом окне Block Parameters, на вкладке General, выбирают опцию Measured disturbance (md).
Нажмите Apply, чтобы добавить md
входной порт с блоком контроллера.
В окне модели Simulink соедините блок Feed Temperature выход с md
входной порт.
В этом примере вы линеаризуете модель Simulink из MPC Designer, который требует программного обеспечения Simulink Control Design. Для получения дополнительной информации смотрите, Линеаризуют Модели Simulink Используя MPC Designer.
Если у вас нет программного обеспечения Simulink Control Design, необходимо сначала создать mpc
объект в рабочем пространстве MATLAB и указывает, что диспетчер возражает в блоке MPC Controller.
Чтобы открыть MPC Designer, откройте блок MPC Controller и нажмите Design.
В MPC Designer, на вкладке MPC Designer, в разделе Structure, нажимают MPC Structure.
В диалоговом окне Define MPC Structure By Linearization, в разделе Controller Sample Time, задают шаг расчета 0.1
.
В разделе MPC Structure нажмите Change I/O Sizes, чтобы добавить неизмеренное воздействие и измеренные размерности сигнала воздействия.
В диалоговом окне MPC Block Signal Sizes задайте количество каналов ввода-вывода каждого типа.
Нажмите OK.
В диалоговом окне Define MPC Structure By Linearization, в разделе Simulink Signals for Plant Inputs, приложение добавляет строку для Unmeasured Disturbances (UD).
Переменное, измеренное воздействие, которым управляют и измеренный выход уже присвоены их соответствующим линиям Сигнала Simulink, которые соединяются с блоком MPC Controller.
В разделе Simulink Signals for Plant Inputs выберите строку Unmeasured Disturbances (UD) и нажмите Select Signals.
В окне модели Simulink кликните по выходному сигналу блока Feed Concentration.
Сигнал подсвечен, и его блок path добавляется к диалоговому окну Select Signal.
В диалоговом окне Select Signals нажмите Add Signal(s).
В диалоговом окне Define MPC Structure By Linearization, в таблице Simulink Signals for Plant Inputs, обновляется Block Path для неизмеренного сигнала воздействия.
В этом примере вы линеаризуете модель Simulink в установившейся рабочей точке равновесия, где остаточная концентрация составляет 2 килограмм-моля/м3. Чтобы вычислить такую рабочую точку, добавьте CA
предупредите как выходное ограничение для обрезки и задайте его целевое ограничительное значение.
В окне модели Simulink выберите сигнальную линию, соединенную с CA
выходной порт блока CSTR.
На вкладке Apps нажмите Linearization Manager. Затем на вкладке Linearization, в галерее Insert Analysis Points, выбирают Trim Output Constraint.
CA
сигнал может теперь использоваться к выходным define техническим требованиям для вычисления установившейся рабочей точки модели.
В диалоговом окне Define MPC Structure By Linearization, в разделе Simulink Operating Point, в выпадающем списке, выбирают Trim Model.
При использовании MPC Designer в MATLAB Online™ не поддерживается обрезка. Необходимо линеаризовать модель в начальных условиях модели.
В Обрезке диалоговое окно модели, на вкладке Outputs, устанавливают флажок в столбце Known для Channel-1
и задайте Value 2
.
Эта установка ограничивает значение выходного сигнала во время поиска рабочей точки к известному значению.
Нажмите Start Trimming.
В диалоговом окне Define MPC Structure By Linearization, в разделе Simulink Operating Point, вычисленной рабочей точке, op_trim1
, добавлен к выпадающему списку и выбран.
В выпадающем списке, под View/Edit, нажимают Edit op_trim1.
В диалоговом окне Edit, на вкладке State, в столбце Actual dx, почти нулевые производные значения указывают, что вычисленная рабочая точка в установившемся.
Чтобы установить начальные состояния модели Simulink к значениям рабочей точки в столбце Actual Values, нажмите Initialize model. Выполнение так позволяет вам позже симулировать модель Simulink в вычисленной рабочей точке, а не в начальных условиях модели по умолчанию.
В диалоговом окне Initialize Model нажмите OK.
При устанавливании начальных условий модели MPC Designer экспортирует рабочую точку в рабочее пространство MATLAB. Кроме того, в диалоговом окне Simulink Configuration Parameters, в разделе Data Import/Export, это выбирает Input и параметры Initial state и конфигурирует их, чтобы использовать состояния и входные параметры в экспортируемой рабочей точке.
Чтобы сбросить начальные условия модели, например, если вы удаляете экспортируемую рабочую точку, очищают параметры Initial state и Input.
Закройте диалоговое окно Edit.
В диалоговом окне Define MPC Structure By Linearization линеаризуйте модель путем нажатия на Define and Linearize.
В Data Browser приложение добавляет следующие элементы.
Линеаризовавшая модель объекта управления plant
Контроллер MPC по умолчанию mpc1
созданное использование линеаризовавшего объекта как внутренняя модель предсказания
Сценарий симуляции по умолчанию scenario1
На вкладке MPC Designer, в разделе Structure, нажимают I/O Attributes.
В диалоговом окне Input and Output Channel Specifications, в столбце Name, задают понятные имена для каждого канала ввода и вывода.
В столбце Unit задайте соответствующие модули для каждого сигнала.
Nominal Value для каждого сигнала является соответствующим установившимся значением в вычисленной рабочей точке.
Нажмите OK.
Главная цель контроллера состоит в том, чтобы содержать остаточную концентрацию CA по номинальной стоимости 2
kgmol/m3. Для этого контроллер должен отклонить и измеренные и неизмеренные воздействия.
На вкладке MPC Designer, в разделе Scenario, выбирают Edit Scenario> scenario1.
В диалоговом окне Simulation Scenario, в таблице Reference Signals, в Signal выпадающий список выбирают Constant, чтобы содержать выходное заданное значение по его номинальной стоимости.
В таблице Measured Disturbances, в Signal выпадающий список, выбирают Step.
Задайте шаг Size 10
и шаг Time 0
.
Нажмите OK.
В Data Browser, под Scenarios, нажимают scenario1
. Нажмите scenario1
во второй раз, и переименовывают его MD_reject
.
В разделе Scenario нажмите Plot Scenario> New Scenario.
В диалоговом окне Simulation Scenario, в таблице Unmeasured Disturbances, в Signal выпадающий список, выбирают Step.
Задайте шаг Size 1
и шаг Time 0
.
Нажмите OK.
В Data Browser, под Scenarios, переименовывают NewScenario
к UD_reject
.
Чтобы сделать просмотр настраивающихся результатов легче, расположите область построения, чтобы отобразить Выходные Графики отклика для обоих сценариев одновременно.
На вкладке View, в разделе Tiles, нажимают Top/Bottom. Вкладка View не поддерживается в MATLAB Online.
Область отображения графика изменяется, чтобы отобразить Входные Графики отклика выше Выходных Графиков отклика.
Перетащите и выберите графики так, чтобы вкладка MD_reject: Output была в верхней области построения, и график UD_reject: Output находится в более низкой области построения.
На вкладке Tuning, в разделе Horizon, задают Prediction horizon 20
и Control horizon 5
.
Output Response строит обновление на основе новых значений горизонта.
Используйте ограничение контроллера по умолчанию и настройки веса.
В разделе Performance Tuning перетащите ползунок Closed-Loop Performance направо, который приводит к более трудному управлению выходных параметров и более агрессивным перемещениям управления. Перетащите ползунок, пока ответ MD_reject: Output не достигнет устойчивого состояния меньше чем через две секунды.
Перетащите ползунок State Estimation направо, который приводит к более агрессивному неизмеренному подавлению помех. Перетащите ползунок, пока ответ UD_reject: Output не достигнет устойчивого состояния меньше чем через 3 секунды.
В разделе Analysis выберите Export Controller> Update Block Only. Приложение экспортирует настроенный контроллер mpc1
к рабочему пространству MATLAB. В модели Simulink блок MPC Controller обновляется, чтобы использовать экспортируемый контроллер.
В окне модели Simulink, на вкладке Simulation, Stop Time изменения к 5
секунды.
Начальные условия модели установлены к номинальной рабочей точке, используемой для линеаризации.
Чтобы симулировать модульный шаг в концентрации канала в начальный момент времени, откройте блок Feed Concentration и увеличьте его параметр Constant value с 10
к 11
.
В окне модели Simulink откройте осциллограф Concentration и запустите симуляцию.
Выходной ответ похож на ответ UD_reject, однако время урегулирования приблизительно 1 секунду спустя. Различный результат происходит из-за несоответствия между линейным объектом, используемым в симуляции MPC Designer и нелинейным объектом в модели Simulink.
Чтобы симулировать измеренное подавление помех, сначала возвратите блок Feed Concentration в его номинальную стоимость 10
.
Чтобы симулировать ступенчатое изменение в температуре канала в начальный момент времени, откройте блок Feed Temperature и увеличьте его параметр Constant value с 300
к 310
.
Запустите симуляцию.
Выходной ответ похож на ответ MD_reject от симуляции MPC Designer.