matlab解析法画凸轮轮廓线.docx
《matlab解析法画凸轮轮廓线.docx》由会员分享,可在线阅读,更多相关《matlab解析法画凸轮轮廓线.docx(9页珍藏版)》请在冰豆网上搜索。
matlab解析法画凸轮轮廓线
matlab解析法画凸轮轮廓线
班级:
姓名:
学号:
基于matlab的凸轮轮廓设计
一、设计凸轮机构的意义
在工业生产中,经常要求机器的某些部件按照规定的准确路线运动,仅应用连杆机构已难以满足这个要求,所以需要利用工作表面具有一定形状的凸轮。
凸轮在所有基本运动链中,具有易于设计和能准确预测所产生的运动的优点。
如果设计其他机构来产生给定的运功、速度、和加速度,其设计工作是很复杂的,但是设计凸轮机构则比较容易,而且运动准确、有效。
所以在许多机器中,如纺织机、包装机、自动机床、自动化专用机床、数控机床、印刷机、内燃机、建筑机械、矿山机械、计算机的辅助装备及农业机具等,都可以找到凸轮机构。
在进行研究时,先设计一个简单的凸轮,在给定的旋转角度内有一定的总升距。
设计凸轮轮廓的基本方法是把凸轮固定,使从动件以其与凸轮的相关位置绕凸轮回转而形成凸轮轮廓。
因此设计凸轮时,必须画出足够多的点,使凸轮轮廓平滑可靠。
Matlab软件提供了强大的矩阵处理和绘图功能,具有核心函数工具箱。
其编程代码接近数学推导公式,简洁直观,操作简易,人机交互性能好。
因此,基于matlab软件进行凸轮机构的设计可以解决设计工作量大的问题。
运用解析法进行设计,matlab可以精确的计算出轮廓上每一点的坐标,然后更为精确的绘制出凸轮轮廓曲线。
二、设计凸轮机构的已知条件
凸轮做逆时针方向转动,从动件偏置在凸轮轴心右边。
从动件在推程做等加/减速运动,在回程做余弦加速运动。
基圆半径rb=50mm,滚子半径rt=10mm,推杆偏距e=10mm,推程升程h=50mm,推程运动角ft=100º,远休止角fs=60º,回程运动角fh=90º。
三、分析计算
1、建立坐标系
以凸轮轴心为坐标原点建立平面直角坐标系XOY,取杆件上升方向为Y轴正方向。
2、推杆运动规律计算
凸轮运动一周可分为5个阶段:
推程加速阶段、推程减速阶段、远休止阶段、回程阶段、进休止阶段。
根据已知条件,推程阶段为等加/减速,故推程阶段的运动方程为:
推程加速阶段(0~
)
推程减速阶段(
)
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);
forf=1:
n
iff<=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);
elseiff>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);
elseiff>ft&f<=d1
s=h;ds=0;
elseiff>d1&f<=d2
k=f-d1;
s(f)=.5*h*(1+cos(pi*k/fh));s=s(f);
ds(f)=-.5*pi*h*sin(pi*k/fh)/(fh*hd);ds=ds(f);
elseiff>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'
forf=10:
10:
ft
nu=[fxx(f)yy(f)xp(f)yp(f)];
disp(nu)
end
disp'凸轮转角理论x理论y实际x实际y'
forf=d1:
10:
d2
nu=[fxx(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)])
axisequal
text(rb+h+3,0,'X')
text(0,rb+rt+3,'Y')
text(-5,5,'O')
title('偏置移动从动件盘形凸轮设计')
holdon;
plot([-(rb+h)(rb+h)],[00],'k')
plot([00],[-(rb+h)(rb+rt)],'k')
plot([ee],[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')
五、运行结果截图