exponenta event banner

Изменение рабочих точек и получение нескольких передаточных функций с помощью интерфейса slLinearizer

В этом примере показано, как использовать slLinearizer интерфейс для пакетной линеаризации модели Simulink ®. Модель линеаризуется в нескольких рабочих точках и получает из модели несколько функций передачи с разомкнутым и замкнутым контуром.

Можно выполнить тот же анализ с помощью linearize команда. Однако если требуется получить несколько функций передачи с разомкнутым и замкнутым контуром, особенно для моделей, которые дорого компилируются повторно, slLinearizer может быть более эффективным.

Создание интерфейса slLinearizer для модели

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

mdl = 'watertank';
open_system(mdl);

Используйте slLinearizer для создания интерфейса.

sllin = slLinearizer(mdl)
 
slLinearizer linearization interface for "watertank":

No analysis points. Use the addPoint command to add new points.
No permanent openings. Use the addOpening command to add new permanent openings.
Properties with dot notation get/set access:
      Parameters         : [] 
      OperatingPoints    : [] (model initial condition will be used.)
      BlockSubstitutions : []
      Options            : [1x1 linearize.LinearizeOptions]

В окне командной строки отображается информация о slLinearizer интерфейс. В этом интерфейсе OperatingPoints отображение свойства показывает, что рабочая точка не указана.

Указать несколько рабочих точек для линеаризации

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

opspec = operspec(mdl);
opspec.States(2).Known = 1;
opts = findopOptions('DisplayReport','off');

h = [10 15 20];

for ct = 1:numel(h)
    opspec.States(2).x = h(ct);
    Href = h(ct);
    ops(ct) = findop(mdl,opspec,opts);
end

sllin.OperatingPoints = ops;

Здесь, h определяет различные уровни воды. ops представляет собой массив объектов рабочих точек 1 x 3. Каждая запись ops - рабочая точка модели на соответствующем уровне воды. Сконфигурируйте OperatingPoints имущество sllin с ops. Теперь при получении функций переноса из sllin с использованием getIOTransfer, getLoopTransfer, getSensitivity, и getCompSensitivity функция, программа возвращает линеаризацию для каждой указанной рабочей точки.

Каждая точка обрезки действительна только для соответствующей опорной высоты, представленной Href параметра блока «Требуемый уровень воды». Таким образом, сконфигурируйте sllin для соответствующего изменения этого параметра.

param.Name = 'Href';
param.Value = h;

sllin.Parameters = param;

Анализ функции переноса завода

В watertank модель, блок «Система резервуаров для воды» представляет установку. Для получения передаточной функции установки добавьте входные и выходные сигналы блока системы водоемов в качестве точек анализа sllin.

addPoint(sllin,{'watertank/PID Controller','watertank/Water-Tank System'})
sllin
 
slLinearizer linearization interface for "watertank":

2 Analysis points: 
--------------------------
Point 1:
- Block: watertank/PID Controller
- Port: 1
Point 2:
- Block: watertank/Water-Tank System
- Port: 1
 
No permanent openings. Use the addOpening command to add new permanent openings.
Properties with dot notation get/set access:
      Parameters         : [1x1 struct], 1 parameters with sampling grid of size 1x3
            "Href", varying between 10 and 20.
      OperatingPoints    : [1x3 opcond.OperatingPoint]
      BlockSubstitutions : []
      Options            : [1x1 linearize.LinearizeOptions]

Первая точка анализа, которая начинается на выходе блока PID Controller, является входом в блок Water-Tank System. Вторая точка анализа является выводом блока «Система резервуаров для воды».

Получить функцию передачи установки от входа блока системы резервуаров для воды к выходу блока. Чтобы исключить влияние контура обратной связи, укажите выход блока как временное размыкание контура.

G = getIOTransfer(sllin,'PID','Tank','Tank');

В вызове для getIOTransfer, 'PID', часть имени блока 'watertank/PID Controller', указывает первую точку анализа в качестве входного значения передаточной функции. Аналогично, 'Tank', часть имени блока 'watertank/Water-Tank System', относится ко второй точке анализа. Эта точка анализа задается как выход передаточной функции (третий входной аргумент) и временное размыкание контура (четвертый входной аргумент).

Выходные данные, G, является массивом 1 x 3 непрерывных моделей состояния-пространства.

Постройте график ответа на шаг для G.

stepplot(G);

Ступенчатая реакция моделей установки значительно варьируется в различных рабочих точках.

Анализ функции передачи по замкнутому контуру

Передаточная функция с замкнутым контуром равна передаточной функции от опорного входа, исходящего из блока требуемого уровня воды, к выходному сигналу установки.

Добавление опорного входного сигнала в качестве точки анализа sllin.

addPoint(sllin,'watertank/Desired  Water Level');

Получение функции передачи с замкнутым контуром.

T = getIOTransfer(sllin,'Desired','Tank');

Выходные данные, T, является массивом 1 x 3 непрерывных моделей состояния-пространства.

Постройте график ответа на шаг для T.

stepplot(T);

Хотя ступенчатая реакция передаточной функции установки значительно варьируется в трех рабочих точках обрезки, контроллер значительно сближает реакции замкнутого цикла во всех трех рабочих точках.

Анализ чувствительности на выходе завода

S = getSensitivity(sllin,'Tank');

Программное обеспечение вводит сигнал возмущения и измеряет выходной сигнал на выходе установки. S представляет собой массив 1 x 3 непрерывных моделей состояния и пространства времени.

Постройте график ответа на шаг для S.

stepplot(S);

График показывает, что обе модели могут отклонить помехи шага на выходе установки в течение 40 секунд.

См. также

| | | | | | |

Связанные темы