exponenta event banner

Построение и манипулирование неопределенными моделями

В этом примере показано, как использовать Toolbox™ надежного управления для построения моделей неопределенного состояния-пространства и анализа надежности систем управления с обратной связью с неопределенными элементами.

Мы покажем, как задать неопределенные физические параметры и создать неопределенные модели состояния-пространства из этих параметров. Вы увидите, как оценить влияние случайных и наихудших вариаций параметров с помощью функций usample и robstab.

Двухкартовая и пружинная система

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

Рис. 1: Система с двумя тележками и пружинами.

Управляющий вход - это сила u1 применено к левой тележке. Контролируемый выход - это позиция y1 правой тележки. Управление с обратной связью осуществляется в следующей форме:

u1 = C (s) (r-y1)

Кроме того, мы используем тройной компенсатор:

C (s) = 100 (s + 1) 3/( 0 0,001s + 1) 3

Этот компенсатор создается с помощью следующего кода:

s = zpk('s'); % The Laplace 's' variable
C = 100*ss((s+1)/(.001*s+1))^3;

Модель блок-схемы

Система с двумя тележками и пружинами моделируется на блок-схеме, показанной ниже.

Рис. 2: Блок-схема двухкортежной и пружинной модели.

Неопределенные реальные параметры

Проблема управления тележками осложняется тем, что значения пружинной константы k и массы тележек m1,m2 известны только с 20% точностью: k = 1,0 ± 20%, m1 = 1,0 ± 20%, и m2 = 1,0 ± 20%. Чтобы зафиксировать эту изменчивость, мы создадим три неопределенных реальных параметра, используяureal функция:

k = ureal('k',1,'percent',20);
m1 = ureal('m1',1,'percent',20);
m2 = ureal('m2',1,'percent',20);

Неопределенные модели корзин

Мы можем представить модели тележек следующим образом:

G1 (s) = 1 m1s2, G2 (s) = 1 m2s2

Учитывая неопределенные параметры m1 и m2, мы построим неопределенные модели состояния-пространства (USS) для G1 и G2 следующим образом:

G1 = 1/s^2/m1;
G2 = 1/s^2/m2;

Неопределенная модель системы с замкнутым контуром

Сначала построим модель растения P в соответствии с показанной выше блок-схемой (P сопоставляет u1 с y1):

% Spring-less inner block F(s)
F = [0;G1]*[1 -1]+[1;-1]*[0,G2]
F =

  Uncertain continuous-time state-space model with 2 outputs, 2 inputs, 4 states.
  The model uncertainty consists of the following blocks:
    m1: Uncertain real, nominal = 1, variability = [-20,20]%, 1 occurrences
    m2: Uncertain real, nominal = 1, variability = [-20,20]%, 1 occurrences

Type "F.NominalValue" to see the nominal value, "get(F)" to see all properties, and "F.Uncertainty" to interact with the uncertain elements.

Соединить с пружиной k

P = lft(F,k)
P =

  Uncertain continuous-time state-space model with 1 outputs, 1 inputs, 4 states.
  The model uncertainty consists of the following blocks:
    k: Uncertain real, nominal = 1, variability = [-20,20]%, 1 occurrences
    m1: Uncertain real, nominal = 1, variability = [-20,20]%, 1 occurrences
    m2: Uncertain real, nominal = 1, variability = [-20,20]%, 1 occurrences

Type "P.NominalValue" to see the nominal value, "get(P)" to see all properties, and "P.Uncertainty" to interact with the uncertain elements.

На установке работает регулятор обратной связи u1 = C * (r-y1)P как показано ниже:

Рис. 3: Неопределенная модель системы с замкнутым контуром.

Мы будем использовать feedback для вычисления передачи по замкнутому циклу от r к y1.

% Uncertain open-loop model is
L = P*C
L =

  Uncertain continuous-time state-space model with 1 outputs, 1 inputs, 7 states.
  The model uncertainty consists of the following blocks:
    k: Uncertain real, nominal = 1, variability = [-20,20]%, 1 occurrences
    m1: Uncertain real, nominal = 1, variability = [-20,20]%, 1 occurrences
    m2: Uncertain real, nominal = 1, variability = [-20,20]%, 1 occurrences

Type "L.NominalValue" to see the nominal value, "get(L)" to see all properties, and "L.Uncertainty" to interact with the uncertain elements.

Неопределенная передача по замкнутому контуру от r к y1

T = feedback(L,1)
T =

  Uncertain continuous-time state-space model with 1 outputs, 1 inputs, 7 states.
  The model uncertainty consists of the following blocks:
    k: Uncertain real, nominal = 1, variability = [-20,20]%, 1 occurrences
    m1: Uncertain real, nominal = 1, variability = [-20,20]%, 1 occurrences
    m2: Uncertain real, nominal = 1, variability = [-20,20]%, 1 occurrences

Type "T.NominalValue" to see the nominal value, "get(T)" to see all properties, and "T.Uncertainty" to interact with the uncertain elements.

Обратите внимание, что с G1 и G2 неопределенные, оба P и T являются неопределенными моделями состояния-пространства.

Извлечение номинального завода

Номинальная передаточная функция завода:

Pnom = zpk(P.nominal)
Pnom =
 
        1
  -------------
  s^2 (s^2 + 2)
 
Continuous-time zero/pole/gain model.

Номинальная стабильность по замкнутому контуру

Далее мы оцениваем номинальную функцию переноса с замкнутым контуром Tnom, а затем проверьте, что все полюса номинальной системы имеют отрицательные действительные части:

Tnom = zpk(T.nominal);
maxrealpole = max(real(pole(Tnom)))
maxrealpole = -0.8232

Запас надежности и устойчивости

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

% Show report and compute sensitivity
opt = robOptions('Display','on','Sensitivity','on');
[StabilityMargin,wcu] = robstab(T,opt);
Computing peak...  Percent completed: 100/100
System is robustly stable for the modeled uncertainty.
 -- It can tolerate up to 288% of the modeled uncertainty.
 -- There is a destabilizing perturbation amounting to 289% of the modeled uncertainty.
 -- This perturbation causes an instability at the frequency 575 rad/seconds.
 -- Sensitivity with respect to each uncertain element is:           
      12% for k. Increasing k by 25% decreases the margin by 3%.     
      47% for m1. Increasing m1 by 25% decreases the margin by 11.8%.
      47% for m2. Increasing m2 by 25% decreases the margin by 11.8%.

Отчет указывает, что замкнутый контур может выдерживать до трех раз большую изменчивость в k,m1,m2 перед тем, как стать нестабильным. Он также предоставляет полезную информацию о чувствительности устойчивости к каждому параметру. Переменная wcu содержит наименьшие изменения дестабилизирующих параметров (относительно номинальных значений).

wcu
wcu = struct with fields:
     k: 1.5773
    m1: 0.4227
    m2: 0.4227

Наихудший анализ производительности

Следует отметить, что пиковый коэффициент усиления на частоте передачи по замкнутому контуру T указывает на уровень превышения в отклике на шаг с замкнутым контуром. Чем ближе это усиление к 1, тем меньше перерасход. Мы используем wcgain для вычисления наихудшего коэффициента усиления PeakGain из T в указанном диапазоне неопределенности.

[PeakGain,wcu] = wcgain(T);
PeakGain
PeakGain = struct with fields:
           LowerBound: 1.0471
           UpperBound: 1.0731
    CriticalFrequency: 7.7158

Заменить наихудший вариант параметра wcu в T для вычисления наихудшего случая передачи по замкнутому циклу Twc.

Twc = usubs(T,wcu);         % Worst-case closed-loop transfer T

Наконец, выбрать из случайных выборок неопределенных параметров и сравнить соответствующие передачи с замкнутым контуром с передачей с наихудшим случаем Twc.

Trand = usample(T,4);         % 4 random samples of uncertain model T
clf
subplot(211), bodemag(Trand,'b',Twc,'r',{10 1000});  % plot Bode response
subplot(212), step(Trand,'b',Twc,'r',0.2);           % plot step response

Figure contains 2 axes. Axes 1 contains 5 objects of type line. These objects represent Trand, Twc. Axes 2 contains 5 objects of type line. These objects represent Trand, Twc.

Рис. 4: Схема мода и отклик на шаг.

В этом анализе мы видим, что компенсатор C работает надежно для заданной неопределенности на k, m1, m2.

См. также

| | | |

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