matlab解析法画凸轮轮廓线
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
m a t l a b解析法画凸轮
轮廓线
-CAL-FENGHAI.-(YICAI)-Company One1
班级:姓名:学号:
基于matlab的凸轮轮廓设计
一、设计凸轮机构的意义
在工业生产中,经常要求机器的某些部件按照规定的准确路线运动,仅应用连杆机构已难以满足这个要求,所以需要利用工作表面具有一定形状的凸轮。凸轮在所有基本运动链中,具有易于设计和能准确预测所产生的运动的优点。如果设计其他机构来产生给定的运功、速度、和加速度,其设计工作是很复杂的,但是设计凸轮机构则比较容易,而且运动准确、有效。所以在许多机器中,如纺织机、包装机、自动机床、自动化专用机床、数控机床、印刷机、内燃机、建筑机械、矿山机械、计算机的辅助装备及农业机具等,都可以找到凸轮机构。
在进行研究时,先设计一个简单的凸轮,在给定的旋转角度内有一定的总升距。设计凸轮轮廓的基本方法是把凸轮固定,使从动件以其与凸轮的相关位置绕凸轮回转而形成凸轮轮廓。因此设计凸轮时,必须画出足够多的点,使凸轮轮廓平滑可靠。
Matlab软件提供了强大的矩阵处理和绘图功能,具有核心函数工具箱。其编程代码接近数学推导公式,简洁直观,操作简易,人机交互性能好。因此,基于matlab软件进行凸轮机构的设计可以解决设计工作量大的问题。运用解析法进行设计,matlab可以精确的计算出轮廓上每一点的坐标,然后更为精确的绘制出凸轮轮廓曲线。
二、设计凸轮机构的已知条件
凸轮做逆时针方向转动,从动件偏置在凸轮轴心右边。从动件在推程做等加/减速运动,在回程做余弦加速运动。基圆半径rb=50mm,滚子半径
rt=10mm,推杆偏距e=10mm,推程升程h=50mm,推程运动角ft=100o,远休止角fs=60o,回程运动角fh=90o。
三、分析计算
1、建立坐标系
以凸轮轴心为坐标原点建立平面直角坐标系XOY,取杆件上升方向为Y轴正方向。
2、推杆运动规律计算
凸轮运动一周可分为5个阶段:推程加速阶段、推程减速阶段、远休止阶段、回程阶段、进休止阶段。
根据已知条件,推程阶段为等加/减速,故推程阶段的运动方程为:
推程加速阶段(0~)
推程减速阶段()
远休止阶段()推杆运动方程为
根据已知条件,在回程做余弦加速运动,因此回程阶段()的运动方程为
近休止阶段)的运动方程为
3、凸轮理论轮廓线计算
式中,为推杆滚子中心到X轴的垂直距离。
4、实际轮廓线计算
根据3的计算结果有
可得
凸轮实际轮廓线为
四、程序代码
rb = 50;
rt = 10;
e = 10;
h = 50;
ft = 100;
fs = 60;
fh = 90;
hd= pi / 180;
du = 180 / pi;
se=sqrt( rb^2 - e^2 );
d1 = ft + fs;
d2 = ft + fs + fh;
n = 360;
s = zeros(n);
ds = zeros(n);
x = zeros(n);
y = zeros(n);
dx = zeros(n);
dy = zeros(n);
xx = zeros(n);
yy = zeros(n);
xp = zeros(n);
yp = zeros(n);
for f = 1 : n
if f <= ft/2
s(f) = 2 * h * f ^ 2 / ft ^ 2; s = s(f);
ds(f) = 4 * h * f * hd / (ft * hd) ^ 2; ds = ds(f);
elseif f > ft/2 & f <= ft
s(f) = h - 2 * h * (ft - f) ^ 2 / ft ^ 2; s = s(f);
ds(f) = 4 * h * (ft - f) * hd / (ft * hd) ^ 2; ds = ds(f);
elseif f > ft & f <= d1
s = h;ds = 0;
elseif f > d1 & f <= d2
k = f - d1;
s(f) = .5 * h * (1 + cos(pi * k / fh)); s = s(f);
ds(f)= * pi * h * sin(pi * k / fh) / (fh * hd); ds = ds(f);
elseif f > d2 & f <= n
s = 0;ds = 0;
end
xx(f) = (se + s) * sin(f * hd) + e * cos(f * hd); x = xx(f);
yy(f) = (se + s) * cos(f * hd) - e * sin(f * hd); y = yy(f);
dx(f) = (ds - e) * sin(f * hd) + (se + s) * cos(f * hd); dx = dx(f); dy(f) = (ds - e) * cos(f * hd) - (se + s) * sin(f * hd); dy = dy(f); xp(f) = x + rt * dy / sqrt(dx ^ 2 + dy ^ 2);xxp = xp(f);
yp(f) = y - rt * dx / sqrt(dx ^ 2 + dy ^ 2);yyp = yp(f);
end
disp ' 凸轮转角理论x 理论y 实际x 实际y'
for f = 10 : 10 :ft
nu = [f xx(f) yy(f) xp(f) yp(f)];
disp(nu)
end