Lyapunov、Sylvester和Riccati方程是控系统常用到的几个方程,应用和计算比较广泛
在这里我们只要讨论下Lypunov方程的连续方程、离散方程的数值和解析解法,其中数值解法MATLAB提供的直接的lyap()和dlyap()函数
一、连续Lyapunov方程
连续Lyapunov方程可以表示为
![324619ae995a043bc12bde7d078becb8.gif](https://img-blog.csdnimg.cn/img_convert/324619ae995a043bc12bde7d078becb8.gif)
1.gif (936 Bytes, 下载次数: 24)
2009-1-12 10:17 上传
Lyapunov方程来源与微分方程稳定性理论,其中要求C为对称正定的n×n方阵,从而可以证明解X亦为n×n对称矩阵,这类方程直接求解比较困难,不过有了Matlab中lyap()函数,就简单多了。
>> A=[1 2 3;4 5 6;7 8 0]
A =
1 2 3
4 5 6
7 8 0
>> C=-[10 5 4;5 6 7;4 7 9]
C =
-10 -5 -4
-5 -6 -7
-4 -7 -9
>> X=lyap(A,C)
X =
-3.9444 3.8889 0.3889
3.8889 -2.7778 0.2222
0.3889 0.2222 -0.1111复制代码二、Lyapunov方程的解析解
利用Kroncecker乘积的表示方法,可以将Lyapunov方程写为
![324619ae995a043bc12bde7d078becb8.gif](https://img-blog.csdnimg.cn/img_convert/324619ae995a043bc12bde7d078becb8.gif)
2.gif (1.06 KB, 下载次数: 12)
2009-1-12 10:17 上传
可见,方程有唯一解的条件并不局限与C对称正定,只要满足 非奇异即可保证方程唯一解。同时也打破了传统观念,C必须对称正定的。
function x=lyap2(A,C)
%Lyapunov方程的符号解法
n=size(C,1);
A0=kron(A,eye(n))+kron(eye(n),A);
c=C(:);
x0=-inv(A0)*c;
x=reshape(x0,n,n)复制代码恩下面看一个示例,体会下符号解法
>>A=[1 2 3;4 5 6;7 8 0];
>>C=-[10 5 4;5 6 7;4 7 9];
>>x=lyap2(sym(A),sym(C))
x =
[ -71/18, 35/9, 7/18]
[ 35/9, -25/9, 2/9]
[ 7/18, 2/9, -1/9]复制代码三、离散Lyapunov方程
离散Lyapunov方程的一般形式为
![324619ae995a043bc12bde7d078becb8.gif](https://img-blog.csdnimg.cn/img_convert/324619ae995a043bc12bde7d078becb8.gif)
3.gif (987 Bytes, 下载次数: 12)
2009-1-12 10:27 上传
Matlab中直接提供了dlyap()函数求解该方程:X=dlyap(A,Q)
其实,如果A矩阵非奇异,则等式两边同时右乘
![324619ae995a043bc12bde7d078becb8.gif](https://img-blog.csdnimg.cn/img_convert/324619ae995a043bc12bde7d078becb8.gif)
4.gif (904 Bytes, 下载次数: 6)
2009-1-12 10:27 上传
得到
![324619ae995a043bc12bde7d078becb8.gif](https://img-blog.csdnimg.cn/img_convert/324619ae995a043bc12bde7d078becb8.gif)
5.gif (1.39 KB, 下载次数: 6)
2009-1-12 10:27 上传
就可以将其变换成连续的Sylvester方程
![324619ae995a043bc12bde7d078becb8.gif](https://img-blog.csdnimg.cn/img_convert/324619ae995a043bc12bde7d078becb8.gif)
6.gif (1.99 KB, 下载次数: 8)
2009-1-12 10:27 上传
而Sylvester方程是广义Lyapunov方程,故离散的Lyapunov方程还可以使用下面的方法求解
B=-inv(A’)
C=Q*inv(A’)
X=lyap(A,B,C)复制代码下面总结下我们上面的讲到的知识点:
X=lyap(A,C) 连续Lyapunov方程数值解法
X=lyap2(A,C) 连续Lyapunov方程符号解法
X=lyap(A,B,C) 广义Lyapunov方程,即Sylvester方程
X=dlyap(A,Q)或者X=lyap(A,-inv(A’),Q*inv(A’)) 离散Lyapunov方程