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   5.453       0       0
   x3       0       0  -5.503       0
   x4       0       0       0   -0.05
 
  B = 
           u1
   x1   1.875
   x2  -6.009
   x3   6.386
   x4  -2.409
 
  C = 
              x1         x2         x3         x4
   y1         16  -0.007321  -0.007411      12.45
   y2          0   -0.07388   -0.07344   -0.01038
 
  D = 
       u1
   y1   0
   y2   0
 
Continuous-time state-space model.
T = 4×4

    0.0625    1.2500   -0.0000   -0.1250
         0    0.1123   -6.7981   -1.2468
         0    0.1140   -6.7768    1.2316
         0   -1.6061   -0.0080    0.1606

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    2.0548         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    8.0573
         0         0         0         0         0         0  -10.0001

csys1.B
ans = 7×1

    0.3200
   -0.0066
    0.0540
   -0.1950
    1.0637
         0
    4.0378

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    2.0548         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

   3.2000e-01
  -6.5691e-03
   5.4046e-02
  -1.9502e-01
   1.0637e+00
   3.2533e+05
   3.2533e+05

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)

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

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

свернуть все

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

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

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

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

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

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

  • Идентифицированные модели LTI, такие как idtf, idss, idproc, idpoly, и idgrey модели. (Используя идентифицированные модели требует программного обеспечения 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.

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