凸轮廓线的MATLAB画法
基于MATLAB的凸轮轮廓线设计与运动仿真毕业设计
(此文档为word格式,下载后您可任意编辑修改!)第1章绪论1.1 机构学的现状与发展1.1.1 机构学的概况机构学是以运动几何学和力学为主要理论基础,以数学分析为主要手段,对各类机构进行运动和动力分析与综合的学科。
机构学为创造新的机器和进行机械发明与改革提供正确有效的理论和方法,以设计出更经济合理、更先进的机械设备,来满足生产发展和人们生活的需求。
机构学的发展将直接影响到机械工业各类产品的工作性能以及许多行业生产设备的机械化和自动化程度。
机构学作为机械工程技术科学中的一门主要基础学科,近年来由于机电一体化高技术科学特别是工业机器人与特种机器人的发展对机构学理论和技术上的要求,使机构学学科达到了一个崭新的阶段。
在国际学术讨论会上,各国科学家一致认为它有如旭日东升,正显出其无比强大的生命力。
机构学一方面由简单的运动分析与综合向复杂的运动分析与综合方面发展,另一方面也由机构运动学向机构动力分析与综合方向发展,研究机构系统的合理组成的方法及其判据,分析研究机器在传递运动、力和做功过程中出现的各种问题。
机构精度问题也相应地由静态分析走向动态分析。
机构联结件的间隙在高速运转时有不容忽视的影响,因而需要研究机构间间隙、摩擦、润滑与冲击引起的机构变形、稳态与非稳态下的动态响应和过渡过程问题。
在惯性力作用下,由于机构上刚度薄弱环节的弹性变形,由此研究以振动理论多自由度模态化、线性与非线性、随机的功率谱与载荷谱等为分析手段和方法而形成的运动弹性动力学问题,以及视整个机构系统为柔性的多柔体系统动力学和逆动力学分析、综合及控制问题。
它是把整个机构看成是由多刚体组成的多刚体动力学、结构动力学及自动控制等学科发展的交叉边缘学科。
由多种、多个构件组成的机构称为组合机构。
组合机构与机构系统组成理论的发展使机构学已成为重型、精密及各种复合机械和智能机械、仿生机械、机器人等高技术科学的设计基础理论学科。
1.1.2机构学的现状(1)平面与空间连杆机构的结构理论研究研究机构的结构单元及机构拓扑结构特征,如主动副存在准则、活动度类型及其判定、拓扑结构的同构判定、消极子运动链判定等。
画凸轮轮廓曲线的步骤
画凸轮轮廓曲线的步骤
1. 确定绘制平面:在纸上或计算机绘图软件中确定绘制的平面大小和比例,以便合理地呈现凸轮的形状。
2. 绘制基准线:在所选的绘制平面上绘制一条水平基准线,用于确定凸轮的位置和形态。
3. 确定凸轮中心:根据具体要求和设计,确定凸轮的中心位置,通常相对于基准线上的一点。
4. 画出凸轮半径:以凸轮中心为圆心,在绘制平面上画出凸轮的半径,即凸轮的最外形状。
5. 划定凸轮的运动曲线:根据具体要求和设计,用曲线连接凸轮的起始点和结束点,形成满足运动要求的凸轮轮廓曲线。
6. 确定凸轮轴向:根据具体要求和设计,确定凸轮轮廓曲线相对于基准线的上下位置。
7. 添加凸轮特征:根据具体要求和设计,添加凸轮上的特征,如凹槽、齿轮等。
8. 检查和修改:在绘制完成后,仔细检查凸轮轮廓曲线的形状和位置是否符合要求,如有需要,进行必要的修改。
9. 添加细节:根据需要,可以添加细节,如标记尺寸和比例。
10. 上色和阴影处理:如果需要,可以对绘制的凸轮进行上色和阴影处理,以使其更加逼真和立体感。
以上是绘制凸轮轮廓曲线的一般步骤,具体步骤可能还会根据具体要求和设计而有所不同。
基于MATLAB的凸轮设计
基于MATLAB的凸轮设计凸轮是一种用于转动机件的机械元件,常用于驱动一些运动部件做往复运动或者周期性运动。
在机械设计中,通过凸轮的设计可以实现复杂的运动路径,以及具有特定速度和加速度要求的运动。
MATLAB是一种强大的数学计算和编程环境,可以用于进行科学计算、数据分析和算法开发。
在凸轮设计中,MATLAB可以用于凸轮曲线的生成、设计和优化。
本文将介绍如何基于MATLAB进行凸轮设计。
在凸轮设计中,最重要的是凸轮曲线的生成。
凸轮曲线是一个由数据点组成的模板,通过插值或者数值逼近的方法可以生成一个光滑的凸轮曲线。
在 MATLAB 中,可以使用插值函数 interp1 或者曲线拟合函数polyfit 进行凸轮曲线的生成。
具体步骤如下:1.定义凸轮的设计参数,例如凸轮的半径、凸轮转动的角度范围等;2.根据凸轮的设计参数,生成一些数据点,这些数据点可以通过数学计算或者几何建模等方式得到;3. 使用插值函数 interp1 或者曲线拟合函数 polyfit 对这些数据点进行插值或者拟合,得到一个平滑的曲线;4.根据凸轮转动的角度范围,生成一系列角度的数据点;5. 使用插值函数 interp1 或者曲线拟合函数 polyval 对这些角度的数据点进行插值或者拟合,得到一系列对应的曲线坐标点;6.将这些坐标点绘制成凸轮曲线,并进行可视化。
除了凸轮曲线的生成,MATLAB 还可以用于凸轮的设计和优化。
凸轮设计包括凸轮的尺寸设计、运动路径设计等。
在 MATLAB 中,可以使用优化函数 fmincon 或者遗传算法函数 ga 进行凸轮设计的优化,以获得符合设计要求的凸轮参数。
具体步骤如下:1.定义凸轮的设计变量和目标函数。
设计变量可以是凸轮的尺寸参数,例如凸轮半径、凸轮高度等;目标函数可以是凸轮的运动路径误差、速度误差等。
2.定义凸轮的约束条件。
约束条件可以是凸轮的尺寸范围、速度和加速度的限制等。
3. 使用优化函数 fmincon 或者遗传算法函数 ga 对凸轮的设计变量进行优化,以使目标函数最小化或者最大化。
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~f t/2〕{s(f)=2∗ℎ∗f2ft2v(f)=ds(f)=4∗ℎ∗fft2推程减速阶段〔f t/2~f t〕{s(f)=ℎ−2∗ℎ∗(f t−f)2ft2v(f)=ds(f)=4∗ℎ∗(f t−f)ft2远休止阶段〔f t~(f t+f s)〕推杆运动方程为{s(f)=0v(f)=ds(f)=0根据已知条件,在回程做余弦加速运动,因此回程阶段〔(f t+f s)~(f t+f s+fℎ)〕的运动方程为{s(f)=ℎ∗[1+cos(π∗(f−f t−f s)fℎ)]2v(f)=ds(f)=−π∗ℎ∗sin(π∗(f−f t−f s)fℎ)2∗fℎ近休止阶段((f t+f s+fℎ)~360°〕的运动方程为{s(f)=0v(f)=ds(f)=0 3、凸轮理论轮廓线计算{x(f)=[s e+s(f)]∗sin(f)+e∗cos(f) y(f)=[s e+s(f)]∗cos(f)−e∗sin(f)式中s e=√r b2−e2,为推杆滚子中心到X轴的垂直距离。
凸轮轮廓线的绘制(MATLAB)
H a r b i n I n s t i t u t e o f T e c h n o l o g y课程名称:精密机械学基础设计题目:直动从动件盘形凸轮的设计院系:航天学院控制科学与工程系班级: 0904102班设计者:陈学坤学号: ********** 设计时间: 2011年10月直动从动件盘形凸轮机构的计算机辅助设计说明:凸轮轮阔曲线的设计,一般可分为图解法和解析法,尽管应用图解法比较简便,能简单地绘制出各种平面凸轮的轮廓曲线,但由于作图误差比较大,故对一些精度要求高的凸轮已不能满足设计要求。
此次应用MATLAB 软件结合轮廓线方程用计算机辅助设计。
首先,精确地计算出轮廓线上各点的坐标,然后运用MATLAB 绘制比较精确的凸轮轮廓曲线以及其S-α曲线、v-t 曲线、a-t 曲线。
。
1 凸轮轮廓方程*()()*()()*()*()X OE EF E Cos J So S Sin J Y BD FD So S Cos J E Sin J =+=++=-=+-(X,Y):凸轮轮廓线上的任意一点的坐标。
E :从动件的偏心距,OC 。
R :凸轮的基园半径,OA 。
J :凸轮的转角。
S :S=f(J)为从动件的方程。
So :O S =H 为从动件的最大位移(mm )。
J1、J2、J3、J4为从动件的四个转角的区域。
S1、S2、S3、S4为与J1、J2、J3、J4对应的从动件的运动规律。
2 实例R=40,E=10,H=50,J1=J2=J3=J4=900。
3 MATLAB 程序设计用角度值计算,对于给定的J1、J2、J3、J4,把相应的公式代入其中,求出位移S 和轮廓线上的各点的坐标X 、Y ,最终求出描述凸轮的数组:J=[J1,J2,J3,J4];S=[S1,S2,S3,S4]; X=[X1,X2,X3,X4]; Y=[Y1,Y2,Y3,Y4];用函数plot (X,,Y )画出凸轮的轮廓曲线; 用plot (J,S )函数位移S 的曲线; 对于速度曲线V-t 和加速度曲线a-t ,ds ds ds dt dt V dJ dJ dtω===在算例中已假设凸轮匀速转动的角速度为1wad/s ,所以ds ds ds ds dt dt V dJ dt dJ dtω====速度 同理可得:dJds dtdva 22==加速度4 程序运行结果图一:余弦速运动规律下的凸轮轮廓曲线图二:余弦加速作用下的S-α曲线图三:余弦加速作用下的v-t曲线图四:余弦加速作用下的a-t曲线5 附程序:function tulunR=40;E=10;H=50;J1=90;J2=90;J3=90;J4=90;S0=(R^2-E^2)^(1/2);syms J S dJ dS d2J d2SJ11=linspace(0,J1,500);S1=(H/2).*(1-cos(pi.*J11/J1));X1=E.*cos(J11.*pi/180)+(S0+S1).*sin(J11.*pi/180); Y1=(S0+S1).*cos(J11.*pi/180)-E.*sin(J11.*pi/180);J22=linspace(J1,J1+J2,300);S2=J22./J22.*H;X2=E.*cos(J22.*pi/180)+(S0+H).*sin(J22.*pi/180); Y2=(S0+H).*cos(J22.*pi/180)-E.*sin(J22.*pi/180);J33=linspace(J1+J2,J1+J2+J3,300);S3=H-(H/2).*(1-cos(pi*J33/J3));X3=E*cos(J33*pi/180)+(S0+S3).*sin(J33*pi/180);Y3=(S0+S3).*cos(J33*pi/180)-E*sin(J33*pi/180);J44=linspace(J1+J2+J3,J1+J2+J3+J4,300);X4=E.*cos(J44*pi/180)+S0*sin(J44*pi/180);Y4=S0.*cos(J44*pi/180)-E*sin(J44*pi/180);S4=J44./J44.*0;X=[X1,X2,X3,X4];Y=[Y1,Y2,Y3,Y4];figure(1);plot(X,Y);hold on;t=linspace(0,2*pi,500);x=R*cos(t);y=R*sin(t);plot(x,y);title('凸轮的轮廓曲线');axis([-90,90,-90,90]);axis square;figure(2);plot(J11,S1);hold on;plot(J22,S2);plot(J33,S3);plot(J44,S4);ylabel('S');xlabel('α/rad');title('S-α曲线');J=[J11,J22,J33,J44];S=[S1,S2,S3,S4];dS=diff(S)./diff(J); %通过对位移求导后可得速度。
凸轮廓线设计MATLAB程序
凸轮轮廓及其综合1. 凸轮机构从动件的位移凸轮是把一种运动转化为另一种运动的装置。
凸轮的廓线和从动件一起实现运动形式的转换。
凸轮通常是为定轴转动,凸轮旋转运动可被转化成摆动、直线运动或是两者的结合。
凸轮机构设计的内容之一是凸轮廓线的设计。
定义一个凸轮基圆r b 作为最小的圆周半径。
从动件的运动方程如下:L(ϕ)=r b +s(ϕ)设凸轮的推程运动角和回程运动角均为β,从动件的运动规律均为正弦加速度运动规律,则有:s(ϕ)=h(βϕ-π21sin(2πϕ/β)) 0≤ϕ≤β s(ϕ)=h -h(ββϕ--π21sin(2π(ϕ-β/β)) β≤ϕ≤2β s(ϕ)=0 2β≤ϕ≤2π上式是从动件的位移,h 是从动件的最大位移,并且0≤β≤π。
如果假设凸轮的旋转速度ω=d ϕ/dt 是个常量,则速度υ、加速度a 和瞬时加速度j (加速度对时间求异)分别如下:速度:υ(ϕ)=βωh (1-cos(2πϕ/β)) 0≤ϕ≤β υ(ϕ)=-βωh (1-cos(2π(ϕ-β)/β) β≤ϕ≤2β υ(ϕ)=0 2β≤ϕ≤2π加速度:a(ϕ)=222βπωhsin(2πϕ/β)) 0≤ϕ≤βa(ϕ)=-222βπωhsin(2π(ϕ-β)/β) β≤ϕ≤2βa(ϕ)=0 2β≤ϕ≤2π瞬时加速度:j(ϕ)=3324βωπhcos(2πϕ/β)) 0≤ϕ≤βj(ϕ)=-3324βωπhcos(2π(ϕ-β)/β) β≤ϕ≤2βj(ϕ)=0 2β≤ϕ≤2π定义无量纲位移S=s/h 、无量纲速度V=υ/ωh 、无量纲加速度A=a/h ω3和无量纲瞬时加速度J=j/h ω3。
若β=60°,则如下程序可以对以上各个量进行计算。
beta=60*pi/180;phi=linspace(0,beta,40);phi2=[beta+phi];ph=[phi phi2]*180/pi;arg=2*pi*phi/beta;arg2=2*pi*(phi2-beta)/beta;s=[phi/beta-sin(arg)/2/pi 1-(arg2-sin(arg2))/2/pi];v=[(1-cos(arg))/beta-(1-cos(arg2))/beta];a=[2*pi/beta^2*sin(arg)2*pi/beta^2*sin(arg2)];j=[4*pi^2/beta^3*cos(arg)4*pi^2/beta^3*cos(arg2)]:subplot(2,2,1)plot(ph,s,ˊK ˊ)xlabel(ˊCam angle(degrees)ˊ)ylabel(ˊDisplacement(S)ˊ)g=axis; g(2)=120; axis(g)subplot(2,2,2)plot(ph,v,ˊk ˊ,[0 120],[0 0],ˊk--ˊ)xlabel(ˊCam angle(degrees)ˊ)ylabel(ˊVelocity(V)ˊ)g=axis; g(2)=120; axis(g)subplot(2,2,3)plot(ph,a,ˊk ˊ,[0 120],[0 0],ˊk--ˊ)xlabel(ˊCam angle(degrees)ˊ)ylabel(ˊAcceleration(A)ˊ)g=axis;g(2)=120;axis(g)subplot(2,2,4)plot(ph,j,ˊkˊ,[0 120],[0 0],ˊk--ˊ)xlabel(ˊCam angle(degrees)ˊ)ylabel(ˊJerk(J)ˊ)g=axis;g(2)=120;axis(g)2 平底盘形从动作参考下图得到如下关系:在(x,y)坐标系中,凸轮轮廓的坐标为Rx和Ry,刀具的坐标为Cx和Cy:Rx=Rcos( θ+ϕ) Ry=Rsin( θ+ϕ)C x=Ccos( γ+ϕ) C y=Ccos( γ+ϕ)其中, R=θcos L θ=arctan ⎪⎪⎭⎫ ⎝⎛ϕd dL L 1 c=γγcos c L + γ=arctan ⎪⎪⎭⎫ ⎝⎛+c L d dL γϕ/ r c 是刀具的半径,且dL/d ϕ=V(ϕ)/ω。
matlab凸轮轮廓设计及仿真说明书
滚子半径
=40
1
第一章:工作意义
1.1本次课程设计意义1.2已知条件
第二章:工作设计过程5
2.1:设计思路5
2.2:滚子从动件各个阶段相关方程6
2.பைடு நூலகம்:盘型凸轮理论与实际轮廓方程7
工工“..A作……'A程过A程
3.1:滚子从动件各各阶段MATLAB程序编制…*8
3.2:凸轮的理论实际运动仿真程序编制
12
第四章…?: •……
运行结果
17
4.1:滚子运动的位移图17
4.2:滚子运动的速度图17
4.3:滚子运动的加速度图,局部加速度图……18—
44滚子运动的仿真图19
4.5:滚子运动的理论与实际轮廓图20
6.1:参考文献
22
第一章:工作意义
1.1 本次课程设计意义凸轮是一个具有曲线轮廓或凹槽的构件, 一般为主动件, 作等速回转运动或往复直线运动。与凸轮轮廓接触,并传递 动力和实 现预定的运动规律的构件, 一般做往复直线运动或 摆动,称为从动件。凸轮机构在应用中的基本特点在于能使
程和回程。凸轮轮廓曲线决定于位移曲线的
形状。在某些机械中,位移曲线由工艺过程决定,但一般
情况下只有行程和对应的凸轮转角根据工作需要决定,而
曲线的形状则由设计者选定,可以有多种运动规律。传统的凸轮运动
规律有等速、等加速-等减速、余弦加速度和正弦 加速度等。等速运 动规律因有速度突变,会产生强烈的刚性 冲击,只适用于低速。等加 速-等减速和余弦加速度也有加速度突变,会引起柔性冲击,只适用
思路口。因此,基于MATLAB件进行凸轮机构的解析法设计,可以解
决设计工作量大的问题。
本此课程设计基于MATLAB软件进行凸轮轮廓曲线的 解析法 设计,并 对的运动规律凸轮进行仿真,其具体方法为首先精确地 计算出轮 廓线
凸轮设计Matlab代码
凸轮设计Matlab代码%凸轮理论廓线与工作廓线的画法clear %清除变量r0=50; %定义基圆半径e=20; %定义偏距h=50; %推杆上升高度s0=sqrt(r0^2-e^2);r=10; %滚子半径%理论廓线a1=linspace(0,2*pi/3); % 推程阶段的自变量s1=h*(3*a1/2/pi-sin(3*a1)/2/pi); % 推杆产生的相应位移x1=-((s0+s1).*sin(a1)+e*cos(a1)); %x 函数y1=(s0+s1).*cos(a1)-e*sin(a1); %y 函数a2=linspace(0,pi/6); % 远休止阶段的自变量s2=50; %推杆位移x2=-((s0+s2).*sin(a2+2*pi/3)+e*cos(a2+2*pi/3)); %x 函数y2=(s0+s2).*cos(a2+2*pi/3)-e*sin(a2+2*pi/3); %y 函数a3=linspace(0,pi/3); % 回程阶段的自变量s3=h*(1+cos(3*a3))/2; % 推杆位移x3=-((s0+s3).*sin(a3+5*pi/6)+e*cos(a3+5*pi/6)); %x 函数y3=(s0+s3).*cos(a3+5*pi/6)-e*sin(a3+5*pi/6); %y 函数a4=linspace(0,5*pi/6); % 近休止阶段的自变量s4=0; %推杆位移x4=-((s0+s4).*sin(a4+7*pi/6)+e*cos(a4+7*pi/6)); %x 函数y4=(s0+s4).*cos(a4+7*pi/6)-e*sin(a4+7*pi/6); %y 函数a0=linspace(0,2*pi); % 基圆自变量x5=r0*cos(a0); %x 函数y5=r0*sin(a0); %y 函数%工作廓线m1=-(h*3/2/pi*(1-cos(3*a1))-e).*sin(a1)-(s0+s1).*cos(a1); % 中间变量 dx/d$n1=(h*3/2/pi*(1-cos(3*a1))-e).*cos(a1)-(s0+s1).*sin(a1); % 中间变量 dy/d$p1=-m1./sqrt(m1.^2+n1.^2); %sin&q1=n1./sqrt(m1.^2+n1.^2); %cos&x6=x1-r*q1; %x' 函数y6=y1-r*p1; %y' 函数m2=-(s0+s2).*cos(a2+2*pi/3)+e*sin(a2+2*pi/3); % 中间变量dx/d$n2=-(s0+s2).*sin(a2+2*pi/3)-e*cos(a2+2*pi/3); % 中间变量dy/d$p2=-m2./sqrt(m2.^2+n2.^2); %sin&q2=n2./sqrt(m2.^2+n2.^2); %cos&x7=x2-r*q2; %x' 函数y7=y2-r*p2; %y' 函数m3=(h*3/2*sin(3*a3)+e).*sin(a3+5*pi/6)-(s0+s3).*cos(a3+5*pi/6); % 中间变量 dx/d$n3=-(h*3/2*sin(3*a3)+e).*cos(a3+5*pi/6)-(s0+s3).*sin(a3+5*pi/6);% 中间变量 dy/d$p3=-m3./sqrt(m3.^2+n3.^2); %sin&q3=n3./sqrt(m3.^2+n3.^2); %cos&x8=x3-r*q3; %x' 函数y8=y3-r*p3; %y' 函数m4=-(s0+s4).*cos(a4+7*pi/6)+e*sin(a4+7*pi/6); %n4=-(s0+s4).*sin(a4+7*pi/6)-e*cos(a4+7*pi/6); %p4=-m4./sqrt(m4.^2+n4.^2); %sin&q4=n4./sqrt(m4.^2+n4.^2); %cos&x9=x4-r*q4; %x' 函数y9=y4-r*p4; %y' 函数%画滚子g1=x1(1)+r*cos(a0);j1=y1(1)+r*sin(a0);g2=x1(25)+r*cos(a0);j2=y1(25)+r*sin(a0);g3=x1(50)+r*cos(a0);j3=y1(50)+r*sin(a0);g4=x1(60)+r*cos(a0);j4=y1(60)+r*sin(a0);g5=x1(75)+r*cos(a0);j5=y1(75)+r*sin(a0);g6=x1(90)+r*cos(a0);j6=y1(90)+r*sin(a0);g7=x2(1)+r*cos(a0);j7=y2(1)+r*sin(a0);g8=x2(50)+r*cos(a0);j8=y2(50)+r*sin(a0);g9=x3(1)+r*cos(a0);j9=y3(1)+r*sin(a0);g10=x3(25)+r*cos(a0);j10=y3(25)+r*sin(a0);g11=x3(40)+r*cos(a0);j11=y3(40)+r*sin(a0);g12=x3(50)+r*cos(a0); %中间变量 dx/d$ 中间变量 dy/d$j12=y3(50)+r*sin(a0);g13=x3(75)+r*cos(a0);j13=y3(75)+r*sin(a0); g14=x4(1)+r*cos(a0); j14=y4(1)+r*sin(a0);g15=x4(50)+r*cos(a0);j15=y4(50)+r*sin(a0);figure %创建图形窗口plot(x1,y1,'b-',x2,y2,'g-',x3,y3,'m-',x4,y4,'c-',...x6,y6,'b-',x7,y7,'g-',x8,y8,'m-',x9,y9,'c-',...'LineWidth',2) % 画函数曲线grid on %加网格hold on %保持图像plot(x5,y5,'r--',g1,j1,'k-',g2,j2,'k-',g3,j3,'k-',...g4,j4,'k-',g5,j5,'k-',g6,j6,'k-',g7,j7,'k-',...g8,j8,'k-',g9,j9,'k-',g10,j10,'k-',g11,j11,'k-',...g12,j12,'k-',g13,j13,'k-',g14,j14,'k-',g15,j15,'k-','LineWidth',2) % 画基圆 title(' 凸轮理论廓线与工作廓线 ','FontSize',16) %标题axis ([-100,80,-120,60])axis('equal')points=[x6',y6',zeros(100,1);x7',y7',zeros(100,1);...x8',y8',zeros(100,1);x9',y9',zeros(100,1)]。
基于MATLAB的凸轮设计
中国地质大学(武汉)1.凸轮要求=10mm,凸轮以等角设计一对心直动滚子推杆盘形凸轮机构,滚子半径rr速度逆时针回转。
凸轮转角=0~120 时,推杆等速上升20mm;=120~180 时,推杆远休止;=180~270时,推杆等加速等减速下降20mm;=270~360时,推杆近休止。
要求推程的最大压力角<=30,试选取合适的基圆半径,并绘制凸轮的廓线。
问此凸轮是否有缺陷,应如何补救。
2.列出凸轮运动方程0<<2/32/3<<2/3<<3. 由方程写MATLAB源程序%1.已知参数clear;r0=50; %基圆半径rr=10; %滚子半径h=20; %行程delta01=120;%推程运动角delta02=60; % 远休角delta03=90;%回程运动角hd=pi/180;du=180/pi;n1=delta01+delta02;n2=delta01+delta02+delta03;%2凸轮曲线设计n=360;for i=1:360%计算推杆运动规律if i<=delta01s(i)=30/pi*(i*hd);ds(i)=30/pi;ds=ds(i);elseif i>delta01 && i<=n1;s(i)=h;ds(i)=0;ds=ds(i);elseif i>n1 && i<=(n1+delta03/2)s(i)=-140+320/pi*(i*hd)-160/pi^2*(i*hd)^2; ds(i)=320/pi-320/pi^2*(i*hd);ds=ds(i);elseif i>(n1+delta03/2) && i<=n2s(i)=360-480/pi*(i*hd)+160/pi^2*(i*hd)^2;ds(i)=-480/pi+320/pi^2*(i*hd);ds=ds(i);elseif i>n2 && i<=ns(i)=0;ds=0;end%计算凸轮轨迹曲线xx(i)=(r0+s(i))*sin(i*hd);%计算理论轮廓曲线yy(i)=(r0+s(i))*cos(i*hd);dx(i)=ds*sin(i*hd)+(r0+s(i))*cos(i*hd);%计算导数 dy(i)=ds*cos(i*hd)-(r0+s(i))*sin(i*hd);xp(i)=xx(i)+rr*dy(i)/sqrt(dx(i)^2+dy(i)^2);yp(i)=yy(i)-rr*dx(i)/sqrt(dx(i)^2+dy(i)^2);end%3.输出凸轮轮廓曲线figure(1);hold on;grid on;axis equal;axis([-(r0+h-30) (r0+h+10) -(r0+h+10) (r0+rr+10)]);text(r0+h+3,4,'X');text(3,r0+rr+3,'Y');text(-6,4,'O');title('对心直动滚子推杆盘形凸轮设计');xlabel('x/mm');ylabel('y/mm');plot([-(r0+h-40) (r0+h)],[0 0],'k');plot([0 0],[-(r0+h) (r0+rr)],'k');plot(xx,yy,'r--');%»绘凸轮实际轮廓曲线ct=linspace(0,2*pi);plot(r0*cos(ct),r0*sin(ct),'g');%绘凸轮基圆plot(rr*cos(ct),r0+rr*sin(ct),'k');%绘滚子圆plot(0,r0,'o');%滚子圆中心plot([0 0],[r0 r0+30],'k');plot(xp,yp,'b'); %绘凸轮实际轮廓曲线%4. 凸轮机构运动仿真%计算凸轮滚子转角xp0=0;yp0=r0-rr;dss=sqrt(diff(xp).^2+diff(yp).^2);%对轮廓曲线进行差分计算ss(1)=sqrt((xp(1)-xp0)^2+(xp(1)-yp0)^2);%轮廓曲线第一点长度for i=1:359ss(i+1)=ss(i)+dss(i);%计算实际廓曲线长度endphi=ss/rr;%计算滚子转角%运动仿真开始figure(2);m=moviein(20);j=0;for i=1:360j=j+1;delta(i)=i*hd;%凸轮转角xy=[xp',yp'];%凸轮实际轮廓曲线坐标A1=[cos(delta(i)),sin(delta(i));%凸轮坐标旋转矩阵-sin(delta(i)),cos(delta(i))];xy=xy*A1;%旋转后实际凸轮曲线坐标clf;%绘凸轮plot(xy(:,1),xy(:,2));hold on;axis equal;axis([-(120) (470) -(100) (140)]);plot([-(r0+h-40) (r0+h)],[0],'k');%绘凸轮水平轴plot([0 0],[-(r0+h) (r0+rr)],'k');%绘凸轮垂直轴plot(r0*cos(ct),r0*sin(ct),'g');%绘基圆plot(rr*cos(ct),r0+s(i)+rr*sin(ct),'k');绘滚子圆plot([0 rr*cos(-phi(i))],[r0+s(i) r0+s(i)+rr*sin(-phi(i))],'k');% 绘滚子圆标线plot([0 0],[r0+s(i) r0+s(i)+40],'k');%绘推杆%绘推杆曲线plot([1:360]+r0+h,s+r0);plot([(r0+h) (r0+h+360)],[r0 r0],'k');plot([(r0+h) (r0+h)],[r0 r0+h],'k');plot(i+r0+h,s(i)+r0,'*');title('对心直动滚子推杆盘形凸轮设计');xlabel('x/mm');ylable('y/mm');m(j)=getframe;endmovie(m);4.运动仿真结果在MATLAB中可以看出轮廓曲线有一处缺口。
基于matlab的凸轮轮廓曲线设计
基于matlab的凸轮轮廓曲线设计凸轮是机械中常见的关键零件之一,其主要功能是将旋转的运动转化为直线运动,用于推动某些机械元件进行工作。
凸轮轮廓曲线的设计对于凸轮的运动和工作效率有着重要的影响。
在本文中,我们将介绍基于matlab的凸轮轮廓曲线设计方法,以帮助读者了解凸轮轮廓曲线设计的基本概念和方法。
凸轮的形状通常是复杂的非圆形曲线。
凸轮的轮廓曲线设计过程中,需要考虑控制凸轮输送运动的速度和加速度等因素,同时还需要考虑各种机械元件之间的协调性和协定性。
针对以上问题,我们提出了基于连续逼近法的凸轮轮廓曲线设计方法。
1. 连续逼近法的基本原理连续逼近法是一种典型的非线性规划方法,其基本思想是将目标函数逐渐逼近最优解。
在凸轮轮廓曲线设计中,我们可以将凸轮轮廓曲线视为目标函数,通过不断调整曲线的形状,逐渐逼近最优轮廓曲线。
连续逼近法的具体实现过程包括以下步骤:(1)确定初始值首先需要确定一个初始轮廓曲线,通常可以使用圆弧、抛物线等基本曲线来作为起始轮廓曲线。
(2)建立数学模型接着需要建立凸轮轮廓曲线的数学模型,以便于通过数值方法来求解最优轮廓曲线。
其中,常见的模型包括三次贝塞尔曲线、三次样条曲线等。
(3)计算目标函数根据建立的数学模型,通过计算目标函数来评估轮廓曲线的性能。
通常,目标函数包括运动速度、加速度、平衡性等因素。
(4)优化轮廓曲线通过对目标函数的优化,不断调整轮廓曲线的形状,逐渐逼近最优曲线。
(5)确定最优解最终确定最优解,并验证其性能。
matlab是一种常见的数学软件,可以运用其强大的计算能力来进行凸轮轮廓曲线的设计。
具体实现过程如下:(1)数据处理将凸轮相关的数据通过matlab进行存储和处理。
常见的数据包括凸轮的尺寸、旋转角度、轮廓曲线等。
根据凸轮的数据建立轮廓曲线的数学模型,其中包括选择适当的曲线类型、确定曲线参数等。
(5)性能验证3. 总结。
凸轮廓线设计MATLAB程序
凸轮轮廓及其综合1. 凸轮机构从动件的位移凸轮是把一种运动转化为另一种运动的装置。
凸轮的廓线和从动件一起实现运动形式的转换。
凸轮通常是为定轴转动,凸轮旋转运动可被转化成摆动、直线运动或是两者的结合。
凸轮机构设计的内容之一是凸轮廓线的设计。
定义一个凸轮基圆r b 作为最小的圆周半径。
从动件的运动方程如下:L(ϕ)=r b +s(ϕ)设凸轮的推程运动角和回程运动角均为β,从动件的运动规律均为正弦加速度运动规律,则有:s(ϕ)=h(βϕ-π21sin(2πϕ/β)) 0≤ϕ≤βs(ϕ)=h -h(ββϕ--π21sin(2π(ϕ-β/β)) β≤ϕ≤2βs(ϕ)=0 2β≤ϕ≤2π上式是从动件的位移,h 是从动件的最大位移,并且0≤β≤π。
如果假设凸轮的旋转速度ω=d ϕ/dt 是个常量,则速度υ、加速度a 和瞬时加速度j (加速度对时间求异)分别如下:速度:υ(ϕ)=βωh(1-cos(2πϕ/β)) 0≤ϕ≤β υ(ϕ)=-βωh(1-cos(2π(ϕ-β)/β) β≤ϕ≤2β υ(ϕ)=0 2β≤ϕ≤2π加速度:a(ϕ)=222βπωhsin(2πϕ/β)) 0≤ϕ≤βa(ϕ)=-222βπωhsin(2π(ϕ-β)/β) β≤ϕ≤2βa(ϕ)=0 2β≤ϕ≤2π瞬时加速度:j(ϕ)=3324βωπhcos(2πϕ/β)) 0≤ϕ≤βj(ϕ)=-3324βωπhcos(2π(ϕ-β)/β) β≤ϕ≤2βj(ϕ)=0 2β≤ϕ≤2π定义无量纲位移S=s/h 、无量纲速度V=υ/ωh 、无量纲加速度A=a/h ω3和无量纲瞬时加速度J=j/h ω3。
若β=60°,则如下程序可以对以上各个量进行计算。
beta=60*pi/180;phi=linspace(0,beta,40); phi2=[beta+phi]; ph=[phi phi2]*180/pi; arg=2*pi*phi/beta;arg2=2*pi*(phi2-beta)/beta;s=[phi/beta-sin(arg)/2/pi 1-(arg2-sin(arg2))/2/pi]; v=[(1-cos(arg))/beta-(1-cos(arg2))/beta]; a=[2*pi/beta^2*sin(arg)2*pi/beta^2*sin(arg2)];j=[4*pi^2/beta^3*cos(arg)4*pi^2/beta^3*cos(arg2)]:subplot(2,2,1) plot(ph,s,ˊK ˊ)xlabel(ˊCam angle(degrees)ˊ) ylabel(ˊDisplacement(S)ˊ) g=axis; g(2)=120; axis(g) subplot(2,2,2)plot(ph,v,ˊk ˊ,[0 120],[0 0],ˊk--ˊ) xlabel(ˊCam angle(degrees)ˊ) ylabel(ˊVelocity(V)ˊ) g=axis; g(2)=120; axis(g) subplot(2,2,3)plot(ph,a,ˊk ˊ,[0 120],[0 0],ˊk--ˊ) xlabel(ˊCam angle(degrees)ˊ)ylabel(ˊAcceleration(A)ˊ)g=axis;g(2)=120;axis(g)subplot(2,2,4)plot(ph,j,ˊkˊ,[0 120],[0 0],ˊk--ˊ)xlabel(ˊCam angle(degrees)ˊ)ylabel(ˊJerk(J)ˊ)g=axis;g(2)=120;axis(g)2 平底盘形从动作参考下图得到如下关系:在(x,y)坐标系中,凸轮轮廓的坐标为Rx和Ry,刀具的坐标为Cx和Cy:Rx=Rcos( θ+ϕ) Ry=Rsin( θ+ϕ)C x=Ccos( γ+ϕ) C y=Ccos( γ+ϕ)其中,R=θcos Lθ=arctan ⎪⎪⎭⎫ ⎝⎛ϕd dL L 1 c=γγcos cL + γ=arctan ⎪⎪⎭⎫ ⎝⎛+c L d dL γϕ/ r c 是刀具的半径,且dL/d ϕ=V(ϕ)/ω。
用MATLAB绘制凸轮教程(详细)
下面我们来简单地介绍一下怎么样用matlab来绘制凸轮的工作轮廓线主要涉及解析法首先看一下理论轮廓线的方程式X=(S0+S1)sinθ+ecosθY=(S0+S1)cosθ+esinθ式中,e为偏心距,S0=sqrt(r0^2-e^2),r0为偏心圆半径只要在matlab的函数编辑中,输入一下代码即可我已经在程序中写了很详细的备注了,希望大家都能看懂附程序:%先设置凸轮的基本参数,偏心距离e,基圆半径rb,滚轮半径rr,角速度w,推杆上升的最大行程h。
h=30;w=12;rb=50;e=12;rr=10;s0=sqrt(rb*rb-e*e);%偏心距e=12,基圆rb=50,滚轮半径rr=10,角速度w=12,最大上升h=30q=120*pi/180;%这里我规定推程运动角为120度qs=(120+30)*pi/180;%远休止角为150度q1=(120+30+150)*pi/180;%回程运动角为300度for i=1:1:120%将120度按1度均分,从而得到各个度数上的轮廓坐标qq(i)=i*pi/180.0;s1=(h*qq(i)/q)-(h/(2*pi))*sin(2*pi*qq(i)/q);v1=w*(h/q)-(w*h/q)*cos(2*pi*qq(i)/q);x(i)=(s0+s1)*sin(qq(i))+e*cos(qq(i));y(i)=(s0+s1)*cos(qq(i))-e*sin(qq(i));%理论轮廓线的坐标a(i)=(s0+s1)*cos(qq(i))-e*sin(qq(i));%cos(i)b(i)=(s0+s1)*sin(qq(i))-e*cos(qq(i));%sin(i)xx(i)=x(i)+rr*b(i)/sqrt(a(i)*a(i)+b(i)*b(i));yy(i)=y(i)+rr*a(i)/sqrt(a(i)*a(i)+b(i)*b(i));%实际工作轮廓线的坐标endfor i=121:1:150qq(i)=i*pi/180;s2=h;v2=0;x(i)=(s0+s2)*sin(qq(i))+e*cos(qq(i));y(i)=(s0+s2)*cos(qq(i))-e*sin(qq(i));a(i)=(s0+s2)*cos(qq(i))-e*sin(qq(i));b(i)=(s0+s2)*sin(qq(i))-e*cos(qq(i));xx(i)=x(i)+rr*b(i)/sqrt(a(i)*a(i)+b(i)*b(i));yy(i)=y(i)+rr*a(i)/sqrt(a(i)*a(i)+b(i)*b(i));endfor i=151:1:300qq(i)=i*pi/180;qq1(i)=qq(i)-150*pi/180;s3=h-h*qq1(i)/(q1-qs);v3=-w*h/(q1-qs);x(i)=(s0+s3)*sin(qq(i))+e*cos(qq(i));y(i)=(s0+s3)*cos(qq(i))-e*sin(qq(i));a(i)=(s0+s3)*cos(qq(i))-e*sin(qq(i));b(i)=(s0+s3)*sin(qq(i))-e*cos(qq(i));xx(i)=x(i)+rr*b(i)/sqrt(a(i)*a(i)+b(i)*b(i));yy(i)=y(i)+rr*a(i)/sqrt(a(i)*a(i)+b(i)*b(i)); endfor i=301:1:360qq(i)=i*pi/180;x(i)=(s0+0)*sin(qq(i))+e*cos(qq(i));y(i)=(s0+0)*cos(qq(i))-e*sin(qq(i));a(i)=(s0+0)*cos(qq(i))-e*sin(qq(i));b(i)=(s0+0)*sin(qq(i))-e*cos(qq(i));xx(i)=x(i)+rr*b(i)/sqrt(a(i)*a(i)+b(i)*b(i));yy(i)=y(i)+rr*a(i)/sqrt(a(i)*a(i)+b(i)*b(i)); endplot(x,y,'r',xx,yy,'g')%用plot函数绘制曲线text(0,20,'理论轮廓线')%理论轮廓线的坐标位于为(0,20)text(65,40,'实际轮廓线')%实际轮廓线的坐标位于(65,40)hold on附图:。
凸轮设计Matlab代码
plot(x1,y1,'b-',x2,y2,'g-',x3,y3,'m-',x4,y4,'c-',...
x6,y6,'b-',x7,y7,'g-',x8,y8,'m-',x9,y9,'c-',...
y6=y1-r*p1; %y' 函数
m2=-(s0+s2).*cos(a2+2*pi/3)+e*sin(a2+2*pi/3); % 中间变量 dx/d$
n2=-(s0+s2).*sin(a2+2*pi/3)-e*cos(a2+2*pi/3); % 中间变量 dy/d$
p2=-m2./sqrt(m2.^2+n2.^2); %sin&
y4=(s0+s4).*cos(a4+7*pi/6)-e*sin(a4+7*pi/6); %y 函数
a0=linspace(0,2*pi); % 基圆自变量
x5=r0*cos(a0); %x 函数
y5=r0*sin(a0); %y 函数
%工作廓线
m1=-(h*3/2/pi*(1-cos(3*a1))-e).*sin(a1)-(s0+s1).*cos(a1); % 中间变量 dx/d$
%凸轮理论廓线与工作廓线的画法
clear %清除变量
r0=50; %定义基圆半径
e=20; %定义偏距
h=50; %推杆上升高度
s0=sqrt(r0^2-e^2);
r=10; %滚子半径
凸轮廓线设计MATLAB程序
凸轮轮廓及其综合1. 凸轮机构从动件的位移凸轮是把一种运动转化为另一种运动的装置。
凸轮的廓线和从动件一起实现运动形式的转换。
凸轮通常是为定轴转动,凸轮旋转运动可被转化成摆动、直线运动或是两者的结合。
凸轮机构设计的内容之一是凸轮廓线的设计。
定义一个凸轮基圆r b 作为最小的圆周半径。
从动件的运动方程如下:L()=r b +s()ϕϕ设凸轮的推程运动角和回程运动角均为β,从动件的运动规律均为正弦加速度运动规律,则有:s()=h(-sin(2π/β)) 0≤≤βϕβϕπ21ϕϕs()=h -h(-sin(2π(-β/β)) β≤≤2βϕββϕ-π21ϕϕs()=0 2β≤≤2πϕϕ上式是从动件的位移,h 是从动件的最大位移,并且0≤β≤π。
如果假设凸轮的旋转速度ω=d /dt 是个常量,则速度υ、加速度a 和瞬时加速度ϕj (加速度对时间求异)分别如下:速度:υ()=(1-cos(2π/β)) 0≤≤βϕβωh ϕϕυ()=-(1-cos(2π(-β)/β) β≤≤2βϕβωh ϕϕυ()=0 2β≤≤2πϕϕ加速度:a()=sin(2π/β)) 0≤≤βϕ222βπωh ϕϕa()=-sin(2π(-β)/β) β≤≤2βϕ222βπωh ϕϕa()=0 2β≤≤2πϕϕ瞬时加速度:j()=cos(2π/β)) 0≤≤βϕ3324βωπh ϕϕj()=-cos(2π(-β)/β) β≤≤2βϕ3324βωπh ϕϕj()=0 2β≤≤2πϕϕ定义无量纲位移S=s/h 、无量纲速度V=υ/ωh、无量纲加速度A=a/hω3和无量纲瞬时加速度J=j/hω3。
若β=60°,则如下程序可以对以上各个量进行计算。
beta=60*pi/180;phi=linspace(0,beta,40);phi2=[beta+phi];ph=[phi phi2]*180/pi;arg=2*pi*phi/beta;arg2=2*pi*(phi2-beta)/beta;s=[phi/beta-sin(arg)/2/pi 1-(arg2-sin(arg2))/2/pi];v=[(1-cos(arg))/beta-(1-cos(arg2))/beta];a=[2*pi/beta^2*sin(arg)2*pi/beta^2*sin(arg2)];j=[4*pi^2/beta^3*cos(arg)4*pi^2/beta^3*cos(arg2)]:subplot(2,2,1)plot(ph,s,ˊKˊ)xlabel(ˊCam angle(degrees)ˊ)ylabel(ˊDisplacement(S)ˊ)g=axis; g(2)=120; axis(g)subplot(2,2,2)plot(ph,v,ˊkˊ,[0 120],[0 0],ˊk--ˊ)xlabel(ˊCam angle(degrees)ˊ)ylabel(ˊVelocity(V)ˊ)g=axis; g(2)=120; axis(g)subplot(2,2,3)plot(ph,a,ˊkˊ,[0 120],[0 0],ˊk--ˊ)xlabel(ˊCam angle(degrees)ˊ)ylabel(ˊAcceleration(A)ˊ)g=axis;g(2)=120;axis(g)subplot(2,2,4)plot(ph,j,ˊkˊ,[0 120],[0 0],ˊk--ˊ)xlabel(ˊCam angle(degrees)ˊ)ylabel(ˊJerk(J)ˊ)g=axis;g(2)=120;axis(g)2 平底盘形从动作参考下图得到如下关系:在(x,y)坐标系中,凸轮轮廓的坐标为Rx和Ry,刀具的坐标为Cx和Cy:Rx =Rcos( θ+) Ry =Rsin( θ+)ϕϕC x =Ccos( γ+) C y =Ccos( γ+)ϕϕ其中,R= θ=arctan θcos L ⎪⎪⎭⎫ ⎝⎛ϕd dL L 1c= =arctan γγcos c L +γ⎪⎪⎭⎫ ⎝⎛+c L d dL γϕ/r c 是刀具的半径,且dL/d =V()/ω。
凸轮廓线的MATLAB画法
凸轮廓线的MATLAB 画法1 凸轮轮廓方程*()()*()()*()*()X OE EF E Cos J So S Sin J Y BD FD So S Cos J E Sin J =+=++=-=+- (X,Y):凸轮轮廓线上的任意一点的坐标。
E :从动件的偏心距。
R :凸轮的基园半径。
J :凸轮的转角。
S :S=f(J)为从动件的方程。
So :22O S R E =-。
H 为从动件的最大位移(mm )。
J1、J2、J3、J4为从动件的四个转角的区域。
S1、S2、S3、S4为与J1、J2、J3、J4对应的从动件的运动规律。
2 实例R=40,E=10,H=50,J1=J2=J3=J4=900。
3 MATLAB 程序设计用角度值计算,对于给定的J1、J2、J3、J4,把相应的公式代入其中,求出位移S 和轮廓线上的各点的坐标X 、Y ,最终求出描述凸轮的数组:J=[J1,J2,J3,J4];S=[S1,S2,S3,S4];X=[X1,X2,X3,X4];Y=[Y1,Y2,Y3,Y4];用函数plot (X,,Y )画出凸轮的轮廓曲线;用plot (J,S )函数位移S 的曲线;对于速度曲线V-t 和加速度曲线a-t ,ds ds ds dt dt V dJ dJ dtω=== 在算例中已假设凸轮匀速转动的角速度为1wad/s ,所以ds ds ds ds dt dt V dJ dt dJ dtω====速度 同理可得:dJ ds dt dv a 22==加速度4 程序运行结果图一:余弦速运动规律下的凸轮轮廓曲线图二:余弦加速作用下的S-α曲线5 附程序:1、程序实例说明R=40;E=10;H=50;J1=90;J2=90;J3=90;J4=90;S0=(R^2-E^2)^(1/2);syms J S dJ dS d2J d2S syms定义符号变量,定义后字符变量才能用J11=linspace(0,J1,500);linspace用于产生两点间的N点行矢量。
基于MATLAB软件的凸轮轮廓曲线设计_
基于MATLAB软件的凸轮轮廓曲线设计摘要:以偏置移动从动件盘形凸轮为例,基于MATLAB软件对凸轮轮廓曲线进展了解析法设计.绘制出轮廓曲线。
运行结果说明:在从动件运动规律确定的情况下,利用MATLAB软件以很方便、快捷地得到凸轮的轮廓曲线。
关键词:凸轮机构;凸轮轮廓曲线;MATLAB;解析法前言凸轮轮廓曲线的设计,一般可分为图解法和解析法.利用图解法能比拟方便地绘制出各种平面凸轮的轮廓曲线.但这种方法仅适用于比拟简单的构造,用它对复杂构造进展设计那么比拟困难,而且利用图解法进展构造设计,作图误差较大,对一些精度要求高的构造不能满足设计要求。
解析法可以根据设计要求,通过推导机构中各局部之间的几何关系,建立相应的方程,准确地计算出轮廓线上各点的坐标,然后把凸轮的轮廓曲线准确地绘制出来.但是,当从动件运动规律比拟复杂时,利用解析法获得凸轮的轮廓曲线的工作量比拟大.而MATLAB软件提供了强大的矩阵处理和绘图功能,具有核心函数和工具箱.其编程代码接近数学推导公式,简洁直观,操作简易,人机交互性能好,且可以方便迅速地用三维图形、图像、声音、动画等表达计算结果、拓展思路[1]。
因此,基于MATLAB软件进展凸轮机构的解析法设计,可以解决设计工作量大的问题。
本文基于MATLAB软件进展凸轮轮廓曲线的解析法设计,利用?机械原理?课程的计算机辅助教学,及常用机构的计算机辅助设计.其具体方法为首先准确地计算出轮廓线上各点的坐标,然后运用MATLAB绘制比拟准确的凸轮轮廓曲线。
1 设计的意义与条件1.1意义凸轮机构是由具有曲线轮廓或凹槽的构件,通过高副接触带动从动件实现预期运动规律的一种高副机构,它广泛地应用于各种机械,特别是自动机械、自动控制装置和装配生产线中,是工程实际中用于实现机械化和自动化的一种常用机构。
所以,在凸轮的加工中,准确确实定凸轮的轮廓,这对于保证凸轮所带动从动件的运动规律是尤为重要的。
1.2条件偏置移动从动件盘形凸轮设计条件〔图1〕:凸轮作逆时针方向转动,从动件偏置在凸轮轴心的右边从动件在推程作等加速/等减速运动,在回程作余弦加速度运动基圆半径rb = 40 mm,滚子半径rt = 10mm,推杆偏距e = 15 mm,推程升程h = 50 mm,推程运动角ft = 100度,远休止角fs = 60度回程运动角fh = 90度,推程许用压力角alp = 35度。
用matlab绘制凸轮教程(详细)
下面我们来简单地介绍一下怎么样用matlab来绘制凸轮的工作轮廓线主要涉及解析法首先看一下理论轮廓线的方程式X=(S0+S1)sinθ+ ecosθY= (S0+S1) cosθ+ esinθ式中,e为偏心距,S0=sqrt(r0^2-e^2),r0为偏心圆半径只要在matlab的函数编辑中,输入一下代码即可我已经在程序中写了很详细的备注了,希望大家都能看懂附程序:%先设置凸轮的基本参数,偏心距离e,基圆半径rb,滚轮半径rr,角速度w,推杆上升的最大行程h。
h=30;w=12;rb=50;e=12;rr=10;s0=sqrt(rb*rb-e*e);% 偏心距e=12,基圆rb=50,滚轮半径rr=10,角速度w=12,最大上升h=30q=120*pi/180;%这里我规定推程运动角为120度qs=(120+30)*pi/180;%远休止角为150度q1=(120+30+150)*pi/180;%回程运动角为300度for i=1:1:120 %将120度按1度均分,从而得到各个度数上的轮廓坐标qq(i)=i*pi/180.0;s1=(h*qq(i)/q)-(h/(2*pi))*sin(2*pi*qq(i)/q);v1=w*(h/q)-(w*h/q)*cos(2*pi*qq(i)/q);x(i)=(s0+s1)*sin(qq(i))+e*cos(qq(i));y(i)=(s0+s1)*cos(qq(i))-e*sin(qq(i));%理论轮廓线的坐标a(i)=(s0+s1)*cos(qq(i))-e*sin(qq(i)); %cos(i)b(i)=(s0+s1)*sin(qq(i))-e*cos(qq(i)); %sin(i)xx(i)=x(i)+rr*b(i)/sqrt(a(i)*a(i)+b(i)*b(i));yy(i)=y(i)+rr*a(i)/sqrt(a(i)*a(i)+b(i)*b(i));%实际工作轮廓线的坐标endfor i=121:1:150qq(i)=i*pi/180;s2=h;v2=0;x(i)=(s0+s2)*sin(qq(i))+e*cos(qq(i));y(i)=(s0+s2)*cos(qq(i))-e*sin(qq(i));a(i)=(s0+s2)*cos(qq(i))-e*sin(qq(i));b(i)=(s0+s2)*sin(qq(i))-e*cos(qq(i));xx(i)=x(i)+rr*b(i)/sqrt(a(i)*a(i)+b(i)*b(i));yy(i)=y(i)+rr*a(i)/sqrt(a(i)*a(i)+b(i)*b(i));endfor i=151:1:300qq(i)=i*pi/180;qq1(i)=qq(i)-150*pi/180;s3=h-h*qq1(i)/(q1-qs);v3=-w*h/(q1-qs);x(i)=(s0+s3)*sin(qq(i))+e*cos(qq(i));y(i)=(s0+s3)*cos(qq(i))-e*sin(qq(i));a(i)=(s0+s3)*cos(qq(i))-e*sin(qq(i));b(i)=(s0+s3)*sin(qq(i))-e*cos(qq(i));xx(i)=x(i)+rr*b(i)/sqrt(a(i)*a(i)+b(i)*b(i));yy(i)=y(i)+rr*a(i)/sqrt(a(i)*a(i)+b(i)*b(i));endfor i=301:1:360qq(i)=i*pi/180;x(i)=(s0+0)*sin(qq(i))+e*cos(qq(i));y(i)=(s0+0)*cos(qq(i))-e*sin(qq(i));a(i)=(s0+0)*cos(qq(i))-e*sin(qq(i));b(i)=(s0+0)*sin(qq(i))-e*cos(qq(i));xx(i)=x(i)+rr*b(i)/sqrt(a(i)*a(i)+b(i)*b(i));yy(i)=y(i)+rr*a(i)/sqrt(a(i)*a(i)+b(i)*b(i)); endplot(x,y,'r',xx,yy,'g')%用plot函数绘制曲线text(0,20,'理论轮廓线')%理论轮廓线的坐标位于为(0,20)text(65,40,'实际轮廓线')%实际轮廓线的坐标位于(65,40)hold on附图:。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
凸轮廓线的MATLAB 画法
1 凸轮轮廓方程
*()()*()()*()*()
X OE EF E Cos J So S Sin J Y BD FD So S Cos J E Sin J =+=++=-=+- (X,Y):凸轮轮廓线上的任意一点的坐标。
E :从动件的偏心距。
R :凸轮的基园半径。
J :凸轮的转角。
S :S=f(J)为从动件的方程。
So :22O S R E =-
H 为从动件的最大位移(mm )。
J1、J2、J3、J4为从动件的四个转角的区域。
S1、S2、S3、S4为与J1、J2、J3、J4对应的从动件的运动规律。
2 实例
R=40,E=10,H=50,J1=J2=J3=J4=900。
3 MATLAB 程序设计
用角度值计算,对于给定的J1、J2、J3、J4,把相应的公式代入其中,求出位移S 和轮廓线上的各点的坐标X 、Y ,最终求出描述凸轮的数组:
J=[J1,J2,J3,J4];
S=[S1,S2,S3,S4];
X=[X1,X2,X3,X4];
Y=[Y1,Y2,Y3,Y4];
用函数plot (X,,Y )画出凸轮的轮廓曲线;
用plot (J,S )函数位移S 的曲线;
对于速度曲线V-t 和加速度曲线a-t ,
ds ds ds dt dt V dJ dJ dt
ω=== 在算例中已假设凸轮匀速转动的角速度为1wad/s ,所以
ds ds ds ds dt dt V dJ dt dJ dt
ω====速度 同理可得:
dJ ds dt dv a 22==加速度
4 程序运行结果
图一:余弦速运动规律下的凸轮轮廓曲线
图二:余弦加速作用下的S-α曲线
5 附程序:
1、程序实例说明
R=40;
E=10;
H=50;
J1=90;J2=90;J3=90;J4=90;
S0=(R^2-E^2)^(1/2);
syms J S dJ dS d2J d2S syms定义符号变量,定义后字符变量才能用
J11=linspace(0,J1,500);linspace用于产生两点间的N点行矢量。
S1=(H/2).*(1-cos(pi.*J11/J1));
X1=E.*cos(J11.*pi/180)+(S0+S1).*sin(J11.*pi/180);
Y1=(S0+S1).*cos(J11.*pi/180)-E.*sin(J11.*pi/180);
J22=linspace(J1,J1+J2,300);
S2=J22./J22.*H;
X2=E.*cos(J22.*pi/180)+(S0+H).*sin(J22.*pi/180);
Y2=(S0+H).*cos(J22.*pi/180)-E.*sin(J22.*pi/180);
J33=linspace(J1+J2,J1+J2+J3,300);
S3=H-(H/2).*(1-cos(pi*J33/J3));
X3=E*cos(J33*pi/180)+(S0+S3).*sin(J33*pi/180);
Y3=(S0+S3).*cos(J33*pi/180)-E*sin(J33*pi/180);
J44=linspace(J1+J2+J3,J1+J2+J3+J4,300);
X4=E.*cos(J44*pi/180)+S0*sin(J44*pi/180);
Y4=S0.*cos(J44*pi/180)-E*sin(J44*pi/180);
S4=J44./J44.*0;
X=[X1,X2,X3,X4];
Y=[Y1,Y2,Y3,Y4];
figure(1); figure控制画图窗口,即显示窗口1
plot(X,Y); plot命令打开一个称为图形窗口的窗口,将坐标轴缩扩以适应并描绘数据,将方程坐标转换成图形
hold on;启动图形保持功能,当前坐标轴和图形都将保持,此后绘制的图形都将添加在这个图形之上,并且自动调整坐标轴的围。
t=linspace(0,2*pi,500);
x=R*cos(t);
y=R*sin(t);
plot(x,y);
title('凸轮的轮廓曲线'); 给图加标题
axis([-90,90,-90,90]); axis一般用来设置axes的样式,包括坐标轴围,可读比例等
axis square;生成直方坐标轴
figure(2);
plot(J11,S1);
hold on;
plot(J22,S2);
plot(J33,S3);
plot(J44,S4);
ylabel('S');函数用于在绘图窗口中的纵轴(y轴)方向上显示一个“标签”。
所谓的标签,也就是一个字符串,这个字符串用于表明y轴的意义。
xlabel('α/rad');
title('S-α曲线');
J=[J11,J22,J33,J44];
S=[S1,S2,S3,S4];
dS=diff(S)./diff(J); %通过对位移求导后可得速度。
dJ=J(1:end-1);
d2S=diff(dS)./diff(dJ);%通过对速度求导后可得速度。
d2J=dJ(1:end-1);
2、原程序
R=40;
E=10;
H=50;
J1=90;J2=90;J3=90;J4=90;
S0=(R^2-E^2)^(1/2);
syms J S dJ dS d2J d2S
J11=linspace(0,J1,500);
S1=(H/2).*(1-cos(pi.*J11/J1));
X1=E.*cos(J11.*pi/180)+(S0+S1).*sin(J11.*pi/180); Y1=(S0+S1).*cos(J11.*pi/180)-E.*sin(J11.*pi/180);
J22=linspace(J1,J1+J2,300);
S2=J22./J22.*H;
X2=E.*cos(J22.*pi/180)+(S0+H).*sin(J22.*pi/180); Y2=(S0+H).*cos(J22.*pi/180)-E.*sin(J22.*pi/180);
J33=linspace(J1+J2,J1+J2+J3,300);
S3=H-(H/2).*(1-cos(pi*J33/J3));
X3=E*cos(J33*pi/180)+(S0+S3).*sin(J33*pi/180);
Y3=(S0+S3).*cos(J33*pi/180)-E*sin(J33*pi/180);
J44=linspace(J1+J2+J3,J1+J2+J3+J4,300);
X4=E.*cos(J44*pi/180)+S0*sin(J44*pi/180);
Y4=S0.*cos(J44*pi/180)-E*sin(J44*pi/180);
S4=J44./J44.*0;
X=[X1,X2,X3,X4];
Y=[Y1,Y2,Y3,Y4];
figure(1);
plot(X,Y);
hold on;
t=linspace(0,2*pi,500);
x=R*cos(t);
y=R*sin(t);
plot(x,y);
title('凸轮的轮廓曲线');
axis([-90,90,-90,90]);
axis square;
figure(2);
plot(J11,S1);
hold on;
plot(J22,S2);
plot(J33,S3);
plot(J44,S4);
ylabel('S');
xlabel('α/rad');
title('S-α曲线');
J=[J11,J22,J33,J44];
S=[S1,S2,S3,S4];
dS=diff(S)./diff(J); %通过对位移求导后可得速度。
dJ=J(1:end-1);
d2S=diff(dS)./diff(dJ);%通过对速度求导后可得速度。
d2J=dJ(1:end-1);。