搜档网
当前位置:搜档网 › 基于MatLab和SolidWorks的凸轮轮廓设计及性能分析

基于MatLab和SolidWorks的凸轮轮廓设计及性能分析

基于MatLab和SolidWorks的凸轮轮廓设计及性能分析
基于MatLab和SolidWorks的凸轮轮廓设计及性能分析

解析法设计凸轮

解析法设计凸轮Ⅱ的实际轮廓曲线代码: Private Sub Command1_Click() Form2.Show '焦点出现form2 End Sub Private Sub Command1_Click() Dim l1, l2, l3 As Single Form2.Picture2.Scale (-0.1, 400)-(7, -400) l1 = -Abs(Form2.Picture1.ScaleHeight / Form2.Picture1.ScaleWidth) l3 = -Abs(Form2.Picture3.ScaleHeight / Form2.Picture3.ScaleWidth) '定义两个图框的高宽比Form2.Picture1.ScaleWidth = 9.5 Form2.Picture3.ScaleWidth = 150 '设定图框的长度 Form2.Picture1.ScaleHeight = l1 * Form2.Picture1.ScaleWidth Form2.Picture3.ScaleHeight = l3 * Form2.Picture3.ScaleWidth Form2.Picture1.ScaleLeft = -0.1 Form2.Picture3.ScaleLeft = -70 Form2.Picture1.ScaleTop = 7 Form2.Picture3.ScaleTop = 63 '规定高度的起点 Dim dt1, dt2, dt3, dt4, dt5, s1, v1, s2, v2, k1, s0 As Single Dim n, m As Integer Dim h, e As Integer Dim dt6, dt7, dt8, dt9, dt10, dt11, x1, y1, x2, y2, r As Single Dim x3, y3, x4, y4, rg '定义各种量 h = Form2.Text3 e = Form2.Text2 k1 = Form2.Text4 s0 = Form2.Text1 rg = Form2.Text5 '试各种变量与文本框相等,用于输入数据 Const pi = 3.1415926 n = 1000 '把每一步定义为360°/1000 dt11 = 0 dt1 = pi / 3 dt2 = pi / 3 dt3 = pi / 2 / n dt4 = 0 dt6 = pi / 18 Form2.Picture3.Line (-70, 0)-(70, 0) Form2.Picture3.Line (0, 70)-(0, -70) Form2.Picture1.Line (0, 0)-(7, 0) Form2.Picture1.Line (0, 6.5)-(0, 0) Form2.Picture2.Line (0, 0)-(7, 0) Form2.Picture2.Line (0, 390)-(0, -390) '画出各个两个图框的坐标轴 s1 = h * ((dt4 / dt1) - Sin(2 * pi * dt4 / dt1) / (2 * pi)) v1 = h * k1 * (1 - Cos(2 * pi * dt4 / dt1)) / dt1 '计算第一个点的速度和推程,选择正弦加速度规

滚子摆动从动件凸轮设计matlab程序

} disp ' ******** 滚子摆动从动件凸轮设计 ********' disp '已知条件:' disp ' 凸轮作顺时针方向转动,从动件做摆动' disp ' 从动件在推程作等加速/等减速运动,在回程作等加速等减速运动' rb =52;rt = 10;qm=15;ft = 60;fs = 10;fh = 60;alp = 35;a=140;l=122;q0=asin(rb/a)*180/pi; fprintf (1,' 基圆半径 rb = % mm \n',rb) fprintf (1,' 滚子半径 rt = % mm \n',rt) fprintf (1,' 起始角度 q0= % mm \n',q0) ; fprintf (1,' 最大摆动角度 qm = % mm \n',qm) fprintf (1,' 推程运动角 ft = % 度 \n',ft) fprintf (1,' 远休止角 fs = % 度 \n',fs) fprintf (1,' 回程运动角 fh = % 度 \n',fh) fprintf (1,' 推程许用压力角 alp = % 度 \n',alp) hd= pi / 180;du = 180 / pi; %角度弧度互换 d1 = ft + fs;d2 = ft + fs + fh; disp ' ' . disp '计算过程和输出结果:' disp ' 1- 计算凸轮理论轮廓的压力角和曲率半径' disp ' 1-1 推程(等加速/等减速运动)' s = zeros(ft);ds = zeros(ft);d2s = zeros(ft);vt=zeros(ft);st1=zeros(ft);at=zeros(ft); at = zeros(ft);atd = zeros(ft);pt = zeros(ft); for f = 1 : ft if f <= ft / 2 s(f)=2*(qm/ft^2)*f^2;st1(f)=s(f);s = s(f); %推程加速方程式 ( ds(f)=(qm/ft^2)*f;vt(f)=ds(f);ds = ds(f); d2s(f)=4*qm/ft;at(f)=d2s(f);d2s = d2s(f); else s(f)=qm-2*qm*(ft-f)^2/ft^2;st1(f)=s(f); s = s(f); %推程减速方程式 ds(f)=4*qm*(ft-f)/ft^2;vt(f)=ds(f);ds = ds(f); d2s(f)=-4 *qm/ft^2;at(f)=d2s(f);d2s = d2s(f);

偏置直动滚子推杆盘形凸轮matlab编程(程序)

机械原理大作业 学院:机械与电子信息学院 授课老师:曾小慧 姓名:张京 学号:547 日期:2015-5-23

目录 1.求轮廓曲线 ○1推程阶段 ○2远休止阶段 ○3回程阶段 ○4近休止阶段 ○5Matlab程序设计 ○6轮廓图形 2.求工作廓线 ○1推程阶段 ○2远休止阶段 ○3回程阶段 ○4近休止阶段 ○5Matlab程序设计 ○6轮廓图形 3.求解最大压力角 ○1压力角公式 ○2MATLAB程序设计 ○3根据MATLAB程序作图可得出其压力角与角度的关系并分析○4失真情况分析 4.附录 Matlab程序

凸轮轮廓 9-14试设计偏置直动滚子推杆盘形凸轮机构的理论轮廓曲线和工作廓线。已知凸轮轴置于推杆轴线右侧,偏距e=20mm ,基圆半径r。=50mm ,滚子半径rr=10mm 。凸轮以等角速度沿顺时针方向回转,在凸轮转过角d1=120o的过程中,推杆按正弦加速度运动规律上升h=50mm ;凸轮继续转过d2=30o时,推杆保持不动;其后,凸轮再回转角度d3=60o时,推杆又按余弦加速度运动规律下降至起始位置;凸轮转过一周的其余角度时,推杆又静止不动。 解: 1.求理论廓线 对于偏置直动滚子推杆盘形凸轮机构,凸轮理论廓线上B 点(即滚子中心)的直角坐标为 ]cos sin )[(0δδe s s x ++-= δδsin cos )(0e s s y -+= (a ) 式中mm mm e r s 826.4520502222 00=-=-= ① 推程阶段 3212001π δ=?= )] 2/()3sin()2/3[()]2/()/2sin()/[(110110111πδπδπδπδδδ-=-=h h s (?? ????=32, 01πδ) ② 远休止阶段 63002π δ=?= 502=s ?? ????=6,02πδ

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个阶段:推程加速阶段、推程减速阶段、远休止阶段、回程阶段、进休止阶段。 根据已知条件,推程阶段为等加/减速,故推程阶段的运动方程为:

滚子摆动从动件凸轮设计matlab程序

disp ' ******** 滚子摆动从动件凸轮设计 ********' disp '已知条件:' disp ' 凸轮作顺时针方向转动,从动件做摆动' disp ' 从动件在推程作等加速/等减速运动,在回程作等加速等减速运动' rb =52;rt = 10;qm=15;ft = 60;fs = 10;fh = 60;alp = 35;a=140;l=122;q0=asin(rb/a)*180/pi; fprintf (1,' 基圆半径 rb = %3.4f mm \n',rb) fprintf (1,' 滚子半径 rt = %3.4f mm \n',rt) fprintf (1,' 起始角度 q0= %3.4f mm \n',q0) fprintf (1,' 最大摆动角度 qm = %3.4f mm \n',qm) fprintf (1,' 推程运动角 ft = %3.4f 度 \n',ft) fprintf (1,' 远休止角 fs = %3.4f 度 \n',fs) fprintf (1,' 回程运动角 fh = %3.4f 度 \n',fh) fprintf (1,' 推程许用压力角 alp = %3.4f 度 \n',alp) hd= pi / 180;du = 180 / pi; %角度弧度互换 d1 = ft + fs;d2 = ft + fs + fh; disp ' ' disp '计算过程和输出结果:' disp ' 1- 计算凸轮理论轮廓的压力角和曲率半径' disp ' 1-1 推程(等加速/等减速运动)' s = zeros(ft);ds = zeros(ft);d2s = zeros(ft);vt=zeros(ft);st1=zeros(ft);at=zeros(ft); at = zeros(ft);atd = zeros(ft);pt = zeros(ft); for f = 1 : ft if f <= ft / 2 s(f)=2*(qm/ft^2)*f^2;st1(f)=s(f);s = s(f); %推程加速方程式 ds(f)=(qm/ft^2)*f;vt(f)=ds(f);ds = ds(f); d2s(f)=4*qm/ft;at(f)=d2s(f);d2s = d2s(f); else s(f)=qm-2*qm*(ft-f)^2/ft^2;st1(f)=s(f); s = s(f); %推程减速方程式 ds(f)=4*qm*(ft-f)/ft^2;vt(f)=ds(f);ds = ds(f); d2s(f)=-4 *qm/ft^2;at(f)=d2s(f);d2s = d2s(f); end at(f)= atan((-l*(1-ds))/(a*sin((s+q0)*hd))-(-1)*cos((s+q0)*hd)/sin((s+q0)*hd));atd(f) = at(f) * du; %推程压力角的角度和弧度表达式 p1= -a*sin(f*hd)+l*sin((s+q0-f)*hd)*(ds-1); p2= a*cos(f*hd)+l*cos((s+q0-f)*hd)*(ds-1); p3=-a*cos(f*hd)+l*(ds-1)^2*cos((s+q0-f)*hd)+l*d2s*sin((s+q0-f)*hd); p4=-a*sin(f*hd)-l*(ds-1)^2*sin((s+q0-f)*hd)+l*ds*cos((s+q0-f)*hd); pt(f)= (p1^2+p2^2)^1.5/(p1*p4-p2*p3) ;p = pt(f);

凸轮廓线解析法

凸轮解析法设计 预备知识:坐标旋转 cos sin 'sin cos 'x x y y αααα-??????= ? ????????? 问题1:对心尖顶盘状凸轮 00''x r s y ????= ? ?+???? 问题2:偏置尖顶盘状凸轮 ''e x y s ????=? ????? 问题3:摆动尖顶盘状凸轮 32020cos()'sin()'l l x l y ????-+????= ? ?+???? 问题4:平底直动盘状凸轮 12120',/'oP x oP v r s y ω????== ? ?+???? 问题5:滚子直动盘状凸轮 包络线方程(,,)0 0f x y f θθ =????=??? 1)222()()0T x X y Y r -+--=(理论廓线任一点(x ,y )为圆心的滚子上必有一点属于工作廓线,即(X ,Y )) 2)() ()0dx dy x X y Y d d ??-+-= T X x r =± ,T Y y r =

练习1:4-10 练习2: (10分)图示凸轮机构中凸轮是一偏心圆盘,该圆盘几何中心为A,半径 e=,图示位置从动杆垂直AO,主动件凸轮转向R=,偏心距40mm 100mm 如图所示。在图中标出从动件位移最大的位置,并计算出最大位移? h=及推程角? Φ=(注意:图形应画在答题纸上,不要直接画在题签上。) 练习3: 4、(10分)一偏置直动尖项从动件盘形凸轮机构如图所示。已知凸轮为一偏心圆盘,圆盘半径30mm R=,几何中心为A,回转中心为O,从动件偏距 OA=。凸轮以等角速度ω逆时针方向转动。当凸轮在图==,10mm OD e 10mm 示位置,即AD CD ⊥时,试求: (1)凸轮的基圆半径 r;(2)图示位置的凸轮机构压力角α; (3)图示位置的凸轮转角?;(4)图示位置的从动件的位移s; (5)该凸轮机构中的从动件偏置方向是否合理,为什么?

基于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编程五次凸轮

附录11、用解析法设计凸轮2的实际轮廓曲线。 1、建立凸轮轮廓的数学模型。 图l 为往复式偏心从动件盘形凸轮的机构运动简图,B 为 理论轮廓线上的任意一点,在图示的直角坐标系中,B 的坐 标,即凸轮理论廓线上的直角坐标参数方程为: X=OE+EF=(S0+S )*Sin (J )+e*Cos (J ) Y=BD – FD=(S0+S )*Cos (J ) – e*Sin (J ) 式中: X ,Y :凸轮理论廓线上的某一点坐标 (mm) e :从动件的偏心距(mm),OC R :凸轮的基圆半径(mm),OA S 0:220E R S -=(mm),CK J :凸轮的转角 S :S =f(J)从动件运动方程,KB BC =CK 十KB =S 0十S 因为工作廓线在法线方向的距离处处相等,且等于滚子半径r ’,故当已知理论廓线上的任意一点B(X,Y)时,只要沿理论廓线在该点的法线的方向取距离为r ’,即得到工作廓线上的相应点B ’(X ’,Y ’).由高等数学可知,理论廓线B 点处的法线n-n 的斜率(与切线斜率互为负倒数)应为 Tan a=-dx/dy=(dx/dJ)/(dx/dJ)/(-dy/dJ)=sina/cosa 注: a 为理论廓线B 点处的法线和X 轴的夹角。 根据(1)(2)两式有 dx/dJ=(ds/dJ-e)sin(J)+(s0+s)cos(J) (3) dy/dJ=(ds/dJ-e)cos(J)-(s0+s)sin(J) (4) 可得 Sin a=(dx/dJ)/((dx/dJ)^2+(dy/dJ)^2)^0.5 (5) Cos a=-(dy/dJ)/((dx/dJ)^2+(dy/dJ)^2)^0.5 (6) 工作廓线上对应的点B ’(x ’,y ’)坐标为: x ’=x-r ’cos a y ’=y- r ’sin a 2、 从动件运行规律:五次多项式运行规律 从动件运动形式为:升—停—降—停型 图1

凸轮曲线设计

凸轮曲线设计 当根据使用要求确定了凸轮机构的类型、基本参数以及从动件运动规律后,即可进行凸轮轮廓曲线的设计。设计方法有几何法和解析法,两者所依据的设计原理基本相同。几何法简便、直观,但作图误差较大,难以获得凸轮轮廓曲线上各点的精确坐标,所以按几何法所得轮廓数据加工的凸轮只能应用于低速或不重要的场合。对于高速凸轮或精确度要求较高的凸轮,必须建立凸轮理论轮廓曲线、实际轮廓曲线以及加工刀具中心轨迹的坐标方程,并精确地计算出凸轮轮廓曲线或刀具运动轨迹上各点的坐标值,以适合在数控机床上加工。 圆柱凸轮的廓线虽属空间曲线,但由于圆柱面可展成平面,所以也可以借用平面盘形凸轮轮廓曲线的设计方法设计圆柱凸轮的展开轮廓。本节分别介绍用几何法和解析法设计凸轮轮廓曲线的原理和步骤。 1 几何法 反转法设计原理: 以尖底偏置直动从动件盘形凸轮机构为例: 凸轮机构工作时,凸轮和从动件都在运动。为了在图纸上画出凸轮轮廓曲线,应当使凸轮与图纸平面相对静止,为此,可采用如下的反转法:使整个机构以角速度(-w)绕O转动,其结果是从动件与凸轮的相对运动并不改变,但凸轮固定不动,机架和从动件一方面以角速度(-w)绕O转动,同时从动件又以原有运动规律相对机架往复运动。根据这种关系,不难求出一系列从动件尖底的位置。由于尖底始终与凸轮轮廓接触,所以反转后尖底的运动轨迹就是凸轮轮廓曲线。 1). 直动从动件盘形凸轮机构 尖底偏置直动从动件盘形凸轮机构: 已知从动件位移线图,凸轮以等角速w顺时针回转,其基圆半径为r0,从动件导路偏距为e,要求绘出此凸轮的轮廓曲线。 运用反转法绘制尖底直动从动件盘形凸轮机构凸轮轮廓曲线的方法和步骤如下: 1) 以r0为半径作基圆,以e为半径作偏距圆,点K为从动件导路线与偏距圆的切点,导路线与基圆的交点B0(C0)便是从动件尖底的初始位置。 2) 将位移线图s-f的推程运动角和回程运动角分别作若干等分(图中各为四等分)。 3) 自OC0开始,沿w的相反方向取推程运动角(1800)、远休止角(300)、回程运动角(1900)、近休止角(600),在基圆上得C4、C5、C9诸点。将推程运动角和回程运动角分成与从动件位移线图对应的等分,得C1、C2、C3

凸轮运动Matlab仿真-Matlab课程设计

Matlab 课程设计 李俊机自091 设计题目一:凸轮机构设计 已知轮廓为圆形的凸轮(圆的半径为100mm、偏心距为20mm),推杆与凸轮运动中心的距离20mm,滚子半径为10mm,请利用matlab仿真出凸轮推杆的运动轨迹和运动特性(速度,加速度),并利用动画演示出相关轨迹和运动特性。 %总程序代码 clc; clf; clear; p=figure('position',[100 100 1200 600]); for i=1:360 %画圆形凸轮 R=100; %圆形凸轮半径 A=0:0.006:2*pi; B=i*pi/180; e=20; %偏心距 a=e*cos(B);

b=e*sin(B); x=R*cos(A)+a; y=R*sin(A)+b; subplot(1,2,1) plot(x,y,'b','LineWidth',3); %填充 fill(x,y,'y') axis([-R-e,R+e,-R-e,R+e+100]); set(gca,'Xlim',[-R-e,R+e]) set(gca,'Ylim',[-R-e,R+e+100]) axis equal; axis manual; axis off; hold on; plot(a,b,'og') plot(e,0,'or') plot(0,0,'or','LineWidth',3)

%画滚子 gcx=0; %滚子中心X坐标r=10; %滚子半径 gcy=sqrt((R+r)^2-a^2)+b; %滚子中心Y坐标 gx=r*cos(A)+gcx; %滚子X坐标 gy=r*sin(A)+gcy; %滚子Y坐标 plot(gx,gy,'b','LineWidth',2); %画其它部分 plot([0 a],[0 b],'k','LineWidth',4) plot([3 3],[170 190],'m','LineWidth',4) plot([-3 -3],[170 190],'m','LineWidth',4) %画顶杆 gc=120; dgx=[0 0]; dgy=[gcy gcy+gc]; plot(dgx,dgy,'LineWidth',4); hold off

matlab程序设计与应用(第二版)第三章部分课后答案

第三章1. (1)A=eye(3) (2)A=100+100*rand(5,6) (3)A=1+sqrt(0.2)*randn(10,50) (4)B=ones(size(A)) (5)A+30*eye(size(A)) (6)B=diag(diag(A)) 2. B=rot90(A) C=rot90(A,-1) 3. B=inv(A) ;A的逆矩阵 C=det(A) ;A的行列式的值 D=A*B E=B*A D=E 因此A与A-1是互逆的。 4. A=[4 2 -1;3 -1 2;12 3 0]; b=[2;10;8]; x=inv(A)*b x = -6.0000 26.6667 27.3333 5. (1) diag(A) ;主对角线元素 ans = 1 1 5 9 triu(A) ;上三角阵

ans = 1 -1 2 3 0 1 -4 2 0 0 5 2 0 0 0 9 tril(A) ;下三角阵 ans = 1 0 0 0 5 1 0 0 3 0 5 0 11 15 0 9 rank(A) ;秩 ans = 4 norm(A) ;范数 ans = 21.3005 cond(A) ;条件数 ans = 11.1739 trace(A) ;迹 ans = 16 (2)略 6. A=[1 1 0.5;1 1 0.25;0.5 0.25 2] A = 1.0000 1.0000 0.5000 1.0000 1.0000 0.2500 0.5000 0.2500 2.0000

[V,D]=eig(A) V = 0.7212 0.4443 0.5315 -0.6863 0.5621 0.4615 -0.0937 -0.6976 0.7103 D = -0.0166 0 0 0 1.4801 0 0 0 2.5365

MATLAB程序设计及经典例题解析3

MATLAB程序设计 用MATLAB语言编写的程序,称为M文件。M文件可以根据调用方式的不同分为两类:命令文件(Script File)和函数文件(Function File)。 例3-1 分别建立命令文件和函数文件,将华氏温度f转换为摄氏温度c。 程序1:首先建立命令文件并以文件名f2c.m存盘。 clear; %清除工作空间中的变量 f=input('Input Fahrenheit temperature:'); c=5*(f-32)/9 然后在MATLAB的命令窗口中输入f2c,将会执行该命令文件,执行情况为: Input Fahrenheit temperature:73 c =22.7778 程序2:首先建立函数文件f2c.m。 function c=f2c(f) c=5*(f-32)/9 然后在MATLAB的命令窗口调用该函数文件。 clear; y=input('Input Fahrenheit temperature:'); x=f2c(y) 输出情况为: Input Fahrenheit temperature:70 c =21.1111 x =21.1111 3.1.2 M文件的建立与打开 M文件是一个文本文件,它可以用任何编辑程序来建立和编辑,而一般常用且最为方便的是使用MATLAB提供的文本编辑器。

1.建立新的M文件 为建立新的M文件,启动MATLAB文本编辑器有3种方法: (1) 菜单操作。从MATLAB主窗口的File菜单中选择New菜单项,再选择M-file命令,屏幕上将出现MATLAB 文本编辑器窗口。 (2) 命令操作。在MATLAB命令窗口输入命令edit,启动MATLAB文本编辑器后,输入M文件的内容并存盘。 (3) 命令按钮操作。单击MATLAB主窗口工具栏上的New M-File命令按钮,启动MATLAB文本编辑器后,输入M文件的内容并存盘。 2.打开已有的M文件 打开已有的M文件,也有3种方法: (1) 菜单操作。从MATLAB主窗口的File菜单中选择Open命令,则屏幕出现Open对话框,在Open对话框中选中所需打开的M文件。在文档窗口可以对打开的M文件进行编辑修改,编辑完成后,将M文件存盘。 (2) 命令操作。在MATLAB命令窗口输入命令:edit 文件名,则打开指定的M文件。 (3) 命令按钮操作。单击MATLAB主窗口工具栏上的Open File命令按钮,再从弹出的对话框中选择所需打开的M文件。 3.2 程序控制结构 3.2.1 顺序结构 1.数据的输入 从键盘输入数据,则可以使用input函数来进行,该函数的调用格式为: A=input(提示信息,选项); 其中提示信息为一个字符串,用于提示用户输入什么样的数据。 如果在input函数调用时采用's'选项,则允许用户输入一个字符串。例如,想输入一个人的姓名,可采用命令: xm=input('What''s your name?','s'); 2.数据的输出 MATLAB提供的命令窗口输出函数主要有disp函数,其调用格式为

凸轮轮廓线的绘制(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班 设计者:陈学坤 学号: 1090410229 设计时间: 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 :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 ,

矩量法matlab程序设计实例

矩量法m atla b程序设计实例: Ha llen 方程求对称振子天线 一、条件与计算目标 已知: 对称振子天线长为L,半径为a ,且天线长度与波长得关系为,,设,半径a=0、0000001,因此波数为。 目标: 用H all en 方程算出半波振子、全波振子以及不同值得对应参数值。 求:(1)电流分布 (2)E 面方向图 (二维),H 面方向图(二维),半波振子空间方向性图(三维) 二、对称振子放置图 图1 半波振子得电流 分布 半波振子天线平行于z 轴放置,在x轴与y轴上得分量都为零,坐标选取方式有两种形式,一般选取图1得空间放置方 式。图1给出了天线得电流分布情况,由图可知,当天线很细时,电流分布近似正弦分布。 三、Ha llen 方程 得解题思路 ()()()()2 1 ' ' ' ' 12,cos sin sin 'z z i z z z z i z k z G z z dz c kz c kz E k z z dz j ωμ'++=-?? 对于中心馈电得偶极子,Hallen 方程为 ()22'1222 ('),'cos sin sin ,2L L i L L V i z G z z dz c kz c kz k z z j η + -- ++= <<+? 脉冲函数展开与点选配,得到 ()1121 ,''cos sin sin ,1,2,,2n n N z i n m m m m z n V I G z z dz c kz c kz k z m N j η +''=++= =???∑? 上式可以写成 矩阵形式为 四、结果与分析 (1)电流分布

matlab程序设计例题及答案

1.编写程序:计算1/3+2/5+3/7+……+10/21 法一: s=0; for i=1:10 s=s+i/(2*i+1); end s s = 4.4096 法二: sum((1:10)./(3:2:21)) ans = 4.4096 2.编写程序:计算1~100中即能被3整除,又能被7整除的所有数之和。 s=0; for i=1:100 if mod(i,3)==0&&mod(i,7)==0 s=s+i; end,end s s = 210 3.画出y=n!的图(1<=n<=10),阶乘的函数自己编写,禁用MATLAB自带的阶乘函数。 x=1:10; for i=1:10 try y(i)=y(i-1)*i; catch y(i)=1; end,end plot(x,y)

12345678910 0.511.522.533.54x 10 6 4.一个数恰好等于它的因子之和,这个数就称为完数。例如,6的因子为1,2,3,而6=1+2+3,因此6就是一个完数。编程找出2000以内的所有完数。 g=[]; for n=2:2000 s=0; for r=1:n-1 if mod(n,r)==0 s=s+r; end end if s==n g=[g n]; end end g g =6 28 496

5.编写一个函数,模拟numel函数的功能,函数中调用size函数。 function y=numelnumel(x) m=size(x); y=m(1)*m(2); numelnumel([1 2 3;4 5 6]) ans = 6 6. 编写一个函数,模拟length函数的功能,函数中调用size函数。 function y=lengthlength(x) m=size(x); y=max(m(1),m(2)); lengthlength([1 2 3;4 5 6]) ans = 3 7.求矩阵rand(5)的所有元素和及各行平均值,各列平均值。 s=rand(5); sum=sum(sum(s)) mean2=mean(s,2) mean1=mean(s) sum = 13.8469

MATLAB程序设计基础

第三章MATLAB程序设计基础 chapter 3: Foundation of MATLAB program design 一、数据及数据文件(Data and Data file) 1. 数据类型:(Data mode)为适应各种不同计算和处理的需求,MATLAB提供了多种数据类型,主要有: 数值数组(Numeric array)— 包括整形(int8,uint8,int16,uint16,int32,uint32)单精度 (signal), 双精度(duble)(MATLAB最常用的变量类型), 稀疏(sparce)数组。按维数分有一维、二维和多维数 组。 Int---Integrate. Uint---Unsigned Integer data 字符数组(Character array):由字符串组成的数组 单元数组(Cell array):用不同类型和大小的数组组成的数组,同 一个元胞数组中各元胞的内容可以不同。 结构数组(Structure array):与单元数组类似,但其数据的组织能 力更强,更富于变化。 Java类(Java class):由JavaAPI或第三方定义的类函数。 函数句柄(Function handle):可以在一个参数列表中传递,并使 用feval运行. 在工作空间浏览器中不同的数据类型有着不同的图标标识。2. 数据文件(Data file) MATLAB支持的各种数据文件(Readable file formats of MATLAB)的主要类型及其存取方法如下述: (1)二进制数据文件:(Binary date file)以.mat为扩展名。是标准的MATLAB数据文件,以二进制编码形式存储。.mat文件可以由MATLAB提供的save和load命令直接存取。 (2)ASCⅡ码数据文件:(ASCⅡcode data file)扩展名为.txt, .dat

凸轮的matlab绘制

附2:习题4-3解答 (1)凸轮的理论廓线方程: 0022 00()sin cos ()cos sin x s s e y s s e s r e ????=++?? =+-?=-式中 (2)从动件在不同阶段的位移方程: 2sin()[0,120]230[120,150][150,300]'0 [300,360] h h s h h π???φπφ???φ??-∈????∈???=? ?-∈????∈???推程阶段远休止阶段回程阶段近休止阶段 (3)求解凸轮的实际廓线: 2222 a r a r 00x =x-r cos y =y-r sin sin cos ()cos sin sin ()sin cos cos dx d dx dy d d dy d dx dy d d dx ds s s e d d dy ds s s e d d θθ ?θ???θ????????????++?? ?? ?=??????? ? ? ?????? ? ?- ?=?????? ? ?? ?????? ?=++-?? ? ?=++-?? 式中而

同样,由于位移s 与从动件所处的运动阶段有关,所以有: 2cos()[0,120]0[120,150]s [150,300]'0 [300,360] h h d h d π??φφφ???φ??-∈????∈???=??∈????∈???推程阶段远休止阶段回程阶段近休止阶段 (4)代入已知条件,并用Matlab 语言编程求解,编程代码如下: disp ' ******** 偏置直动滚子从动件盘形凸轮设计 ********' disp '已知条件:' disp ' 凸轮作逆时针方向转动,从动件偏置在凸轮轴心的右边' disp ' 从动件在推程作摆线运动规律运动,在回程作等速运动规律运动' ro = 50;rr = 10;e = 12;h = 30;ft = 120;fs = 30;fh = 150; fprintf (1,' 基圆半径 ro = %3.4f mm \n',ro) fprintf (1,' 滚子半径 rr = %3.4f mm \n',rr) fprintf (1,' 推杆偏距 e = %3.4f mm \n',e) fprintf (1,' 推程行程 h = %3.4f mm \n',h) fprintf (1,' 推程运动角 ft = %3.4f 度 \n',ft) fprintf (1,' 远休止角 fs = %3.4f 度 \n',fs) fprintf (1,' 回程运动角 fh = %3.4f 度 \n',fh) hd = pi / 180;du = 180 / pi; so = sqrt( ro^2 - e^2 ); d1 = ft + fs;d2 = ft + fs + fh; disp ' ' disp '计算过程和输出结果:' disp ' 1-1 推程(摆线运动规律运动)' s = zeros(ft);ds = zeros(ft);d2s = zeros(ft); for f = 1 : ft s(f) = h * f / ft - h * sin(2 * pi * f / ft) / (2 * pi);s = s(f); ds(f) = h / (ft * hd) - h / (ft * hd) * cos(2 * pi * f / ft);ds = ds(f); d2s(f) = 2 * pi * h / (ft * hd) ^ 2 * sin(2 * pi * f / ft);d2s = d2s(f); end disp ' 1-2 回程(等速运动规律运动)' s = zeros(fh);ds = zeros(fh);d2s = zeros(fh); for f = d1 : d2 s(f) = h - h * (f-150) / fh; s = s(f); ds(f) = - h / (fh * hd);ds = ds(f); d2s(f) = 0;d2s = d2s(f); end disp ' 2- 计算凸轮理论廓线与实际廓线的直角坐标'

matlab程序设计实例

MATLAB 程序设计方法及若干程序实例 樊双喜 (河南大学数学与 信息科学学院开封475004) 摘要本文通过对 MATLAB 程序设计中的若干典型问题做简要的分析和总结,并在此基础上着重讨论了有关算法设计、程序的调试与测试、算法与程序的优化以及循环控制等方面的问题.还通过对一些程序实例做具体解析,来方便读者进行编程训练并掌握一些有关MATLAB 程序设计方面的基本概念、基本方法以及某些问题的处理技巧等.此外,在文章的最后还给出了几个常用数学方法的算法程序, 供读者参考使用.希望能对初学者进行 MATLAB 编程训练提供一些可供参考的材料,并起到一定的指导和激励作用,进而为MATLAB 编程入门打下好的基础. 关键字算法设计;程序调试与测试;程序优化;循环控制 1 算法与程序 1.1 算法与程序的关系算法被称为程序的灵魂,因此在介绍程序之前应先了 解什么是算法.所谓算 法就是对特定问题求解步骤的一种描述.对于一个较复杂的计算或是数据处理的问题,通常是先设计出在理论上可行的算法,即程序的操作步骤,然后再按照算法逐步翻译成相应的程序语言,即计算机可识别的语言. 所谓程序设计,就是使用在计算机上可执行的程序代码来有效的描述用于解决特定问题算法的过程.简单来说,程序就是指令的集合.结构化程序设计由于采用了模块分化与功能分解,自顶向下,即分而治之的方法,因而可将一个较复杂的问题分解为若干子问题,逐步求精.算法是操作的过程,而程序结构和程序流程则是算法的具体体现. 1.2MATLAB 语言的特点 MATLAB 语言简洁紧凑,使用方便灵活,库函数极其丰富,其语法规则与科技人员的思维和书写习惯相近,便于操作.MATLAB 程序书写形式自由,利用其丰富

相关主题