机械原理课程设计 牛头刨床凸轮机构
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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;