Этот пример показывает, как разработать образцовый прогнозирующий контроллер для непрерывного реактора смесителя (CSTR) в Simulink® с помощью MPC Designer.
Этот пример требует, чтобы программное обеспечение Simulink Control Design™ задало структуру MPC путем линеаризации нелинейной модели Simulink.
CSTR является покрытым кожухом неадиабатическим реактором корпуса, обычно используемым в перерабатывающей промышленности.
Входной поток реагента A питается в корпус на постоянном уровне. Первый порядок, необратимая, экзотермическая реакция происходит, чтобы произвести поток продукта, который выходит из реактора на том же уровне как входной поток.
Модель CSTR имеет три входных параметров:
Питайте Концентрацию (CAi) — концентрация реагента A в потоке канала (kgmol/m3)
Питайте Температуру (Ti) — потоковая температура Канала (K)
Температура хладагента (Tc) — Реакторная температура хладагента (K)
Два образцовых выходных параметров:
Температура CSTR (T) — Реакторная температура (K)
Концентрация (CA) — Концентрация реагента A в потоке продукта, также называемом residual concentration (kgmol/m3)
Цель управления состоит в том, чтобы поддержать остаточную концентрацию, CA, в его номинальном заданном значении путем корректирования температуры хладагента, Tc. Изменения в концентрации канала, CAi, и температуре канала, Ti, вызывают воздействия в реакции CSTR.
Реакторная температура, T, обычно контролируется. Однако для этого примера, проигнорируйте реакторную температуру и примите, что остаточная концентрация измеряется непосредственно.
open_system('CSTR_ClosedLoop');
В окне модели Simulink дважды кликните блок MPC Controller.
В диалоговом окне Block Parameters, на вкладке General, в разделе Additional Inports, проверяют опцию Measured disturbance (md).
Нажмите Apply, чтобы добавить, что md
импортирует к блоку контроллера.
В окне модели Simulink соедините блок Feed Temperature вывод с импортом md
.
В диалоговом окне MPC Controller Block Parameters нажмите Design, чтобы открыть MPC Designer.
В 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 kgmol/m3. Чтобы вычислить такую рабочую точку, добавьте сигнал CA
как выходное ограничение для обрезки и задайте его целевое ограничительное значение.
В окне модели Simulink щелкните правой кнопкой по сигнальной линии, соединенной с выходным портом CA
блока CSTR, и нажмите Linear Analysis Points> Trim Output Constraint.
Сигнал CA
может теперь использоваться к выходным define спецификациям для вычисления образцовой установившейся рабочей точки.
В диалоговом окне Define MPC Structure By Linearization, в разделе Simulink Operating Point, в выпадающем списке, под Create New Operating Point, нажимают Trim Model.
В Обрезке образцовое диалоговое окно, во вкладке 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, почти нулевые производные значения указывают, что вычисленная рабочая точка в установившемся.
Нажмите Initialize model, чтобы установить начальные состояния модели Simulink к значениям рабочей точки в столбце Actual Values. Выполнение так позволяет вам позже моделировать модель 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. Кроме того, следующее добавляются к Data Browser:
Контроллер MPC по умолчанию создал использование линеаризовавшего объекта как внутренняя модель прогноза
Сценарий симуляции по умолчанию
На вкладке MPC Designer, в разделе Structure, нажимают I/O Attributes.
В диалоговом окне Input and Output Channel Specifications, в столбце Name, задают понятные имена для каждого канала ввода и вывода.
В столбце Unit задайте соответствующие модули для каждого сигнала.
Nominal Value для каждого сигнала является соответствующим установившимся значением в вычисленной рабочей точке.
Нажмите OK.
Главная цель контроллера состоит в том, чтобы содержать остаточную концентрацию, CA, по номинальной стоимости 2
kgmol/m3. Для этого контроллер должен отклонить и измеренные и неизмеренные воздействия.
В разделе Scenario нажмите Edit Scenario> scenario1.
В диалоговом окне Simulation Scenario, в таблице Reference Signals, в Signal выпадающий список выбирают Constant, чтобы содержать выходное заданное значение по его номинальной стоимости.
В таблице Measured Disturbances, в Signal выпадающий список, выбирают Step.
Задайте шаг Size 10
и шага Time 0
.
Нажмите OK.
В Data Browser, под Scenarios, дважды кликают 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.
Область отображения графика изменяется, чтобы отобразить Входные графики Ответа выше Выходных графиков Ответа.
Перетащите вкладку MD_reject: Output до главного графика.
Во вкладке Tuning, в разделе Horizon, задают Prediction horizon 20
и Control horizon 5
.
Output Response строит обновление на основе новых значений горизонта.
Используйте ограничение контроллера по умолчанию и настройки веса.
В разделе Performance Tuning перетащите ползунок Closed-Loop Performance направо, который приводит к более трудному управлению выходных параметров и более агрессивным перемещениям управления. Перетащите ползунок, пока ответ MD_reject: Output не достигнет устойчивого состояния меньше чем через 2 секунды.
Перетащите ползунок State Estimation направо, который приводит к более агрессивному неизмеренному подавлению помех. Перетащите ползунок, пока ответ UD_reject: Output не достигнет устойчивого состояния меньше чем через 3 секунды.
В разделе Analysis кликните по стрелке Update and Simulate.
Под Update and Simulate нажмите Update Block Only. Приложение экспортирует настроенный контроллер, mpc1
, к рабочему пространству MATLAB. В модели Simulink блок MPC Controller обновляется, чтобы использовать экспортируемый контроллер.
В окне модели Simulink измените длительность симуляции на секунды 5
.
Образцовые начальные условия установлены к номинальной рабочей точке, используемой для линеаризации.
Дважды кликните блок Feed Concentration.
В диалоговом окне Block Parameters введите Constant Value 11
, чтобы моделировать модульный шаг в нуле времени.
Нажмите Apply.
В окне модели Simulink нажмите Run.
Concentration ответ вывода подобен ответу UD_reject, однако время установления, приблизительно 1 секунду спустя. Различный результат происходит из-за несоответствия между линейным объектом, используемым в симуляции MPC Designer и нелинейным объектом в модели Simulink.
В Параметрах блоков: Питайте диалоговое окно Concentration, введите Constant Value 10
, чтобы возвратить концентрацию канала в ее номинальную стоимость.
Нажмите OK.
В окне модели Simulink дважды кликните блок Feed Temperature.
В Параметрах блоков: Питайте диалоговое окно Temperature, введите Constant Value 310
, чтобы моделировать ступенчатое изменение размера 10 в нуле времени.
Нажмите OK.
В окне модели Simulink нажмите Run.
Concentration ответ вывода подобен ответу MD_reject от симуляции MPC Designer.
[1] Seborg, D. E. Т. Ф. Эдгар, и Д. А. Мелличамп, Динамика Процесса и Управление, 2-й Выпуск, Вайли, 2004, стр 34–36 и 94–95.