哈理工自动化大四MATLAB实验答案
- 格式:doc
- 大小:179.50 KB
- 文档页数:9
实验一 一、打开Matlab软件,点击,进入simulink Library Browser,点击文件---新建----Model 选择建立如下simulink模型图。
100.02s +0.3s +s32
Transfer FcnStepScope
修改单位阶跃模块的参数:step time:0 (阶跃信号起始时间为0时刻)这个值需要设置一下,其余的值都不用改动。intitial value:0(初值为0);Final value:1(终值为1);Sample time:0 (采样时间)(这一项我没太弄明白,变了几个值,得到的结果没什么变化。) 将求和模块改为+-; 将Transfer Fcn模块的参数设为num:[10],den:[0.02 0.3 1 0]; (2)simulation菜单star命令开始仿真;(也可使用那个小黑三角的图标工具) (3)双击示波器模块观察波形;(可以使用Autoscale工具,就是那个像望远镜的图标,得到最佳观测效果) 二、选择建立如下simulink模型图。(做书上P139页到145页即可)
最后生成 实验二 1、时域分析
(1)根据下面传递函数模型:绘制其单位阶跃响应曲线并在图上读标注出峰值,求出系统的性能指标。8106)65(5)(232ssssssG 答案: 程序shiyan3_1_1.m(本程序中用到了stepchar函数,需要按照书后附录D自己建立stepchar.m) function [pos,tr,ts,tp]=stepchar(g0,delta) [y,t]=step(g0); figer=plot(t,y),grid on [mp,ind]=max(y); dimt=length(t); yss=y(dimt); pos=100*(mp-yss)/yss tp=t(ind) for i=1:dimt if y(i)>=yss tr=t(i); break; end end; Tr=tr for i=1:length(y) if y(i)<=(1-delta)*yss|y(i)>=(1+delta)*yss ts=t(i); end end Ts=ts 以下是主程序: >> G=tf([5 25 30],[1 6 10 8]);
step(G) [pos,tr,ts,tp]=stepchar(G,0.02) figer = 1.9670e+003 pos = 7.5374 tp = 2.2086 Tr = 1.4356 Ts = 3.6994 (2)已知两个线性定常连续系统的传递函数分别为)(1sG和)(2sG,绘制它们的单位脉冲响应曲线。451042)(2321ssssssG, 27223)(22ssssG
答案: 程序(shiyan312.m) g1=tf([1 2 4],[1 10 5 4]); g2=tf([3 2],[2 7 2]); impulse(g1,g2) %脉冲响应曲线 运行结果:
(3)已知线性定常系统的状态空间模型和初始条件,绘制其零输入响应曲线。
••212107814.07814.05572.0
xxxx
214493.69691.1xxy
01)0(x
答案: %教材P184例题。 A=[-0.5572,-0.7814;0.7814,0];B=[0;0];C=[1.9691,6.4493];D=[0]; x0=[1;0];t=0:0.1:20; initial(A,B,C,D,x0,t),grid on
2、频域分析 设线性定常连续系统的传递函数分别为)(1sG、)(2sG和)(3sG,将它们的Bose图绘制在一张图中。
151)(1ssG,453.0)(22sssG,16.0)(3ssG
答案: G1=tf([1],[5 1]); G2=tf([0.3],[5 1 4]); G3=tf([0.6],[1 1]); bode(G1,'r-',G2,'b-',G3,'k:') 运行结果:
024681012141618-0.200.20.40.60.811.21.41.6Impulse ResponseTime (sec)Amplitude
-100-80-60-40-200Magnitude (dB)
10101001010-180-135-90-450Phase (deg)
Bode Diagram
Frequency (rad/sec)3、根轨迹分析 根据下面负反馈系统的开环传递函数,绘制系统根轨迹,并分析系统稳定的K值范围。 )2)(1()()(sssKsHsG 答案: sys=tf([1],conv([1,0],conv([1 1],[1 2]))); rlocus(sys) %P186 [K,ploes]=rlocfind(sys)
注:根轨迹图出来后,用鼠标点击竖的虚线和根轨迹的相交点。零极点在左平面时,系统稳定。故系统稳定的K值范围是0-6。 selected_point =
0 + 1.4286i
K = 6.1227 ploes = -3.0111 0.0055 + 1.4260i 0.0055 - 1.4260i
4、系统稳定性分析 (1)代数法稳定性判据:(用求分母多项式的根和routh函数两种方法)
已知系统的开环传递函数为:(2)()100(1)(20)sGssss试对系统闭环判别其稳定性 答案:要用routh函数,首先按照书后附录D建立routh . m如下 function [rtab,info]=routh0(den) info=[]; vec1=den(1:2:length(den)); nrT=length(vec1); vec2=den(2:2:length(den)-1); rtab=[vec1; vec2, zeros(1,nrT-length(vec2))]; for k=1:length(den)-2, alpha(k)=vec1(1)/vec2(1); for i=1:length(vec2), a3(i)=rtab(k,i+1)-alpha(k)*rtab(k+1,i+1); end if sum(abs(a3))==0 a3=polyder(vec2); info=[info,'All elements in row ',... int2str(k+2) ' are zeros;']; elseif abs(a3(1)) a3(1)=1e-6; info=[info,'Replaced first element;']; end rtab=[rtab; a3, zeros(1,nrT-length(a3))]; vec1=vec2; vec2=a3; end
>> G=zpk([-2],[0,-1,-20],100) Zero/pole/gain: 100 (s+2) -------------- s (s+1) (s+20) >> Gclose=feedback(G ,1) %单位负反馈,等同于feedback(G ,1,-1) Zero/pole/gain: 100 (s+2) ------------------------ (s+3.101) (s+5) (s+12.9) >> G0=tf(Gclose) Transfer function: 100 s + 200 -------------------------- s^3 + 21 s^2 + 120 s + 200 >> den=[1 21 120 200]; >> [rtab,msg]=routh(den) rtab= 1 120 21 0 120 0 0 0 msg = All elements in row 4 are zeros; (2)根轨迹法判断系统稳定性: 已知一个单位负反馈系统开环传递函数为:2(3)()(5)(6)(22)sGsksssss 试在系统的闭环根轨迹图上选择一点,求出该点的增益及其系统的闭环极点位置, 并判断在该点系统闭环的稳定性。 num=[1 3]; den=conv(conv([1 0],[1 5]),conv([1 6],[1 2 2])); G=tf(num,den); rlocus(G) [K,p]=rlocfind(G) Select a point in the graphics window
selected_point =
-7.0912 + 3.6957i K = 1.2158e+003 p = -7.1115 + 3.6800i -7.1115 - 3.6800i 2.0754 + 3.8890i 2.0754 - 3.8890i -2.9277 再选一次:
Select a point in the graphics window selected_point = -0.2784 + 1.0248i K = 15.9165 p = -5.5352 + 0.2986i -5.5352 - 0.2986i -1.3640 -0.2828 + 1.0292i -0.2828-1.0292i
-15-10-50510-10-8-6-4-20246810Root LocusReal AxisImaginary Axis