canon

Каноническая реализация пространства состояний

Описание

пример

csys = canon(sys,type) преобразует линейную модель sys в каноническую модель пространства состояний csys. type задает, csys находится в модальной или близкой форме.

Для получения информации о управляемых и наблюдаемых канонических формах, см. Canonical State-Space Realizations.

пример

csys = canon(sys,'modal',condt) задает верхнюю границу condt по числу обусловленности блочно-диагонального преобразования. Использование condt если у вас есть близкие лежащие собственные значения в csys.

пример

[csys,T]= canon(___) также возвращает матрицу преобразования координат состояний T который относится к состояниям модели пространства состояний sys в состояния csys.

Примеры

свернуть все

aircraftPitchSSModel.mat содержит матрицы пространства состояний самолета, где вход является углом отклонения лифта δ и выходом является угол тангажа самолета θ.

[α˙q˙θ˙]=[-0.31356.70-0.0139-0.4260056.70][αqθ]+[0.2320.02030][δ]y=[001][αqθ]+[0][δ]

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

load('aircraftPitchSSModel.mat');
sys = ss(A,B,C,D)
sys =
 
  A = 
            x1       x2       x3
   x1   -0.313     56.7        0
   x2  -0.0139   -0.426        0
   x3        0     56.7        0
 
  B = 
           u1
   x1   0.232
   x2  0.0203
   x3       0
 
  C = 
       x1  x2  x3
   y1   0   0   1
 
  D = 
       u1
   y1   0
 
Continuous-time state-space model.

Преобразуйте полученную модель пространства состояний sys к компаньонской канонической форме.

csys = canon(sys,'companion')
csys =
 
  A = 
               x1          x2          x3
   x1           0           0  -1.809e-16
   x2           1           0     -0.9215
   x3           0           1      -0.739
 
  B = 
       u1
   x1   1
   x2   0
   x3   0
 
  C = 
            x1       x2       x3
   y1        0    1.151  -0.6732
 
  D = 
       u1
   y1   0
 
Continuous-time state-space model.

csys - близкая каноническая форма sys.

pendulumCartSSModel.mat содержит модель пространства состояний инвертированного маятника на тележке, где выходы являются перемещением тележки x и угол маятника θ. Входной параметр u - горизонтальная сила на тележке.

[x˙x¨θ˙θ¨]=[01000-0.13000010-0.5300][xx˙θθ˙]+[0205]uy=[10000010][xx˙θθ˙]+[00]u

Во-первых, загрузите модель пространства состояний sys в рабочую область.

load('pendulumCartSSModel.mat','sys');

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

[csys,T] = canon(sys,'modal')
csys =
 
  A = 
           x1      x2      x3      x4
   x1       0       0       0       0
   x2       0   -0.05       0       0
   x3       0       0  -5.503       0
   x4       0       0       0   5.453
 
  B = 
          u1
   x1  1.875
   x2  6.298
   x3   12.8
   x4  12.05
 
  C = 
              x1         x2         x3         x4
   y1         16     -4.763  -0.003696   0.003652
   y2          0   0.003969   -0.03663    0.03685
 
  D = 
       u1
   y1   0
   y2   0
 
Continuous-time state-space model.
T = 4×4

    0.0625    1.2500   -0.0000   -0.1250
         0    4.1986    0.0210   -0.4199
         0    0.2285  -13.5873    2.4693
         0   -0.2251   13.6287    2.4995

csys - модальная каноническая форма sys, в то время как T представляет преобразование между векторами состояний sys и csys.

В данном примере рассмотрим следующую систему с удвоенными полюсами и кластерами близких полюсов:

sys(s)=100(s-1)(s+1)s(s+10)(s+10.0001)(s-(1+i))2(s-(1-i))2

Создайте zpk модель этой системы и преобразовать ее в модальную каноническую форму используя строку 'modal'.

sys = zpk([1 -1],[0 -10 -10.0001 1+1i 1-1i 1+1i 1-1i],100);
csys1 = canon(sys,'modal');
csys1.A
ans = 7×7

         0         0         0         0         0         0         0
         0    1.0000    1.0000         0         0         0         0
         0   -1.0000    1.0000    3.2459         0         0         0
         0         0         0    1.0000    1.0000         0         0
         0         0         0   -1.0000    1.0000         0         0
         0         0         0         0         0  -10.0000    4.0571
         0         0         0         0         0         0  -10.0001

csys1.B
ans = 7×1

    0.1600
   -0.0052
    0.0427
   -0.0975
    0.5319
         0
    4.0095

sys имеет пару полюсов в s = -10 и s = -10.0001, и два комплексных полюса кратности 2 в s = 1+i и s = 1-i. В результате модальная форма csys1 - модель пространства состояний с блоком размера 2 для двух полюсов около s = -10, и блок размера 4 для комплексных собственных значений.

Теперь разделите два полюса рядом s = -10 путем увеличения значения числа обусловленности блочно-диагонального преобразования. Используйте значение 1e10 для этого примера.

csys2 = canon(sys,'modal',1e10);
csys2.A
ans = 7×7

         0         0         0         0         0         0         0
         0    1.0000    1.0000         0         0         0         0
         0   -1.0000    1.0000    3.2459         0         0         0
         0         0         0    1.0000    1.0000         0         0
         0         0         0   -1.0000    1.0000         0         0
         0         0         0         0         0  -10.0000         0
         0         0         0         0         0         0  -10.0001

format shortE
csys2.B
ans = 7×1

   1.6000e-01
  -5.1885e-03
   4.2687e-02
  -9.7508e-02
   5.3187e-01
   1.6267e+05
   1.6267e+05

The A матрица csys2 включает отдельные диагональные элементы для полюсов вблизи s = -10. Увеличение числа обусловленности приводит к некоторым очень большим значениям в B матрица.

Файл icEngine.mat содержит один набор данных с 1500 выборками вход-выход, собранными со частотой дискретизации 0,04 секунды. Область входа u(t) - напряжение (V), управляющее перепускным воздушным клапаном (BPAV) и выходом y(t) - скорость вращения двигателя (об/мин/100).

Используйте данные в icEngine.mat создать модель пространства состояний с идентифицируемыми параметрами.

load icEngine.mat
z = iddata(y,u,0.04);
sys = n4sid(z,4,'InputDelay',2);

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

csys = canon(sys,'companion');

Получите ковариацию полученной формы, запустив обновление нулевой итерации к параметрам модели.

opt = ssestOptions;
opt.SearchOptions.MaxIterations = 0;
csys = ssest(z,csys,opt);

Сравнение доверительных границ частотной характеристики sys на csys.

h = bodeplot(sys,csys,'r.');
showConfidence(h)

Figure contains 2 axes. Axes 1 with title From: u1 To: y1 contains 2 objects of type line. These objects represent sys, csys. Axes 2 contains 2 objects of type line. These objects represent sys, csys.

Доверительные границы частотной характеристики идентичны.

Входные параметры

свернуть все

Динамическая система, заданная как SISO, или MIMO динамическая модель системы. Динамические системы, которые можно использовать, включают:

  • Непрерывные или дискретные числовые модели LTI, такие как tf (Control System Toolbox), zpk (Control System Toolbox), ss (Control System Toolbox), или pid (Control System Toolbox) модели.

  • Обобщенные или неопределенные модели LTI, такие как genss (Control System Toolbox) или uss (Robust Control Toolbox) модели. (Использование неопределенных моделей требует программного обеспечения Robust Control Toolbox™.)

    Получившаяся каноническая модель пространства состояний принимает

    • текущие значения настраиваемых компонентов для настраиваемых блоков проекта системы управления.

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

  • Идентифицированные модели LTI, такие как idtf, idss, idproc, idpoly, и idgrey модели.

Вы не можете использовать модели данных частотной характеристики, такие как frd (Control System Toolbox) модели.

Тип преобразования, заданный как 'modal' или 'companion'. Если type не задан, тогда canon преобразует указанную модель динамической системы в модальную каноническую форму по умолчанию.

Близкая каноническая форма совпадает с наблюдаемой канонической формой. Для получения информации о управляемых и наблюдаемых канонических формах, см. Canonical State-Space Realizations.

  • Модальная форма

    В модальной форме A является блок-диагональной матрицей. Размер блока обычно 1 на 1 для реальных собственных значений и 2 на 2 для сложных собственных значений. Однако, если существуют повторные собственные значения или кластеры ближайших собственных значений, размер блока может быть больше.

    Например, для системы с собственными значениями (λ1,σ±jω,λ2), модальная матрица A имеет вид

    [λ10000σω00ωσ0000λ2]

  • Сопутствующая форма

    В сопутствующей реализации характеристический полином системы явно появляется в самом правом столбце матрицы A. Для системы с характеристическим полиномом

    P(s)=sn+α1sn1++αn1s+αn

    соответствующая матрица A компаньона

    A=[01000001000001000001αnαn1αn2αn3  α1]

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

    Близкая каноническая форма совпадает с наблюдаемой канонической формой. Для получения дополнительной информации о наблюдаемых и управляемых канонических формах, см. Canonical State-Space Realizations.

Верхняя граница на число обусловленности блочно-диагонального преобразования, заданная как положительная скалярная величина. Этот аргумент доступен только при type установлено в 'modal'.

Увеличение condt чтобы уменьшить размер собственного значения кластеров в A матрице csys. Настройка condt = Inf диагонализирует матричные A.

Выходные аргументы

свернуть все

Каноническая форма пространства состояний динамической модели, возвращенная как ss (Control System Toolbox) объект модели. csys - реализация в пространстве состояний sys в канонической форме, заданной type.

Матрица преобразования, возвращенная как n-на-n матрица, где n - количество состояний. T - преобразование между вектором x состояний модели пространства состояний sys и вектор xc состояний csys:

xc = Tx

.

Этот аргумент доступен только при sys является ss (Control System Toolbox) объект модели.

Ограничения

  • Вы не можете использовать модели данных частотной характеристики для преобразования в каноническую форму пространства состояний.

  • Форма-компаньон плохо обусловлена для большинства расчетов в пространстве состояний, то есть преобразование в форму-компаньон основано на матрице управляемости, которая почти всегда численно сингулярна для порядков средней области значений. Следовательно, избегайте использовать его, когда это возможно.

Алгоритмы

canon команда использует bdschur (Control System Toolbox) для преобразования sys в модальную форму и вычислить T преобразования. Если sys не является моделью пространства состояний, canon сначала преобразует его в пространство состояний с помощью ss.

Редукция в сопутствующую форму использует преобразование подобия состояний, основанное на матрице управляемости [1].

Ссылки

[1] Kailath, T. Linear Systems, Prentice Hall, 1980.

См. также

| | | | | (Control System Toolbox) | (Control System Toolbox) | (Control System Toolbox) | (Control System Toolbox) | (Control System Toolbox) | (Control System Toolbox) | (Control System Toolbox) | (Control System Toolbox) | (Набор инструментов Robust Control Toolbox)

Представлено до R2006a