西工大机械原理大作业2凸轮机构作业Word格式.docx
《西工大机械原理大作业2凸轮机构作业Word格式.docx》由会员分享,可在线阅读,更多相关《西工大机械原理大作业2凸轮机构作业Word格式.docx(19页珍藏版)》请在冰点文库上搜索。
回程:
余弦加速度运动
近休:
理论轮廓廓线方程
实际廓线方程
3.计算程序
①C语言计算坐标程序
#include<
stdio.h>
math.h>
stdlib.h>
#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;
=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<
A=Q*PI/180;
C=4*h*A/(B*B);
elseif((Q>
(Q<
C=4*h*(B-A)/(B*B);
elseif(Q<
=ang2)C=0;
A=(Q-ang2)*PI/180;
B=(ang3-ang2)*PI/180;
C=-PI*h*sin(PI*A/B)/(2*B);
elseC=0;
returnC;
doubledss(intB3)
if(B3<
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;
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)<
P)
break;
if(ang1+5-i)continue;
for(i=ang1+5;
=ang2;
if(p(i)<
P)break;
if(ang2+5-i)continue;
for(i=ang2+5;
=ang3;
A2||p(i)<
if(ang3+5-i)continue;
for(i=ang3+5;
360;
break;
for(i=0;
i=i+5)//写入数组数据
xy(i);
i=i+5)//选择压力角及最小曲率半径
if(angle1max<
a(i))
angle1max=a(i);
k=i;
if(pmin>
p(i))
pmin=p(i);
h=i;
for(i=ang2;
if(angle2max<
angle2max=a(i);
l=i;
pmin=p(i);
h=i;
72;
i++)
\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)"
实际坐标(x,y)"
printf("
%f"
theory[i][0]);
theory[i][1]);
fact[i][0]);
fact[i][1]);
基圆半径是:
%f\n"
rb);
推程最大压力角是:
angle1max*180/PI);
此时角度是是:
%d\n"
k);
回程最大压力角是:
angle2max*180/PI);
l);
最小曲率半径是:
pmin);
此时角度是:
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)],'
)%纵轴(黑色)
ct=linspace(0,2*pi);
%画圆的极角变化范围plot(ro*cos(ct),ro*sin(ct),'
b'
)%基圆(蓝色)
plot(x,y,'
r--'
)
plot(x1,y1,'
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
附录程序框图