西工大机械原理大作业2凸轮机构作业.docx
《西工大机械原理大作业2凸轮机构作业.docx》由会员分享,可在线阅读,更多相关《西工大机械原理大作业2凸轮机构作业.docx(19页珍藏版)》请在冰点文库上搜索。
西工大机械原理大作业2凸轮机构作业
大作业
(二)
凸轮机构设计
(题号:
1-A)
班级___________
学号_________
姓名______________
成绩______________________
同组者_______
完成日期2014年1月2日
目录
1.题目及原始数据3
2.推杆的运动规律及凸轮廓线方程.3
3.计算程序4
4.计算结果及分析11
5.凸轮机构图13
6.体会与建议14
7.参考书14
8.附录15
1.题目及原始数据
利用计算机辅助设计完成下列偏置式直动滚子推杆盘形构件(推杆的移动副导路位于凸轮盘回转中心右侧)或摆动滚子推杆盘形凸轮机构的设计,设计已知数据如下表所示,机构中凸轮沿着逆时针方向作匀速转动。
表1凸轮机构的从动件运动规律
直动推杆组题号
推程运动规律
回程运动规律
1
等加速等减速运动
余弦加速度运动
表2凸轮机构的推杆在近休、推程、远休及回程阶段的凸轮转角
题号
近休凸轮转角
推程凸轮转角
远休凸轮转角
回程凸轮转角
A
0゜~60゜
60゜~180゜
180゜~270゜
270゜~360゜
表3偏置直动滚子推杆盘形凸轮机构的已知参数
初选基圆半径r0/mm
偏距e/mm
滚子半径rr/mm
推杆行程h/mm
许用压力角
许用最小曲率半径[ρamin]
[α1]
[α2]
15
+5
10
28
30゜
70゜
0.3rr
2.推杆的运动规律及凸轮廓线方程
推程:
等加速
等减速
远休:
回程:
近休:
理论轮廓廓线方程
实际廓线方程
3.计算程序
①C语言计算坐标程序
#include
#definePI3.141592653
doublefact[72][2];
doubletheory[72][2];
intRevit_degree1[3]={120,165,180},Revit_degree2[3]={210,215,250},Revit_degree3[3]={300,
315,330};//已知参数
doubleRevit_h[3]={28,30,35},Revit_rb[3]={14,19,21};
doubleRevit_A1[3]={30,30,35},Revit_A2[3]={70,75,65};
doubleRevit_P[3]={13,18.2,24.3},Revit_e[3]={5,10,14};
doubleRevit_r[3]={10,14,18};
doubleb=1;
intk=0;//选择组别0-A1-B2-C
intang1=Revit_degree1[k],ang2=Revit_degree2[k],ang3=Revit_degree3[k];
doubleh=Revit_h[k],rb=Revit_rb[k];
doubleA1=Revit_A1[k]*PI/180,A2=Revit_A2[k]*PI/180;
doubler=Revit_r[k],e=Revit_e[k],P=Revit_P[k];
doubleSo;
doubleS(intI)
{
doubles;
doubleA;
doubleB;
if(I<=ang1/2)
A=I*PI/180;
B=ang1*PI/180;
s=2*h*pow(A/B,2);
}
elseif((I>ang1/2)&&(I<=ang1))
s=h-2*h*pow((B-A)/B,2);
elseif(I<=ang2)s=h;
elseif(I<=ang3)
A=(I-ang2)*PI/180;
B=(ang3-ang2)*PI/180;
s=h*(1+cos(PI*A/B))/2;
elses=0;
return(s);
doubleds(intQ)
doubleA,B,C;
if(Q<=ang1/2)
A=Q*PI/180;
C=4*h*A/(B*B);
elseif((Q>ang1/2)&&(Q<=ang1))
C=4*h*(B-A)/(B*B);
elseif(Q<=ang2)C=0;
elseif(Q<=ang3)
A=(Q-ang2)*PI/180;
C=-PI*h*sin(PI*A/B)/(2*B);
elseC=0;
returnC;
doubledss(intB3)
if(B3<=ang1/2)
A=B3*PI/180;
C=ang1*PI/180;
B=4*h/(C*C);
elseif(B3>ang1/2&&B3<=ang1)
B=-4*h/(C*C);
elseif(B3<=ang2)B=0;
elseif(B3<=ang3)
A=(B3-ang2)*PI/180;
C=(ang3-ang2)*PI/180;
B=-PI*PI*h*cos(PI*A/C)/(2*C*C);
elseB=0;
return(B);
voidxy(intang)//计算点坐标
doubleA,B,C,E,F,dx,dy;
A=ang*PI/180;
B=S(ang);
C=ds(ang);
dx=(So+B)*cos(A)+sin(A)*(C-e);
dy=-sin(A)*(So+B)+cos(A)*(C-e);
E=-r*dy/sqrt(dx*dx+dy*dy);
F=r*dx/sqrt(dx*dx+dy*dy);
theory[ang/5][0]=(So+B)*sin(A)+e*cos(A);
theory[ang/5][1]=(So+B)*cos(A)-e*sin(A);
fact[ang/5][0]=theory[ang/5][0]-E;
fact[ang/5][1]=theory[ang/5][1]-F;
doublea(intB1)//计算压力角
doubleA,B;
A=sqrt((ds(B1)-e)*(ds(B1)-e));
B=S(B1);
returnatan(A/(B+So));
doublep(intB2)//计算曲率半径
doubledx,dy,dxx,dyy;
doubleA,B,C,D,E;
A=B2*PI/180;
B=ds(B2);
C=S(B2);
D=dss(B2);
dx=(So+C)*cos(A)+sin(A)*B-e*sin(A);
dy=-sin(A)*(So+C)+B*cos(A)-e*cos(A);
dxx=-(C+So)*sin(A)+cos(A)*B+D*sin(A)+(C-e)*cos(A);
dyy=-cos(A)*(So+C)+D*cos(A)-sin(A)*B+(e-B)*sin(A);
E=sqrt(pow(dx*dx+dy*dy,3))/sqrt(pow((dx*dyy-dxx*dy),2));
return(E);
voidmain()
{FILE*fp;
inti=0;
intk,h,l;
doubleangle1max=0,angle2max=0,pmin=1000;
if((fp=fopen("text.txt","w"))==NULL)
printf("Cann'topenthisfile.\n");
exit(0);
fprintf(fp,"理论坐标实际坐标\n");
fprintf(fp,"xyx'y'");
for(;i!
=360;)//选择基圆半径
rb=rb+b;
So=sqrt(rb*rb-e*e);
for(i=0;i<=ang1;i=i+5)
if(a(i)>A1||p(i)
break;
if(ang1+5-i)continue;
for(i=ang1+5;i<=ang2;i=i+5)
if(p(i)
if(ang2+5-i)continue;
for(i=ang2+5;i<=ang3;i=i+5)
if(a(i)>A2||p(i)
if(ang3+5-i)continue;
for(i=ang3+5;i<360;i=i+5)
for(i=0;i<360;i=i+5)//写入数组数据
xy(i);
for(i=0;i<=ang1;i=i+5)//选择压力角及最小曲率半径
if(angle1max{angle1max=a(i);k=i;}if(pmin>p(i)){pmin=p(i);h=i;}}for(i=ang2;i<=ang3;i=i+5){if(angle2max{angle2max=a(i);l=i;}if(pmin>p(i)){pmin=p(i);h=i;}}for(i=0;i<72;i++){fprintf(fp,"\n");{fprintf(fp,"%12.3f\t%12.3f\t%12.3f\t%12.3f\t",theory[i][0],theory[i][1],fact[i][0],fact[i][1]);}}fclose(fp);printf("理论坐标(x,y)");printf("实际坐标(x,y)");printf("\n");for(i=0;i<72;i++){printf("%f",theory[i][0]);printf("");printf("%f",theory[i][1]);printf("");printf("%f",fact[i][0]);printf("");printf("%f",fact[i][1]);printf("\n");}printf("基圆半径是:%f\n",rb);printf("推程最大压力角是:%f\n",angle1max*180/PI);printf("此时角度是是:%d\n",k);printf("回程最大压力角是:%f\n",angle2max*180/PI);printf("此时角度是是:%d\n",l);printf("最小曲率半径是:%f\n",pmin);printf("此时角度是:%d\n",h);} ②Matlab绘图程序x=[57.1249.24511.396.....];%理论廓线xy=[24.495....];%理论廓线yx1=[3.......];%实际廓线xy1=[14.697....];%实际廓线yro=25%基圆半径h=28%推程rr=10%滚圆半径holdontext(ro+h+3,0,'X')%标注横轴text(0,ro+rr+3,'Y')%标注纵轴text(-5,5,'O')%标注直角坐标系原点title('偏置直动滚子推杆盘形凸轮机构设计')%标注图形标题plot([-(ro+h)(ro+h)],[00],'k')%横轴(黑色)plot([00],[-(ro+h)(ro+rr)],'k')%纵轴(黑色)ct=linspace(0,2*pi);%画圆的极角变化范围plot(ro*cos(ct),ro*sin(ct),'b')%基圆(蓝色)plot(x,y,'r--')plot(x1,y1,'k')4.计算结果及分析理论坐标X理论坐标Y实际坐标X‘实际坐标Y‘524.495314.6977.12424.0635.14214.2619.24523.6387.29413.8311.39623.2119.45313.40213.60822.76911.62212.96915.91122.2913.80612.51418.32821.74416.01812.01520.87821.118.27511.44423.57520.31720.59510.77126.42519.35322.9959.9629.42618.16425.4868.97332.56916.70128.0747.76935.83814.91730.7556.30539.02812.68232.684.95541.9039.93134.4723.23944.3946.71936.0691.17946.4383.11137.411-1.19347.985-0.82138.449-3.83148.995-539.138-6.68449.438-9.34439.444-9.69249.297-13.7739.345-12.79248.567-18.1938.828-15.91847.254-22.5237.893-19.00245.375-26.67636.548-21.97742.962-30.57834.815-24.77940.133-34.20632.523-27.71936.999-37.57329.983-30.44833.584-40.65527.215-32.94529.913-43.42724.24-35.19226.014-45.86921.081-37.17121.917-47.96217.761-38.86717.654-49.6914.306-40.26713.256-51.03910.742-41.368.757-527.096-42.1394.192-52.5663.397-42.597-0.406-52.731-0.329-42.731-5-52.495-4.052-42.54-9.556-51.859-7.744-42.025-14.04-50.829-11.377-41.19-18.416-49.412-14.924-40.042-22.653-47.619-18.357-38.589-26.717-45.463-21.65-36.842-30.578-42.962-24.779-34.815-34.084-39.959-26.929-32.973-37.031-36.353-28.764-30.726-39.329-32.258-30.224-28.122-40.918-27.807-31.257-25.227-41.773-23.146-31.825-22.12-41.9-18.417-31.911-18.895-41.341-13.761-31.521-15.649-40.168-9.299-30.686-12.475-38.477-5.134-29.459-9.455-36.384-1.338-27.912-6.651-34.0142.043-26.122-4.098-31.4955-24.167-1.805-28.9487.552-22.1130.252-26.489.746-20.0032.128-24.17811.655-17.8543.908-22.10113.365-15.6615.715-20.2814.973-13.4297.689-18.71316.578-11.2289.947-17.19718.145-10.31810.887-15.5519.575-9.3311.745-13.78520.856-8.27112.514-11.91521.978-7.14913.187-9.95422.933-5.97213.76-7.91723.713-4.7514.228-5.8224.313-3.49214.588-3.67924.728-2.20814.837-1.5124.954-0.90614.9730.67124.9910.40214.9952.84624.8371.70814.902分析:基圆半径是:25推程最大压力角是:29.4534此时角度是是:60回程最大压力角是:42.8902此时角度是是:265最小曲率半径是:20.9250此时角度是:300VC程序运行结果:5.凸轮机构图6.体会及建议在解决大作业过程中不仅仅让自己更熟悉课本知识同时使得自己重温C语言让自己更加熟练与程序的设计,提高了自己的逻辑运用能力,这种对运行的机构的认识,我相信对以后的理论知识求解也有帮助。对于下一次的工程设计也充满了信心。通过对凸轮机构的编程设计:(1)熟悉了推杆的运动规律特别是等加速等减速和余弦加速度运动规律;(2)掌握了已知推杆运动规律用解析法对凸轮轮廓曲线的进行设计的方法以及设计时应该注意的各个性能要求;(3)通过matlab编程实现了凸轮轮廓线的绘制。7.参考书[1]孙桓,陈作模,葛文杰.机械原理[M].8版.北京:高等教育出版社,2013[2]谭浩强.C语言程序设计.北京:清华大学出版社,2007[3]孙蓬.Matlab基础教程.北京:清华大学出版社,2011 附录程序框图
angle1max=a(i);
k=i;
if(pmin>p(i))
pmin=p(i);
h=i;
for(i=ang2;i<=ang3;i=i+5)
if(angle2max{angle2max=a(i);l=i;}if(pmin>p(i)){pmin=p(i);h=i;}}for(i=0;i<72;i++){fprintf(fp,"\n");{fprintf(fp,"%12.3f\t%12.3f\t%12.3f\t%12.3f\t",theory[i][0],theory[i][1],fact[i][0],fact[i][1]);}}fclose(fp);printf("理论坐标(x,y)");printf("实际坐标(x,y)");printf("\n");for(i=0;i<72;i++){printf("%f",theory[i][0]);printf("");printf("%f",theory[i][1]);printf("");printf("%f",fact[i][0]);printf("");printf("%f",fact[i][1]);printf("\n");}printf("基圆半径是:%f\n",rb);printf("推程最大压力角是:%f\n",angle1max*180/PI);printf("此时角度是是:%d\n",k);printf("回程最大压力角是:%f\n",angle2max*180/PI);printf("此时角度是是:%d\n",l);printf("最小曲率半径是:%f\n",pmin);printf("此时角度是:%d\n",h);} ②Matlab绘图程序x=[57.1249.24511.396.....];%理论廓线xy=[24.495....];%理论廓线yx1=[3.......];%实际廓线xy1=[14.697....];%实际廓线yro=25%基圆半径h=28%推程rr=10%滚圆半径holdontext(ro+h+3,0,'X')%标注横轴text(0,ro+rr+3,'Y')%标注纵轴text(-5,5,'O')%标注直角坐标系原点title('偏置直动滚子推杆盘形凸轮机构设计')%标注图形标题plot([-(ro+h)(ro+h)],[00],'k')%横轴(黑色)plot([00],[-(ro+h)(ro+rr)],'k')%纵轴(黑色)ct=linspace(0,2*pi);%画圆的极角变化范围plot(ro*cos(ct),ro*sin(ct),'b')%基圆(蓝色)plot(x,y,'r--')plot(x1,y1,'k')4.计算结果及分析理论坐标X理论坐标Y实际坐标X‘实际坐标Y‘524.495314.6977.12424.0635.14214.2619.24523.6387.29413.8311.39623.2119.45313.40213.60822.76911.62212.96915.91122.2913.80612.51418.32821.74416.01812.01520.87821.118.27511.44423.57520.31720.59510.77126.42519.35322.9959.9629.42618.16425.4868.97332.56916.70128.0747.76935.83814.91730.7556.30539.02812.68232.684.95541.9039.93134.4723.23944.3946.71936.0691.17946.4383.11137.411-1.19347.985-0.82138.449-3.83148.995-539.138-6.68449.438-9.34439.444-9.69249.297-13.7739.345-12.79248.567-18.1938.828-15.91847.254-22.5237.893-19.00245.375-26.67636.548-21.97742.962-30.57834.815-24.77940.133-34.20632.523-27.71936.999-37.57329.983-30.44833.584-40.65527.215-32.94529.913-43.42724.24-35.19226.014-45.86921.081-37.17121.917-47.96217.761-38.86717.654-49.6914.306-40.26713.256-51.03910.742-41.368.757-527.096-42.1394.192-52.5663.397-42.597-0.406-52.731-0.329-42.731-5-52.495-4.052-42.54-9.556-51.859-7.744-42.025-14.04-50.829-11.377-41.19-18.416-49.412-14.924-40.042-22.653-47.619-18.357-38.589-26.717-45.463-21.65-36.842-30.578-42.962-24.779-34.815-34.084-39.959-26.929-32.973-37.031-36.353-28.764-30.726-39.329-32.258-30.224-28.122-40.918-27.807-31.257-25.227-41.773-23.146-31.825-22.12-41.9-18.417-31.911-18.895-41.341-13.761-31.521-15.649-40.168-9.299-30.686-12.475-38.477-5.134-29.459-9.455-36.384-1.338-27.912-6.651-34.0142.043-26.122-4.098-31.4955-24.167-1.805-28.9487.552-22.1130.252-26.489.746-20.0032.128-24.17811.655-17.8543.908-22.10113.365-15.6615.715-20.2814.973-13.4297.689-18.71316.578-11.2289.947-17.19718.145-10.31810.887-15.5519.575-9.3311.745-13.78520.856-8.27112.514-11.91521.978-7.14913.187-9.95422.933-5.97213.76-7.91723.713-4.7514.228-5.8224.313-3.49214.588-3.67924.728-2.20814.837-1.5124.954-0.90614.9730.67124.9910.40214.9952.84624.8371.70814.902分析:基圆半径是:25推程最大压力角是:29.4534此时角度是是:60回程最大压力角是:42.8902此时角度是是:265最小曲率半径是:20.9250此时角度是:300VC程序运行结果:5.凸轮机构图6.体会及建议在解决大作业过程中不仅仅让自己更熟悉课本知识同时使得自己重温C语言让自己更加熟练与程序的设计,提高了自己的逻辑运用能力,这种对运行的机构的认识,我相信对以后的理论知识求解也有帮助。对于下一次的工程设计也充满了信心。通过对凸轮机构的编程设计:(1)熟悉了推杆的运动规律特别是等加速等减速和余弦加速度运动规律;(2)掌握了已知推杆运动规律用解析法对凸轮轮廓曲线的进行设计的方法以及设计时应该注意的各个性能要求;(3)通过matlab编程实现了凸轮轮廓线的绘制。7.参考书[1]孙桓,陈作模,葛文杰.机械原理[M].8版.北京:高等教育出版社,2013[2]谭浩强.C语言程序设计.北京:清华大学出版社,2007[3]孙蓬.Matlab基础教程.北京:清华大学出版社,2011 附录程序框图
angle2max=a(i);
l=i;
for(i=0;i<72;i++)
fprintf(fp,"\n");
fprintf(fp,"%12.3f\t%12.3f\t%12.3f\t%12.3f\t",theory[i][0],theory[i][1],fact[i][0],fact[i][1]);
fclose(fp);
printf("理论坐标(x,y)");
printf("实际坐标(x,y)");printf("\n");
printf("%f",theory[i][0]);
printf("");
printf("%f",theory[i][1]);
printf("%f",fact[i][0]);
printf("%f",fact[i][1]);
printf("\n");
printf("基圆半径是:
%f\n",rb);
printf("推程最大压力角是:
%f\n",angle1max*180/PI);
printf("此时角度是是:
%d\n",k);
printf("回程最大压力角是:
%f\n",angle2max*180/PI);
%d\n",l);
printf("最小曲率半径是:
%f\n",pmin);
printf("此时角度是:
%d\n",h);
②Matlab绘图程序
x=[57.1249.24511.396.....];%理论廓线x
y=[24.495....];%理论廓线y
x1=[3.......];%实际廓线x
y1=[14.697....];%实际廓线y
ro=25%基圆半径
h=28%推程
rr=10%滚圆半径
holdon
text(ro+h+3,0,'X')%标注横轴
text(0,ro+rr+3,'Y')%标注纵轴
text(-5,5,'O')%标注直角坐标系原点
title('偏置直动滚子推杆盘形凸轮机构设计')%标注图形标题
plot([-(ro+h)(ro+h)],[00],'k')%横轴(黑色)
plot([00],[-(ro+h)(ro+rr)],'k')%纵轴(黑色)
ct=linspace(0,2*pi);%画圆的极角变化范围plot(ro*cos(ct),ro*sin(ct),'b')%基圆(蓝色)
plot(x,y,'r--')
plot(x1,y1,'k')
4.计算结果及分析
理论坐标X
理论坐标Y
实际坐标X‘
实际坐标Y‘
5
24.495
3
14.697
7.124
24.063
5.142
14.261
9.245
23.638
7.294
13.83
11.396
23.211
9.453
13.402
13.608
22.769
11.622
12.969
15.911
22.29
13.806
12.514
18.328
21.744
16.018
12.015
20.878
21.1
18.275
11.444
23.575
20.317
20.595
10.771
26.425
19.353
22.995
9.96
29.426
18.164
25.486
8.973
32.569
16.701
28.074
7.769
35.838
14.917
30.755
6.305
39.028
12.682
32.68
4.955
41.903
9.931
34.472
3.239
44.394
6.719
36.069
1.179
46.438
3.111
37.411
-1.193
47.985
-0.821
38.449
-3.831
48.995
-5
39.138
-6.684
49.438
-9.344
39.444
-9.692
49.297
-13.77
39.345
-12.792
48.567
-18.19
38.828
-15.918
47.254
-22.52
37.893
-19.002
45.375
-26.676
36.548
-21.977
42.962
-30.578
34.815
-24.779
40.133
-34.206
32.523
-27.719
36.999
-37.573
29.983
-30.448
33.584
-40.655
27.215
-32.945
29.913
-43.427
24.24
-35.192
26.014
-45.869
21.081
-37.171
21.917
-47.962
17.761
-38.867
17.654
-49.69
14.306
-40.267
13.256
-51.039
10.742
-41.36
8.757
-52
7.096
-42.139
4.192
-52.566
3.397
-42.597
-0.406
-52.731
-0.329
-42.731
-52.495
-4.052
-42.54
-9.556
-51.859
-7.744
-42.025
-14.04
-50.829
-11.377
-41.19
-18.416
-49.412
-14.924
-40.042
-22.653
-47.619
-18.357
-38.589
-26.717
-45.463
-21.65
-36.842
-42.962
-34.815
-34.084
-39.959
-26.929
-32.973
-37.031
-36.353
-28.764
-30.726
-39.329
-32.258
-30.224
-28.122
-40.918
-27.807
-31.257
-25.227
-41.773
-23.146
-31.825
-22.12
-41.9
-18.417
-31.911
-18.895
-41.341
-13.761
-31.521
-15.649
-40.168
-9.299
-30.686
-12.475
-38.477
-5.134
-29.459
-9.455
-36.384
-1.338
-27.912
-6.651
-34.014
2.043
-26.122
-4.098
-31.495
-24.167
-1.805
-28.948
7.552
-22.113
0.252
-26.48
9.746
-20.003
2.128
-24.178
11.655
-17.854
3.908
-22.101
13.365
-15.661
5.715
-20.28
14.973
-13.429
7.689
-18.713
16.578
-11.228
9.947
-17.197
18.145
-10.318
10.887
-15.55
19.575
-9.33
11.745
-13.785
20.856
-8.271
-11.915
21.978
-7.149
13.187
-9.954
22.933
-5.972
13.76
-7.917
23.713
-4.75
14.228
-5.82
24.313
-3.492
14.588
-3.679
24.728
-2.208
14.837
-1.51
24.954
-0.906
0.671
24.991
0.402
14.995
2.846
24.837
1.708
14.902
分析:
基圆半径是:
25
推程最大压力角是:
29.4534
此时角度是是:
60
回程最大压力角是:
42.8902
265
最小曲率半径是:
20.9250
此时角度是:
300
VC程序运行结果:
5.凸轮机构图
6.体会及建议
在解决大作业过程中不仅仅让自己更熟悉课本知识同时使得自己重温C语言让自己更加熟练与程序的设计,提高了自己的逻辑运用能力,这种对运行的机构的认识,我相信对以后的理论知识求解也有帮助。
对于下一次的工程设计也充满了信心。
通过对凸轮机构的编程设计:
(1)熟悉了推杆的运动规律特别是等加速等减速和余弦加速度运动规律;
(2)掌握了已知推杆运动规律用解析法对凸轮轮廓曲线的进行设计的方法以及设计时应该注意的各个性能要求;
(3)通过matlab编程实现了凸轮轮廓线的绘制。
7.参考书
[1]孙桓,陈作模,葛文杰.机械原理[M].8版.北京:
高等教育出版社,2013
[2]谭浩强.C语言程序设计.北京:
清华大学出版社,2007
[3]孙蓬.Matlab基础教程.北京:
清华大学出版社,2011
附录程序框图
copyright@ 2008-2023 冰点文库 网站版权所有
经营许可证编号:鄂ICP备19020893号-2