Варьируйтесь Рабочие точки и Получите Несколько Передаточных функций Используя Интерфейс 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 параметр блока Desired Water Level. Так, сконфигурируйте sllin варьироваться этот параметр соответственно.

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

sllin.Parameters = param;

Анализируйте передаточную функцию объекта

В watertank модель, блок Water-Tank System представляет объект. Чтобы получить передаточную функцию объекта, добавьте сигналы ввода и вывода блока Water-Tank System как аналитические точки 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. Второй аналитической точкой является выход блока Water-Tank System.

Получите передаточную функцию объекта из входа блока 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);

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

Анализируйте передаточную функцию с обратной связью

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

Добавьте ссылочный входной сигнал как аналитическую точку 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 секунд.

Смотрите также

| | | | | | |

Похожие темы