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 (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 преобразует заданную модель динамической системы в модальную каноническую форму по умолчанию.

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

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

    В модальной форме 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 (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. Линейные системы, 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