现代控制理论-MATLAB求解代码合集(更新中)

1.求解传递函数
MATLAB控制系统工具箱中提供了函数命令ss2tf(), 可以把给定的状态空间模型转换为传递函数模型。
调用格式:[num,den] = ss2tf(A,B,C,D,1)
其中最后一个1表示单输入。
示例:在这里插入图片描述
运行代码

A = [0   1   0;   0   0   1;   -5   -25   -5];
B = [0; 25; -120]; 
C = [1   0     0]; 
D = [0]; 
[num,den] = ss2tf(A,B,C,D,1) 

得到的输出结果为
num =

     0         0   25.0000    5.0000

den =

1.0000    5.0000   25.0000    5.0000

由此即可写出传递函数模型
————————————————————
2.求解矩阵指数函数
例如:在这里插入图片描述
这样一个矩阵指数函数,运行

A=[-1 2;0 -1];
syms s; I=eye(2);
E=s*I-A;
F=inv(E) 

得到
得到 F =
[ 1/(s+1), 2/(s+1)^2]
[ 0, 1/(s+1)]
由此,得到结果在这里插入图片描述
————————————————————
3.判断系统能控能观性

A=[0 1 0 0;0 0 0 0;0 0 0 1;0 0 29.4 0];
B=[0;1;0;3];
C=[1 0 0 0;0 0 1 0];
D=[0;0];
n=size(A,1);
Uc=ctrb(A,B);
rc=rank (Uc)
if rc==n
  disp('系统能控')
else
  disp('系统不能控')
end 

————————————————————
4.判断系统稳定性

A=[0 1 0 0;0 0 0 0;0 0 0 1;0 0 29.4 0];
B=[0;1;0;3];
C=[1 0 0 0;0 0 1 0];
D=[0;0];
Uc=ctrb(A,B);
rc=rank (Uc);
P=poly(A),v=roots(P)   

运行结果:
在这里插入图片描述极点为5.4222,-5.4222,显然,其中一个极点在右半平面,该系统不稳定
————————————————————
5.李雅普诺夫稳定性分析,求P矩阵
在这里插入图片描述
代码如下

cA=[0 1;-1 -2];
A=A';  %将A转置
Q=[1 0;0 1];
P=lyap(A,Q)

运行结果:在这里插入图片描述
————————————————————
6.求解状态反馈配置极点的反馈向量K
代码如下

A=[-20 20;-1 0];
B=[0 1]';
C=[1 0];
D=0;
P=[-7.07+7.07i -7.07-7.07i];
K=place(A,B,P)%负反馈,这里的K相对于书上的K加了个负号

运行结果:在这里插入图片描述

————————————————————
7.求解含观测器的状态反馈稳定控制器的反馈向量K和全维状态观测器的L
取状态观测器极点为[-20 -20]
代码如下

A=[-20 20;-1 0];
B=[0 1]';
C=[1 0];
D=0;
P=[-7.07+7.07i -7.07-7.07i];
K=place(A,B,P)%负反馈,这里的K相对于书上的K加了个负号
p=[-20 -20];
L=(acker(A',C',p))'

运行结果:在这里插入图片描述
————————————————————
8.

持续更新中~ 赞越多更新越快

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值