机械原理课程设计 牛头刨床凸轮机构

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

机械原理课程设计

设计题目:牛头刨床凸轮机构

班级:加工06-2班

姓名:井源

指导教师:席本强何凡

目录1.设计题目及参数2.数学模型的建立3.程序框图

4.程序清单及运行结果5.设计总结

6.参考文献

1设计题目与参数

已知摆杆9为等加速等减速运动规律,其推程运动角φ=70,远休止角φs =10,回程运动角φ΄=70,摆杆长度l 09D =125,最大摆角φmax =15,许用压力角[α]=40,凸轮与曲线共轴。 要求:

(1) 计算从动件位移、速度、加速度并绘制线图(用

方格纸绘制),也可做动态显示。

(2) 确定凸轮的基本尺寸,选取滚子半径,画出凸轮

的实际廓线,并按比例绘出机构运动简图。 (3) 编写计算说明书。

2数学模型

(1) 推程等加速区

当2/0ϕδ≤≤时 2

2max /21ϕδϕ=m (角位移) 2

max /4ϕδϕω=(角速度)

2max /4ϕϕε=(角加速度)

(2) 推程等减速区

当ϕδϕ≤<2/时 22max max /)(21ϕδϕϕϕ--=m (角位移)

2max /)(4ϕδϕϕω-=(角速度) 2max /4ϕϕε-=(角加速度) (3) 远休止区

当s ϕϕδϕ+≤<时 max 1ϕ=m (角位移) 0=ω (角速度)

0=ε(角加速度)

(4) 回程等加速区 当

/

ϕϕϕδϕϕ'++≤<+s s 时

22max max /)(21ϕϕϕδϕϕ'---=s m (角位移)

2max /)(4ϕϕϕδϕω'---=s (角速度)2max /4ϕϕε'-=(角加

速度)

(5) 回程等减速区 当

ϕϕϕδϕϕϕ'

++≤<'++s s 2/时

22max /)(21ϕδϕϕϕϕ'-'++=s m (角位移)

2max /)(4ϕδϕϕϕϕω'-'++-=s (角速度) 2max /4ϕϕε'=(角

加速度) (6) 近休止区

01=m (角位移) 0=ω(角速度)

0=ε(角加速度)

一、

如图选取xOy 坐标系,B1点为凸轮轮廓线起始点。开始时推杆轮子中心处于B1点处,当凸轮转过角度时,摆动推杆角位移为,由反转法作图可看出,此时滚子中心应处于B 点,其直角坐标为:

()()

00cos cos sin sin ϕϕδδϕϕδδ++-=++-=l a y l a x

因为实际轮廓线与理论轮廓线为等距离,即法向距离处处相等,都为滚半径rT.故将理论廓线上的点沿其法向

向内测移动距离rT 即得实际廓线上的点B(x1,y1).由高等数学知,理论廓线B 点处法线nn 的斜率应为

()()θθδδθcos /sin ////=-==d dy d dx dy dx tg

根据上式

有:

()()()()

δϕϕϕδδδδϕϕϕδδδd d l a d dy d d l a d dx /1sin sin //1cos cos /00++++-=+++-=

可得 ()()()()()()

2

22

2////cos ///

/sin δδδθδδδθd dy d dx d dy d dy d dx d dx +-=+=

实际轮廓线上对应的点B(x,y)的坐标为

θ

θsin 1cos 1T T r y y r x x ==

此即为凸轮工作的实际廓线方程,式中“-”用于内等距线,“+”于外等距线。

3程序框图

开始

定义主函数

输入:远休止,近休止,摆长

判断中心距范围

初始角

调用子函数1,带出数值

取压力角

理论廓线曲率半径

判断压力角,曲率半径

符合

调用子函数1,对凸轮分段

调用子函数2,画圆心及实际包络线轨迹

清屏

磙子圆心坐标值

画摆杆

清屏

画坐标系

调用子函数3,画线图

输出数据,结束程序

4程序清单及运行结果#include

#include

#include

#include

#include

#define l 125.0

#define Aa 40

#define r_b 55

#define rr 6

#define K (3.1415926/180)

#define dt 0.25

float Q_max,Q_t,Q_s,Q_h;

float Q_a;

double L,pr;

float e[1500],f[1500],g[1500];

void Cal(float Q,double Q_Q[3])

{

Q_max=15,Q_t=70,Q_s=10,Q_h=70;

if(Q>=0&&Q<=Q_t/2)

{

Q_Q[0]=K*(2*Q_max*Q*Q/(Q_t*Q_t));

Q_Q[1]=4*Q_max*Q/(Q_t*Q_t);

Q_Q[2]=4*Q_max/(Q_t*Q_t);

}

if(Q>Q_t/2&&Q<=Q_t)

{

Q_Q[0]=K*(Q_max-2*Q_max*(Q-Q_t)*(Q-Q_t)/(Q_t*Q_ t));

Q_Q[1]=4*Q_max*(Q_t-Q)/(Q_t*Q_t);

Q_Q[2]=-4*Q_max/(Q_t*Q_t);

}

if(Q>Q_t&&Q<=Q_t+Q_s)

{

Q_Q[0]=K*Q_max;

Q_Q[1]=0;

相关文档
最新文档