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

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

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

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

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

The scdcascade модель, используемая в этом примере, содержит пару каскадных циклов управления с обратной связью. Каждый цикл включает в себя ПИ-контроллер. Модели объекта управления, G1 (внешний контур) и G2 (внутренний цикл), являются моделями LTI.

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

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

mdl = 'scdcascade';
open_system(mdl);

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

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

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 интерфейс. В этом интерфейсе параметры, которые будут изменяться, еще не заданы, поэтому Paramaeters свойство пустое.

Изменение коэффициентов усиления контроллера внутреннего контура

Для анализа внутреннего контура варьируйте усиления внутреннего контура ПИ-контроллера блока C2. Варьируйте пропорциональную составляющую (Kp2) и интегральная составляющая (Ki2) в области значений 15%.

Kp2_range = linspace(Kp2*0.85,Kp2*1.15,6);
Ki2_range = linspace(Ki2*0.85,Ki2*1.15,4);
[Kp2_grid, Ki2_grid] = ndgrid(Kp2_range,Ki2_range);

params(1).Name = 'Kp2';
params(1).Value = Kp2_grid;
params(2).Name = 'Ki2';
params(2).Value = Ki2_grid;

sllin.Parameters = params;

Kp2_range и Ki2_range задайте значения выборки для Kp2 и Ki2. Получение передаточной функции для каждой комбинации Kp2 и Ki2, использовать ndgrid и создайте сетку параметра 6 x 4 с массивами сетки Kp2_grid и Ki2_grid. Сконфигурируйте Parameters свойство sllin со структурой params. Эта структура задает параметры, которые будут изменяться, и их сетчатые массивы.

Анализ передаточной функции замкнутой системы для внутреннего цикла

Общая передаточная функция с обратной связью для внутреннего цикла равна передаточной функции от u1 на y2. Чтобы исключить эффекты внешнего контура, можно разбить цикл на e1, y1m, или y1. В данном примере разорвать цикл на e1.

Добавить u1 и y2 в качестве точек анализа и e1 как постоянное открытие sllin.

addPoint(sllin,{'y2','u1'});
addOpening(sllin,'e1');

Получите передаточную функцию от u1 на y2.

r2yi = getIOTransfer(sllin,'u1','y2');

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

Потому что e1 является постоянным открытием sllin, r2yi не включает эффекты внешнего контура.

Постройте график переходной характеристики для r2yi.

stepplot(r2yi);

Для всех моделей переходной характеристики варьируется в 10% области значений а время урегулирования составляет менее 1,5 секунды.

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

Получите передаточную функцию внутреннего контура в y2, при открытом внешнем контуре на e1.

Li = getLoopTransfer(sllin,'y2',-1);

Потому что программное обеспечение принимает положительную обратную связь по умолчанию и scdcascade использует отрицательную обратную связь, задает знак обратной связи с помощью третьего входного параметра. $L_{i} = -G_{2}C_{2}$Сейчас. The getLoopTransfer команда возвращает массив состояний-пробел (ss) модели, по одной для каждой записи в сетке параметров. The SamplingGrid свойство Li соответствует значениям параметров соответствующей ss модель.

Постройте график отклика bode для.$L_{i}$

bodeplot(Li);

График величины для всех моделей изменяется в 3-dB области значений. График фазы показывает наибольшее изменение, приблизительно 20 °, в [1 10] интервал рад/с.

Изменение коэффициентов усиления контроллера внешнего контура

Для анализа внешнего контура варьируйте усиления блока ПИ-контроллера контура, C1. Варьируйте пропорциональную составляющую (Kp1) и интегральная составляющая (Ki1) в области значений 20%.

Kp1_range = linspace(Kp1*0.8,Kp1*1.2,6);
Ki1_range = linspace(Ki1*0.8,Ki1*1.2,4);
[Kp1_grid, Ki1_grid] = ndgrid(Kp1_range,Ki1_range);

params(1).Name = 'Kp1';
params(1).Value = Kp1_grid;
params(2).Name = 'Ki1';
params(2).Value = Ki1_grid;

sllin.Parameters = params;

Подобно рабочему процессу конфигурирования сетки параметров для анализа внутреннего контура, создайте структуру, params, задающий сетку параметра 6 x 4. Перенастройте sllin.Parameters для использования новой сетки параметров. sllin теперь использует значения по умолчанию для Kp2 и Ki2.

Анализ передаточной функции замкнутого контура от ссылки до выхода объекта

Удаление e1 из списка постоянных открытий для sllin перед продолжением анализа внешнего контура.

removeOpening(sllin,'e1');

Чтобы получить передаточную функцию с обратной связью от опорного сигнала, r, на выход объекта, y1m, добавить r и y1m как точки анализа на sllin.

addPoint(sllin,{'r','y1m'});

Получите передаточную функцию от r на y1m.

r2yo = getIOTransfer(sllin,'r','y1m');

Постройте график переходной характеристики для r2yo.

stepplot(r2yo);

Для всех моделей переходной характеристики занижена.

Анализ чувствительности внешнего контура на выходе объекта

Чтобы получить чувствительность внешнего контура на выходе объекта, добавьте y1 как аналитическая точка к sllin.

addPoint(sllin,'y1');

Получите чувствительность к внешнему контуру в y1.

So = getSensitivity(sllin,'y1');

Постройте график переходной характеристики So.

stepplot(So)

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

Получение смещений линеаризации

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

sllin.Options.StoreOffsets = true;

Когда вы вызываете функцию линеаризации, используя sllin, можно вернуть смещения линеаризации в info структура.

[r2yi,info] = getIOTransfer(sllin,'u1','y2');

Затем можно использовать смещения, чтобы сконфигурировать системный блок LPV. Для этого сначала необходимо преобразовать смещения в необходимый формат. Для примера, который использует linearize команда, см. Приближение LPV модели Boost Converter.

offsets = getOffsetsForLPV(info);

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

bdclose(mdl);

См. также

| | | | | | |

Похожие темы