Lyapunov、Sylvester和Riccati方程等控制系统常用到的几个方程介绍及求解

目录

1、Sylvester方程

2、Lyapunov方程

3、Riccati方程


1、Sylvester方程

矩阵方程

Matlab控制工具箱提供了直接的求解该方程的lyap()函数:

A=[8 1 6;3 5 7;4 9 2]
B=[2 3;4 5]
C=[1 2;3 4;5 6]
X=lyap(A,B,C)

同理,我们使用Kronecker乘机的形式将原方程进行如下变化:

Lyapunov、Sylvester和Riccati方程的Matlab求解
故可以编写Sylvester方程的解析解函数:

function X=lyap3(A,B,C)
%Sylvester方程的解析解法
%rewrited by dynamic
%more information

If nargin==2,C=B;B=A';end
[nr,nc]=size(C);
A0=kron(A,eye(nc))+kron(eye(nr),B');
try
    C1=C';
   X0=-inv(A0)*C1(:);
   X=reshape(X0,nc,nr);
catch
   error('Matlabsky提醒您:矩阵奇异!');
end

使用上面的数据,我们试验下该解析解法
>>X=lyap3(sym(A),B,C)

X =

[  2853/14186,   557/14186,  -9119/14186]
[ 11441/56744,   8817/56744, -50879/56744]


2、Lyapunov方程

未完待续


3、Riccati方程

未完待续

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值