班级:姓名:学号:基于matlab的凸轮轮廓设计一、设计凸轮机构的意义在工业生产中,经常要求机器的某些部件按照规定的准确路线运动,仅应用连杆机构已难以满足这个要求,所以需要利用工作表面具有一定形状的凸轮。凸轮在所有基本运动链中,具有易于设计和能准确预测所产生的运动的优点。如果设计其他机构来产生给定的运功、速度、和加速度,其设计工作是很复杂的,但是设计凸轮机构则比较容易,而且运动准确、有效。所以在许多机器中,如纺织机、包装机、自动机床、自动化专用机床、数控机床、印刷机、内燃机、建筑机械、矿山机械、计算机的辅助装备及农业机具等,都可以找到凸轮机构。在进行研究时,先设计一个简单的凸轮,在给定的旋转角度内有一定的总升距。设计凸轮轮廓的基本方法是把凸轮固定,使从动件以其与凸轮的相关位置绕凸轮回转而形成凸轮轮廓。因此设计凸轮时,必须画出足够多的点,使凸轮轮廓平滑可靠。Matlab软件提供了强大的矩阵处理和绘图功能,具有核心函数工具箱。其编程代码接近数学推导公式,简洁直观,操作简易,人机交互性能好。因此,基于matlab软件进行凸轮机构的设计可以解决设计工作量大的问题。运用解析法进行设计,matlab可以精确的计算出轮廓上每一点的坐标,然后更为精确的绘制出凸轮轮廓曲线。二、设计凸轮机构的已知条件凸轮做逆时针方向转动,从动件偏置在凸轮轴心右边。从动件在推程做等加/减速运动,在回程做余弦加速运动。基圆半径rb=50mm,滚子半径rt=10mm,推杆偏距e=10mm,推程升程h=50mm,推程运动角ft=100º,远休止角fs=60º,回程运动角fh=90º。三、分析计算1、建立坐标系以凸轮轴心为坐标原点建立平面直角坐标系XOY,取杆件上升方向为Y轴正方向。2、推杆运动规律计算凸轮运动一周可分为5个阶段:推程加速阶段、推程减速阶段、远休止阶段、回程阶段、进休止阶段。根据已知条件,推程阶段为等加/减速,故推程阶段的运动方程为:推程加速阶段(0~𝑓𝑡/2){𝑠(𝑓)=2∗ℎ∗𝑓2𝑓𝑡2𝑣(𝑓)=𝑑𝑠(𝑓)=4∗ℎ∗𝑓𝑓𝑡2推程减速阶段(𝑓𝑡/2~𝑓𝑡){𝑠(𝑓)=ℎ−2∗ℎ∗(𝑓𝑡−𝑓)2𝑓𝑡2𝑣(𝑓)=𝑑𝑠(𝑓)=4∗ℎ∗(𝑓𝑡−𝑓)𝑓𝑡2远休止阶段(𝑓𝑡~(𝑓𝑡+𝑓𝑠))推杆运动方程为{𝑠(𝑓)=0𝑣(𝑓)=𝑑𝑠(𝑓)=0根据已知条件,在回程做余弦加速运动,因此回程阶段((𝑓𝑡+𝑓𝑠)~(𝑓𝑡+𝑓𝑠+𝑓ℎ))的运动方程为{𝑠(𝑓)=ℎ∗[1+𝑐𝑜𝑠(𝜋∗(𝑓−𝑓𝑡−𝑓𝑠)𝑓ℎ)]2𝑣(𝑓)=𝑑𝑠(𝑓)=−𝜋∗ℎ∗𝑠𝑖𝑛(𝜋∗(𝑓−𝑓𝑡−𝑓𝑠)𝑓ℎ)2∗𝑓ℎ近休止阶段((𝑓𝑡+𝑓𝑠+𝑓ℎ)~360°)的运动方程为{𝑠(𝑓)=0𝑣(𝑓)=𝑑𝑠(𝑓)=03、凸轮理论轮廓线计算{𝑥(𝑓)=[𝑠𝑒+𝑠(𝑓)]∗𝑠𝑖𝑛(𝑓)+𝑒∗𝑐𝑜𝑠(𝑓)𝑦(𝑓)=[𝑠𝑒+𝑠(𝑓)]∗𝑐𝑜𝑠(𝑓)−𝑒∗𝑠𝑖𝑛(𝑓)式中𝑠𝑒=√𝑟𝑏2−𝑒2,为推杆滚子中心到X轴的垂直距离。4、实际轮廓线计算根据3的计算结果有{𝑑𝑥(𝑓)=(𝑑𝑠(𝑓)−𝑒)∗𝑠𝑖𝑛(𝑓)+(𝑠𝑒+𝑠(𝑓))∗𝑐𝑜𝑠(𝑓)𝑑𝑦(𝑓)=(𝑑𝑠(𝑓)−𝑒)∗𝑐𝑜𝑠(𝑓)−(𝑠𝑒+𝑠(𝑓))∗𝑠𝑖𝑛(𝑓)可得{𝑠𝑖𝑛(𝑘)=𝑑𝑥(𝑓)√𝑑𝑥2+𝑑𝑦2𝑐𝑜𝑠(𝑘)=−𝑑𝑦(𝑓)√𝑑𝑥2+𝑑𝑦2凸轮实际轮廓线为{𝑥𝑝(𝑓)=𝑥(𝑓)−𝑟∗𝑐𝑜𝑠(𝑘)𝑦𝑝(𝑓)=𝑦(𝑓)−𝑟∗𝑠𝑖𝑛(𝑘)四、程序代码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);forf=1:niff=ft/2s(f)=2*h*f^2/ft^2;s=s(f);ds(f)=4*h*f*hd/(ft*hd)^2;ds=ds(f);elseiffft/2&f=fts(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);elseiffft&f=d1s=h;ds=0;elseiffd1&f=d2k=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);elseiffd2&f=ns=0;ds=0;endxx(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);enddisp'凸轮转角理论x理论y实际x实际y'forf=10:10:ftnu=[fxx(f)yy(f)xp(f)yp(f)];disp(nu)enddisp'凸轮转角理论x理论y实际x实际y'forf=d1:10:d2nu=[fxx(f)yy(f)xp(f)yp(f)];disp(nu)endplot(xx,yy,'r-.')axis([-(rb+h-10)(rb+h+10)-(rb+h+10)(rb+rt+10)])axisequaltext(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')五、运行结果截图