文档库 最新最全的文档下载
当前位置:文档库 › 用matlab绘制凸轮教程(详细)

用matlab绘制凸轮教程(详细)

用matlab绘制凸轮教程(详细)
用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=30

q=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));%实际工作轮廓线的坐标

end

for i=121:1:150

qq(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));

end

for i=151:1:300

qq(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)); end

for i=301:1:360

qq(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)); end

plot(x,y,'r',xx,yy,'g')%用plot函数绘制曲线

text(0,20,'理论轮廓线')%理论轮廓线的坐标位于为(0,20)

text(65,40,'实际轮廓线')%实际轮廓线的坐标位于(65,40)

hold on

附图:

滚子摆动从动件凸轮设计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程序

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);

基于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

凸轮运动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语言丰富的图形表现方法,使得数学计算结果可以方便地、多样性地实现了可视化,这是其它语言 所不能比拟的。

matlab语言的绘图功能 不仅能绘制几乎所有的标准图形,而且其表现形式也是丰富多样的。 matlab语言不仅具有高层绘图能力,而且还具有底层绘图能力——句柄 绘图方法。 在面向对象的图形设计基础上,使得用户可以用来开发各专业的专用 图形。

一、二维绘图 (一)plot ——最基本的二维图形指令plot的功能: plot命令自动打开一个图形窗口Figure 用直线连接相邻两数据点来绘制图形 根据图形坐标大小自动缩扩坐标轴,将数据标尺及单位标注自动加到两个坐标轴上,可自定坐标轴,可把x, y 轴用对 数坐标表示

如果已经存在一个图形窗口,plot命令则清除当前图形,绘制新图形 可单窗口单曲线绘图;可单窗口多曲线绘图;可单窗口多曲线分图绘图;可多窗口绘图 可任意设定曲线颜色和线型 可给图形加坐标网线和图形加注功能

plot的调用格式 plot(x) ——缺省自变量绘图格式,x为向量, 以x元素值为纵坐标,以相应元素下标为横坐标绘图 plot(x,y) ——基本格式,以y(x)的函数关系作出直角坐标图,如果y为n×m的矩阵,则以x 为自变量,作出m条曲线 plot(x1,y1,x2,y2) ——多条曲线绘 图格式

plot(x,y,’s’) ——开关格式,开关量字符串s设定曲线颜色和绘图方式,使用颜色字符串的前1~3个字母,如yellow—yel表示等。 或plot(x1,y1,’s1’,x2,y2,’s2’,…)

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 程序书写形式自由,利用其丰富

滚子摆动从动件凸轮设计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、4fmm \n’,rt) fprintf (1,' 起始角度q0= %3、4f mm \n’,q0) fprintf (1,'最大摆动角度 qm =%3、4fmm \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; %推程压力角得角度与弧度表达式

Matlab绘图教程(大量实例PPT)

MATLAB绘图

二维数据曲线图 p plot函数的基本调用格式为: x,y) ) plot( plot(x,y 其中x和y为长度相同的向量,分别用于存储x坐标和y坐标数据。 数据 例1 在0≤x2π区间内,绘制曲线y=2e-0.5x cos(4πx) 1≤区间内绘制曲线205x(4) 程序如下: x=0:pi/100:2*pi; cos(4*pi*x); 0.5*x).*cos (4*pi*x); y=2*exp(--0.5*x).* y=2*exp( x,y)) plot(x,y plot(x y plot( x y)

例2 绘制曲线。 绘制曲线 程序如下: t=0:0.1:2*pi; x=t.sin(3t); x=t*sin(3*t); y=t.*sin(t).*sin(t); plot( x,y);); plot(x,y

数最简单的调用格式是包含个输参数plot函数最简单的调用格式是只包含一个输入参数:p() plot(x) 在这种情况下,当x是实向量时,以该向量元素的下标为横坐标,元素值为纵坐标画出条连续曲线,标为横坐标,元素值为纵坐标画出一条连续曲线,这实际上是绘制折线图。

绘制多根二维曲线 1.plot函数的输入参数是矩阵形式时 数的输参数是矩阵形式时 (1) 当x是向量,y是有一维与x同维的矩阵时,则绘制出多根不同颜色的曲线。曲线条数等于y矩阵的另一维数,x被作为这些曲线共同的横坐标。 (2) 当x,y是同维矩阵时,则以x,y对应列元素为横、 纵坐标分别绘制曲线,曲线条数等于矩阵的列数。纵坐标分别绘制曲线曲线条数等于矩阵的列数

机械原理课程设计matlab程序 凸轮机构

clear h=70;w=2*pi*300/60; %行程h(单位mm),凸轮角转速(rad/s)d1=pi/2; d2=10/180*pi; d3=pi/2; d4=170/180*pi;%算出凸轮的推程角,远休止角,回程角,近休止角(弧度) d=1:1:360; d0=d/180*pi; %定义向量 %推程 for i=1:45 %等加速运动 s(i)=2*h*d0(i)^2/d1^2; v(i)=4*h*w*d0(i)/d1^2; a(i)=4*h*w^2/d1^2; end for i=46:90 %等减速运动 s(i)=h-2*h*(d1-d0(i))^2/d1^2; v(i)=4*h*w*(d1-d0(i))/d1^2; a(i)=-4*h*w^2/d1^2; end for i=91:101 s(i)=s(i-1); v(i)=0; a(i)=0; end %回程 for i=102:146 %等加速运动 s(i)=h-2*h*d0(i-100)^2/d3^2; v(i)=-4*h*w*d0(i-100)/d3^2; a(i)=-4*h*w^2/d3^2; end for i=147:192 %等减速运动 s(i)=2*h*(d3-d0(i-100))^2/d3^2; v(i)=-4*h*w*(d3-d0(i-100))/d3^2; a(i)=4*h*w^2/d3^2; end for i=193:360 s(i)=s(i-1); v(i)=0; a(i)=0; end r0=61;e0=39; s0=sqrt(r0^2-e0^2); for i=1:1:360 x(i)=(s0+s(i))*sin(d0(i))+e0*cos(d0(i));

matlab程序设计例题及答案

matlab程序设计例题及答案 1.编写程序:计算1/3+2/5+3/7+……+10/21 法一: s=0; for i=1:10 s=s+i/(2*i+1); end ss = 法二: sum((1:10)./(3:2:21)) ans = 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 ss = 210 3.画出y=n!的图,阶乘的函数自己编写,禁用MATLAB 自带的阶乘函数。 x=1:10; for i=1:10 try y(i)=y(i-1)*i; catch y(i)=1; end,end plot(x,y) 10612345678910 4.一个数恰好等于它的因子之和,这个数就称为完数。

例如,6的因子为1,2,3,而6=1+2+3,因此6就是一个完数。编程找出20XX以内的所有完数。 g=; for n=2:20XX 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

相关文档
相关文档 最新文档