搜档网
当前位置:搜档网 › matlab解析法画凸轮轮廓线

matlab解析法画凸轮轮廓线

matlab解析法画凸轮轮廓线
matlab解析法画凸轮轮廓线

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

disp ' 凸轮转角理论x 理论y 实际x 实际y' for f = d1 : 10 : d2

nu = [f xx(f) yy(f) xp(f) yp(f)];

disp(nu)

end

plot(xx,yy,'r-.')

axis ([-(rb+h-10) (rb+h+10) -(rb+h+10) (rb+rt+10)])

axis equal

text(rb+h+3,0,'X')

text(0,rb+rt+3,'Y')

text(-5,5,'O')

title('偏置移动从动件盘形凸轮设计')

hold on;

plot([-(rb+h) (rb+h)],[0 0],'k')

plot([0 0],[-(rb+h) (rb+rt)],'k')

plot([e e],[0 (rb+rt)],'k--')

ct = linspace(0,2*pi);

plot(rb*cos(ct),rb*sin(ct),'g')

plot(e*cos(ct),e*sin(ct),'c--')

plot(e + rt*cos(ct),se + rt*sin(ct),'m')

plot(xp,yp,'b')

五、运行结果截图

相关主题