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

时间:2014-03-26 10:04:29

标签: 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

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

由于

1 个答案:

答案 0 :(得分:1)

来自Mathworks Documentation

限制:

如果B的A和b1,b2,...,b的特征值a1,a2,...,a满足

,则连续Lyapunov方程具有唯一解。 所有i,j

ai + bj~ = 0

并从您的值

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

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

但是我不知道为什么没有生成错误消息,可能是报告错误的时间