(机电控制系统时域频域分析)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《机电系统控制基础》大作业一
基于MATLAB的机电控制系统响应分析
哈尔滨工业大学
2013年11月9日
1
作业题目
1. 用MATLAB 绘制系统2
()25()()
425
C s s R s s s Φ==
++的单位阶跃响应曲线、单位斜坡响应曲线。
2. 用MATLAB 求系统2
()25
()()425
C s s R s s s Φ==++的单位阶跃响应性能指标:上升时间、峰值时间、调节时间和超调量。
3. 数控直线运动工作平台位置控制示意图如下:
X i
伺服电机原理图如下:
L
R
(1)假定电动机转子轴上的转动惯量为J 1,减速器输出轴上的转动惯量为J 2,减速器减速比为i ,滚珠丝杠的螺距为P ,试计算折算到电机主轴上的总的转动惯量J ;
(2)假定工作台质量m ,给定环节的传递函数为K a ,放大环节的传递函数为K b ,包括检测装置在内的反馈环节传递函数为K c ,电动机的反电势常数为K d ,电动机的电磁力矩常数为K m ,试建立该数控直线工作平台的数学模型,画出其控制系统框图;
(3)忽略电感L 时,令参数K a =K c =K d =R=J=1,K m =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) >> 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 22212)2(21)1(212121i p m i J J J πωωωω++= 即 2221)2(i P m i j J J π++= (2)系统框图如下 系统方框图: (3)忽略电感L 时,令参数K a =K c =K d =R=J=1,K m =10,P/i =4π 系统传递函数可简化成b b x K s s K s G i 201020)(2++= 仿真结果图: 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) >> 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;