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

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

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

Шаг 1: Настройка точек линеаризации

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

watertank

Точки линеаризации задают входы и выходы линеаризированной модели. Чтобы извлечь разомкнутый контур линеаризированную модель, добавьте точку входа на выходе блока Контроллер и выходную точку с открытием цикла на выходе блока Бака с водой 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 
----------

В этой рабочей точке Н не достигает желаемого значения 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')

Похожие темы