Разложите неопределенные объекты на бесспорный фиксированный, и нормировал неопределенные части
[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