自动控制基本知识matlab仿真实验实验.docx
- 文档编号:24236838
- 上传时间:2023-05-25
- 格式:DOCX
- 页数:39
- 大小:966.60KB
自动控制基本知识matlab仿真实验实验.docx
《自动控制基本知识matlab仿真实验实验.docx》由会员分享,可在线阅读,更多相关《自动控制基本知识matlab仿真实验实验.docx(39页珍藏版)》请在冰豆网上搜索。
自动控制基本知识matlab仿真实验实验
实验一系统的数学模型
一、实验目的和任务
1、 学会使用MATLAB的命令;
2、 掌握MATLAB有关传递函数求取及其零、极点计算的函数。
3、 掌握用MATLAB 求取系统的数学模型
二、实验仪器、设备及材料
1、 计算机 2、 MATLAB软件
三、实验原理
1、 MATLAB软件的使用
2、 使用MATLAB软件在计算机上求取系统的传递函数
四、实验报告要求
1、将各实验内容的要求写入实验报告。
2、写出要求的实验程序。
3、记录各命令运行后的结果
五、实验内容
例1-3、设置传递函数
,时间延迟常数
方式1:
set(G,'ioDelay',4)%为系统的ioDelay属性设定值
G%显示传递函数
解:
该传递函数模型可以通过下面的语句输入到MATLAB工作空间为:
>>num=6*[1,5];
den=conv([1,3,1],[1,3,1]);
G=tf(num,den);
set(G,'ioDelay',4)
G
运行结果为:
Transferfunction:
6s+30
exp(-4*s)*------------------------------
s^4+6s^3+11s^2+6s+1
例1-4、已知传递函数
,提取系统的分子和分母多项式(实验)
解:
提取系统的分子和分母多项式程序为:
>>num=6*[1,5];
den=conv([1,3,1],[1,3,1]);
G=tf(num,den)
[numden]=tfdata(G,'v')
运行结果为:
Transferfunction:
6s+30
------------------------------
s^4+6s^3+11s^2+6s+1
num=
000630
den=
161161
例1-5例1-5 某系统的零极点模型为:
方法2:
利用算子(实验)
>>s=zpk('s')
G=6*(s+5)^2/((s+1)*(s+2)*(s+2+2)*(s+2-2))
运行结果为:
Zero/pole/gain:
6(s+5)^2
-------------------
s(s+1)(s+2)(s+4)
例1-7已知系统传递函数
,求零极点及增益,并绘制系统零极点分布图。
(实验)
(1)零极点及增益:
〉〉num=[1,4,11];
den=conv([1,6,3],[1,2,0]);
G=tf(num,den)
[z,p,k]=zpkdata(G,'V')
运行结果为:
Transferfunction:
s^2+4s+11
--------------------------
s^4+8s^3+15s^2+6s
z=
-2.0000+2.6458i
-2.0000-2.6458i
p=
0
-5.4495
-2.0000
-0.5505
k=
1
(2)系统零极点分布图:
〉〉num=[1,4,11];
den=conv([1,6,3],[1,2,0]);
G=tf(num,den)
pzmap(G)
Transferfunction:
s^2+4s+11
--------------------------
s^4+8s^3+15s^2+6s
例1-11 给定零极点模型:
用MATLAB命令得出其等效的零极点传递函数模型。
输入程序的过程中要注意大小写。
〉〉den1=conv([132j],[13-2j]);
den2=conv(den1,[11.5]);
G=tf(conv([12],[17]),conv([10],den2))
运行结果为:
G=
s^2+9s+14
-----------------------------------------------
s^6+7.5s^5+18s^4+13.5s^3+4s^2+6s
实验内容:
1、特征多项式的建立与特征根的求取在命令窗口依次运行下面命令,并记录各命令运行后结果
>>p=[1,3,0,4]
p=
1304
>>r=roots(p)
r=
-3.3553
0.1777+1.0773i
0.1777-1.0773i
>>p=poly(r)
p=
1.00003.0000-0.00004.0000
2、求单位反馈系统的传递函数:
输入运行命令:
>>numg=[1];deng=[500,0,0];
numc=[1,1];denc=[1,2];
[num1,den1]=series(numg,deng,numc,denc);
[num,den]=cloop(num,den,-1);
printsys(num,den)
运行结果:
num/den=
s+1
----------------------------
500s^3+1000s^2+4s+4
3、传递函数零、极点的求取
在命令窗口依次运行下面命令,并记录各命令运行后结果:
>>num1=[6,0,1];
den1=[1,3,3,1];
z=roots(num1)
z=
0+0.4082i
0-0.4082i
>>p=roots(den1)
p=
-1.0000+0.0000i
-1.0000-0.0000i
-1.0000
>>n1=[1,1];n2=[1,2];d1=[1,2*i];d2=[1,-2*i];d3=[1,3];
num2=conv(n1,n2)
num2=
132
>>den2=conv(d1,conv(d2,d3))
den2=
13412
>>printsys(num2,den2)
num/den=
s^2+3s+2
----------------------
s^3+3s^2+4s+12
>>num=conv(num1,den2);
den=conv(den1,num2);
printsys(num,den)
num/den=
6s^5+18s^4+25s^3+75s^2+4s+12
-------------------------------------------
s^5+6s^4+14s^3+16s^2+9s+2
>>pzmap(num,den),title('零极点图')
4、求反馈联接系统的传递函数:
在命令窗口依次运行下面命令,并记录各命令运行后结果:
>>numg=[1];deng=[500,0,0];numc=[1,1];denc=[1,2];
numh=[1,1];denh=[1,2];
[num,den]=feedback(numg,deng,numh,denh)
运行结果:
num=
0012
den=
500100011
>>printsys(num,den)
num/den=
s+2
---------------------------
500s^3+1000s^2+s+1
5、自行利用MATLAB命令求取以下系统传递函数,并记录下结果。
>>G1=tf(2,[110]);
G2=tf([12],[13]);
Gp=feedback(G1,G2,1);
G3=tf(10,[11]);
Gs=series(G3,Gp);
H=tf([50],[168]);
Gc=feedback(Gs,H,-1)
Transferfunction:
20s^3+180s^2+520s+480
-----------------------------------------------------
s^6+11s^5+43s^4+67s^3+118s^2+252s-32
实验二、典型环节的MATLAB仿真
一、实验目的:
1.熟悉MATLAB桌面和命令窗口,初步了解SIMULINK功能模块的使用方法。
2.通过观察典型环节在单位阶跃信号作用下的动态特性,加深对各典型环节响应曲线的理解。
3.定性了解各参数变化对典型环节动态特性的影响
二、 实验内容:
按下列各典型环节的传递函数,建立相应的SIMULINK仿真模型,观察并记录其单位阶跃响应波形。
(1)比例环节G1(s)=1和G1(s)=2;
Simulink图形实现:
示波器显示结果:
(2)惯性环节G1(s)=1/s+1和G2(s)=1/0.5s+1
Simulink图形实现:
示波器显示结果:
(3)积分环节G1(s)=1/s
Simulink图形实现:
示波器显示结果:
(4)微分环节G1(s)=s
Simulink图形实现:
示波器显示结果:
(5)比例+微分环节(PD)
1)、G1(s)=s+2
Simulink图形实现:
示波器显示结果:
2)、G2(s)=s+1
Simulink图形实现:
示波器显示结果:
(6)比例+积分环节
1)、G1
(1)=1+1/s
Simulink图形实现:
和
示波器显示结果:
1)G2(s)=1+1/2s
Simulink图形实现:
示波器显示结果:
实验三、控制系统的时域分析
一、实验目的
学习利用MATLAB进行控制系统时域分析,包括典型响应、判断系统稳定性和分析系统的动态特性。
二、实验内容
(一)稳定性
1.系统传函为
,试判断其稳定性
>>roots([1,4,25])
运行结果:
ans=
-2.0000+4.5826i
-2.0000-4.5826i
特征方程的根都具有负实部,因而该系统为稳定的。
2.用Matlab判断
的稳定性
>>roots([1,7,3,5,2])
运行结果:
ans=
-6.6553+0.0000i
0.0327+0.8555i
0.0327-0.8555i
-0.4100+0.0000i
特征方程的根不是全部都具有负实根,因而该系统是不稳定的。
(二)阶跃响应
1.二阶系统
1)键入程序,观察并记录单位阶跃响应曲线如图14所示。
>>G=tf([0,0,10],[1,2,10]);
t=0:
0.1:
5;
c=step(G,t);
plot(t,c)
Css=dcgain(G)
Css=
1
图14MATLAB绘制的响应曲线
2)计算系统的闭环根、阻尼比、无阻尼振荡频率,并记录
>>num=[10];
den=[1,2,10];
G=tf(num,den);
roots(den)
wn=sqrt(num)
znb=2/(2*wn)
ans=
-1.0000+3.0000i
-1.0000-3.0000i
wn=3.1623
znb=0.3162
3)记录实际测取的峰值大小、峰值时间及过渡过程时间,并填表:
相关理论知识可填下表:
=1.0472
>>num=[10];
den=[1,2,10];
G=tf(num,den);
step(num,den);
grid
[y,t]=step(G);
[Y,k]=max(y);
cmax=Y
tp=t(k);
i=length(t);
C=dcgain(G);
while(y(i)>0.98*C)&(y(i)<1.02*C)
i=i-1;
end
time2=t(i)
while(y(i)>0.95*C)&(y(i)<1.05*C)
i=i-1;
end
time5=t(i)
cmax=1.3509
time2=3.5147
time5=2.4656
实际值
理论值
峰值Cmax
3.5147
1.3509
峰值时间tp
1.3509
1.0472
过渡时间
ts
3.5147
3.5
2.4656
4.5
4)修改参数,分别实现
和
的响应曲线,并记录
>>wn=sqrt(10);
znb=1;
num=[wn^2];
den=[1,2*znb*wn,wn^2]
G=tf(num,den);
step(G)
holdon
znb=2;
den=[1,2*znb*wn,wn^2]
G=tf(num,den);
step(G)
grid
title
den=
1.00006.324610.0000
den=
1.000012.649110.0000
(三)系统动态特性分析
用Matlab求二阶系统
和
的峰值时间
上升时间
调整时间
超调量
。
1.二阶系统
>>G=tf([120],[1,12,120]);
[y,t]=step(G);
[Y,K]=max(y);
tp=t(K)
c=dcgain(G);
n=1;
whiley(n) n=n+1; end tr=t(n) i=length(t); while(y(i)>0.98*c)&(y(i)<1.02*c) i=i-1; end ts=t(i) ct1=(Y-c)/c*100% 结果: tp= 0.3410 tr= 0.2361 ts= 0.5246 ct1= 12.7856 2.二阶系统 >>G=tf([0.01],[10.0020.01]); [y,t]=step(G); [Y,k]=max(y); tp=t(k) C=dcgain(G); n=1; whiley(n) n=n+1; end tr=t(n) i=length(t); while(y(i)>0.98*C)&(y(i)<1.02*C) i=i-1; end ts=t(i) ct1=(Y-c)/c*100 显示结果: tp= 31.4159 tr= 18.8496 ts= 3.8956e+003 ct1= 96.9071 实验四、控制系统的根轨迹分析 一、实验目的 1.利用计算机完成控制系统的根轨迹作图 2.了解控制系统根轨迹图的一般规律 3.利用根轨迹图进行系统分析 二、实验内容 1-1. >>G=tf(1,[conv([1,2,2],[1,6,13]),0]); rlocus(G); grid title('RootLocusPlotofG(s)=K/[s(s+2s+2)(s^2+6s+13)]') [K,P]=rlocfind(G) Selectapointinthegraphicswindow 结果显示: selected_point=0.0498+1.0248i K= 33.7970 P= -2.8003+2.2016i -2.8003-2.2016i -2.4802 0.0404+1.0355i 0.0404-1.0355i 所以K的取值范围是: 0 1-2. >>s=tf('s'); G=(s+12)/((s+1)*(s^2+12*s+100)*(s+10)); rlocus(G) grid title('G(s)=K(s+12)/[(s+10)(s^2+12*s+100)(s+10)]的根轨迹曲线') [K,P]=rlocfind(G) Selectapointinthegraphicswindow selected_point= -0.1777+10.4037i K= 1.1529e+003 P= 0.1038+10.1743i 0.1038-10.1743i -11.6038+2.9398i -11.6038-2.9398i 所以K值的取值范围是: 0 1-3. >>s=tf('s'); G=(0.05+1)/(s*(0.0714*s+1)*(0.012*s^2+0.1*s+1)); rlocus(G) grid title('G(s)=K(0.05+1)/[s(0.0714s+1)(0.012s^2+0.1s+1)]的根轨迹曲线') [K,P]=rlocfind(G) Selectapointinthegraphicswindow selected_point= 0.0592+7.3602i K= 6.5706 P= -11.2717+4.9455i -11.2717-4.9455i 0.1022+7.2895i 0.1022-7.2895i 所以K值的取值范围是: 0 >>s=tf('s'); G=(s^2+2*s+4)/(s*(s+4)*(s+6)*(s^2+4*s+1)); G1=feedback(G,1); rlocus(G1); grid title('RootLocusPlotofG(s)=K(s^2+2*s+4)/(s*(s+4)*(s+6)*(s^2+4s+1))') [K,P]=rlocfind(G1) Selectapointinthegraphicswindow selected_point= 0.0533+6.2888i K= 500.7618 P= -12.2715 0.0236+6.3054i 0.0236-6.3054i -0.8878+1.8236i -0.8878-1.8236i 实验六、控制系统的频率分析 一、实验目的 1.利用计算机作出开环系统的波特图 2.观察记录控制系统的开环频率特性 3.控制系统的开环频率特性分析 二、实验内容 1.用Matlab作Bode图.要求: 画出对应Bode图,并加标题. (1) >>num=[25]; den=[1,4,25]; bode(num,den) grid title('BodeDiagramofG(s)=25/(s^2+4*s+25)') 显示伯德图如下所示: (2) >>num=9*[1,0.2,1]; den=conv([1,0],[1,1.2,9]); bode(num,den) grid title('BodeDiagramofG(s)=9*(s^2+0.2*s+1)/(s*(s^2+1.2*s+9)') 显示伯德图如下所示: 2.某开环传函为: ,试绘制系统的Nyquist曲线,并判断闭环系统稳定性,最后求出闭环系统的单位脉冲响应。 (1)系统的Nyquist曲线 >>num=[50]; den=conv([1,5],[1,-2]); nyquist(num,den) grid title('NyquistPlotofG(s)=50/[(s+5)*s-2]') 显示奈氏图如下所示: 2)判断闭环系统稳定性及单位脉冲响应 >>num=[50]; den=conv([15],[1-2]); G=tf(num,den); G1=feedback(G,1); figure; nyquist(num,den) %v=[-2,2,-2,2]; %axis(v) grid title('′NyquistPlotofG(s)=50/(s+5)*(s-2)') figure; impulse(G1) 显示结果: 3.已知系统结构图如图所示: 其中: (1) (2) 要求: (a)作波特图,并将曲线保持进行比较 >>Gc1=tf([1],[1]); Gc2=tf([1],[110]); G=tf([1],[110]); G11=series(Gc1,G); G22=series(Gc2,G); sys1=feedback(G11,1,-1); sys2=feedback(G22,1,-1); bode(sys1,sys2); gridon; title('波特图') (b)分别计算两个系统的稳定裕度值,然后作性能比较 (1) >>G1=tf([1],[1]); G3=tf([1],[110]); Ga=series(G1,G3); sys1=feedback(Ga,1,-1); bode(sys1); margin(sys1); [Gm,Pm,Wcq,Wcp]=margin(sys1) grid title('lige') Gm= Inf Pm= 90 Wcq= Inf Wcp= 1.0000 (2) >>num=[1]; den=conv([10],[11]); G2=tf(num,den); G3=tf([1],[110]); Gb=series(G2,G3); sys2=feedback(Gb,1,-1); bode(sys2); margin(sys2); [Gm,Pm,Wcq,Wcp]=margin(sys2) grid title('lige') gridon Warning: Theclosed-loopsystemisunstable. InctrlMsgUtils.warning(line25) InDynamicSystem/margin(line65) Gm= Inf Pm= -138.6380 Wcq= NaN Wcp= 0.6913 (b)输入命令: >>num=[1]; den=conv([1,0],[1,1]); G1=tf(num,den); G2=tf(1,1); G3=series(G1,G2); G=feedback(G3,1); [Gm,Pm,Wcg,Wcp]=margin(G) 显示结果: Gm=Inf Pm=90 Wcg=Inf Wcp=1.0000 实验七、数字PID控制 一、实验目的 1.了解PID控制器中P、I、
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 自动控制 基本知识 matlab 仿真 实验