机械原理课程设计编程说明书设计题目:插床机构-导杆机构(1)目 录1. 设计任务及要求-----------------------------------------------------------------------12. 数学模型-------------------------------------------------------------------------------23. 程序框图--------------------------------------------------------------------------------34. 程序清单--------------------------------------------------------------------------------45. 运行结果--------------------------------------------------------------------------------116. 心得与体会-----------------------------------------------------------------------------127.参考文献--------------------------------------------------------------------------------13一.设计任务及要求已知:程速比系数K=2,滑块5的冲程H=100mm ,中心距23o o l=150mm,比值3O BBCl L=1,各构件重心S 的位置,曲柄每分钟转数1n =60r/min 。
要求:1. 设计导杆机构;2. 作机构两个位置的动画显示;3. 作滑块的运动线图(编程设计);4. 编写说明书;二.数学模型1. 极位夹角 =60˚2. 杆长杆1的长 1l =32o o l )cos αββ-⋅ 杆2的长 2l =αsin 232123221⋅⋅++o o o o l l l l 杆3 4的长 γγγsin 2/)cos (sin 22243-==x l l 3.运动分析杆1的角速度 60/211n πω= 滑块2的速度 )sin(112βαω-⋅⋅-=l v滑块2的加速度 22221112)cos()sin(ωβαωβαε⋅+-⋅--⋅⋅-=l l l a 杆3与y 轴夹角 )cos sin arctan(1132ααγ⋅⋅+=l l l o o杆3的角速度 )cos(1213βαωω-⋅=l l 杆3的角加速度 ]2)sin()cos([135111123ωβαωβαεεv l l l ----=杆4与y 轴夹角 )sin arcsin(43l xl -=γψ 杆4的角速度 ψγωωcos /cos 4334l l =杆4的角加速度 ψψωγωγεεcos sin cos cos 4244233334l l l l +-=滑块5的速度 ψψγωcos )sin(335-=l v 滑块5的加速度 γωγεψωψεcos sin cos sin 23333244445l l l l a --+=三.程序框图四、程序清单#include<stdio.h>#include<math.h>#include<stdlib.h>#include<conio.h>#include<graphics.h>#define pi 3.1415926#define N 600void init_graph(void);void initview();void draw();void cur();double weit1[N],weit2[N],weit3[N];double sita1[N],sita2[N],sita3[N];double omigar1[N],omigar2[N],omigar3[N]; doublea=50.0,d=160.0,e=130.0,f=115.0,g=115.0,w1=6.2831 852;main(){int i;double alf=0, detat=0,theta1=0;double weit=0,w3=0,ekq3=0,b=0,va=0;double theta2=0,w4=0,ekq4=0;double s=0,vc=0,ac=0;double q=0,j=0,u=0;detat=2*pi/(N*w1);for(i=0;i<N;i++){alf=w1*detat*i;weit=atan((a*sin(alf)-d)/(a*cos(alf)));if(weit<0)weit=weit+2*pi;elseif(0<weit<pi)weit=weit+pi;theta1=weit-pi;b=sqrt(a*a+d*d-2*a*d*sin(alf));w3=a*w1*cos(alf-weit)/b;va=-a*w1*sin(alf-weit);ekq3=(-a*w1*w1*sin(alf-weit)-2*va*w3)/b; theta2=asin((f*sin(theta1)-e)/g);q=-2*f*cos(theta1);j=f*f+e*e-g*g-2*f*e*sin(theta1);u=q*q-4*j;s=(-q+sqrt(u))/2;w4=f*w3*cos(theta1)/(g*cos(theta2));vc=f*w3*sin(theta1-theta2)/cos(theta2);ekq4=f*(ekq3*cos(theta1)-w3*w3*sin(theta1)+w4*w4 *sin(theta2))/(g*cos(theta2));ac=g*ekq4*sin(theta2)+g*w4*w4*cos(theta2)-f*ekq3 *sin(theta1)-f*w3*w3*cos(theta1);weit1[i]=weit;weit2[i]=w3;weit3[i]=ekq3;sita1[i]=s;sita2[i]=vc;sita3[i]=ac;omigar1[i]=theta2;omigar2[i]=w4;omigar3[i]=ekq4;}for(i=0;i<N;i++){printf("i=%d \n weit1[i]=%lf \t weit2[i]=%lf \t weit3[i]=%lf \t",i,weit1[i],weit2[i],weit3[i]);printf("\n stia1[i]=%lf \t stia2[i]=%lf \t stia3[i]=%lf \t",sita1[i],sita2[i],sita3[i]);printf("\n omigar1[i]=%lf \t omigar2[i]=%lf \t omigar3[i]=%lf\n\n",omigar1[i],omigar2[i],omigar3[i]);}cur();}void cur(){int i;double alf=0, detat=0,theta1=0;double weit=0,w3=0,ekq3=0,b=0,va=0;double theta2=0,w4=0,ekq4=0;double s=0,vc=0,ac=0;double q=0,j=0,u=0;doublea=50.0,d=160.0,e=130.0,f=115.0,g=115.0,w1=6.2831 852;int gd=DETECT, gmode,n;initgraph(&gd,&gmode,"c:\\turboc2");clrscr();for(i=0;i<N;i++){detat=2*pi/(N*w1);alf=w1*detat*i;weit=atan((a*sin(alf)-d)/(a*cos(alf)));if(weit<0)weit=weit+2*pi;elseif(0<weit<pi)weit=weit+pi;theta1=weit-pi;b=sqrt(a*a+d*d-2*a*d*sin(alf));w3=a*w1*cos(alf-weit)/b;va=-a*w1*sin(alf-weit);ekq3=(-a*w1*w1*sin(alf-weit)-2*va*w3)/b; theta2=asin((f*sin(theta1)-e)/g);q=-2*f*cos(theta1);j=f*f+e*e-g*g-2*f*e*sin(theta1);u=q*q-4*j;s=(-q+sqrt(u))/2;w4=f*w3*cos(theta1)/(g*cos(theta2));vc=f*w3*sin(theta1-theta2)/cos(theta2);ekq4=f*(ekq3*cos(theta1)-w3*w3*sin(theta1)+w4*w4 *sin(theta2))/(g*cos(theta2));ac=g*ekq4*sin(theta2)+g*w4*w4*cos(theta2)-f*ekq3 *sin(theta1)-f*w3*w3*cos(theta1);line(100,200,500,200);setcolor(5);line(492,201,500,200);line(492,199,500,200);line(100,10,100,350);setcolor(5);line(99,18,100,10);line(101,18,100,10);putpixel(100+alf*180/pi,200-s/5,1);putpixel(100+alf*180/pi,200-vc/100,2);putpixel(100+alf*180/pi,200-ac/100,4);}setcolor(10);settextjustify(CENTER_TEXT,0);outtextxy(300,300,"RED___JIASUDU");outtextxy(300,330,"GREEN___SUDU");outtextxy(300,360,"BLUE___WEIYI");/* outtextxy(300,50,"SUDU JIASUDU WEIYI GUAN XI QU XIAN TU");*/outtextxy(300,50,"SUDU JIASUDU WEIYI GUAN XI QU XIAN TU");getch();closegraph();}五.运行结果六.心得与体会不知不觉中大二结束了,课程设计也接近了尾声,暑假也要来到了。