2019年-MATLAB自控原理-PPT精选文档
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
求解连续系统时域响应的MATLAB函数
➢ impulse函数
计算/绘制连续系统的单位脉冲响应。
句法:impulse(sys)
impulse(num, den) [y, x, t]=impulse(sys) [y, x, t]=impulse(num, den)
impulse(sys, t) impulse(num, den, t) [y, x, t]=impulse(sys, t) [y, x, t]=impulse(num, den, t)
plot(t, u2);
% 绘制单位加速度输入信号
hold on;
% 图形保持,在同图中绘制响应曲线
lsim(num, den, u2, t); % 求单位加速度响应
ylabel('x(t), y(t)');
% 显示纵轴名称
text(11, 100, '1/2*t^2'); % 显示单位加速度函数表达式
title(‘单位加速度响应’); % 显示图形名称
单位脉冲响应
0.3
单位阶跃响应
0.8
0.2
0.6
y(t)
y(t)
0.1
0.4
0
0.2
-0.10
5 10 15 20 Time (sec)
00
5
10 15 20
Time (sec)
单位速度响应
20
单位加速度响应
200
x(t), y(t)
x(t), y(t)
Transfer function: s^3 + 5 s^2 + 2
----------------------------2 s^3 + 3 s^2 + 15 s + 8
若控制系统的模型形式为零极点增益形式:
G (s)k((ss p z1 1))s s(( zp2 2)) ((ss zp m n))
0~t时间内 的脉冲响应
➢ step函数
计算/绘制连续系统的单位 step(num, den) [y, x, t]=step(sys) [y, x, t]=step(num, den)
step(sys, t) step(num, den, t) [y, x, t]=step(sys, t) [y, x, t]=step(num, den, t)
如:z=[-0.5 -1 -3]; p=[1 -2 -1.5 -5]; k=10; sys=zpk(z, p, k)
Zero/pole/gain: 10 (s+0.5) (s+1) (s+3) ------------------------------(s-1) (s+1.5) (s+2) (s+5)
text(10, 12, 't');
% 显示单位速度函数表达式
title(‘单位速度响应’); % 显示图形名称
MATLAB Program: response0.m (continue2)
% 求系统的单位加速度响应
subplot(2, 2, 4); % 设定子图形显示位置
u2=t.*t/2;
% 单位加速度输入信号
MATLAB Program Out: pole1.m
p= -15.0000 + 3.0000i -15.0000 - 3.0000i -8.0000 -3.0000 -0.5000 z= -7.0000 + 2.0000i -7.0000 - 2.0000i -5.0000
Imag Axis
零极点分布图
MATLAB Program: pole1.m
num=[10 190 1230 2650]; den=[1 41.5 608.5 3588 7263 2808]; sys=tf(num, den); p=pole(sys) z=zero(sys) pzmap(sys); title('零极点分布图');
num=[2 20 50];
den=[1 15 84 223 309 240 100];
t=0:0.1:20;
% 生成时间向量
% 求系统的单位脉冲响应
subplot(2, 2, 1);
% 设定子图形显示位置
impulse(num, den, t);
% 求单位脉冲响应
ylabel('y(t)');
% 显示纵轴名称
15
10
t
150
100
1/2*t2
5
50
00
5
10 15 20
00
5
10 15 20
Time (sec)
Time (sec)
若系统初始条件为0,易知,系统G(s)的单位脉 冲响应与sG(s)的单位阶跃响应相同,换言之, 系统G(s)的单位阶跃响应与系统G(s)/s的单位脉 冲响应相同。
显然,对于任意输入信号,只要能求出其拉氏 变换,即可采用impulse或step函数求其响应。
则在MATLAB中,用[z, p, k]向量组表示, 即:
z [z1 z2 zm ] p [ p1 p2 pn ] k [k]
此时,系统的传递函数模型用zpk函数生成,句 法为:sys=zpk(z, p, k)。
zpk函数也可用于将传递函数模型转换为零极点 增益形式,句法为:zpksys=zpk(sys)
控制基础实验课
综合实验 自控原理部分
时域分析法
一、时域特性的计算机辅助分析 线性系统的MATLAB表示 控制系统的传递函数模型为:
G (s)n d( ( u s e s ) ) m n b a 0 0 s s m n b a 1 1 s s m n 1 1 b a m n 1 1 s s b b n m
simple_sys = mineral(sys)
例如:已知 G(s) 5s4 H(s) s3
s2 1 5s6
s2 2s5
求其相互串联、并联及反馈连接后的传递函数。
MATLAB Program: model.m
sysg=tf([5 4], [1 15 6]); sysh=tf([1 3], [1 2 5]); s_sys=series(sysg, sysh) p_sys=parallel(sysg, sysh) f_sys=feedback(sysg, sysh)
% G(s) % H(s)
MATLAB Program Out: model.m
>> Series interconnection: Transfer function:
5 s^2 + 19 s + 12 --------------------------------------------s^4 + 17 s^3 + 41 s^2 + 87 s + 30 Parallel interconnection: Transfer function:
实际系统往往由多个环节通过串联、并联及反 馈方式互连构成。MATLAB提供的三个用于计 算串联、并联及反馈连接形成的新系统模型的 函数。
✓ series函数 计算两子系统串联后的新系统模型。 句法:sys = series(sys1, sys2) sys1, sys2分别为两子系统模型。该语句等效 于语句:sys=sys1 sys2 ✓ parallel函数 计算两子系统并联后的新系统模型。 句法: sys = parallel(sys1, sys2)
该语句等效于语句:sys=sys1 + sys2
✓ feedback函数
计算两子系统反馈互联后的新系统模型。
句法: sys = feedback(sys1,sys2) sys = feedback(sys1,sys2,sign)
sys1, sys2分别为前向通道及反馈通道的子系 统模型。sign为反馈方式,默认为负反馈, 正反馈时,sign=1
求反馈连接的传递函数也可用下列语句代替:
f_sys = sys1 / (1 + sys1 sys2) 但须注意,由于 MATLAB 内部的实现机制 导致上式获得的模型并非最简形式(即存在 相同的零点和极点),要获得最简模型必须 进一步通过函数minreal进行化简。 minreal函数的基本句法为:
➢ pzmap函数:绘制零极点分布图 句法: pzmap(sys) 或 [p,z] = pzmap(sys)
例题: 已知系统传递函数为:
G (s)
1s3 0 1s 9 2 1 02 s 3 20 650
s5 4.5 1 s4 6.0 5 s3 835 s2 8 78 2 s 6 23 808
求该系统的零极点并判断系统的稳定性。
10exp1006001pm43在明确了频率域内的设计要求之后就可以按照下面的步骤设计超前校正网绘制k500时未校正系统的bode图并计算相角裕度根据计算校正网络参数计算10log在未校正系统的bode图上确定与幅值增益10log对应的频率在频率附近绘制校正后的幅值增益渐近线该渐近直线在与0db线相交斜率等于未校正时的斜率加上20dbdec
% 求系统的单位速度响应
subplot(2, 2, 3); % 设定子图形显示位置
u1=t;
% 单位速度输入信号
plot(t, u1);
% 绘制单位速度输入信号
hold on;
% 图形保持,在同图中绘制响应曲线
lsim(num, den, u1, t); % 求单位速度响应
ylabel('x(t), y(t)'); % 显示纵轴名称
对建模, Simulink提供了图形化的用户界面, 可以通过鼠标点击和拖拉不同的模块像用笔 在纸上画图一样画出系统的模型框图。
Simulink 提供了各种模块库,如接收器、信 号源、线性和非线性组件以及连接件等,并 可由用户创建或定制模块。 Simulink 模型采用分级方式,可以通过自上 而下或自下而上的方法建立模型。建立完模 型后即可通过菜单命令或在MATLAB窗口中 输入命令进行仿真。仿真结果可通过示波器 (Scopes)模块观察也可保存供进一步分析。
title(‘单位脉冲响应’);
% 显示图形名称
% 求系统的单位阶跃响应
subplot(2, 2, 2);
% 设定子图形显示位置
step(num, den, t);
% 求单位阶跃响应
ylabel('y(t)');
% 显示纵轴名称
title(‘单位阶跃响应’);
% 显示图形名称
MATLAB Program: response0.m (continue1)
0~t时间内 的阶跃响应
➢ lsim函数
计算/绘制连续系统在0~t时间内的对任意输
入u的响应。
句法:
lsim(sys, u, t) lsim(num, den, u, t) [y, t]=lsim(sys, u, t) [y, t]=lsim(num, den, u, t)
上述函数句法中带输出变量引用时,得到系 统的时域响应数据而不直接显示响应曲线, 此时需通过绘图命令plot查看响应曲线。
连续系统稳定性分析的MATLAB函数 ➢ roots函数:求多项式的根 句法: r=roots(p) 其中,r为由多项式根组成的列向量。 ➢ pole函数:计算系统的极点 句法: p=pole(sys) 其中,p为由极点组成的列向量。
➢ zero函数:计算系统的零点 句法: r=zero(sys) 或 [z, k]=zero(sys) 其中,r为由多项式根组成的列向量。k为零 极点增益模型之增益
例题: 已知系统传递函数为:
2 s2 2s 0 50 G (s)
s6 1s5 5 8s4 4 2s 2 3 3 3s 0 2 2 9s 4 1000
求该系统的单位脉冲响应、单位阶跃响应、 单位速度响应、单位加速度响应。
MATLAB Program: response0.m
% 输入系统传递函数模型
6 s^3 + 32 s^2 + 84 s + 38 --------------------------------------------s^4 + 17 s^3 + 41 s^2 + 87 s + 30 Feedback interconnection: Transfer function:
5 s^3 + 14 s^2 + 33 s + 20 ----------------------------------------------s^4 + 17 s^3 + 46 s^2 + 106 s + 42
在MATLAB中,分子/分母多项式通过其系 数行向量表示,即:
num = [b0 b1 … bm] den = [a0 a1 … an]
此时,系统的传递函数模型用tf函数生成, 句法为:sys=tf(num, den) 其中,sys为系统传递函数。
如:num = [1 5 0 2]; den = [2 3 15 8]; 则:sys=tf(num, den)输出为:
4 3 2 1 0 -1 -2 -3 -4 -16 -14 -12 -10 -8 -6 -4 -2 0
Real Axis
连续系统的SIMULINK仿真
➢ Simulink简介
Simulink 是用来对动态系统建模、仿真和分 析的软件包,它支持线性和非线性系统、连 续和离散系统模型,或者是两者的混合。