(机电控制系统时域频域分析).doc
成 绩机电系统控制基础大作业一基于MATLAB的机电控制系统响应分析姓 名 学 号 班 级 学 院 机电工程学院哈尔滨工业大学2013年11 月9 日1 作业题目1. 用MATLAB绘制系统的单位阶跃响应曲线、单位斜坡响应曲线。2. 用MATLAB求系统的单位阶跃响应性能指标:上升时间、峰值时间、调节时间和超调量。3. 数控直线运动工作平台位置控制示意图如下:伺服电机原理图如下:(1)假定电动机转子轴上的转动惯量为J1,减速器输出轴上的转动惯量为J2,减速器减速比为i,滚珠丝杠的螺距为P,试计算折算到电机主轴上的总的转动惯量J;(2)假定工作台质量m,给定环节的传递函数为Ka,放大环节的传递函数为Kb,包括检测装置在内的反馈环节传递函数为Kc,电动机的反电势常数为Kd,电动机的电磁力矩常数为Km,试建立该数控直线工作平台的数学模型,画出其控制系统框图;(3)忽略电感L时,令参数Ka=Kc=Kd=R=J=1,Km=10,P/i=4,利用MATLAB分析kb的取值对于系统的性能的影响。题目1直接用matlab编程运行程序,得出结果仿真结果源代码>> dum=25;>> den1=1 4 25;>> den2=1 4 25 0;>> G1=tf(dum,den1);>> G2=tf(dum,den2);>> t=0:0.01:4;>> y1,T=step(G1,t);>> y2,T=step(G2,t);>> xlabel('t(sec)')>> ylabel('x(t)')>> plot(T,y1,'-',T,y2,'-')>> legend('单位阶跃响应曲线','单位斜坡响应曲线')>> grid on;题目2用matlab编程运行仿真结果如下图ans = 0.4330 0.6860 0.2538 1.0000说明由仿真结果可知系统对单位阶跃信号响应上升时间tr=0.4330s ,峰值时间tp=0.6860s ,最大超调量Mp=25.38% ,调整时间ts=1s.源代码>> t=0:0.001:3;>> yss=1;dta=0.02;>> dum=25;>> den=1 4 25;>> G=tf(dum,den);>> y=step(G,t);>> r=1;while y(r)<yss;r=r+1;end>> tr=(r-1)*0.001;>> ymax,tp=max(y);tp=(tp-1)*0.001;>> Mp=(ymax-yss)/yss;>> s=1001;while y(s)>1-dta & y(s)<1+dta ; s=s-1;end>> ts=(s-1)*0.001;>> tr tp Mp ts题目3(1) 由题可推出 即 (2) 系统框图如下 系统方框图:K1KbKaKc (3)忽略电感L时,令参数Ka=Kc=Kd=R=J=1,Km=10,P/i=4 系统传递函数可简化成 仿真结果图: ans = 0.2420 0.3630 0.1630 0.8070 0.1470 0.2370 0.3050 0.7740 0.0630 0.1130 0.5688 0.7120由此可知,当Kb增大时,系统的上升时间、峰值时间和调整时间逐渐减少,对单位阶跃干扰的影响最大值(绝对值)减少,而系统的超调量逐渐增大。这说明二阶系统性能指标之间存在一定矛盾性。 程序源代码:>> t=0:0.001:3;>> yss=1;dta=0.02;>> dum=20;>> Kb=5;den1=1 10 20*Kb;G1=tf(dum*Kb,den1);>> Kb=10;den2=1 10 20*Kb;G2=tf(dum*Kb,den2);>> Kb=40;den3=1 10 20*Kb;G3=tf(dum*Kb,den3);>> y1,T=step(G1,t);>> y2,T=step(G2,t);>> y3,T=step(G3,t);>> plot(T,y1,'-',T,y2,'-',T,y3,'-.')>> legend('Kb=5','Kb=10','Kb=40')>> r=1;while y1(r)<yss;r=r+1;end>> tr1=(r-1)*0.001;>> ymax,tp=max(y1);tp1=(tp-1)*0.001;>> Mp1=(ymax-yss)/yss;>> s=1001;while y1(s)>1-dta & y1(s)<1+dta ; s=s-1;end >> ts1=(s-1)*0.001;>> r=1;while y2(r)<yss;r=r+1;end>> tr2=(r-1)*0.001;>> ymax,tp=max(y2);tp2=(tp-1)*0.001;>> Mp2=(ymax-yss)/yss;>> s=1001;while y2(s)>1-dta & y2(s)<1+dta ; s=s-1;end>> ts2=(s-1)*0.001;>> r=1;while y3(r)<yss;r=r+1;end>> tr3=(r-1)*0.001;>> ymax,tp=max(y3);tp3=(tp-1)*0.001;>> Mp3=(ymax-yss)/yss;>> s=1001;while y3(s)>1-dta & y3(s)<1+dta ; s=s-1;end>> ts3=(s-1)*0.001;>> tr1 tp1 Mp1 ts1,tr2 tp2 Mp2 ts2,tr3 tp3 Mp3 ts3>> grid on;