繁体   English   中英

Matlab中的lyap()函数的错误答案

[英]Wrong answer for lyap() function in matlab

我使用lyap()函数从matlab得到一个奇怪的答案,用于生成稳定的控制器,我的代码是

m=1;c=2;k=1;
A=[0 1;-k/m -c/m]
B=[0 1/m]'
C=[1 0;0 1];
D=[0 0]';
u=2;
Q=eye(2);
ro=60;
k=0.99*ro;
P=lyap(A,Q)

我得到的是

P =

    1.5000   -0.5000
   -0.5000    0.5000

这给了我不稳定的控制器,而当单独解决它时,我得到了

 p1 =

    1.5000    0.5000
    0.5000    0.5000

这是一个稳定的控制器。 有任何想法吗?

谢谢

来自Mathworks文档

限制:

如果A的特征值a1,a2,...,an和B的b1,b2,...,bn满足,则连续Lyapunov方程具有唯一解

所有i,j的ai + bj〜= 0

从你的价值观

eig(A)
    ans =
    -1
    -1
eig(Q)
ans =
     1
     1

我们可以看到这些加为零,因此这些输入没有唯一的解决方案

但是我不知道为什么不生成错误消息,可能是时候报告错误了

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM