Графический вывод характеристик линейной системы химического реактора

В этом примере показано, как построить линеаризацию модели Simulink при конкретных условиях в процессе моделирования. Программное обеспечение Simulink Control Design обеспечивает блоки, которые можно добавить в модели Simulink, чтобы вычислить и построить линейные системы в процессе моделирования. В этом примере линейная система непрерывно размешиваемого химического реактора вычислена и построена на Диаграмме Боде как реакторные переходы через различные рабочие точки.

Химическая реакторная модель

Откройте модель Simulink химического реактора:

open_system('scdcstr')

Реактор имеет три входных параметров и два выходных параметров:

  • FeedCon0, FeedTemp0 и Coolant Temp блоки моделируют концентрацию канала, питают температуру и входные параметры температуры хладагента соответственно.

  • T и CA порты CSTR блокируйтесь моделируют реакторную температурную и остаточную концентрацию выходные параметры соответственно.

Этот пример фокусируется на ответе от температуры хладагента, Coolant Temp, к остаточной концентрации, CA, когда концентрация канала и температура канала являются постоянными.

Для получения дополнительной информации о моделировании реакторов смотрите Seborg, D.E. и др., "Динамика процесса и Управление", 2-й Эд., Вайли, pp.34-36.

Графический вывод реакторного линейного ответа

Реакторная модель содержит Bode Plot блок из библиотеки Simulink Control Design Linear Analysis Plots. Блок сконфигурирован с:

  • Вход линеаризации при температуре хладагента Coolant Temp.

  • Линеаризация выход при остаточной концентрации CA.

Блок также сконфигурирован, чтобы выполнить линеаризацию на возрастающих ребрах внешнего триггерного сигнала. Триггерный сигнал вычисляется в Linearization trigger signal блокируйтесь, который производит возрастающее ребро, когда остаточная концентрация:

  • В значении устойчивого состояния 2

  • В узком диапазоне приблизительно 5

  • В значении устойчивого состояния 9

Двойной клик по Bode Plot блок позволяет вам просмотреть настройку блока.

Нажатие на Show Plot в диалоговом окне Block Parameters открывает окно Bode Plot, которое показывает ответ вычисленной линейной системы от Coolant Temp к CA. Чтобы вычислить линейную систему и просмотреть ее ответ, симулируйте модель с помощью одного из следующего:

  • Нажмите Run кнопка в окне Bode Plot.

  • Выберите Simulation> Run в окне модели Simulink.

  • Введите следующую команду:

sim('scdcstr')

Диаграмма Боде показывает линеаризовавший реактор в трех рабочих точках, соответствующих триггерным сигналам, заданным в Linearization trigger signal блок:

  • В 5 секунд линеаризация для низкой остаточной концентрации.

  • В 38 секунд линеаризация для высокой остаточной концентрации.

  • В 27 секунд линеаризация как реакторные переходы от минимума до высокой остаточной концентрации.

Линеаризация при низких и высоких остаточных концентрациях подобна, но линеаризация во время перехода имеет существенно отличающееся усиление DC и характеристики фазы. В низких частотах фаза отличается 180 градусами, указывая на присутствие или нестабильного полюса или нуля.

Логгирование реакторного линейного ответа

Вкладка Logging в Bode Plot блок указывает, что вычисленные линейные системы сохранены как переменная рабочей области.

В линейные системы входят структура с time и values поля .

LinearReactor
LinearReactor = 

  struct with fields:

         time: [3x1 double]
       values: [1x1x3x1 ss]
    blockName: 'scdcstr/Bode Plot'

values поле хранит линейные системы как массив систем в пространстве состояний LTI. Для получения дополнительной информации смотрите Массивы моделей.

Можно получить отдельные системы путем индексации в values поле .

P1 = LinearReactor.values(:,:,1);
P2 = LinearReactor.values(:,:,2);
P3 = LinearReactor.values(:,:,3);

Диаграмма Боде линейной системы во время 27 секунд, когда реакторные переходы от низко до высокой остаточной концентрации, указывает, что система могла быть нестабильной. Отображение линейных систем в нулевом полюсом формате подтверждает это:

zpk(P1)
zpk(P2)
zpk(P3)
ans =
 
  From input "Coolant Temp" to output "CSTR/2":
         -0.1028
  ----------------------
  (s^2 + 2.215s + 2.415)
 
Continuous-time zero/pole/gain model.


ans =
 
  From input "Coolant Temp" to output "CSTR/2":
        -0.07514
  ---------------------
  (s+0.7567) (s-0.3484)
 
Continuous-time zero/pole/gain model.


ans =
 
  From input "Coolant Temp" to output "CSTR/2":
        -0.020462
  ---------------------
  (s+0.8542) (s+0.7528)
 
Continuous-time zero/pole/gain model.

Закройте модель Simulink:

bdclose('scdcstr')
clear('LinearReactor','P1','P2','P3')

Похожие темы