Отличайтесь Рабочие точки и Получите Несколько Передаточных функций Используя Интерфейс 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 секунд.

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

| | | | | | |

Похожие темы