《MATLAB SYNTAX》第14章 控制系统分析

(14.1) 建立数学模型

(1)标准传递函数模型:
在这里插入图片描述

sys = tf(num,den); %num、den分别表示分子、分母多项式系数

(2)零极点增益模型:
在这里插入图片描述

sys = zpk(z,p,k); %z、p、k分别表示系统的零点向量、极点向量和增益

(3)状态空间模型:
在这里插入图片描述

sys = ss(A,B,C,D);

其它有关函数:

[z,p,k] = tf2zp(num,den); %将标准传递函数模型转换为零极点增益模型
[num,den] = zp2tf(z,p,k); %将零极点增益模型转换为标准传递函数模型
sys = series(sys1,sys2); %求sys1和sys2的串联模型
sys = parallel(sys1,sys2); %求sys1和sys2的并联模型
[num,den] = pade(t,n); %求延迟环节exp(-t*s)的等效n阶多项式传递函数
[num,den] = tfdata(sys,'v'); %求sys的标准传递函数模型的参数,并以向量表示,'v'表示求取结果为数值型的变量
[z,p,k] = zpkdata(sys,'v'); %求sys的零极点增益模型的参数,并以向量表示,'v'表示求取结果为数值型变量

(14.2) 时域分析

step(sys); %绘制系统的阶跃响应曲线,sys既可以是标准传递函数模型,也可以是零极点增益模型
step(sys,t); %绘制以时间t为仿真终止时间的阶跃响应曲线
[y,t,x] = step(sys); %只计算输出数据不绘制曲线。y是系统响应的数据向量,t是时间向量,x是状态轨迹数据
impulse(sys); %绘制系统的脉冲响应曲线,sys既可以是标准传递函数模型,也可以是零极点增益模型
impulse(sys,t); %绘制以时间t为仿真终止时间的脉冲响应曲线
[y,t,x] = impulse(sys); %只计算输出数据不绘制曲线。y是系统响应的数据向量,t是时间向量,x是状态轨迹数据

例:设单位负反馈系统的前向通道传递函数为 G ( s ) = 1.25 s 2 + s G(s)=\frac{1.25}{s^2+s} G(s)=s2+s1.25,绘制其闭环系统的单位阶跃响应曲线和单位脉冲响应曲线。

clc;clear;
num = [0 0 1];
den = [1 1 0];
s1 = tf(num,den);
sys = feedback(s1,1,-1); %前向通道为s1,反馈通道为单位反馈1-1(默认)表示负反馈
subplot(2,1,1);
step(sys); %单位阶跃x
grid on;
subplot(2,1,2);
impulse(sys);
grid on;

在这里插入图片描述

(14.3) 误差分析

clc;clear;
syms s;
ess = (s + 1) / (s + 2);
limit(ess,s,0)
>>
ans = 
    1/2

(14.4) 稳定性分析

线性系统中,若闭环极点或特征方程的根全部落在s平面的左半平面,则系统是稳定的;若有闭环极点或特征方程的根位于s平面的右半面,则系统是不稳定的。

roots(den); %求解系统的特征方程的根,判断系统稳定性
pzmap(sys); %画出系统的零极点图(图中零点用小圆圈标记,极点用叉号标记),根据零极点图判断

例:已知单位负反馈系统的前向通道传递函数为 G ( s ) = 100 ( s + 2 ) s ( s + 1 ) ( s + 20 ) G(s)=\frac{100(s+2)}{s(s+1)(s+20)} G(s)=s(s+1)(s+20)100(s+2),判断其闭环系统的稳定性(用特征方程的根判断)。

clc;clear;
k = 100;
z = -2;
p = [0 -1 -20];
[num,den] = zp2tf(z,p,k);
sys = tf(num,den);
den1 = num + den; %求闭环系统的特征方程的系数向量
roots(den1) %由于所有特征根均为负值,即在s平面的左半部分,所以闭环系统是稳定的
>>
ans =
    -12.8990
    -5.0000
    -3.1010

例:已知控制系统的方框图如图所示,判断系统的稳定性(用系统零极点图判断)。
<img src="https://img-blog.csdnimg.cn/20201203175742229.png width="100%">

clc;clear;
s = tf('s'); %定义复变量
G1 = (s + 1) / (2 * s + 1);
G2 = 5 / (2 * s^2 + 3 * s + 1);
G = G1 * G2;
H = 1 / (2 * s + 1);
Gc = feedback(G,H);
pzmap(Gc); %特征根全部位于s平面的左半部分,所以系统是稳定的

在这里插入图片描述

(14.5) 频域分析

nichols(sys); %绘制系统sys的尼科尔斯(对数幅相)图
nyquist(sys); %绘制系统sys的奈奎斯特(极坐标)图
bode(sys); %绘制系统sys的伯德(对数频率特性)图
k = dcgain(sys); %求系统sys的稳态增益
[wn,zeta] = damp(den); %求系统sys的特征参数
[mag,pha,w] = bode(sys); %求系统sys的幅值(mag)、相角(pha)、角频率(w)
[Gm,Pm,Wg,Wp] = margain(sys); %求系统sys的增益裕量(Gm)、相角裕量(Pm)、相位交界频率(Wg)、增益交界频率(Wp)

例:已知开环传递函数为 G ( s ) = 10 ( 0.5 s + 1 ) s ( 2 s + 1 ) ( 10 s + 1 ) G(s) = \frac{10(0.5s+1)}{s(2s+1)(10s+1)} G(s)=s(2s+1)(10s+1)10(0.5s+1),绘制其伯德图、奈奎斯特图、尼科尔斯图。

clc;clear;
num = [0.5 1];
den = conv(conv([1 0],[2 1]),[10,1]);
G = 10 * tf(num,den);
figure;
bode(G);
grid on;
figure;
nyquist(G);
grid on;
figure;
nichols(G);
grid on;

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


《 M A T L A B   S Y N T A X 》 系 列 博 客 创 作 参 考 资 料 来 源 《MATLAB\ SYNTAX》系列博客创作参考资料来源 MATLAB SYNTAX

  1. 《自动控制原理实验教程》.巨林仓.西安交通大学出版社.
  2. 《MATLAB工程与科学绘图》.周博.薛世峰.清华大学出版社.
  3. 《MATLAB R2018a完全自学一本通》.刘浩.韩晶.电子工业出版社.
  4. 《科学计算与MATLAB语言》.刘卫国.蔡旭晖.吕格莉.何小贤.中国大学MOOC.
  5. 《MATLAB软件与基础数学实验》.李换琴.朱旭.王勇茂.籍万新.西安交通大学出版社.
  6. 《Matlab教程 - 图像处理》@正月点灯笼.https://www.bilibili.com.
  7. 《MATLAB从入门到秃头》@古德谓尔.https://www.bilibili.com.

博 客 创 作 : A i d e n   L e e 博客创作:Aiden\ Lee Aiden Lee
特别声明:文章仅供学习参考,转载请注明出处,严禁盗用!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值