MATLAB中定义控制系统块的sysic函数中的错误

MATLAB中定义控制系统块的sysic函数中的错误,matlab,controls,simulink,visualize,Matlab,Controls,Simulink,Visualize,我想合成一个H _∞控制系统,我想用一般控制配置的形式来定义它,比如。 首先,我定义了块之间的关系: 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*

我想合成一个H _∞控制系统,我想用一般控制配置的形式来定义它,比如。 首先,我定义了块之间的关系:

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时出错 OUTPUTVAR的“+u1-G”部分中的信号数量不一致

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

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

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


没有工具可以创建单个组件的可视化,显示它们是如何连接的。您可以使用Simulink自己创建一个模型,其中每个组件都将通过使用块来表示,请参见示例。

谢谢,如果u1是2x1,可以从中减去2*2的G吗?减法的两个矩阵不应该在同一个维度上?符号表示G的输出是从u1中减去的。假设G的输出实际上是G*u2,那么需要u1的维数与G*u2的维数相同,而不是G本身。根据您的数据,u1和u2的大小都需要为2x1。