当前位置:
文档之家› MATLAB及应用 -第八讲
MATLAB及应用 -第八讲
(二)时域响应常用的Matlab函数:
产生输入信号:gensig 求取系统单位阶跃响应:step 求取系统的冲激响应:impulse 连续系统的零输入响应: initial 连续系统对任意输入的响应: lsim 求系统稳态值:dcgain 求具有反馈结构的闭环传函:feedback
对于离散系统只需在连续系统对应函数前加d 就可以,如dstep,dimpulse,dinitial,dlsim 等。调用格式与step、impulse类似。
(1)Bode图
1. 产生频率向量——横轴 频率向量可由logspace( )函数来构成。此 函数的调用格式为 ω=logspace(m,n,npts) 此命令可生成一个以10为底的指数向量 (10m∽10n ),点数由npts任意选定。
npts 10m 10n
2.输入画Bode图的命令——纵轴 连续系统的伯德图可利用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)
M行
semilogx生成半对数坐标图 同一个窗口上同时绘制出系统的Bode图了,其 中前一条命令中对幅值向量mag求取分贝(dB) 值。
4.求幅值裕量和相位裕量 在判断系统稳定性时,常常需要求出系 统的幅值裕量和相位裕量。利用MATLAB 控制系统工具箱提供的margin( )函数可以 求出系统的幅值裕量与相位裕量,该函数 的调用格式为 [Gm,Pm,Wcg,Wcp]=margin(sys) 或 [Gm,Pm,Wcg,Wcp]=margin(sys) 式中 Gm和Pm分别为系统的幅值裕量和相 位裕量,而Wcg 和Wcp分别为幅值裕量和 相位裕量处相应的频率值。
s
R s 1 s3
3 s 3 4s 2 3 1 3 s s 2 s 3 4s 2 3
C s
2 3
, s
s s 4 s2 3
3
1 C s , s s
6.2 频域分析:
以频率特性作为数学模型来分析、设计控制系 统的方法称为频率特性法。它具有明确的物理意 义,计算量较小,一般可采用作图方法或实验方
1、gensig()函数的用法
[u,t]= gensig(type,tau)
[u,t]= gensig(type,tau,tf,ts)
信 号 序 时 列 间 序 列
信 号 类 型
信 号 周 期
持 续 时 间
采 样 时 间
eg1. 生成一个周期为2*pi,持续时间为50s,采样时间
为0.01s的正弦波和方波信号。
程序: [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)’)
程序:
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)
11、dcgain()函数的用法
k=dcgain(sys);
12、feedback()函数的用法
sys=feedback(sys1,sys2);
eg9. 给出如下系统的开环传递函数,试用MATLAB求取 其单位阶跃响应和系统的稳定响应输出值。
Gs
程序: num=[1];den=[1 3 3 4 0]; [numc,denc]=cloop(num,den); t=0:0.1:20; y=step(numc,denc,t); plot(t,y) title(‘Step response’) xlabel(‘Time/s’) dc=dcgain(numc,denc)
2、step()函数的用法
step(sys);step(sys,t); y=step(num,den,t); [y,x,t]=step(num,den); [y,x,t]=step(A,B,C,D,iu);
时 间 向 量 0
[ ,t]
输 出 矩 阵
状 态 轨 迹
自时 动间 生序 成列
eg2. 求下列系统在输入信号为r(t)=10*1(t)输入时,系统 在[0 20s]的响应曲线。
>> [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图
时 间 向 量 0
[ ,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)’)
式中num,den和A,B,C,D分别为系统的开环传 递函数和状态方程的参数, w为Bode图的频率 点。
离散系统的调用格式为: 相频 [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)
其中
返回值Re,Im和w分别为频率特性的实部向量、 虚部向量和对应的频率向量
离散系统函数的调用格式为
dnyquist(a,b,c,d,Ts) dnyquist(a,b,c,d,Ts,iu) dnyquist(a,b,c,d,Ts,iu,w)
第 个 输 入 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); y=impluse (num,den,t); [y,x,t]=impluse (num,den); [y,x,t]=impluse (A,B,C,D,iu);
程序:
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)
法求出系统或元件的频率特性。
常用的作图方法:Bode图,奈奎斯特图
频域响应常用的Matlab函数:
画Bode图:bode 画奈奎斯特图:nyquist 画尼克尔斯图:nichols 绘制零极点位置:pzmap 计算增益和相位裕度: margin
对于离散系统只需在连续系统对应函数前加d 就可以,如dbode,dnyquist,dnichols。调用 格式类似。
s s3 3s 2 3s 4
1
dc=1.
eg10. 给出如下系统的开环传递函数,试用MATLAB 求取其单位加速度响应。 3 Gs 2 s 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’)
式中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) subplot把屏幕分成两个部分 N列
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.
第六6.2 控制频域分析 6.3 根轨迹分析
(一)时域响应概述:
回顾时域响应的性能指标 (1)动态性能指标 上升时间、峰值时间、超调量、调整时间 (2)稳态性能指标 稳态误差
控制系统最常用的时域分析方法是:当输入 信号为单位阶跃和单位冲激函数时,求出 系统的输出响应
程序: 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)’)