canon

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

Описание

пример

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

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

пример

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

пример

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

Примеры

свернуть все

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

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

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

load('aircraftPitchModel.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.

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

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

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

load('pendulumCartModel.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 модели.

Вы не можете использовать модели данных частотной характеристики, такие как 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