Аппроксимация модели объекта управления с помощью аддитивных методов ошибки

Задано системное G в форме LTI следующие команды приводят систему к любому желаемому порядку, который вы задаете. Судебный вызов основан на его сингулярных значениях Ханкеля.

rng(1234,'twister');
G = rss(30,4,3); % random 30-state model
% balanced truncation to models with sizes 12:16
[G1,info1] = balancmr(G,12:16); 
% Schur balanced truncation by specifying `MaxError'
[G2,info2] = schurmr(G,'MaxError',[1,0.8,0.5,0.2]);
sigma(G,'b-',G1,'r--',G2,'g-.')
legend('G','G1','G2')

Figure contains an axes. The axes contains 30 objects of type line. These objects represent G, G1, G2.

График сравнивает исходную модель G с уменьшенными моделями G1 и G2.

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

norm(G-G1(:,:,1),'inf') 
ans = 2.2965
info1.ErrorBound(1)
ans = 9.7120

Или постройте график ошибки модели по сравнению с ошибкой, связанной с помощью следующих команд:

[sv,w] = sigma(G-G1(:,:,1));
loglog(w,sv,w,info1.ErrorBound(1)*ones(size(w)))
xlabel('rad/sec');ylabel('SV');
title('Error Bound and Model Error')

Figure contains an axes. The axes with title Error Bound and Model Error contains 4 objects of type line.

См. также

Похожие темы