0

我想合成一个 H_infinity 控制系统,我想以这种形式的通用控制配置的形式定义。首先,我定义了块之间的关系:

s=tf('s');
w_1=makeweight(100,10,0.5);  % Weight for performance
w2_2=eye(2);                 % Weight for avoiding over qualify
w3=0;

G=[(0.806*s+0.264)/(s^2+1.15*s+0.202) - 
(15*s+1.42)/(s^3+12.8*s^2+13.6*s+2.36); 
(1.95*s^2+2.12*s+0.49)/(s^3+9.15*s^2+9.39*s+1.62) 
(7.14*s^2+25.8*s+9.35)/(s^4+20.8*s^3+116.4*s^2+111.6*s+18.8)]; %  a 2*2 Plant



systemnames='G w_1 w2_2 w3';
inputvar='[u1;u2]';
outputvar='[w_1;w2_2;w3;u1-G]';
input_to_G='[u2]';
input_to_w_1='[u1-G]';
input_to_w2_2='[u2]';
sysoutname='P';
sysic;

创建P后,下面的函数将用于合成控制系统:

 [k1,cl1,Gam1,Info1]=hinfsyn(P,1,1);

但是代码面临这个错误:Error using sysic (line 175) There are an contrast number of signals in '+u1-G' part of OUTPUTVAR

如何解决错误?是否有标准方法以控制系统框图的形式可视化代码中定义的块?

4

1 回答 1

1

如果G是 2x2 那么u1必须是 2x1 才有u1-G意义。但这w_1只是 1x1 的输入。因此存在维度问题,并且sysic正在显示这一点。如何解决这个问题将取决于您实际尝试创建的框图。

也不清楚您为什么要使用 W3,因为您没有将它连接到任何东西。

没有工具可以创建各个组件的可视化来显示它们是如何连接的。您可以使用 Simulink 自己创建一个模型,其中每个组件都将使用LTI System模块表示,有关示例,请参阅将LTI 模型对象导入 Simulink

于 2019-05-05T14:45:32.273 回答