我想合成一个H_infinity控制系统,并想以诸如this form之类的常规控制配置的形式对其进行定义。 首先,我定义了块之间的关系:
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);
但是代码遇到以下错误: 使用sysic时出错(第175行) 的“ + u1-G”部分中的信号数量不一致。
如何解决错误?是否有标准方法以控制系统框图的形式显示代码中定义的块?
答案 0 :(得分:1)
如果G
为2x2,则u1
必须为2x1,以使u1-G
有意义。但这被馈送到w_1
中,后者仅为1x1。因此,存在尺寸问题,sysic
显示了这一问题。该如何解决将取决于您实际尝试创建的框图。
也不清楚为什么要使用W3,因为您没有将W3连接到任何东西。
没有用于创建单个组件可视化的工具,以显示它们如何连接。您可以使用Simulink自己创建模型,其中每个组件都可以使用LTI System块来表示,有关示例,请参见Import LTI Model Objects into Simulink。