简谐振动的合成及其MATLAB实现.docx_第1页
简谐振动的合成及其MATLAB实现.docx_第2页
简谐振动的合成及其MATLAB实现.docx_第3页
简谐振动的合成及其MATLAB实现.docx_第4页
简谐振动的合成及其MATLAB实现.docx_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

简谐运动的合成及其MATLAB实现班级: 理科实验12-3 姓名: 董 林 学号:12090312姓名:张国程 学号:12090314 2013.11.20简谐运动的合成及其MATLAB实现董林(70%)张国程(30%)摘要:MATLAB是一款集符号计算、数值分析、图形可视化、模拟仿真等多种功能为一体的科技应用软件。本文应用MATLAB软件,通过编程计算和数值模拟,用一个程序初步解决了平面简谐振动的合成的问题。将简谐振动合成的函数进行了准确的计算和对图形的模拟和分析比较,加深了对其的掌握和理解。 关键词:MATLAB应用、简谐振动合成、数值模拟、分析比较Abstract : Waveforms and trajectories of simple harmonic vibration at different frequencies at one ,two and three-dimensional coordinates are mapped based on MATLAB, upon which the laws of composition of simple harmonic vibration at different frequencies are explored.Keywords :MATLAB ; simple harmonic vibration at different frequencies; compositionO、引言MATLAB软件介绍MATLAB将矩阵运算、数值分析、图形处理、编程技术结合在一起,为用户提供了一个强有力的科学及工程问题的分析计算和程序设计工具,它还提供了专业水平的符号计算、文字处理、可视化建模仿真和实时控制等功能,是具有全部语言功能和特征的新一代软件开发平台。简谐振动的合成的背景及意义简谐运动的合成问题在大学物理学习中占有不可忽视的作用,教材中通常讲解解析法和转矢量法。但是这两种方法均存在不足之处:由解析法得到的合成图像方程不直观;旋转矢量法虽直观形象,但准确率欠佳,而且完整作图要花费时间。这给学习带来诸多不便,导致学习效果不佳 。如果巧妙地利用MATLAB进行计算机进行辅助学习,问题就会迎刃而解 。1简谐振动合成的理论分析11同方向同频率的简谐振动的合成如图所示,设有两个独立的同频率的简谐振动,位移为x1 = A1cos(t + 1),x2 = A2cos(t + 2)。由于两个振动在同一直线上,因此合振动为x = x1 + x2 = A1cos(t + 1) + A2cos(t + 2) = (A1cos1 + A2cos2)cost - (A1sin1 + A2sin2)sint,令Acos = A1cos1 + A2cos2,Asin = A1sin1 + A2sin2, 则x = Acoscost Asinsint =Acos(t + ),12同方向不同频率的简谐振动的合成设一个质点同时参与两个同一直线不同频率的简谐振动,角频率分别为1和2,为了突出频率不同所产生的效果,设分振动的振幅和初相位都相同,因此两个分振动方程为x1= Acos(1t +1),x2=Acos(2t + 2)利用和差化积公式可得合振动为x=x1+x2=2Acos(1 -22t+1-22)cos(1+22+1+22当两个分振动的频率比较大而差异比较小时:|2 - 1| 2 + 1,方程就表示了振幅按2Acos(2 - 1)t/2变化的角频率为(2 + 1)/2的“近似”的简谐振动。13相互垂直同频率的两简谐振动的合成设两个同频率的简谐振动分别沿x轴和y轴进行,位移为x = A1cos(t + 1),y = A2cos(t + 2),这就是质点运动的参数方程。将余弦函数展开得x/A1 = costcos1 - sintsin1,y/A2 = costcos2 - sintsin2 xsin2/A1 - ysin1/A2 = costsin(2 - 1)xcos2/A1 - ycos1/A2 = sintsin(2 - 1)质点的轨迹方程两个互相垂直的同频率简谐振动的合成一般是椭圆,其形状和大小以及两个主轴的方向由振幅A1和A2以及初相差2 - 1决定。14同频率三维简谐运动合成 设一个质点沿x轴、y轴z轴的分运动都是简谐运动,而且频率相同。三分运动的表达式分别为x=A1cos(t+1)y=A2cos(t+2)z=A3cos(t+3)上三式联立,消去变量t 得x2/A12+y2/A22+z2/A32-xycos(2-1)/A1A2-yzcos(3-2)/A2A3-zxcos(1-3)/A1A3=1/2sin2 (2-1)+sin2 (3-2)+sin2 (1-3) 不同频率的三维简谐振动的简谐振动的合成比较复杂,很难求出其轨迹方程。2程序代码及实例21设计思路创造界面,控制参数输入进入子函数区,进行相应参数的计算函数图像输出函数形式的输出和比较判断degree判断w返回通过维数判断分类22程序代码%该程序用于处理大学物理中简谐振动合成的相关问题,编写人:董林 学号:12090312 班级:理科实验12-3 时间:2013.11.21 % % % % % % %该程序能够处理简谐振动的两个(一、维)和三个(三维)合成问题,进行原函数及合成表函数的达式的输出和比较及函数图像的输出和比较,将繁琐的分散的分类处理用一个函数完成% %有助于加强MATLAB软件在物理学中的应用和简谐振动合成部分知识的掌握和理解%disp(简谐运动的合成的函数与图像)%准备工作,取消参数赋值,清屏%clear;clc;%化参数输入表格%设计输入赋值函数%degree=input(please input the degree 1/2/3:);t=-4*pi:0.1:4*pi;%设定变量范围% %定义全局变量global A1 w1 fai1 A2 w2 fai2 A13 w13 fai13 A23 w23 fai23 A33 w33 fai33;%三维处理% %设置参数输入界面if degree=3 %判断,是则进入三维函数处理部分% %options=振动振幅A1,角速度w1,振动初相位fai1,. 振动振幅A2,竖角速度w2,振动初相位fai2,振动振幅A1,角速度w1,振动初相位fai1,;topic=空间简谐振动振动合成;lines=1;def=0,0,0,0,0,0,0,0,0;%初始显示值h=inputdlg(options,topic,lines,def);%参数输入控制%A13=eval(h1);w13=eval(h2);fai13=eval(h3)*pi/180;A23=eval(h4);w23=eval(h5);fai23=eval(h6)*pi/180; A33=eval(h4);w33=eval(h5);fai33=eval(h6)*pi/180; %参变量和函数的计算% x=A13*cos(w13*t+fai13); y=A23*cos(w23*t+fai23); z=A33*cos(w33*t+fai33); subplot(2,3,1); plot(x); title(函数1); subplot(2,3,2); plot(y); title(函数2); subplot(2,3,3); plot(z); title(函数3); subplot(2,3,4 5 6); plot3(x,y,z); title(合成函数); % % %图像输出 disp(函数1:); if fai13=0 disp(x1=,int2str(A13),*cos(,int2str(w13),*t); else disp(x1=,int2str(A13),*cos(,int2str(w13),*t+,int2str(fai13),*)); end disp(函数2:); if fai23=0 disp(x2=,int2str(A23),*cos(,int2str(w23),*t); else disp(x2=,int2str(A23),*cos(,int2str(w23),*t+,int2str(fai23),*)); end if fai33=0 disp(x2=,int2str(A33),*cos(,int2str(w33),*t); else disp(x2=,int2str(A33),*cos(,int2str(w33),*t+,int2str(fai33),*)); end if w1=w2 disp(相互垂直二维同频率简谐振动合成的曲线轨迹方程); disp(x2/A12+y2/A22+z2/A32-xycos(2-1)/A1A2-yzcos(3-2)/A2A3-zxcos(1-3)/A1A3=1/2sin2 (2-1)+sin2 (3-2)+sin2 (1-3); else disp(相互垂直二维不同频率简谐振动合成的曲线轨迹方程); disp(轨迹复杂,无确定轨迹方程); end %三维处理全部结束 % % % %一维处理部分elseif degree=1 %参数输入界面options=振动振幅A1,角速度w1,振动初相位fai1,. 振动振幅A2,竖角速度w2,振动初相位fai2;topic=平面简谐振动振动合成;lines=1;def=0,0,0,0,0,0;%初始显示值h=inputdlg(options,topic,lines,def);%参数输入控制及相应转换%A1=eval(h1);w1=eval(h2);fai1=eval(h3)*pi/180;A2=eval(h4);w2=eval(h5);fai2=eval(h6)*pi/180;t=-4*pi:0.1:4*pi;%设定变量范围%一维即同轴简谐振动的合成% % %图像输出与标注 x1=A1*cos(w1*t+fai1); x2=A2*cos(w2*t+fai2); subplot(2,2,1); plot(x1); title(函数1); subplot(2,2,2); plot(x2); title(函数2); subplot(2,2,3 4); plot(x1+x2); title(合成函数); % %进行函数输出 % % %判断一维振动类型% % %一维同频率 % if w1=w2 disp(一维同频率的简谐运动的合成); disp(函数1:); if fai1=0 disp(x1=,int2str(A1),*cos(,int2str(w1),*t); else disp(x1=,int2str(A1),*cos(,int2str(w1),*t+,int2str(fai1),*)); end disp(函数2:); if fai2=0 disp(x2=,int2str(A2),*cos(,int2str(w2),*t); else disp(x2=,int2str(A2),*cos(,int2str(w2),*t+,int2str(fai2),*)); end % %计算合成函数的参数 % A=sqrt(A1*A1+A2*A2+2*cos(fai2-fai1); fai=atan(A1*sin(fai1)+A2*sin(fai2)/(A1*cos(fai1)+A2*cos(fai2); disp(合成函数:); if fai1=0 disp(x=,int2str(A),*cos(,int2str(w1),*t)); else disp(x=,int2str(A),*cos(,int2str(w1),*t+,int2str(fai1),*)); end %图形控制输出 % %一维不同频率 % else disp(一维不同频率的简谐运动的合成); disp(函数1:); if fai1=0 disp(x1=,int2str(A1),*cos(,int2str(w1),*t)); else disp(x1=,int2str(A1),*cos(,int2str(w1),*t+,int2str(fai1),*)); end disp(函数2:); if fai2=0 disp(x2=,int2str(A2),*cos(,int2str(w2),*t); else disp(x2=,int2str(A2),*cos(,int2str(w2),*t+,int2str(fai2),*)); end % % %5 %计算合成函数的参数 % w11=(w1-w2)/2; w22=(w1+w2)/2; fai11=(fai1-fai2)/2; fai22=(fai1+fai2)/2; % disp(合成函数:); if fai22=0 disp(x=,int2str(A1),*cos(,int2str(w11),*t+,int2str(fai11),pi)cos(,int2str(w22),*t); else disp(x=,int2str(A1),*cos(,int2str(w11),*t+,int2str(fai11),pi)*cos(,int2str(w22),*t+,int2str(fai22),*); end % % % %解释说明,应用公式x=x1+x2=cos(w1-w2)/2+(fai1+fai2)/2)cos(w1+w2)/2+(fai1+fai2)/2) % end % %相互垂直的简谐振动的合成 % % % else % % % % %进入二维处理部分% % options=振动振幅A1,角速度w1,振动初相位fai1,. 振动振幅A2,竖角速度w2,振动初相位fai2;topic=平面简谐振动振动合成;lines=1;def=0,0,0,0,0,0;%初始显示值h=inputdlg(options,topic,lines,def);%参数输入控制%A1=eval(h1);w1=eval(h2);fai1=eval(h3)*pi/180;A2=eval(h4);w2=eval(h5);fai2=eval(h6)*pi/180;t=-4*pi:0.1:4*pi;%设定变量范围 % % %函数的计算与图像输出 % % x1=A1*cos(w1*t+fai1); x2=A2*cos(w2*t+fai2); subplot(2,2,1); plot(x1); title(函数1); subplot(2,2,2); plot(x2); title(函数2); subplot(2,2,3 4); plot(x1,x2); title(合成函数); disp(相互垂直的简谐运动的合成); disp(函数1:); if fai1=0 disp(x=,int2str(A1),*cos(,int2str(w1),*t); else disp(x=,int2str(A1),*

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论