Этот пример показывает, как спроектировать компенсатор в структуре IMC для последовательных химических реакторов, используя Control System Designer. Основанные на модели системы управления часто используются для отслеживания уставок и отклонения нарушений порядка нагрузки в приложениях управления процессами.
В данном примере объекта представляет собой химическую реакторную систему, состоящую из двух хорошо смешанных баков.

Реакторы являются изотермическими, и реакция в каждом реакторе происходит в первом порядке по компоненту А:

Материальное сальдо применяется к системе для создания динамической модели системы. Уровни в баке приняты постоянными из-за переливного сопла, и, следовательно, нет никакого контроля уровня.
Для получения дополнительной информации об этом объекте. Пример 3.3 в Главе 3 «Управление процессами: Проект процессов и систем управления для динамической эффективности» Томаса Э. Марлина.
Следующие дифференциальные уравнения описывают балансы компонентов:


В установившемся состоянии,


сальдо материала:


где,
,
и
являются установившимися значениями.
Замена, следующие проектные спецификации и параметры реактора:




Получаемые в результате установившиеся концентрации в двух реакторах:


где

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

и модель возмущения

Этот химический процесс может быть представлен с помощью следующего блока:

где




На основе блока получите объект и модели возмущения следующим образом:


Создайте модель объекта управления в командной строке:
s = tf('s');
G1 = (13.3259*s+3.2239)/(8.2677*s+1)^2;
G2 = G1;
Gd = 0.4480/(8.2677*s+1)^2;
G1 является реальным объектом, используемым в оценке контроллера. G2 является приближением реального объекта и используется в качестве прогнозирующей модели в структуре IMC. G2 = G1 означает, что несоответствия модели нет. Gd - модель возмущения.
Откройте Control System Designer.
controlSystemDesigner

Выберите архитектуру управления IMC. В Control System Designer нажмите Edit Architecture. В диалоговом окне Edit Architecture выберите Configuration 5.

Загрузите системные данные. Для G1, G2 и Gd задайте Значение модели.

Постройте график переходной характеристики разомкнутого цикла G1.
step(G1)

Щелкните правой кнопкой мыши график и выберите «Характеристики» > «Время нарастания» подменю. Щелкните на синем маркере времени нарастания.

Это время нарастания около 25 секунд, и мы хотим настроить компенсатор IMC, чтобы достичь более быстрого времени отклика с обратной связью.
Чтобы настроить компенсатор IMC, в Control System Designer, щелкните Методы настройки и выберите Внутренний контроль модели (IMC) Настройка.

Выберите Доминирующую постоянную времени с обратной связью 2 и желаемый контроллера порядок 2.

Чтобы просмотреть переходную характеристику с обратной связью, в Control System Designer, дважды щелкните вкладку IOTransfer_r2y:step графика.

При разработке контроллера мы приняли, G1 было равно G2. На практике они часто отличаются, и контроллер должен быть достаточно устойчивым, чтобы отслеживать уставки и отклонять нарушения порядка.
Создайте несоответствия модели между G1 и G2 и исследуйте эффективность управления в командной строке MATLAB при наличии изменения уставки и нарушения порядка нагрузки.
Экспортируйте IMC Compensator в рабочее пространство MATLAB. Нажмите Экспорт. В диалоговом окне Экспорт модели выберите модель компенсатора C.

Нажмите Экспорт.
Преобразуйте структуру IMC в классическую структуру управления с обратной связью с контроллером в пути feedforward и модульной обратной связи.
C = zpk([-0.121 -0.121],[-0.242, -0.466],2.39); C_new = feedback(C,G2,+1)
C_new =
2.39 (s+0.121)^4
---------------------------------------------
(s-0.0001594) (s+0.121) (s+0.1213) (s+0.2419)
Continuous-time zero/pole/gain model.
Задайте следующие модели объекта управления:
Несоответствие модели отсутствует:
G1p = (13.3259*s+3.2239)/(8.2677*s+1)^2;
G1 постоянная времени изменена на 5%:
G1t = (13.3259*s+3.2239)/(8.7*s+1)^2;
G1 коэффициент усиления увеличивается в 3 раза:
G1g = 3*(13.3259*s+3.2239)/(8.2677*s+1)^2;
Оцените эффективность отслеживания уставки.
step(feedback(G1p*C_new,1),feedback(G1t*C_new,1),feedback(G1g*C_new,1)) legend('No Model Mismatch','Mismatch in Time Constant','Mismatch in Gain')

Оцените эффективность подавления помех.
step(Gd*feedback(1,G1p*C_new),Gd*feedback(1,G1t*C_new),Gd*feedback(1,G1g*C_new)) legend('No Model Mismatch','Mismatch in Time Constant','Mismatch in Gain')

Контроллер достаточно надежен к неопределенностям в параметрах объекта.