canon

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

Описание

пример

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

Для получения информации об управляемых и заметных канонических формах смотрите Каноническую Реализацию Пространства состояний.

пример

csys = canon(sys,'modal',condt) задает верхнюю границу condt на числе обусловленности преобразования блока-diagonalizing. Используйте 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.709e-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 путем увеличения значения числа обусловленности преобразования блока-diagonalizing. Используйте значение 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

    0.0000
   -0.0000
    0.0000
   -0.0000
    0.0000
    1.6267
    1.6267

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

Файл icEngine.mat содержит один набор данных с 1 500 выборками ввода - вывода, собранными в частота дискретизации 0,04 секунд. Вход u(t) напряжение (V) управление Обходным Неактивным Воздушным Клапаном (BPAV) и выходом y(t) скорость вращения двигателя (RPM/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 objects. Axes object 1 with title From: u1 To: y1 contains 2 objects of type line. These objects represent sys, csys. Axes object 2 contains 2 objects of type line. These objects represent sys, csys.

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

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

свернуть все

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

  • Непрерывное время или дискретное время числовые модели LTI, такой как tf, zpk, ss, или pid модели.

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

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

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

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

  • Идентифицированные модели LTI, такой как idtf (System Identification Toolbox), idss (System Identification Toolbox), idproc (System Identification Toolbox), idpoly (System Identification Toolbox), и idgrey Модели (System Identification Toolbox). (Используя идентифицированные модели требует программного обеспечения System Identification Toolbox™.)

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

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

Сопутствующая каноническая форма совпадает с заметной канонической формой. Для получения информации об управляемых и заметных канонических формах смотрите Каноническую Реализацию Пространства состояний.

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

    В модальной форме 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]

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

    Сопутствующая каноническая форма совпадает с заметной канонической формой. Для получения дополнительной информации о заметных и управляемых канонических формах смотрите Каноническую Реализацию Пространства состояний.

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

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

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

свернуть все

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

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

xc = Tx

.

Этот аргумент доступен только когда sys ss объект модели.

Ограничения

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

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

Алгоритмы

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

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

Ссылки

[1] Kailath, T. Линейные системы, Prentice Hall, 1980.

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

| | | | | | | | (Robust Control Toolbox) | (System Identification Toolbox) | (System Identification Toolbox) | (System Identification Toolbox) | (System Identification Toolbox) | (System Identification Toolbox)

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