凸轮C语言编程
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
凸轮
#include"stdio.h"
#include"math.h"
#define PI 3.1415926
void zuobiao (double s0, double s,double ds,int i, int e,int rt); /*子函数1,求坐标*/
double yalijiao (double s,double ds,int e,int r0); /*子函数2,求压力角*/ main()
{int e,rt,r0,h,i;
double s0,ds,dds,st,sy,sh,sj,yaj,fai_t,fai_y,fai_h,fai_j;
/*一次导ds,二次导dds,fai_t,fai_y,fai_h,fai_j分别为推程,远休止角,回程,近休止角*/
e=-10;
rt=10;
r0=40;
h=20;
fai_t=150;
fai_y=30;
fai_h=120;
fai_j=60;
printf("e=%d, rt=%d, r0=%d ,h=%d\n",e,rt,r0,h);
printf("Φt=%.1f, Φy=%.1f, Φh=%.1f, Φj=%.1f\n" ,fai_t,fai_y,fai_h,fai_j);
s0=sqrt(r0*r0-e*e);
for(i=0;i<=360;i++)
{
if(i<=fai_t) /*推程*/
{
for(i=0;i<=fai_t;i=i+5)
{
st=h*(i/fai_t-i/(2*PI)*sin(2*PI*i/fai_t));
ds=h/fai_t*(1-cos(2*PI*i/fai_t));
dds=2*PI*h/(fai_t*fai_t)*sin(2*PI*i/fai_t);
yaj=yalijiao(st,ds,e,r0); /* 调用子函数2*/
zuobiao(s0,st,ds,i,e,rt); /* 调用子函数1*/
printf("压力角=%f\n",yaj); /*输出压力角*/
}
}
else if(i<=(fai_t+fai_y)) /* 远休*/
{
for(i=fai_t;i<=(fai_t+fai_y);i=i+5)
{
sy=h;
ds=0;
dds=0;
yaj=yalijiao(sy,ds,e,r0); /* 调用子函数2,求压力角*/
zuobiao(s0,sy,ds,i,e,rt); /* 调用子函数1,求xy坐标*/
printf("压力角=%f\n",yaj); /* 输出压力角*/
}
}
else if(i<=(fai_h+fai_t+fai_y)) /* 回程*/
{
for(i=(fai_t+fai_y);i<=(fai_h+fai_t+fai_y);i=i+5)
{
sh=h*(1-(i-(fai_t+fai_y))/fai_h+i/(2*PI)*sin(2*PI*(i-(fai_t+fai_y))/fai_h));
ds=-h/fai_h*(1-cos(2*PI*(i-(fai_t+fai_y))/fai_h));
dds=-2*PI*h/(fai_h*fai_h)*sin(2*PI*(i-(fai_t+fai_y))/fai_h);
yaj=yalijiao(sh,ds,e,r0); /* 调用子函数2,求压力角*/
zuobiao(s0,sh,ds,i,e,rt); /* 调用子函数1,求xy坐标*/
printf("压力角=%f\n",yaj); /* 输出压力角*/
}
}
else/* 近休*/
{
for(i=(fai_h+fai_t+fai_y);i<=360;i=i+5)
{
sj=0;
ds=0;
dds=0;
yaj=yalijiao(sj,ds,e,r0); /* 调用子函数2,求压力角*/ zuobiao(s0,sj,ds,i,e,rt); /* 调用子函数1,求xy坐标*/
printf("压力角=%f\n",yaj); /*输出压力角*/
}
}
}
}
void zuobiao (double s0, double s,double ds,int i, int e,int rt)
{
double dx_di, dy_di,xli,yli,x,y,sink,cosk;
xli=(s0+s)*sin(i*PI/180)+e*cos(i*PI/180); /*计算理论x坐标*/ yli=(s0+s)*cos(i*PI/180)-e*sin(i*PI/180); /* 计算理论y坐标*/ dx_di=(ds-e)*sin(i*PI/180)+(s0+s)*cos(i*PI/180);
dy_di=(ds-e)*cos(i*PI/180)-(s0+s)*sin(i*PI/180);
sink=dx_di/sqrt(dx_di*dx_di+dy_di*dy_di);
cosk=-dy_di/sqrt(dx_di*dx_di+dy_di*dy_di);
x=xli-rt*cosk; /* 计算实际x坐标*/
y=yli-rt*sink; /*计算实际y坐标*/
printf("转角%d ",i) ;
printf("理论轮廓坐标实际轮廓坐标\n ");
printf(" x1=%f,y1=%f,x=%f,y=%f ",xli,yli,x,y); /*输出角度、xy实际坐标*/
return;
}
double yalijiao (double s,double ds,int e,int r0)
{
double yaj,yah;
yah=fabs(atan(((ds)-e)/(sqrt(r0*r0-e*e)+s))); /*计算弧度制压力角*/ yaj=180*yah/PI; /*计算角度制压力角*/ return yaj;
}
结果
e=-10, rt=10, r0=40 ,h=20
Φt=150.0, Φy=30.0, Φh=120.0, Φj=60.0
转角0 理论轮廓坐标实际轮廓坐标
x1=-10.000000,y1=38.729833,x=-7.500000,y=29.047375 压力角=14.477512 转角5 理论轮廓坐标实际轮廓坐标
x1=-6.816716,y1=36.821716,x=-4.995633,y=26.988932 压力角=15.492583
转角10 理论轮廓坐标实际轮廓坐标
x1=-5.139375,y1=28.440861,x=-3.357454,y=18.600904 压力角=20.264473
转角15 理论轮廓坐标实际轮廓坐标
x1=-6.381275,y1=14.821791,x=-2.415502,y=5.641777 压力角=38.364381
转角20 理论轮廓坐标实际轮廓坐标
x1=-11.419486,y1=-2.136736,x=-1.586551,y=-0.316465 压力角=59.512146
转角25 理论轮廓坐标实际轮廓坐标
x1=-20.411623,y1=-20.110851,x=-13.272995,y=-13.107996 压力角=20.550082 转角30 理论轮廓坐标实际轮廓坐标
x1=-32.704941,y1=-36.646621,x=-26.032827,y=-29.197937 压力角=11.852205 转角35 理论轮廓坐标实际轮廓坐标
x1=-46.851521,y1=-49.476439,x=-39.963119,y=-42.227307 压力角=8.538371 转角40 理论轮廓坐标实际轮廓坐标
x1=-60.731108,y1=-56.819279,x=-53.416776,y=-50.000148 压力角=7.006681 转角45 理论轮廓坐标实际轮廓坐标
x1=-71.770617,y1=-57.628483,x=-63.961391,y=-51.382206 压力角=6.345129 转角50 理论轮廓坐标实际轮廓坐标
x1=-77.237752,y1=-51.756098,x=-68.918507,y=-46.207209 压力角=6.296939 转角55 理论轮廓坐标实际轮廓坐标
x1=-74.576916,y1=-40.011575,x=-65.752741,y=-35.306903 压力角=6.935375 转角60 理论轮廓坐标实际轮廓坐标
x1=-61.749682,y1=-24.104192,x=-52.421239,y=-20.501396 压力角=8.882634 转角65 理论轮廓坐标实际轮廓坐标
x1=-37.540155,y1=-6.471483,x=-27.674757,y=-4.836269 压力角=15.588647 转角70 理论轮廓坐标实际轮廓坐标
x1=-1.788038,y1=9.990985,x=0.016289,y=0.155112 压力角=80.394962
转角75 理论轮廓坐标实际轮廓坐标
x1=44.481201,y1=22.271465,x=35.563020,y=17.747524 压力角=11.897392
转角80 理论轮廓坐标实际轮廓坐标
x1=99.049496,y1=27.619367,x=89.423856,y=24.908819 压力角=5.727043
转角85 理论轮廓坐标实际轮廓坐标
x1=158.630375,y1=23.916562,x=148.744508,y=22.410028 压力角=3.664795 转角90 理论轮廓坐标实际轮廓坐标
x1=219.117892,y1=10.000006,x=209.128797,y=9.533132 压力角=2.675961
转角95 理论轮廓坐标实际轮廓坐标
x1=275.940158,y1=-14.103429,x=265.952787,y=-13.601030 压力角=2.120249 转角100 理论轮廓坐标实际轮廓坐标
x1=324.485172,y1=-47.061215,x=314.587842,y=-45.631931 压力角=1.782664 转角105 理论轮廓坐标实际轮廓坐标
x1=360.557462,y1=-86.258307,x=350.830811,y=-83.936181 压力角=1.572629 转角110 理论轮廓坐标实际轮廓坐标
x1=380.818870,y1=-127.964941,x=371.338554,y=-124.783178 压力角=1.447321 转角115 理论轮廓坐标实际轮廓坐标
x1=383.166389,y1=-167.639627,x=374.003710,y=-163.633966 压力角=1.386429 转角120 理论轮廓坐标实际轮廓坐标
x1=367.004411,y1=-200.343073,x=358.225997,y=-195.553557 压力角=1.383050 转角125 理论轮廓坐标实际轮廓坐标
x1=333.377818,y1=-221.225897,x=325.044578,y=-215.698049 压力角=1.441722 转角130 理论轮廓坐标实际轮廓坐标
x1=284.945286,y1=-226.043393,x=277.110256,y=-219.829513 压力角=1.582434 转角135 理论轮廓坐标实际轮廓坐标
x1=225.787673,y1=-211.645520,x=218.491248,y=-204.807232 压力角=1.856429 转角140 理论轮廓坐标实际轮廓坐标
x1=161.063101,y1=-176.390275,x=154.319798,y=-169.005977 压力角=2.402166 转角145 理论轮廓坐标实际轮廓坐标
x1=96.536474,y1=-120.433894,x=90.281899,y=-112.631312 压力角=3.715774
转角150 理论轮廓坐标实际轮廓坐标
x1=38.025198,y1=-45.861570,x=31.642471,y=-38.163467 压力角=9.663139
转角150 理论轮廓坐标实际轮廓坐标
x1=38.025173,y1=-45.861526,x=31.642444,y=-38.163424 压力角=9.663148
转角155 理论轮廓坐标实际轮廓坐标
x1=33.883380,y1=-49.001121,x=28.195874,y=-40.776021 压力角=9.663148
转角160 理论轮廓坐标实际轮廓坐标
x1=29.483715,y1=-51.767788,x=24.534716,y=-43.078288 压力角=9.663148
转角165 理论轮廓坐标实际轮廓坐标
x1=24.859660,y1=-54.140471,x=20.686834,y=-45.052704 压力角=9.663148
转角170 理论轮廓坐标实际轮廓坐标
x1=20.046409,y1=-56.101113,x=16.681512,y=-46.684241 压力角=9.663148
转角175 理论轮廓坐标实际轮廓坐标
x1=15.080592,y1=-57.634791,x=12.549234,y=-47.960483 压力角=9.663148
转角180 理论轮廓坐标实际轮廓坐标
x1=10.000003,y1=-58.729833,x=8.321449,y=-48.871717 压力角=9.663148
转角180 理论轮廓坐标实际轮廓坐标
x1=10.000003,y1=-58.729833,x=8.321449,y=-48.871717 压力角=9.663148
转角185 理论轮廓坐标实际轮廓坐标
x1=-8.367602,y1=-210.379395,x=-7.969908,y=-200.387306 压力角=2.720779
转角190 理论轮廓坐标实际轮廓坐标
x1=-52.571052,y1=-355.733076,x=-51.108493,y=-345.840608 压力角=1.589984 转角195 理论轮廓坐标实际轮廓坐标
x1=-118.490833,y1=-480.850953,x=-116.097258,y=-471.141638 压力角=1.151373 转角200 理论轮廓坐标实际轮廓坐标
x1=-198.115348,y1=-573.555594,x=-194.849172,y=-564.104028 压力角=0.936392 转角205 理论轮廓坐标实际轮廓坐标
x1=-280.372850,y1=-624.923631,x=-276.277793,y=-615.800556 压力角=0.826209 转角210 理论轮廓坐标实际轮廓坐标
x1=-352.430009,y1=-630.426773,x=-347.548382,y=-621.699247 压力角=0.780101 转角215 理论轮廓坐标实际轮廓坐标
x1=-401.309643,y1=-590.564115,x=-395.686737,y=-582.294718 压力角=0.785639
转角220 理论轮廓坐标实际轮廓坐标
x1=-415.631216,y1=-510.887301,x=-409.317452,y=-503.132536 压力角=0.848249 转角225 理论轮廓坐标实际轮廓坐标
x1=-387.252510,y1=-401.394699,x=-380.305689,y=-394.201530 压力角=0.998103 转角230 理论轮廓坐标实际轮廓坐标
x1=-312.593538,y1=-275.351232,x=-305.084674,y=-268.746919 压力角=1.332776 转角235 理论轮廓坐标实际轮廓坐标
x1=-193.455100,y1=-147.666486,x=-185.498021,y=-141.609681 压力角=2.277827 转角240 理论轮廓坐标实际轮廓坐标
x1=-37.201307,y1=-33.025194,x=-29.679486,y=-26.435641 压力角=11.220242
转角245 理论轮廓坐标实际轮廓坐标
x1=143.748527,y1=55.997272,x=134.438279,y=52.347714 压力角=3.595141
转角250 理论轮廓坐标实际轮廓坐标
x1=333.087063,y1=110.592026,x=323.599296,y=107.432551 压力角=1.581982
转角255 理论轮廓坐标实际轮廓坐标
x1=512.328286,y1=126.925230,x=502.623024,y=124.515277 压力角=1.054710
转角260 理论轮廓坐标实际轮廓坐标
x1=662.868493,y1=106.727387,x=652.996237,y=105.134100 压力角=0.832070
转角265 理论轮廓坐标实际轮廓坐标
x1=768.156391,y1=57.166839,x=758.184171,y=56.421967 压力角=0.728246
转角270 理论轮廓坐标实际轮廓坐标
x1=815.706875,y1=-9.999934,x=805.707601,y=-9.879394 压力角=0.690666
转角275 理论轮廓坐标实际轮廓坐标
x1=798.703022,y1=-79.915592,x=788.752553,y=-78.921528 压力角=0.704998
转角280 理论轮廓坐标实际轮廓坐标
x1=716.973608,y1=-136.575996,x=707.150033,y=-134.705869 压力角=0.778501 转角285 理论轮廓坐标实际轮廓坐标
x1=577.204563,y1=-165.014206,x=567.589534,y=-162.266257 压力角=0.949792 转角290 理论轮廓坐标实际轮廓坐标
x1=392.334104,y1=-153.439675,x=383.020820,y=-149.797870 压力角=1.357159 转角295 理论轮廓坐标实际轮廓坐标
x1=180.181794,y1=-95.053910,x=171.336965,y=-90.388184 压力角=2.812050
转角300 理论轮廓坐标实际轮廓坐标
x1=-38.540932,y1=10.704608,x=-28.905675,y=8.028449 压力角=14.477549
转角300 理论轮廓坐标实际轮廓坐标
x1=-38.541021,y1=10.704659,x=-28.905765,y=8.028494 压力角=14.477512
转角305 理论轮廓坐标实际轮廓坐标
x1=-37.461388,y1=14.022996,x=-28.096041,y=10.517247 压力角=14.477512
转角310 理论轮廓坐标实际轮廓坐标
x1=-36.096651,y1=17.234609,x=-27.072489,y=12.925957 压力角=14.477512
转角315 理论轮廓坐标实际轮廓坐标
x1=-34.457198,y1=20.315057,x=-25.842898,y=15.236293 压力角=14.477512
转角320 理论轮廓坐标实际轮廓坐标
x1=-32.555504,y1=23.240895,x=-24.416628,y=17.430671 压力角=14.477512
转角325 理论轮廓坐标实际轮廓坐标
x1=-30.406043,y1=25.989855,x=-22.804532,y=19.492391 压力角=14.477512
转角330 理论轮廓坐标实际轮廓坐标
x1=-28.025174,y1=28.541017,x=-21.018880,y=21.405763 压力角=14.477512 转角335 理论轮廓坐标实际轮廓坐标
x1=-25.431016,y1=30.874965,x=-19.073262,y=23.156223 压力角=14.477512 转角340 理论轮廓坐标实际轮廓坐标
x1=-22.643313,y1=32.973935,x=-16.982485,y=24.730451 压力角=14.477512 转角345 理论轮廓坐标实际轮廓坐标
x1=-19.683280,y1=34.821954,x=-14.762460,y=26.116465 压力角=14.477512 转角350 理论轮廓坐标实际轮廓坐标
x1=-16.573446,y1=36.404957,x=-12.430085,y=27.303718 压力角=14.477512 转角355 理论轮廓坐标实际轮廓坐标
x1=-13.337478,y1=37.710896,x=-10.003109,y=28.283172 压力角=14.477512 转角360 理论轮廓坐标实际轮廓坐标
x1=-10.000004,y1=38.729832,x=-7.500003,y=29.047374 压力角=14.477512 Press any key to continue。