我正在使用鲁棒控制器中的内置函数hinfgs
进行增益调度H ∞控制设计。
当我为hinfgs
函数提供多面体模型时,我得到以下错误:
使用hinfgs
时出错(第46行)
当E矩阵变化时不可用。
即使对于非常简单的参数相关系统,如质量Spring系统,它也不起作用。
MATLAB代码如下:
c = 5;
k = 300;
m = [2 8];
Ws=tf([10],[1 10]);
Wk=tf([5],[1 5]);
for i = 1:length(m)
GP_pollist=[];
A = [0 1; -k/m(i), -c/m(i)];
B = [0; -1/m(i)];
C = [1 0];
sys(i)= ss(A,B,C,0);
[ap,bp,cp,dp]=linmod('G_P_mass_spring');
GP_all_lti{i}=ltisys(ap,bp,cp,dp);
GP_all{i}=[ap bp;cp dp];
GP_all_ss{i}=ss(ap,bp,cp,dp);
GP_pollist=[GP_pollist,GP_all_lti{i}];
end
GP_pol=psys(GP_pollist);
r=[1 1];
[gopt,K_all_hinf,R,S] = hinfgs(GP_pol,r,0,1e-2,1e-2);
字符串
如果有人能在这里帮助我,我将不胜感激。
1条答案
按热度按时间mxg2im7a1#
除非你的 *E矩阵 *(通常只是单位元),例如,
字符串
实际上随参数
p
而变化,您已经在提供给hinfgs
的系统矩阵列表中将其明确设置为零(对于除第一个系统之外的所有系统)。型