Обрезка и линеаризация моделей Simulink

В этом примере показано, как использовать Simulink Control Design из командной строки путем линеаризации watertank системы управления с обратной связью Модели Simulink. Линеаризовавшая модель разомкнутого цикла watertank будет извлечена в рабочей точке, где уровень бака в H = 10. Выполняющий 3 шагов линеаризует и анализирует модель бака для воды.

Для получения дополнительной информации о программно определении:

Шаг 1: конфигурирование точек линеаризации

Откройте модель.

watertank

Точки линеаризации задают вводы и выводы линеаризовавшей модели. Чтобы извлечь разомкнутый цикл линеаризовавшая модель, добавьте точку ввода при выходе блока Controller и выходной точки, с открытием цикла, при выходе блока Water-Tank System.

Задайте точку ввода.

watertank_io(1)=linio('watertank/PID Controller',1,'input');

Задайте выходную точку с открытием цикла.

watertank_io(2)=linio('watertank/Water-Tank System',1,'openoutput');

Точки линеаризации могут затем быть установлены и просмотрены в модели.

setlinio('watertank',watertank_io);
watertank

Шаг 2: вычисление и определение рабочих точек

Этот следующий шаг включает нахождение рабочей точки модели Simulink 'watertank' так, чтобы уровень бака был в H = 10. Один подход должен симулировать модель, затем извлекают рабочую точку, когда симуляция около требуемого значения. Команда FINDOP симулирует модель и извлечет рабочие точки, время от времени задаваемые в вызове функции.

opsim = findop('watertank',10)
 Operating point for the Model watertank.
 (Time-Varying Components Evaluated at time t=10)

States: 
----------
(1.) watertank/PID Controller/Integrator/Continuous/Integrator
      x: 1.69         
(2.) watertank/Water-Tank System/H
      x: 10.1         

Inputs: None 
----------

В этой рабочей точке H не в требуемом значении 10. Однако можно использовать эту рабочую точку, чтобы инициализировать поиск желаемой рабочей точки где H = 10. Объект спецификации рабочей точки позволяет вам задавать требуемое значение H = 10.

Создайте объект спецификации рабочей точки.

opspec = operspec('watertank');

Инициализируйте значения состояний спецификации рабочей точки с теми в рабочей точке opsim.

opspec = initopspec(opspec,opsim);

Заданная рабочая точка может затем искаться (обрезанное) использование команды FINDOP.

opss = findop('watertank',opspec);
 Operating point search report:
---------------------------------

 Operating point search report for the Model watertank.
 (Time-Varying Components Evaluated at time t=10)

Operating point specifications were successfully met.
States: 
----------
(1.) watertank/PID Controller/Integrator/Continuous/Integrator
      x:          1.26      dx:             0 (0)
(2.) watertank/Water-Tank System/H
      x:            10      dx:      -1.1e-14 (0)

Inputs: None 
----------

Outputs: None 
----------

Шаг 3: линеаризация и анализ модели

Вы теперь готовы линеаризовать модель объекта управления при помощи функции LINEARIZE.

sys = linearize('watertank',opss,watertank_io);

Получившаяся модель является объектом пространства состояний, что можно анализировать использование любого из инструментов в программном обеспечении Control System Toolbox.

bode(sys);

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

bdclose('watertank')