四工位專用機(jī)床設(shè)計(jì)(全套含CAD圖紙和說明書),四工位,專用,機(jī)床,設(shè)計(jì),全套,cad,圖紙,以及,說明書,仿單
設(shè)計(jì)任務(wù)分析
一:工作原理及工藝動(dòng)作過程
四工位專用機(jī)床是在四個(gè)工位上分別完成工件的裝卸、鉆孔、擴(kuò)孔、鉸孔工作的專用加工設(shè)備。機(jī)床的執(zhí)行動(dòng)作有兩個(gè):一是裝有工件的回轉(zhuǎn)工作臺(tái)的間歇轉(zhuǎn)動(dòng);二是裝有三把專用刀具的主軸箱的往復(fù)移動(dòng)(刀具的轉(zhuǎn)動(dòng)由專用電機(jī)驅(qū)動(dòng))。兩個(gè)執(zhí)行動(dòng)作由同一臺(tái)電機(jī)驅(qū)動(dòng),工作臺(tái)轉(zhuǎn)位機(jī)構(gòu)和主軸箱往復(fù)運(yùn)動(dòng)機(jī)構(gòu)按動(dòng)作時(shí)間順序分支并列,組合成一個(gè)機(jī)構(gòu)系統(tǒng)。
二:原始數(shù)據(jù)及設(shè)計(jì)要求
(1)刀具頂端離開工作表面65mm,快速移動(dòng)送進(jìn)60mm后,再勻速送進(jìn)60mm(包括5mm刀具切入量、45mm工件孔深、10mm刀具切出量,如右圖所示),然后快速返回?;爻毯瓦M(jìn)程的平均速度之比K=2。
(2)刀具勻速進(jìn)給速度為2mm/s,工件裝卸時(shí)間不超過10s。
(3)機(jī)床生產(chǎn)率每小時(shí)約60件。
(4)執(zhí)行機(jī)構(gòu)及傳動(dòng)機(jī)構(gòu)能裝入機(jī)體內(nèi)。
(5)傳動(dòng)系統(tǒng)電機(jī)為交流異步電動(dòng)機(jī)。
三:任務(wù)分析
(1) 為了達(dá)到進(jìn)給要求,適宜用凸輪機(jī)構(gòu)來控制鉆頭的運(yùn)動(dòng)。由于刀具勻速進(jìn)給速度為2mm/s,所以就要求凸輪的轉(zhuǎn)速為每四十八秒一轉(zhuǎn)。
(2) 考慮到加工的精密穩(wěn)定性,本機(jī)床的傳動(dòng)機(jī)構(gòu)宜多采用齒輪。并且凸輪的運(yùn)動(dòng)中不應(yīng)出現(xiàn)剛性沖擊,要選擇合適的運(yùn)動(dòng)規(guī)律,如五次多項(xiàng)式。
(3) 為實(shí)現(xiàn)工作臺(tái)的間歇運(yùn)動(dòng),可以選擇槽輪機(jī)構(gòu)。
(4) 為保證鉆頭加工位置的準(zhǔn)確,還應(yīng)該設(shè)計(jì)定位機(jī)構(gòu)。
(5) 最后需要繪制出至少兩張A1圖來表達(dá)本機(jī)床的設(shè)計(jì)思想。分別為機(jī)箱傳動(dòng)圖、槽輪機(jī)構(gòu)和定位機(jī)構(gòu)既工作臺(tái)轉(zhuǎn)位機(jī)構(gòu)和定位機(jī)構(gòu)。
四:設(shè)計(jì)流程
1.專用機(jī)床的刀具進(jìn)給機(jī)構(gòu)方案圖及運(yùn)動(dòng)循環(huán)圖。
2.設(shè)計(jì)工作臺(tái)轉(zhuǎn)位機(jī)構(gòu)及定位機(jī)構(gòu)方案圖及運(yùn)動(dòng)循環(huán)圖。
3.設(shè)計(jì)圓柱凸輪機(jī)構(gòu)。
4.設(shè)計(jì)定位凸輪機(jī)構(gòu)。
5.凸輪機(jī)構(gòu)設(shè)計(jì)計(jì)算,選擇和設(shè)計(jì)從動(dòng)件的運(yùn)動(dòng)規(guī)律。
6.編寫設(shè)計(jì)說明書。
機(jī)床結(jié)構(gòu)和工作原理
一:四工位專用機(jī)床工作原理及外形尺寸
專用機(jī)床旋轉(zhuǎn)工作臺(tái)有四個(gè)工作位置Ⅰ、Ⅱ、Ⅲ、Ⅳ(如下圖所示),分別對(duì)應(yīng)工件的裝卸、鉆孔、擴(kuò)孔和鉸孔。主軸箱上裝有三把刀具,對(duì)應(yīng)于工位Ⅱ的位置裝鉆頭,Ⅲ的位置裝擴(kuò)孔鉆,Ⅳ的位置裝鉸刀。刀具由專用電動(dòng)機(jī)驅(qū)動(dòng)繞其自身軸線轉(zhuǎn)動(dòng)。主軸箱每向左移動(dòng)送進(jìn)一次,在四個(gè)工位上分別完成相應(yīng)的裝卸工件、鉆孔、擴(kuò)孔和鉸孔工作。當(dāng)主軸箱右移(退回)到刀具離開工件后,工作臺(tái)回轉(zhuǎn)90度,然后主軸箱再次左移,這時(shí),對(duì)其中每一個(gè)工件來說,它進(jìn)入了下一個(gè)工位的加工,依次循環(huán)四次,一個(gè)工件就完成裝、鉆、擴(kuò)、鉸、卸等工序。由于主軸箱往復(fù)一次,在四個(gè)工位上同時(shí)進(jìn)行工作,所以每次就有一個(gè)工件完成上述全部工序。
二:本機(jī)床的內(nèi)部結(jié)構(gòu)和相關(guān)參數(shù)。
(1)本機(jī)床采用的是每分鐘960轉(zhuǎn)的交流異步電機(jī),通過皮帶傳動(dòng)、齒輪行星輪系和一系列的定軸輪系將轉(zhuǎn)速降為每四十八秒1轉(zhuǎn),鉆頭的進(jìn)給通過齒條傳動(dòng),運(yùn)動(dòng)平穩(wěn)。具體結(jié)構(gòu)如下:
(2)各機(jī)件類型及參數(shù)(單位mm)
編號(hào)
零件類型
屬性
編號(hào)
零件類型
屬性
1
插銷輪
R=60
12
圓柱齒輪
模數(shù)2
齒數(shù)72
2
小凸輪
R=130 h=20
13
圓柱齒輪
模數(shù)2
齒數(shù)18
3
槽輪
R=169.7
14
圓柱齒輪
模數(shù)2
齒數(shù)71
4
撥 輪
R=121.6
15
圓柱凸輪
R=125 L=150
5
圓柱齒輪
模數(shù)2
齒數(shù)68
16
滾子
R=15
6
圓柱齒輪
模數(shù)2
齒數(shù)17
17
小齒條
模數(shù)2
齒數(shù)14
7
圓柱齒輪
模數(shù)2
齒數(shù)17
18a/b
圓柱齒輪
模數(shù)2
Z=22/66
8
圓柱齒輪
模數(shù)2
齒數(shù)102
19
大齒條
模數(shù)2
齒數(shù)45
9
圓柱齒輪
模數(shù)2
齒數(shù)36
20
電機(jī)
1.5kw /960轉(zhuǎn)
10
圓柱齒輪
模數(shù)2
齒數(shù)142
21
帶輪
Z型
D=50
11
圓柱齒輪
模數(shù)2
齒數(shù)20
22
帶輪
SPZ型
D=160
23
滾子
D=16
(3)各輪的轉(zhuǎn)速
電機(jī)960轉(zhuǎn)每分;22處,齒輪6為443.75轉(zhuǎn)每分;桿8-11.處11.75轉(zhuǎn)每分;
圓柱凸輪;小凸輪,撥輪均為48秒每轉(zhuǎn);插銷輪,槽輪為48秒1/4轉(zhuǎn)。
齒輪13/14采用正變位,R13=18.60674,x=0.338;R14=73.39326,x=1.3338.用來保證安裝軸在同一條水平線上,利于安裝。
5.6.7.8為2K-H行星輪系,該轉(zhuǎn)動(dòng)比為25,其效率為90.4%,且為同軸。
刀具
進(jìn)程
回程
刀具在工件外
刀具在工件內(nèi)
刀具在工件外
工作臺(tái)
轉(zhuǎn)位
靜止
轉(zhuǎn)位
圓柱凸輪
進(jìn)程
回程
近休
定位凸輪
遠(yuǎn)休
回程
近休
進(jìn)程
遠(yuǎn)休
槽輪
轉(zhuǎn)動(dòng)
靜止
轉(zhuǎn)動(dòng)
(4) 行程循環(huán)
圓柱凸輪
一:圓柱凸輪的參數(shù):
通常直動(dòng)滾子從動(dòng)件的圓柱凸輪的許用壓力角[]=25度-35度。過理論廓曲線上任意一點(diǎn)做法線nn, nn與y軸的夾角即為機(jī)構(gòu)的壓力角。因此基圓柱半徑必須滿足 半徑大于等于最大速度比上角速度與許用壓力角正弦的積。既公式
另外大速度,可減小圓柱凸輪的行程,故在18a/b處兩齒輪的比值為3,由此計(jì)算得出其半徑為95.44mm,
經(jīng)過考慮取半徑為125mm,長度取150mm。
二:主凸輪輪廓線及其運(yùn)動(dòng)曲線
凸輪廓線
(1)快進(jìn)行程0—45度,五次多項(xiàng)式曲線;
(2)工進(jìn)行程45—170度,一次多項(xiàng)式曲線
170—195度,五次多項(xiàng)式曲線;
(3)快回行程195—292.5度,正弦加速度曲線;
(4)近休292.5—360度。
(方程來自《機(jī)械原來》(孫恒 陳作模 葛文杰 主編)(高等教育出版社))
位移和輪廓線
速度線(上圖)
加速度線(上圖)
位移
16
PHI=15,PSI=3.753079
PHI=30,PSI=14.617199
PHI=45,PSI=20.000000
PHI=60,PSI=22.000000
PHI=75,PSI=24.000000
PHI=90,PSI=26.000000
PHI=105,PSI=28.000000
PHI=120,PSI=30.000000
PHI=135,PSI=32.000000
PHI=150,PSI=34.000000
PHI=165,PSI=36.000000
PHI=180,PSI=38.755676
PHI=195,PSI=39.972656
PHI=210,PSI=39.085434
PHI=225,PSI=33.644810
PHI=240,PSI=23.061991
PHI=255,PSI=11.163046
PHI=270,PSI=2.910990
PHI=285,PSI=0.118404
PHI=300,PSI=0.000000
PHI=315,PSI=0.000000
PHI=330,PSI=0.000000
PHI=345,PSI=0.000000
PHI=360,PSI=0.000000
print any key to graphics...
速度
PHI=15,PSI=6.685200
PHI=30,PSI=7.407516
PHI=45,PSI=1.500000
PHI=60,PSI=1.500000
PHI=75,PSI=1.500000
PHI=90,PSI=1.500000
PHI=105,PSI=1.500000
PHI=120,PSI=1.500000
PHI=135,PSI=1.500000
PHI=150,PSI=1.500000
PHI=165,PSI=1.500000
PHI=180,PSI=1.953126
PHI=195,PSI=0.005931
PHI=210,PSI=-1.993546
PHI=225,PSI=-6.252020
PHI=240,PSI=-9.096655
PHI=255,PSI=-8.070049
PHI=270,PSI=-4.059062
PHI=285,PSI=-0.528666
PHI=300,PSI=0.000000
PHI=315,PSI=0.000000
PHI=330,PSI=0.000000
PHI=345,PSI=0.000000
PHI=360,PSI=0.000000
print any key to graphics...
加速度
PHI=15,PSI=3.481503
PHI=30,PSI=-2.814736
PHI=45,PSI=0.000000
PHI=60,PSI=0.000000
PHI=75,PSI=0.000000
PHI=90,PSI=0.000000
PHI=105,PSI=0.000000
PHI=120,PSI=0.000000
PHI=135,PSI=0.000000
PHI=150,PSI=0.000000
PHI=165,PSI=0.000000
PHI=180,PSI=-1.280361
PHI=195,PSI=0.000346
PHI=210,PSI=-0.917922
PHI=225,PSI=-1.042878
PHI=240,PSI=-0.266923
PHI=255,PSI=0.739619
PHI=270,PSI=1.107226
PHI=285,PSI=0.518333
PHI=300,PSI=0.000000
PHI=315,PSI=0.000000
PHI=330,PSI=0.000000
PHI=345,PSI=0.000000
PHI=360,PSI=0.000000
print any key to graphics..
小凸輪
一:小凸輪輪廓線及其運(yùn)動(dòng)曲線
凸輪廓線 (1)推程 0—30度,正弦加速度曲線;
(2)遠(yuǎn)休30—120度。
(3)回程120—150度,正弦加速度曲線。
(4)近休150—360度。
mm。由于尺寸的關(guān)系取130mm。 最大壓力角為
(方程來自《機(jī)械原來》(孫恒 陳作模 葛文杰 主編)(高等教育出版社))
定位機(jī)構(gòu)
為保證鉆頭加工位置的準(zhǔn)確,本方案設(shè)計(jì)了定位機(jī)構(gòu),采用從工作臺(tái)后面定位的方法,具體結(jié)構(gòu)見下圖:
槽輪機(jī)構(gòu)
為實(shí)現(xiàn)工作臺(tái)的間歇運(yùn)動(dòng),本方案選擇了槽輪機(jī)構(gòu)。槽輪48秒轉(zhuǎn)過1/4圈,使工作臺(tái)轉(zhuǎn)換一個(gè)位置,完成一道工序。具體結(jié)構(gòu)如下:
外槽輪的有關(guān)尺寸:
圓銷回轉(zhuǎn)半徑R=169.7mm,
圓銷半徑r=R/6=28.3mm,
槽頂高S=169.7mm,
槽底高B=38mm,
槽條h=S-B=131.7mm,
槽頂側(cè)壁厚b=(0.6-0.8)r=19.8mm,
鎖止弧半徑R-r-b=121.6mm,
中心距240mm。
自我鑒定
一: 方案評(píng)議
本方案考慮到了加工的精密準(zhǔn)確性,傳動(dòng)機(jī)構(gòu)多采用了齒輪,鉆頭的進(jìn)給是靠齒條驅(qū)動(dòng),相當(dāng)?shù)姆€(wěn)定和準(zhǔn)確。齒輪間的傳動(dòng)比都盡可能的取了較大的值,這樣減少了齒輪的數(shù)量,降低了機(jī)床的成本。
另外,圓柱凸輪的進(jìn)程1,3段采用了五次多項(xiàng)式運(yùn)動(dòng)規(guī)律2段采用了二次多項(xiàng)式運(yùn)動(dòng)的規(guī)律,回程采用了后半段正弦加速度運(yùn)動(dòng)規(guī)律,整個(gè)過程無剛性沖擊,保證了運(yùn)動(dòng)的穩(wěn)定,降低了噪聲。
由于這是機(jī)械原理的課程設(shè)計(jì)課,設(shè)計(jì)過程中沒有考慮各構(gòu)件的強(qiáng)度,所以各構(gòu)件的尺寸(如齒條尺寸的確定及安裝間距的確定)尚須進(jìn)一步的學(xué)習(xí)去完善。
二:設(shè)計(jì)體會(huì)
本次設(shè)計(jì)的整個(gè)過程全部在計(jì)算機(jī)上進(jìn)行,中途遇到了很多的問題,但在老師和同學(xué)的幫助下,我最終克服了種種困難,按期完成了作業(yè)。作為一個(gè)設(shè)計(jì)人員,務(wù)必要有足夠的耐心,去面對(duì)種種的麻煩;務(wù)必要有足夠的細(xì)心,去解決一些細(xì)小的問題;務(wù)必要有足夠的責(zé)任心,去設(shè)計(jì)自己的方案。這就是我在本次設(shè)計(jì)過程中最重要的心得體會(huì)。
初次進(jìn)行一次完整的設(shè)計(jì),其中有許多的不足,還希望老師和同學(xué)們能多多批評(píng)指正,讓我做得更好。最后,向所有在本次設(shè)計(jì)過程中幫助和支持過我的老師和同學(xué)致以真誠的謝意,特別是指導(dǎo)我設(shè)計(jì)的老師,謝謝你!
附錄1五次多項(xiàng)式程序
#include "stdio.h"
#include "stdlib.h"
#include "math.h"
int cagaus(A,B,n,X)
int n;
double A[],B[],X[];
{
int *js,l,k,i,j,is,p,q;
double d,t;
js=malloc(n*sizeof(int));
l=1;
for(k=0;k<=n-2;k++)
{d=0.0;
for(i=k;i<=n-1;i++)
for(j=k;j<=n-1;j++)
{t=fabs(A[i*n+j]);
if(t>d) {d=t; js[k]=j;
is=i;
}}
if(d+1.0==1.0) l=0;
else {if(js[k]!=k)
for(i=0;i<=n-1;i++)
{p=i*n+k; q=i*n+js[k]; t=A[p]; A[p]=A[q];
A[q]=t;
}
if(is!=k)
{for (j=k;j<=n-1;j++)
{p=k*n+j; q=is*n+j; t=A[p]; A[p]=A[q];
A[q]=t;}
t=B[k]; B[k]=B[is];B[is]=t;}}
if(l==0) {free(js); printf("fail");
return(0);}
d=A[k*n+k];
for(j=k+1;j<=n-1;j++)
{p=k*n+j; A[p]=A[p]/d;}
B[k]=B[k]/d;
for(i=k+1; i<=n-1;i++)
{for(j=k+1;j<=n-1;j++)
{p=i*n+j; A[p]=A[p]-A[i*n+k]*A[k*n+j];}
B[i]=B[i]-A[i*n+k]*B[k];}}
d=A[(n-1)*n+n-1];
if(fabs(d)+1.0==1.0) {free(js);
printf("fail/n");
return(0); }
X[n-1]=B[n-1]/d;
for(i=n-2;i>=0;i--)
{t=0.0;
for(j=i+1;j<=n-1;j++)
t=t+A[i*n+j]*X[j];
X[i]=B[i]-t;}
js[n-1]=n-1;
for(k=n-1;k>=0;k--)
if(js[k]!=k) {t=X[k];
X[k]=X[js[k]];
X[js[k]]=t;}
free(js);
return(1);}
#include "stdio.h"
#include "stdlib.h"
#include "math.h"
#define pi 3.141592654
#define y pi*170/180
#define z pi*130/120
#define a pi*7.5/180
main()
{int i;
static double A[6][6]=
{{1,y,y*y,y*y*y,y*y*y*y,y*y*y*y*y},
{1,z,z*z,z*z*z,z*z*z*z,z*z*z*z*z},
{0,a,2*a*y,3*a*y*y,4*a*y*y*y*y,5*a*y*y*y*y*y},
{0,a,2*a*z,3*a*z*z,4*a*z*z*z,5*a*z*z*z*z},
{0,0,2*a*a,6*a*a*y,12*a*a*y*y,20*a*a*y*y*y},
{0,0,2*a*a,6*a*a*z,12*a*a*z*z,20*a*a*z*z*z}
};
static double X[6],B[6]={110/3,40,1,0,0,0};
i=cagaus(A,B,6,X);
if(i!=0)
for(i=0;i<=5;i++)
printf("x(%d)=%e\n",i,X[i]);
getch() ;
}
附錄2圓柱凸輪廓線程序
位移和廓線:
#include
#include
#include
#include
main()
{
float r,ph,ps,hp,bh,m,p,si[361];
char *s;
int i,gd=DETECT,gm,y;
r=3.141592654/180;
ph=125*r;ps=25*r;hp=97.5*r;bh=60*r;m=45*r;
for(i=0;i<=360;i++){
p=i*r;
if(p>=m+ph+ps+hp){
si[i]=0;
if(fmod(i,5)==0)
printf("PHI=%d,PSI=%f\n",i,si[i]);
continue;
}
if(p>=m+ph+ps){
si[i]=40-40*(p-ph-ps-m)/hp+40*(sin(360*r*(p-ph-ps-m)/hp))/(360*r);
if(fmod(i,5)==0)
printf("PHI=%d,PSI=%f\n",i,si[i]);
continue;
}
if(p>=ph+m) {
si[i]=8084.77-9391.62*p+3757.15*p*p-487.694*p*p*p-33.3693*p*p*p*p+8.98339*p*p*p*p*p;
if(fmod(i,5)==0)
printf("PHI=%d,PSI=%f\n",i,si[i]);
continue;
}
if(p>=m) {
si[i]=20+(p-45*r)/7.5/r;
if(fmod(i,5)==0)
printf("PHI=%d,PSI=%f\n",i,si[i]);
continue;
}
si[i]=363.2813*p*p*p-678.0476*p*p*p*p+341.3114*p*p*p*p*p;
if(fmod(i,5)==0)
printf("PHI=%d,PSI=%f\n",i,si[i]);
}
printf("print any key to graphics...");
getch();
initgraph(&gd,&gm,"");
cleardevice();
line(50,400,450,400);
line(450,400,445,395);
line(450,400,445,405);
line(50,400,50,100);
line(50,100,45,105);
line(50,100,55,105);
outtextxy(50,450,"press any key to return...");
for(i=0;i<=360;i+=30){
s=itoa(i,s,10);
outtextxy(i+50,405,s);
line(i+50,400,i+50,395);
}
for(i=30;i<=250;i+=30){
s=itoa(i,"",30);
outtextxy(25,400-i,s);
line(50,400-i,55,400-i);
}
moveto(50,400);
setcolor(RED);
for(i=0;i<=360;i++){
y=si[i]*3;
lineto(i+50,400-y);
}
for(i=0;i<=360;i++){
y=si[i]*3;
if(fmod(i,3)==0)
circle(i+50,400-y,10);
}
getch();
closegraph();
}
速度程序:
#include
#include
#include
#include
main()
{
float r,ph,ps,hp,bh,m,p,sa[361];
char *s;
int i,gd=DETECT,gm,y;
r=3.141592654/180;
ph=125*r;ps=25*r;hp=97.5*r;bh=60*r;m=45*r;
for(i=0;i<=360;i++){
p=i*r;
if(p>=m+ph+ps+hp){
sa[i]=0;
if(fmod(i,5)==0)
printf("PHI=%d,PSI=%f\n",i,sa[i]);
continue;
}
if(p>=m+ph+ps){
sa[i]=40*7.5*r*(cos(360*r*(p-ph-ps-m)/hp))/hp-40*7.5*r/hp;
if(fmod(i,5)==0)
printf("PHI=%d,PSI=%f\n",i,sa[i]);
continue;
}
if(p>=ph+m) {
sa[i]=(-9391.62)*7.5*r+3757.15*15*r*p-487.694*22.5*r*p*p-33.3693*30*r*p*p*p+8.98339*37.5*r*p*p*p*p;
if(fmod(i,5)==0)
printf("PHI=%d,PSI=%f\n",i,sa[i]);
continue;
}
if(p>=m) {
sa[i]=1.5;
if(fmod(i,5)==0)
printf("PHI=%d,PSI=%f\n",i,sa[i]);
continue;
}
sa[i]=363.2813*22.5*r*p*p-678.0476*30*r*p*p*p+341.3114*37.5*r*p*p*p*p;
if(fmod(i,5)==0)
printf("PHI=%d,PSI=%f\n",i,sa[i]);
}
printf("print any key to graphics...");
getch();
initgraph(&gd,&gm,"");
cleardevice();
line(50,400,450,400);
line(450,400,445,395);
line(450,400,445,405);
line(50,400,50,200);
line(50,200,45,205);
line(50,200,55,205);
outtextxy(50,450,"press any key to return...");
for(i=0;i<=360;i+=30){
s=itoa(i,s,10);
outtextxy(i+50,405,s);
line(i+50,400,i+50,395);
}
for(i=30;i<=120;i+=30){
outtextxy(25,370,"5");
outtextxy(25,340,"10");
outtextxy(25,310,"15");
outtextxy(25,280,"20");
line(50,400-i,55,400-i);
}
moveto(50,400);
setcolor(RED);
for(i=0;i<=360;i++){
y=sa[i]*6;
lineto(i+50,400-y);
}
getch();
closegraph();
}
加速度程序:
#include
#include
#include
#include
main()
{
float r,ph,ps,hp,bh,m,p,si[361];
char *s;
int i,gd=DETECT,gm,y;
r=3.141592654/180;
ph=125*r;ps=25*r;hp=97.5*r;bh=60*r;m=45*r;
for(i=0;i<=360;i++){
p=i*r;
if(p>=m+ph+ps+hp){
si[i]=0;
if(fmod(i,5)==0)
printf("PHI=%d,PSI=%f\n",i,si[i]);
continue;
}
if(p>=m+ph+ps){
si[i]=(-360)*r*40*7.5*7.5*r*r*(sin(360*r*(p-ph-ps-m)/hp))/(2*hp*hp);
if(fmod(i,5)==0)
printf("PHI=%d,PSI=%f\n",i,si[i]);
continue;
}
if(p>=ph+m) {
si[i]=3757.15*2*7.5*7.5*r*r-487.694*6*7.5*7.5*r*r*p-33.3693*12*7.5*7.5*r*r*p*p+8.98339*20*7.5*7.5*r*r*p*p*p;
if(fmod(i,5)==0)
printf("PHI=%d,PSI=%f\n",i,si[i]);
continue;
}
if(p>=m) {
si[i]=0;
if(fmod(i,5)==0)
printf("PHI=%d,PSI=%f\n",i,si[i]);
continue;
} si[i]=363.2813*6*7.5*7.5*r*r*p-678.0476*12*7.5*7.5*r*r*p*p+341.3114*20*7.5*7.5*r*r*p*p*p;
if(fmod(i,5)==0)
printf("PHI=%d,PSI=%f\n",i,si[i]);
}
printf("print any key to graphics...");
getch();
initgraph(&gd,&gm,"");
cleardevice();
line(50,400,450,400);
line(450,400,445,395);
line(450,400,445,405);
line(50,400,50,100);
line(50,100,45,105);
line(50,100,55,105);
outtextxy(50,450,"press any key to return...");
for(i=0;i<=360;i+=30){
s=itoa(i,s,10);
outtextxy(i+50,405,s);
line(i+50,400,i+50,395);
}
for(i=30;i<=250;i+=30){
s=itoa(i,"",30);
outtextxy(25,400-i,s);
line(50,400-i,55,400-i);
}
moveto(50,400);
setcolor(RED);
for(i=0;i<=360;i++){
y=si[i]*10;
lineto(i+50,400-y);
}
getch();
closegraph();
}
附錄3定位凸輪
#include "stdio.h"
#include
#include "math.h"
#define H 20 /*最大行程*/
#define h1 20
#define h2 20
#define W pi/24 /*角速度(度/秒)*/
#define K 5 /*循環(huán)步距*/
#define AA 30
#define AB 120
#define A1 30
#define A2 120
#define A3 150
#define A4 360
#define X0 450 /*凸輪轉(zhuǎn)軸坐標(biāo)*/
#define Y0 240
#define pi 3.14159
#define t pi/180 /*度-->弧度*/
#define C3 159.2720
#define C4 -204.7863
#define C5 71.4439
main() /*主程序*/
{ float e,ro,rr,p,so,dx,dy,st,ct; /*變量說明*/
float s[200],ds[200],dv[200],da[200],x[200],y[200],xp[200],yp[200];
int a=DETECT,b,i=0,w=0;
/*---------------------------------------------*/
initgraph(&a,&b,"");
e=0; /*偏心距*/
ro=130; /*基圓半徑*/
rr=8; /*滾子半徑*/
so=sqrt(ro*ro-e*e);
/*---------------------------------------------*/
for(p=0;p<=A4;p+=K)
{if(p<=A1) /*推程快進(jìn)勻速段*/
{s[i]=20*((p/30)-sin(2*pi*p/30)/(2*pi));
ds[i]=20*W*(1-cos(2*pi*p/30))/(30*t);
dv[i]=20*pi*pow(W,2)*sin(2*pi*p/30)/(pow(30*t,2)) ;
}
if(p>A1&&p<=A2)
{s[i]=20;
ds[i]=0;
dv[i]=0;}
if(p>A2&&p<=A3) /*推程工進(jìn)勻速段*/
{s[i]=-20*(((p-240)/30)-sin(2*pi*(p-240)/30)/(2*pi))+20
;
ds[i]=-20*W*(1-cos(2*pi*(p-240)/30))/(30*t);
dv[i]=-20*pi*pow(W,2)*sin(2*pi*(p-240)/30)/(pow(30*t,2));}
if(p>A3) /*推程工進(jìn)勻速段*/
{s[i]=0;
ds[i]=0;
dv[i]=0;}
da[i]=(atan((ds[i]/(W*t)-e)/(so+s[i])))/(t);
x[i]=X0+(so+s[i])*sin(p*t)+e*cos(p*t); /*
理論廓線坐標(biāo)*/
y[i]=Y0+(so+s[i])*cos(p*t)-e*sin(p*t);
dx=(ds[i]-e)*sin(p*t)+(so+s[i])*cos(p*t); /* x微分 */
dy=(ds[i]-e)*cos(p*t)-(so+s[i])*sin(p*t); /* y微分 */
st=dy/sqrt(dx*dx+dy*dy); /* SIN 值*/
ct=dx/sqrt(dx*dx+dy*dy); /* COS 值*/
xp[i]=x[i]+rr*st; /*外實(shí)際廓線坐標(biāo)*/
yp[i]=y[i]-rr*ct;
i++;
}
/*---------------------------------------*/
circle(X0,Y0,ro); /*畫基圓*/
circle(X0,Y0,e); /*畫偏距園*/
for(w=0;w
收藏