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-th, нормировал неопределенный элемент. Это описание неуверенности может быть передано непосредственно структурированной аналитической функции сингулярного значения низкого уровня mussv.

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

Примеры

Создайте неопределенный матричный A с 3 неопределенными параметрами p1, p2 и p3. Вы можете разложить 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 = 
     0     0 
     0     0 
M 
M = 
         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 = 
    lbound: 1.0000 
    ubound: 1.0001 
usample(Delta,5) 
ans(:,:,1) = 
   0.8012                  0          
        0             0.2499 + 0.6946i 
ans(:,:,2) = 
   0.4919                  0          
        0             0.2863 + 0.6033i 
ans(:,:,3) = 
  -0.1040                  0          
        0             0.7322 - 0.3752i 
ans(:,:,4) = 
   0.8296                  0          
        0             0.6831 + 0.1124i 
ans(:,:,5) = 
   0.6886                  0          
        0             0.0838 + 0.3562i 

Неопределенные системы

Создайте неопределенный матричный 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 

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     
     p1_NC         1     
     p2_NC         2     
                         
Output groups:           
      Name       Channels 
    ActualOut       3    
      p1_NC         1    
      p2_NC         2    
                         
Continuous-time model. 

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

norm(usample(sys-lft(Delta,Msys),'p1',4,'p2',3),'inf') 
ans = 
     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 
UMAT: 3 Rows, 3 Columns 
  K: real, nominal = 0.002, variability = [-30  30]%, 2 occurrences 
[MR,DeltaK] = lftdata(B,'K'); 
MR 
UMAT: 4 Rows, 4 Columns 
  R: real, nominal = 1, variability = [-10  40]%, 1 occurrence 

simplify(B-lft(Delta,M)) 
ans = 
     0     0 
     0     0 
simplify(B-lft(DeltaR,MK)) 
ans = 
     0     0 
     0     0 
simplify(B-lft(DeltaK,MR)) 
ans = 
     0     0 
     0     0 

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

[Mall,Deltaall] = lftdata(B,{'K';'R'}); 
simplify(Mall)-M 
ans = 
     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