MATLAB及应用第八讲 PPT

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
式 中 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)
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、
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)’)
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’)
幅频
相频 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图得频率 点。
(二)时域响应常用得Matlab函数:
产生输入信号:gensig 求取系统单位阶跃响应:step 求取系统得冲激响应:impulse 连续系统得零输入响应: initial 连续系统对任意输入得响应: lsim 求系统稳态值:dcgain 求具有反馈结构得闭环传函:feedback
对于离散系统只需在连续系统对应函数前加d 就可以,如dstep,dimpulse,dinitial,dlsim等。 调用格式与step、impulse类似。
MATLAB及应用第八讲
6、1 控制系统得时域分析 6、2 控制频域分析 6、3 根轨迹分析
(一)时域响应概述:
回顾时域响应得性能指标 (1)动态性能指标
上升时间、峰值时间、超调量、调整时间 (2)稳态性能指标
稳态误差
控制系统最常用得时域分析方法就是:当输 入信号为单位阶跃与单位冲激函数时,求出 系统得输出响应
常用得作图方法:Bode图,奈奎斯特图
频域响应常用得Matlab函数:
画Bode图:bode 画奈奎斯特图:nyquist 画尼克尔斯图:nichols 绘制零极点位置:pzmap 计算增益与相位裕度: margin
对于离散系统只需在连续系统对应函数前加d 就可以,如dbode,dnyquist,dnichols。调用格 式类似。
程序: 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);
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 频域分析:
以频率特性作为数学模型来分析、设计控制系 统得方法称为频率特性法。它具有明确得物理意 义,计算量较小,一般可采用作图方法或实验方法 求出系统或元件得频率特性。
第iu个输入
eg3、 求下列系统得阶跃响应曲线。
程序: numz=[1 -1、2 0、4]; denz=[1、2 -1、5 0、9]; dstep(numz,denz) xlabel(‘time/s’) ylabel(‘c(t)’)
时间向量[0,t]
时间序列 自动生成 状态轨迹 输出矩阵
4、impluse()函数得用法
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)
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;
程序:
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)
解 MATLAB编程如下: »num=[10]; »den=[1,1、2,10]; »w=logspace(-2,2,1000); »nyquist(num,den,w) »grid »bode(num,den,w) »grid
离散系统函数得调用格式为
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图。
(1)Bode图
1、 产生频率向量——横轴 频率向量可由logspace( )函数来构成。此
函数得调用格式为 ω=logspace(m,n,npts) 此命令可生成一个以10为底得指数向量
(10m∽10n ),点数由npts任意选定。
npts
10m
10n
2、输入画Bode图得命令——纵轴 连续系统得伯德图可利用bode( )函数来绘制, 连续系统得调用格式为:
程序:
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()函数得用法
离散系统得调用格式为: 相频
[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)
subplot把屏幕分成两个部分
N列
M行
semilogx生成半对数坐标图 同一个窗口上同时绘制出系统得Bode图了,其 中前一条命令中对幅值向量mag求取分贝(dB) 值。
4、求幅值裕量与相位裕量
在判断系统稳定性时,常常需要求出系统 得幅值裕量与相位裕量。利用MATLAB控 制系统工具箱提供得margin( )函数可以求 出系统得幅值裕量与相位裕量,该函数得调 用格式为
>> [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
(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分别为频率特性得实部向量、 虚部向量与对应得频率向量
[Gm,Pm,Wcg,Wcp]=margin(sys)
或ቤተ መጻሕፍቲ ባይዱ
[Gm,Pm,Wcg,Wcp]=margin(sys)
式中 Gm与Pm分别为系统得幅值裕量与相 位裕量,而Wcg 与Wcp分别为幅值裕量与相 位裕量处相应得频率值。
例5-2 已知二阶系统得开环传递函数为 试绘制系统得开环频率特性曲线
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)');
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);
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)’)
时间向量[0,t]
时间序列 自动生成 状态轨迹 输出矩阵
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);
eg2、 求下列系统在输入信号为r(t)=10*1(t)输入时,系统 在[0 20s]得响应曲线。
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]时,系统得零输入响应。
相关文档
最新文档