声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 3555|回复: 2

[控制理论] [求助]鲁棒控制遇到奇异矩阵怎么办?

[复制链接]
发表于 2008-12-2 18:13 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
我用hinfsyn函数设计了一个控制器:
[k,clp]=hinfsyn(sys,nmeas,ncon,gmin,gmax,tol);

出现了如下错误:
Warning: Matrix is singular to working precision.
> In hinf_st at 49
In hinfsyn at 129
??? Error using ==> norm
NaN or Inf prevents convergence.

Error in ==> hinf_st at 49
norm2 = norm(d11*(eye(nm1)-(d21\'/(d21*d21\'))*d21));

Error in ==> hinfsyn at 129
[p,r12,r21,fail,gmin] = hinf_st(p,nmeas,ncon,gmin,gmax,quiet);

我对sys进行奇异值分解,结果如下:
ans=eig(a'*a);sigular=sqrt(ans)
sigular= 1.0e+004 *
    1.0e+004 *
    [0.0001, 0.0001,0.0001,0.0001,0.0001 ,0.0001, 0.0001 ,0.0001,0.0003  ,0.0097,0.0137 ,0.0288 ,0.0948,0.2088,
0.2775,2.5245]'
请问这个问题怎么处理,谢谢

[ 本帖最后由 xmwhit 于 2008-12-16 21:06 编辑 ]
回复
分享到:

使用道具 举报

发表于 2008-12-6 18:50 | 显示全部楼层
不满足DGKF法的某些约束条件,MATLAB把它解释为Robust control toolbox 3.0 的一个bug.
你可以采用LMI方法求解,hinflmi
Glmi=ltisys(sys.a, sys.b, sys.c, sys.d)
[gopt, klmi, X1, X2, Y1,Y2]=hinflmi(Glmi,  [nmeas ncons], 0, 0.001, [0,  0,  0.001] )
[ka, kb, kc, kd]=unpck(Klmi);
Klmi=ss(ka, kb, kc, kd)

[ 本帖最后由 ll_18301 于 2008-12-6 18:56 编辑 ]
 楼主| 发表于 2008-12-7 15:29 | 显示全部楼层
非常感谢ll_18301。
我尝试过用LMI,在计算结束后给出这样的提示:
Warning:  the controller has fast modes (modulus > 1e6)
   Increase OPTIONS(2) or GAMMA to eliminate fast dynamics
不知道是什么意思?这个时候控制器已经计算出来了。
还有一个问题是不清除hinfsyn不满足DGKF的哪一个条件,对于 D12 must be a "tall" matrix with full "column" rank.D21  must be a "fat" matrix with full "row" rank.这个条件是满足的。
不清除问题出在什么地方,如何处理应用hinfsyn带来的问题。
‘Robust control toolbox 3.0 的一个bug’.这些约束条件是对命令hinfsyn应用的限制,还是在理论上就不存在解呢?
本人认为利用H无穷设计方法,理论上是可以计算出控制器的,也就是说利用hinfsyn命令,可以解决所有控制器设计的问题。而并不一定要用到LMI。这是两种设计方法而已。因此对hinfsyn出现的这种问题产生好奇,很想弄清楚问题出在哪里,如何解决。
再一次感谢ll_18301,希望能再给本人点提示,不胜感激
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-11-13 10:57 , Processed in 0.067010 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表