1、1,Matlab的启动,双击Matlab的图标 :,应用Matlab时,应注意:字体必须是“半角英文”。,便可进入命令窗口。,模型建立与转换,经典控制理论的常见模型:,零极点模型、,传递函数模型。,对于线性定常系统:,用命令:,可实现从传函模型到零极点模型的转换;,可实现从零极点模型到传函模型的转换。,2,实验1:稳定性分析,方法1 执行程序:,clear;close all; num=3,15,18;den=1,1,-2,-3,-7,-4,-4; z,p,k=tf2zp(num,den), %求对应传函的零点、极点、增益,方法2 执行程序:,clear;close all; den=1,1,
2、-2,-3,-7,-4,-4; p=roots(den) %求传函分母对应的根,3,实验2:时域分析,连续系统的单位阶跃响应函数:,y=step(num,den,T),练习2 求典型二阶系统当=0.5,n=5时的单位阶跃响应。,其程序为:,clear;close all; num=25; den=1 6 25;t=0:0.02:2; c=step(num,den,t);plot(t,c); xlabel(t-sec),ylabel(c(t),grid,pause,运行结果中的数据显示在命令窗口(略),图形显示在图形窗口。,4,练习3 已知某系统的闭环传递函数为:,求其单位阶跃响应。,其程序为:
3、,clear;close all; num=10,25;den=0.16,1.96,10,25;t=0:0.02:2.5; c=step(num,den,t);plot(t,c); xlabel(t-sec),ylabel(c(t),grid,pause,运行结果中的数据显示在命令窗口(略),图形显示在图形窗口。,5,实验3:根轨迹法,在控制系统工具箱中,根轨迹分析的调用命令为:,rlocus(num,den) 系统按自动给定的k值绘出根轨迹图 rlocus(num,den,k) 系统按用户指定的k值绘出根轨迹图 r,k=rlocus(num,den) 返回增益及其对应的复极点 r=rlocu
4、s(num,den,k) 返回与给定增益对应的复极点,其中,,num为开环传递函数的分子多项式的系数向量(提出k后);,den为开环传递函数的分母多项式的系数向量,它们关于s降幂排列。,6,其程序为:,clear;close all num=1;den=1,5,8,6,0; rlocus(num,den);,得到根轨迹图:,值的说明的一点是,用MATLAB绘出的根轨迹图形的横坐标与纵坐标比例通常是不同的,这一点,与我们手画的图形从视觉上会略有不同,我们可以通过拉动图形窗口使其一致。,7,程序为: clear;close all b1=1,1; a1=1,4,0,0; a2=1,9,0,0; a
5、3=1,10,0,0; a4=1,16,0,0; subplot(221),rlocus(b1,a1),title(p=4) subplot(222),rlocus(b1,a2),title(p=9) subplot(223),rlocus(b1,a3),title(p=10) subplot(224),rlocus(b1,a4),title(p=16) 绘出根轨迹图如图所示。,8,9,该题属零度根轨迹。只要取分子或分母多项式的系数为负值就可以了。,本题程序为:,clear;close all num=-1,-2;den=1,5,8,6; rlocus(num,den),绘出根轨迹如图所示。,
6、10,实验4:频率法,1用Nyquist命令绘制Nyquist曲线,练习7已知某系统的开环传递函数为:,绘制K=2000和K=6000时,系统的nyquist图。,clear;close all; num1=2000;num2=6000;den=1,52,100,0;w=8:1:800; re1,im1=nyquist(num1,den,w); re2,im2=nyquist(num2,den,w); subplot(221),plot(re1,im1),title(k=2000),grid on, subplot(222),plot(re2,im2),title(k=6000),grid o
7、n,执行程序:,结果为:,11,2用margin命令求取幅值裕度和相角裕度,得到频率特性后,,利用命令:g,p,wg,wp=margin(num,den),可以得到系统的相角裕度和幅值裕度。,其中,g为幅值裕度;,p为相角裕度;,wg为相角穿越频率;,wp为剪切频率。,12,g =2.6000 p =11.0248 wg =10 wp =6.1442,练习8. 对练习7所示系统求相角裕度和幅值裕度。,执行程序:,clear;close all; num1=2000;num2=6000;den=1,52,100,0;w=8:1:800; re1,im1=nyquist(num1,den,w);
8、re2,im2=nyquist(num2,den,w); subplot(221),plot(re1,im1),title(k=2000),grid on, subplot(222),plot(re2,im2),title(k=6000),grid on, g,p,wg,wp=margin(num1,den),执行结果出了显示图形外,还显示:,13,3用Bode命令绘制Bode图,练习9. 绘制练习7所示系统的Bode图(k=2000),执行程序:,clear;close all; num=2000; den=1,52,100,0; w=logspace(-1,2); m,p,w=bode(n
9、um,den,w); mdb=20*log10(m); subplot(211),semilogx(w,mdb);title(L(w);grid on, subplot(212),semilogx(w,p);title(w);grid on,结果为:,14,15,实验5:综合实验,练习10.已知固有系统的开环传递函数为:,观察分析串联超前校正对闭环单位系统阶跃响应的影响。 比较校正前后开环bode图,执行程序:,clear;close all num1=10;den1=1,1,10; num2=4,10;den2=0.1,1.1,5,10; t=0:0.1:5 c1=step(num1,den
10、1,t);plot(t,c1,:b);hold on, c2=step(num2,den2,t);plot(t,c2,r); legend(校正前,校正后,0), xlabel(t-sec),ylabel(c(t),grid,结果见下页图。,16,17,结果见下页图。,执行程序:,clear;close all num1=10;den1=1,1,0;num2=4,10;den2=0.1,1.1,1,0; w=logspace(-1,3); m1,p1,w=bode(num1,den1,w);m2,p2,w=bode(num2,den2,w); m1db=20*log10(m1);m2db=20
11、*log10(m2); subplot(211),semilogx(w,m1db,b);hold on; semilogx(w,m2db,r);title(L(w);grid on, subplot(212),semilogx(w,p1,b);hold on semilogx(w,p2,r);title(w);grid on,18,19,实验6:根轨迹设计器的应用,练习11 系统开环传递函数为,(1)应用rlroot(sys)函数,观察其根轨迹图、bode图、 nyquist图、 Nichols图、单位阶跃响应曲线及单位脉冲响应曲线,(2)为系统加一个开环零点,观察零点位置对根轨迹图、bode
12、图、 nyquist图、 Nichols图、单位阶跃响应曲线及单位脉冲响应曲线的影响。,(3)再增加一个开环极点,观察零点和极点的相对位置对根轨迹图、bode图、 nyquist图、 Nichols图、单位阶跃响应曲线及单位脉冲响应曲线的影响。,解: (1)执行程序,num=1 den=1,0,0 sys=tf(num,den) rltool(sys),将出现一个窗口如下页图所示。,20,(2)添加零点、极点:用鼠标点击上方工具栏的第三个按钮后,再点击坐标轴内一点,可在该点添加一个零点,用鼠标拖动可改变零点的位置。可观察不同的零点值对根轨迹图、bode图、 nyquist图、 Nichols图、单位阶跃响应曲线及单位脉冲响应曲线的影响,见图2.13。添加的零点可用工具栏的第四个按钮擦除。,21,注意:带鞋套,上机地点:院机房,