Пакетная линеаризация модели для изменений параметров в одной рабочей точке

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

Можно пакетно линеаризировать модель для изменений параметров в одной рабочей точке, чтобы изучить:

  • Динамика объекта для изменения допусков компонентов.

  • Робастность контроллера к изменениям параметров объекта.

  • Переходные процессы для изменения коэффициентов усиления контроллера.

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

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

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

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

sys = 'scdcascade';
open_system(sys)

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

io(1) = linio('scdcascade/setpoint',1,'input');
io(2) = linio('scdcascade/Sum',1,'output');

io(1), сигнал, исходящий от выхода setpoint блок, является ссылка входом. io(2), сигнал, исходящий от выхода Sum блок, является системным выходом.

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

Измените коэффициент усиления контроллера с внешним контуром, 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);

Создайте структуру параметра с полями Name и Value. Name указывает, какая переменная должна изменяться в рабочем пространстве модели, рабочей области MATLAB ® или словаре данных.

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

params является сеткой значений параметров 6 на 4, где каждая точка сетки соответствует уникальной комбинации Kp1 и Ki1 значения.

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

G = linearize(sys,io,params);

G представляет собой массив 6 на 4 линеаризированных моделей. Каждая запись в массиве содержит линеаризацию для соответствующей комбинации параметров в params. Для примера, G(:,:,2,3) соответствует линеаризации, полученной путем установки значений Kp1 и Ki1 параметры к Kp1_grid(2,3) и Ki1_grid(2,3), соответственно. Набор значений параметров, соответствующих каждой записи в массиве моделей G хранится в SamplingGrid свойство G. Для примера исследуйте соответствующие значения параметров для линеаризации G(:,:,2,3):

G(:,:,2,3).SamplingGrid
ans = 

  struct with fields:

    Kp1: 0.1386
    Ki1: 0.0448

Чтобы изучить эффекты изменения значений усиления, анализируйте линеаризированные модели в G. Например, исследуйте переходные характеристики для всех Kp2 значений и третьего Ki1 значение.

stepplot(G(:,:,:,3))

См. также

| |

Похожие темы