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

Процесс является нелинейным и имеет три выхода, два манипулируемых входа и два входа возмущения, один из которых измеряется для прямого управления.
Модель процесса представляет собой набор обыкновенных дифференциальных уравнений (ОДУ) в билинейной форме. Штаты:
] T
H1 - Уровень жидкости в питательном баке
H2 - Уровень жидкости в напорном ящике
N1 - Консистенция питательного резервуара
N2 - Консистенция напорного ящика
Основная задача управления заключается в удержании H2 и N2 в их уставках путем корректировки манипулируемых переменных:
Gp - Расход сырья, поступающего в питательный бак
Gw - Расход оборотной белой воды
Консистенция сырья, поступающего в питающий резервуар, Np, представляет собой измеренное возмущение, а консистенция белой воды, Nw, представляет собой неизмеренное возмущение.
Все сигналы нормируются с нулевыми номинальными установившимися значениями и сопоставимыми числовыми диапазонами. Процесс является стабильным с разомкнутым контуром.
Измеряемыми выходами являются H2, N1 и N2.
S-функция Simulink ® ,mpc_pmmodel реализует нелинейные уравнения модели. Для просмотра этой S-функции введите следующее.
edit mpc_pmmodelДля проектирования контроллера для нелинейной установки с помощью MPC Designer необходимо сначала получить линейную модель установки. Модель напорного ящика бумагоделательной машины может быть линеаризована аналитически.
В командной строке MATLAB ® введите матрицы состояния и пространства для линеаризованной модели.
A = [-1.9300 0 0 0
0.3940 -0.4260 0 0
0 0 -0.6300 0
0.8200 -0.7840 0.4130 -0.4260];
B = [1.2740 1.2740 0 0
0 0 0 0
1.3400 -0.6500 0.2030 0.4060
0 0 0 0];
C = [0 1.0000 0 0
0 0 1.0000 0
0 0 0 1.0000];
D = zeros(3,4);
Создание модели пространства состояний LTI с непрерывным временем.
PaperMach = ss(A,B,C,D);
Укажите имена входных и выходных каналов модели.
PaperMach.InputName = {'G_p','G_w','N_p','N_w'};
PaperMach.OutputName = {'H_2','N_1','N_2'};Укажите единицы времени модели.
PaperMach.TimeUnit = 'minutes';Осмотрите отклик установки по разомкнутому контуру.
step(PaperMach)

Ответ на шаг показывает, что:
Обе манипулируемые переменные, Gp и Gw, влияют на все три выхода.
Манипулируемые переменные оказывают почти одинаковое влияние на H2.
Отклик от Gw к N2 является обратным откликом.
Эти особенности затрудняют достижение точного, независимого управления H2 и N2.
Откройте приложение MPC Designer.
mpcDesigner
В конструкторе MPC на вкладке Конструктор MPC в разделе Структура щелкните Структура MPC.
В диалоговом окне «Определение структуры MPC путем импорта» выберите PaperMach модель установки и назначить каналы ввода/вывода установки следующим типам сигналов:
Управляемые переменные - Gp и Gw
Измеренное возмущение - Np
Неизмеренное возмущение - Nw
Измеренные выходы - H2, N2 и H2

Совет
Для поиска правильных индексов каналов нажмите кнопку PaperMach Имя модели для просмотра дополнительных сведений о модели.
Щелкните Определить (Define) и Импортировать (Import).
Приложение импортирует завод в браузер данных и создает контроллер MPC по умолчанию с использованием импортированного завода.
В разделе Структура выберите Атрибуты ввода-вывода.
В диалоговом окне «Спецификации канала ввода и вывода» в столбце «Единица» определите единицы измерения для каждого канала. Так как все сигналы нормализуются с нулевыми номинальными значениями установившегося состояния, оставьте значения номинального значения и масштабного коэффициента для каждого канала на уровне значений по умолчанию.

Нажмите кнопку ОК, чтобы обновить атрибуты канала и закрыть диалоговое окно.
На вкладке Настройка (Tuning) в разделе Горизонт (Horizon) оставьте значения по умолчанию Время выборки (Sample time), Горизонт прогнозирования (Prediction Horizon) и Горизонт управления (Control Horizon).
В разделе «Проектирование» выберите «Зависимости».
В диалоговом окне «Зависимости» в разделе «Ограничения ввода» задайте ограничения значений «Мин» и «Макс» для обеих управляемых переменных.

Нажмите кнопку ОК.
В разделе «Проектирование» выберите «Веса».
В диалоговом окне «Веса» в разделе «Входные веса» увеличьте значение параметра «Вес по ставке» до 0.4 для обеих управляемых переменных.
В разделе «Выходные веса» задайте вес 0 для второго выхода, N1 и вес 1 для других выходов.

Увеличение веса скорости для манипулируемых переменных предотвращает чрезмерно агрессивные действия управления, приводящие к более консервативной реакции контроллера.
Поскольку существуют две управляемые переменные, контроллер не может полностью управлять всеми тремя выходами. Нулевой вес указывает на отсутствие уставки для N1. В результате контроллер может удерживать H2 и N2 в соответствующих уставках.
На вкладке MPC Designer в разделе Сценарий щелкните Изменить сценарий > сценарий 1.
В диалоговом окне «Сценарий моделирования» задайте продолжительность моделирования, равную 30 минут.
В таблице Опорные сигналы (Reference Signals) в раскрывающемся списке Сигнал (Signal) выберите Step для первого вывода. Сохранить размер шага на уровне 1 и укажите шаг Время 0.
В выпадающих списках Signal для других выходных опорных сигналов выберите Constant для удержания значений на соответствующих номинальных значениях. Контроллер игнорирует уставку для второго выхода, так как соответствующий вес настройки равен нулю.

Нажмите кнопку ОК.
Приложение запускает моделирование с новыми настройками сценария и обновляет графики «Входной ответ» и «Выходной ответ».

Первоначальная конструкция использует консервативные усилия управления для создания надежного контроллера. Время отклика для выходного H2 составляет около 7 минут. Чтобы сократить это время отклика, можно уменьшить время выборки, уменьшить веса манипулируемой переменной скорости или уменьшить ограничения манипулируемой переменной скорости.
Поскольку вес настройки для выходного N1 равен нулю, его выходной отклик показывает ошибку установившегося состояния около –0.25.
На вкладке «Настройка» в разделе «Проект» выберите «Веса».
В диалоговом окне «Веса» в разделе «Выходные веса» задайте вес 0.2 для первого выхода, H2.

Контроллер уделяет больше внимания устранению ошибок в консистенции питающего резервуара, N2, что значительно снижает максимальную абсолютную погрешность. Компромисс представляет собой более длительное время отклика около 17 минут для уровня в питательном резервуаре, H2.
На вкладке MPC Designer в разделе Сценарий щелкните График сценария > Новый сценарий.
В диалоговом окне «Сценарий моделирования» задайте продолжительность моделирования, равную 30 минут.
В таблице Измеренные возмущения укажите ступенчатое изменение измеренного возмущения, Np, с размером 1 и шаг Время 1. Сохранить все выходные уставки постоянными при их номинальных значениях.

Нажмите кнопку ОК, чтобы запустить моделирование и отобразить графики входных и выходных ответов.

Как показано на графике NewScript: Output, H2 и N2 мало отклоняются от своих уставок.
В браузере данных в разделе «Сценарии» щелкните правой кнопкой мыши NewScenarioи выберите «Редактировать».
В диалоговом окне «Сценарий моделирования» в разделе «Параметры моделирования» установите флажок «Предварительный просмотр измеренных возмущений».
Нажмите кнопку «Применить».

Манипулируемые переменные начинают изменяться до того, как происходит измеренное возмущение, потому что контроллер использует известное значение будущего возмущения при вычислении своего управляющего действия. Значения выходного возмущения также начинают изменяться до возникновения возмущения, что уменьшает величину выходных ошибок. Однако существенного улучшения по сравнению с предыдущим результатом моделирования не наблюдается.
В диалоговом окне «Сценарий моделирования» снимите флажок «Предварительный просмотр измеренных возмущений».
Нажмите кнопку ОК.
При использовании нескольких сценариев полезно предоставить им значимые имена. В браузере данных в разделе «Сценарии» дважды щелкните по каждому сценарию, чтобы переименовать его следующим образом:

В браузере данных в разделе «Сценарии» щелкните правой кнопкой мыши Feedforwardи выберите «Копировать».
Дважды щелкните новый сценарий и переименуйте его. Feedback.
Щелкните правой кнопкой мыши Feedback и выберите Изменить.
В диалоговом окне «Сценарий моделирования» в таблице «Измеренные возмущения» в раскрывающемся списке «Сигнал» выберите Constant для устранения измеренного возмущения.
В таблице Несмеренные возмущения в раскрывающемся списке Сигнал выберите Step для моделирования внезапного, устойчивого неизмеренного входного нарушения.
Задайте для шага Размер значение 1 и шаг Время до 1.

Нажмите кнопку ОК, чтобы обновить параметры сценария и запустить моделирование.
В браузере данных в разделе «Сценарии» щелкните правой кнопкой мыши Feedbackи выберите «Печать».

Контролируемые выходы, H2 и N2, имеют относительно небольшие отклонения от своих уставок. Время установки больше, чем для исходного сервопривода, что является типичным.
На вкладке Настройка (Tuning) в разделе Анализ (Analysis) щелкните Просмотр конструкции (Review Design), чтобы проверить контроллер на потенциальную устойчивость во время выполнения или числовые проблемы.
Отчет о проверке откроется в новом окне.

Обзор помечает два предупреждения о конструкции контроллера. Щелкните имена предупреждений, чтобы определить, указывают ли они на проблемы с конструкцией контроллера.
Предупреждение Closed-Loop Steady-State Gains указывает, что установка имеет больше контролируемых выходов, чем управляемые переменные. Этот дисбаланс ввода/вывода означает, что контроллер не может устранить ошибку установившегося состояния для всех выходов одновременно. Для достижения контрольной цели отслеживания уставок H2 и N2 предварительно устанавливается нулевой выходной вес N1. Эта настройка вызывает предупреждение о достоверности матрицы QP Hessian, которое указывает, что один из весов вывода равен нулю.
Поскольку дисбаланс ввода/вывода является известной особенностью модели производства бумагоделательной машины, и вы намеренно устанавливаете один из весов вывода равным нулю для коррекции дисбаланса, ни одно из предупреждений не указывает на проблему с конструкцией контроллера.
На вкладке MPC Designer в разделе Result щелкните Export Controller.
![]()
В диалоговом окне «Контроллер экспорта» установите флажок в столбце «Выбор».
В столбце «Экспорт как» укажите MPC1 в качестве имени контроллера.

Щелкните Экспорт (Export), чтобы сохранить копию контроллера в рабочей области MATLAB.
При наличии модели системы Simulink можно смоделировать контроллер и проверить его производительность. Функции Simulink не поддерживаются в MATLAB Online™.
Откройте модель.
open_system('mpc_papermachine')
Блок контроллера MPC управляет моделью завода нелинейной бумагоделательной машины, которая определяется с помощью функции S mpc_pmmodel.
Модель сконфигурирована для моделирования устойчивого неизмеренного нарушения размера 1.
Дважды щелкните блок контроллера MPC.

Блок контроллера MPC уже настроен для использования MPC1 контроллер, ранее экспортированный в рабочую область MATLAB.
Кроме того, для добавления md вход в блок контроллера.
Моделирование модели.

На графике «Выходы» ответы почти идентичны ответам от соответствующего моделирования в MPC Designer. Желтая кривая - H2, синяя - N1, красная - N2.

Аналогично, в области MV манипулируемые перемещения переменных почти идентичны перемещениям из соответствующего моделирования в MPC Designer. Желтая кривая - Gp, синяя - Gw.
Эти результаты показывают, что нет существенных ошибок прогнозирования из-за несоответствия между моделью линейного прогнозирования контроллера и нелинейной установкой. Даже увеличение величины неизмеренного возмущения в четыре раза дает кривые отклика одинаковой формы. Однако по мере дальнейшего увеличения размера возмущения эффекты нелинейности становятся более выраженными.
В окне модели Simulink дважды щелкните на блоке «Неизмеренное возмущение».
В диалоговом окне «Свойства неизмеренного возмущения» задайте значение «Константа», равное 6.5.
Нажмите кнопку ОК.
Моделирование модели.


Несоответствие между моделью прогнозирования и заводом теперь дает выходные ответы со значительными различиями. Увеличение величины возмущения дополнительно приводит к большим отклонениям уставки и насыщенным регулируемым переменным.
[1] Ying, Y., M. Rao и Y. Sun «Билинейная стратегия контроля процесса изготовления бумаги», Chemical Engineering Communications (1992), том 111, стр. 13-28.
Контроллер MPC | Разработчик MPC