MATLAB及应用-第八讲终版.ppt
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2、step()函数的用法
时
step(sys);step(sys,t);
间
y=step(num,den,t);
向 量
[y,x,t]=step(num,den);
0
[y,x,t]=step(A,B,C,D,iu);
[ ,t]
输 状 自时 出 态 动间 矩 轨 生序 阵 迹 成列
eg2. 求下列系统在输入信号为r(t)=10*1(t)输入时,系统 在[0 20s]的响应曲线。
(二)时域响应常用的Matlab函数:
产生输入信号:gensig 求取系统单位阶跃响应:step 求取系统的冲激响应:impulse 连续系统的零输入响应: initial 连续系统对任意输入的响应: lsim 求系统稳态值:dcgain 求具有反馈结构的闭环传函:feedback
对于离散系统只需在连续系统对应函数前加d 就可以,如dstep,dimpulse,dinitial,dlsim 等。调用格式与step、impulse类似。
程序: K=10;Z=[-1];P=[-2 -3]; [num,den]=zp2tf(Z, P, K); sys=tf(num,den); t=0:0.2:20; step(sys,t) xlabel(‘time/s’) ylabel(‘c(t)’)
3、dstep()函数的用法
dstep(numz,denz); dstep(A,B,C,D); dstep(A,B,C,D,iu);
程序:
a=[-0.5 -0.8;0.4 0.4];b=[1;-1]; c=[2 -5]; d=2; sys=ss(a,b,c,d) [u,t]=gensig(‘sin’, 2*pi, 30, 0.1) lsim(sys,u,t)
ຫໍສະໝຸດ Baidu
11、dcgain()函数的用法
k=dcgain(sys);
12、feedback()函数的用法
k=1.5; ng=1.0; dg=poly([0 -1 -2]); w=logspace(-1,1,100); [m,p]=bode(k*ng,dg,w); subplot(2,1,1); semilogx(w,20*log10(m)); grid;ylabel('增益(dB)'); subplot(2,1,2); semilogx(w,p); grid;xlabel('频率(rad/s)'); ylabel('相角(deg)');
>> [Gm,Pm,Wcg,Wcp]=margin(k*ng,dg)
Gm =
4.0000
Pm = 41.5340
相位裕量
Wcg =
1.4142
Wcp =
0.6118
>> G=20*log10(Gm)
G=
12.0412
幅值裕量
练习 已知二阶系统的开环传递函数为 试绘制系统的Bode图
k=10; z=[-4]; p=[0 -0.5 -50 -50]; [num,den]=zp2tf(z,p,k); Bode(num,den); title(‘Bode plot’); grid on
s
s3
3 4s2
3
Rs
1 s3
Cs
1 s
s2
s3
3 4s2
3
,s s2
3 s34s2 3
C
s
1 ,
s
s
6.2 频域分析:
以频率特性作为数学模型来分析、设计控制系 统的方法称为频率特性法。它具有明确的物理意 义,计算量较小,一般可采用作图方法或实验方 法求出系统或元件的频率特性。
离散系统的调用格式为: 相频
[mag,phase,w]=dbode(numz,denz,Ts) 幅频 [mag,phase]=dbode(numz,denz,Ts,w)
[mag,phase,w]=dbode(A,B,C,D,Ts,iu) [mag,phase,w]=dbode(A,B,C,D,Ts,iu,w)
y=step(numc,denc,t);
plot(t,y)
title(‘Step response’)
xlabel(‘Time/s’)
dc=dcgain(numc,denc)
dc=1.
eg10. 给出如下系统的开环传递函数,试用MATLAB 求取其单位加速度响应。
Gs
3
s2 s
4
程序: num=[3];den=[1 4 3 0 0 0]; t=0:0.1:20; y=step(num,den,t); plot(t,y) title(‘Step response’) xlabel(‘Time/s’)
y=impluse (num,den,t);
向 量
[y,x,t]=impluse (num,den);
0
[y,x,t]=impluse (A,B,C,D,iu);
[ ,t]
输 状 自时 出 态 动间 矩 轨 生序 阵 迹 成列
eg4. 求下列系统的脉冲响应曲线。
程序: K=1;Z=[-1];P=[-2 -3]; [num,den]=zp2tf(Z, P, K); sys=tf(num,den); t=0:0.2:20; impulse(sys,t) xlabel(‘time/s’) ylabel(‘c(t)’)
sys=feedback(sys1,sys2);
eg9. 给出如下系统的开环传递函数,试用MATLAB求取 其单位阶跃响应和系统的稳定响应输出值。
程序:
Gs
s
s3
1 3s2 3s
4
num=[1];den=[1 3 3 4 0];
[numc,denc]=cloop(num,den);
t=0:0.1:20;
8、lsim()函数的用法
[y,t,x]=lsim(sys,u,t); [y,t,x]=lsim(sys,u,t,x0);
9、dlsim()函数的用法
dlsim(sys,u); [y,x]=dlsim(sys,u,x0);
eg8. 求下列系统的正弦响应。其中:周期2*pi,时间 t=30s,采样周期取0.1s.
第 个 输 入
iu
eg3. 求下列系统的阶跃响应曲线。
程序: numz=[1 -1.2 0.4]; denz=[1.2 -1.5 0.9]; dstep(numz,denz) xlabel(‘time/s’) ylabel(‘c(t)’)
4、impluse()函数的用法
时
impluse(sys); impluse(sys,t); 间
1、gensig()函数的用法
[u,t]= gensig(type,tau) [u,t]= gensig(type,tau,tf,ts)
信 号 序时 列间
序 列
信 信持采 号 号续样 类 周时时 型 期间间
eg1. 生成一个周期为2*pi,持续时间为50s,采样时间 为0.01s的正弦波和方波信号。
程序:
a=[-0.5 -0.8;-0.4 0.4];b=[1;-1]; c=[2 -5]; d=2; x0=[1;1]; t=0:0.1:30; initial(a,b,c, d,x0,t)
eg7. 求下列系统在x0=[1;1.2]时,系统的零输入响应。
程序: G=[-0.5 -0.8;0.4 1];H=[1;-1]; C=[1 -5]; D=2; x0=[1;1.2]; dinitial(G,H,C, D,x0)
第六章 控制系统的时频域分析方法
6.1 控制系统的时域分析 6.2 控制频域分析 6.3 根轨迹分析
(一)时域响应概述:
回顾时域响应的性能指标 (1)动态性能指标
上升时间、峰值时间、超调量、调整时间 (2)稳态性能指标
稳态误差
控制系统最常用的时域分析方法是:当输入 信号为单位阶跃和单位冲激函数时,求出 系统的输出响应
常用的作图方法:Bode图,奈奎斯特图
频域响应常用的Matlab函数:
画Bode图:bode 画奈奎斯特图:nyquist 画尼克尔斯图:nichols 绘制零极点位置:pzmap 计算增益和相位裕度: margin
对于离散系统只需在连续系统对应函数前加d 就可以,如dbode,dnyquist,dnichols。调用 格式类似。
的调用格式为
[Gm,Pm,Wcg,Wcp]=margin(sys)
或
[Gm,Pm,Wcg,Wcp]=margin(sys)
式中 Gm和Pm分别为系统的幅值裕量和相 位裕量,而Wcg 和Wcp分别为幅值裕量和 相位裕量处相应的频率值。
例5-2 已知二阶系统的开环传递函数为 试绘制系统的开环频率特性曲线
subplot把屏幕分成两个部分
N列
M行
semilogx生成半对数坐标图 同一个窗口上同时绘制出系统的Bode图了,其 中前一条命令中对幅值向量mag求取分贝(dB) 值。
4.求幅值裕量和相位裕量
在判断系统稳定性时,常常需要求出系
统的幅值裕量和相位裕量。利用MATLAB 控制系统工具箱提供的margin( )函数可以 求出系统的幅值裕量与相位裕量,该函数
(2) Nyquist图
连续系统函数的调用格式为
nyquist(sys) nyquist(sys,w) [Re,Im,w]=nyquist(num,den) [Re,Im,w]=nyquist(num,den,w) [Re,Im,w]=nyquist(A,B,C,D)
其中
返回值Re,Im和w分别为频率特性的实部向量、 虚部向量和对应的频率向量
式 中 numz,denz 和 A,B,C,D 分 别 为 系 统 的 开 环 传递函数和状态方程的参数,Ts为取样频率,w 为Bode图的频率点。
3. 显示绘制结果
可以利用下面的MATLAB命令
>>subplot(2,1,1);semilogx(w,20*log10(mag))
>>subplot(2,1,2);semilogx(w,phase)
离散系统函数的调用格式为
dnyquist(a,b,c,d,Ts) dnyquist(a,b,c,d,Ts,iu) dnyquist(a,b,c,d,Ts,iu,w)
其中
TS和w分别为频率特性的取样时间和对应的频 率向量
例例5-16、5-17
例 绘制
G(s)
s2
10 1.2s
10
的nyquist图和bode图。
幅频
相频 bode(sys); bode(sys,w); [mag,phase,w]=bode(num,den) [mag,phase]=bode(num,den,w) [mag,phase,w]=bode(A,B,C,D) [mag,phase,w]=bode(A,B,C,D,iu)
式中num,den和A,B,C,D分别为系统的开环传 递函数和状态方程的参数, w为Bode图的频率 点。
(1)Bode图
1. 产生频率向量——横轴 频率向量可由logspace( )函数来构成。此
函数的调用格式为 ω=logspace(m,n,npts) 此命令可生成一个以10为底的指数向量
(10m∽10n ),点数由npts任意选定。
npts
10m
10n
2.输入画Bode图的命令——纵轴 连续系统的伯德图可利用bode( )函数来绘制, 连续系统的调用格式为:
程序: [u1, t1]=gensig(‘sin’, 2*pi, 50, 0.01); [u2, t2]=gensig(‘square’, 2*pi, 50, 0.01); plot(t1,u1,t2,u2) axis([0 50 -1.2 1.2]) xlabel(‘time/s’) ylabel(‘c(t)’)
6、initial()函数的用法
[y,t,x]=initial(sys,x0); [y,t,x]=initial(sys,x0,t);
7、dinitial()函数的用法
dinitial(sys,x0); [y,x,n]=dinitial(sys,x0,n);
eg6. 求下列系统在x0=[1;1]时,系统的零输入响应。
5、dimpulse()函数的用法
dimpulse(numz,denz); dimpulse (A,B,C,D); dimpulse (A,B,C,D,iu);
第 个 输 入
iu
eg5. 将下列连续系统离散化,并求其离散状态系统的冲 激响应曲线。
程序: 离散化: a=[-0.5 -0.8;0.4 0];b=[1;-1]; c=[2 5]; d=0; [G,H,Cd,Dd]=c2dm(a,b,c,d,0.1) 冲激响应: dimpulse(G,H,Cd,Dd)