lftdata

Разложите неопределенные объекты на фиксированные определенные и нормированные неопределенные части

Синтаксис

[M,Delta] = lftdata(A);
[M,Delta] = lftdata(A,List);
[M,Delta,Blkstruct] = lftdata(A);
[M,Delta,Blkstruct,Normunc] = lftdata(A);

Описание

lftdata разлагает неопределенный объект на фиксированную определенную часть и нормализованную неопределенную часть lftdata. может также частично разложить неопределенный объект на неопределенную часть и нормализованную неопределенную часть. Неопределенные объекты (umat, ufrd, uss) представлены как определенные (т.е. не неопределенные) объекты в обратной связи с блок-диагональными конкатенациями неопределенных элементов.

[M,Delta] = lftdata(A) разделяет неопределенный объект A в определенный объект M и нормированную неопределенную матрицу Delta таким образом A равно lft(Delta,M), как показано ниже.

Если A является umat, затем M будет double; если A является uss, затем M будет ss; если A является ufrd, затем M будет frd. Во всех случаях Delta является umat.

[M,Delta] = lftdata(A,List) разделяет неопределенный объект A в неопределенный объект M, в обратной связи с нормализованной неопределенной матрицей Delta. List - камера (или char) массив имен неопределенных элементов A которые составляют Delta. Вся остальная неопределенность в A остается в M.

lftdata(A,fieldnames(A.Uncertainty)) то же, что и lftdata(A).

[M,DELTA,BLKSTRUCT] = lftdata(A) возвращает N массив структур -by-1 BLKSTRUCT, где BLKSTRUCT(i) описывает i-ый нормированный неопределенный элемент. Это описание неопределенности может быть передано непосредственно в низкоуровневую структурированную функцию анализа сингулярных значений mussv.

[M,DELTA,BLKSTRUCT,NORMUNC] = lftdata(A) возвращает массив ячеек NORMUNC нормированных неопределенных элементов. Каждый нормированный элемент имеет 'Normalized' прилагается к его первоначальному имени во избежание путаницы. Обратите внимание, что lft(blkdiag(NORMUNC{:}),M) эквивалентно A. Нормализации для каждого типа неопределенных элементов описаны в разделе «Разложение неопределенных объектов».

Примеры

свернуть все

Создайте неопределенную матрицу A с неопределенными параметрами p1, и p2. Разложение A в свою определенную часть, Mи нормированная неопределенная часть, Delta.

p1 = ureal('p1',-3,'perc',40); 
p2 = ucomplex('p2',2); 
A = [p1 p1+p2;1 p2]; 
[M,Delta] = lftdata(A); 

Вы можете просмотреть различие между исходной неопределенной матрицей, Aи результат, образованный объединением двух результатов разложения.

simplify(A-lft(Delta,M)) 
ans = 2×2

     0     0
     0     0

M
M = 4×4

         0         0    1.0954    1.0954
         0         0         0    1.0000
    1.0954    1.0000   -3.0000   -1.0000
         0    1.0000    1.0000    2.0000

Можно проверить норму наихудшего случая неопределенной детали, используя wcnorm. Сравните выборки неопределенной части A с неопределенной матрицей A.

wcn = wcnorm(Delta) 
wcn = struct with fields:
    LowerBound: 0
    UpperBound: 1.0012

usample(Delta,3) 
ans = 
ans(:,:,1) =

   0.6294 + 0.0000i   0.0000 + 0.0000i
   0.0000 + 0.0000i   0.8776 - 0.4413i


ans(:,:,2) =

   0.8116 + 0.0000i   0.0000 + 0.0000i
   0.0000 + 0.0000i   0.2704 + 0.2907i


ans(:,:,3) =

  -0.7460 + 0.0000i   0.0000 + 0.0000i
   0.0000 + 0.0000i  -0.3382 + 0.9253i

Создайте неопределенную матрицу A с 2 неопределенными вещественными параметрами v1 и v2. Создайте неопределенную систему G использование A как динамическая матрица, и числовые матрицы для входа и выхода.

A = [ureal('p1',-3,'perc',40) 1;1 ureal('p2',-2)]; 
sys = ss(A,[1;0],[0 1],0);
sys.InputGroup.ActualIn = 1; 
sys.OutputGroup.ActualOut = 1; 

Можно разложиться G в определенную систему, Msysи нормированную неопределенную матрицу, Delta. Вы можете увидеть из Msys несомненно и что входная и выходная группы были скорректированы.

[Msys,Delta] = lftdata(sys); 
Msys 
Msys =
 
  A = 
       x1  x2
   x1  -3   1
   x2   1  -2
 
  B = 
          u1     u2     u3
   x1  1.095      0      1
   x2      0      1      0
 
  C = 
          x1     x2
   y1  1.095      0
   y2      0      1
   y3      0      1
 
  D = 
       u1  u2  u3
   y1   0   0   0
   y2   0   0   0
   y3   0   0   0
 
Input groups:           
      Name      Channels
    ActualIn       3    
                        
Output groups:           
      Name       Channels
    ActualOut       3    
                         
Continuous-time state-space model.

Можно вычислить норму для выборок различия между исходной неопределенной матрицей и результатом, образованным объединением Msys и Delta.

norm(usample(sys-lft(Delta,Msys),'p1',4,'p2',3),'inf') 
ans = 4×3

     0     0     0
     0     0     0
     0     0     0
     0     0     0

Создайте неопределенную матрицу A и выведите неопределенную матрицу B используя неявное преобразование, imp2exp. Обратите внимание, что B имеет 2 неопределенных параметра R и K. Можно разложиться B в определенную часть, Mи нормированная неопределенная часть, Delta.

R = ureal('R',1,'Percentage',[-10 40]); 
K = ureal('K',2e-3,'Percentage',[-30 30]); 
A = [1 -R 0 -K;0 -K 1 0]; 
Yidx = [1 3]; 
Uidx = [4 2]; 
B = imp2exp(A,Yidx,Uidx); 
[M,Delta] = lftdata(B); 

Та же операция может быть выполнена путем определения неопределенных параметров, K и R, подлежащий извлечению.

[MK,DeltaR] = lftdata(B,'R'); 
MK 
MK =

  Uncertain matrix with 3 rows and 3 columns.
  The uncertainty consists of the following blocks:
    K: Uncertain real, nominal = 0.002, variability = [-30,30]%, 2 occurrences

Type "MK.NominalValue" to see the nominal value, "get(MK)" to see all properties, and "MK.Uncertainty" to interact with the uncertain elements.
[MR,DeltaK] = lftdata(B,'K'); 
MR 
MR =

  Uncertain matrix with 4 rows and 4 columns.
  The uncertainty consists of the following blocks:
    R: Uncertain real, nominal = 1, variability = [-10,40]%, 1 occurrences

Type "MR.NominalValue" to see the nominal value, "get(MR)" to see all properties, and "MR.Uncertainty" to interact with the uncertain elements.
simplify(B-lft(Delta,M)) 
ans = 2×2

     0     0
     0     0

simplify(B-lft(DeltaR,MK)) 
ans = 2×2

     0     0
     0     0

simplify(B-lft(DeltaK,MR)) 
ans = 2×2

     0     0
     0     0

Исследуйте результат, сформированный путем объединения двух результатов разложения.

[Mall,Deltaall] = lftdata(B,{'K';'R'}); 
Mall-M
ans = 5×5

     0     0     0     0     0
     0     0     0     0     0
     0     0     0     0     0
     0     0     0     0     0
     0     0     0     0     0

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