客观的
目前我正在尝试创建一个基于一系列状态空间模型的不确定系统,使用ucover
. 为此,我的脚本基于文档“将响应族建模为不确定系统” ,该文档明确显示了基于单输入单输出系统 (SISO) 创建不确定系统的技术,但明确指出这也完全适用于 MIMO 系统。
技术细节
具体来说ucover
,它支持 MIMO 系统的文档说明:
USYS = ucover(PARRAY,PNOM,ORD1,ORD2,UTYPE) returns an uncertain
system USYS with nominal value PNOM and whose range of behaviors
includes all LTI responses in the LTI array PARRAY. PNOM and PARRAY
can be SS, TF, ZPK, or FRD models. USYS is of class UFRD if PNOM
is an FRD model and of class USS otherwise.
ORD1 and ORD2 specify the order (number of states) of each diagonal
entry of W1 and W2. If PNOM has NU inputs and NY outputs, ORD1 and ORD2
should be vectors of length:
UTYPE ORD1 ORD2
InputMult NU-by-1 NU-by-1
OutputMult NY-by-1 NY-by-1
Additive NY-by-1 NU-by-1
在我的情况下,我同时使用 2 个输入和 2 个输出,因此 ORD1 和 ORD2 都应该是 2 乘 1。我使用 8 作为 W1 和 W2 使用的状态数(只是因为,一旦出现此问题,我将尝试调整它排序)。
尝试
基于我尝试创建的 MIMO 示例的 SISO 示例,如下所示
noInputs=2;
noOutputs=2;
noOfStates=4;
Anom=rand(noOfStates,noOfStates);
Bnom=rand(noOfStates,noInputs);
Cnom=rand(noOutputs,noOfStates);
Dnom=rand(noOutputs,noInputs);
Pnom=ss(Anom, Bnom, Cnom, Dnom);
p1 = Pnom*tf(1,[.06 1]); % extra lag
p2 = Pnom*tf([-.02 1],[.02 1]); % time delay
p3 = Pnom*tf(50^2,[1 2*.1*50 50^2]);
Parray = stack(1,p1,p2,p3);
Parrayg = frd(Parray,logspace(-1,3,60));
[P,Info] = ucover(Parrayg,Pnom,[8 8]',[8 8]','InputMult');
Wt = Info.W1;
bodemag((Pnom-Parray)/Pnom,'b--',Wt,'r'); grid
title('Relative Gaps vs. Magnitude of Wt')
问题
与文档中的图像不同,我的不确定模型(通过波特图时)仅在前导对角线上显示响应。请参阅屏幕截图以了解我的意思:
其中蓝色是单个模型,红色是不确定模型
问题
如何基于一系列正确覆盖所有输入和输出之间响应的 MIMO 状态空间模型创建不确定系统?