Matlab实现振动弹簧的实时动画.doc
《Matlab实现振动弹簧的实时动画.doc》由会员分享,可在线阅读,更多相关《Matlab实现振动弹簧的实时动画.doc(26页珍藏版)》请在咨信网上搜索。
1、Matlab实现振动弹簧的实时动画摘要:Matlab是当前应用最广泛的科学与工程计算软件之一,本次课设将Matlab引入到图形学动画设计.本次课设主要可分为两大步骤:一、应用Matlab对弹簧振子进行建模;二、应用Matlab实现弹簧振动的实时动画。其中建模部分包括对天花板的建模、对连接直线的建模、对弹簧的建模、对振动小球的建模。模拟弹簧振动的过程主要包括:更新小球和弹簧的位置。 更新水平线的位置和长度。实时地画出弹簧高度与时间的关系曲线。 关键字:Matlab, 振动弹簧,建模,实时动画 目录1 绪论 . 1 1.1 matlab基本功能介绍 . 1 1.2 matlab的动画制作 . 22
2、 振动弹簧的实时动画 . 42.1 程序功能分析. 4 2.2 弹簧振子的matlab建模 . 6 2.2.1 天花板的建模 . 72.2.2直线的建模 . 82.2.3弹簧的建模 . 92.2.4球的建模 . 102.2.5 利用set函数返回句柄值改变来当前坐标轴 . 112.3 弹簧振动的实时动画. 13 2.3.1弹簧振子简谐振动的物理模型 . 132.3.2 利用matlab实现弹簧的实时振动. 142.4 调试结果. 193 设计总结 . 23参考文献 . 24 致谢 . 25 附录-弹簧阻尼振动程序 . 26 2.1 程序功能分析以下是利用matlab实现振动弹簧的事实动画的程序
3、。rectangle(position,12,8.5,2,0.3,FaceColor,0.5,0.3,0.4); axis(0,15,-1,10); %画顶板 hold on plot(13,13,7,8.5,r,linewidth,2); %画直线 y=2:.2:7; M=length(y); x=12+mod(1:M,2)*2; x(1)=13; x(end-3:end)=13; D=plot(x,y); %弹簧 C=0:.1:2*pi;r=0.35; t1=r*sin(C); F1=fill(13+r*cos(C),2+t1,r); % 球 set(gca,ytick,0:2:9); s
4、et(gca,yticklabels,num2str(-1:3); plot(0,15,3.3,3.3,black); H1=plot(0,13,3.3,3.3,y); % 句柄黄线 Q=plot(0,3.8,color,r); % 运动曲线; td=;yd=; T=0; 5text(2,9,理想中的弹簧振子简谐振动,fontsize,16); set(gcf,doublebuffer,on); while T12; pause(0.2); Dy=(3/2-1/2*sin(pi*T)*1/2; Y=-(y-2)*Dy+7; Yf=Y(end)+t1; td=td,T;yd=yd,Y(end);
5、 set(D,ydata,Y); set(F1,ydata,Yf,facecolor,rand(1,3); set(H1,xdata,T,13,ydata,Y(end),Y(end); set(Q,xdata,td,ydata,yd) ; T=T+0.1; end 程序功能介绍:模拟弹簧振子简谐运动的过程,同时画出相应圆球质心随时间变化的曲线。 上面的程序为模拟弹簧振子的简谐振动,若要模拟弹簧阻尼振动过程的程序,可见附录。 2.2 弹簧振子的matlab建模图2-1 弹簧振子建模图上图所示的图形即为在matlab环境下的弹簧振子的建模图形。 实现程序为: rectangle(position,
6、12,8.5,2,0.3,FaceColor,0.5,0.3,0.4); axis(0,15,-1,10); %画顶板 hold on plot(13,13,7,8.5,r,linewidth,2); %画直线 y=2:.2:7; M=length(y); x=12+mod(1:M,2)*2; x(1)=13; x(end-3:end)=13; D=plot(x,y); %弹簧 C=0:.1:2*pi;r=0.35; t1=r*sin(C); F1=fill(13+r*cos(C),2+t1,r); % 球 set(gca,ytick,0:2:9); set(gca,yticklabels,n
7、um2str(-1:3); plot(0,15,3.3,3.3,black); 下面分步介绍它的建模过程。 2.2.1 天花板的建模2-2 天花板建模图如上图所示,为在matlab环境下天花板的建模图形。 实现程序为:rectangle(position,12,8.5,2,0.3,FaceColor,0.5,0.3,0.4); 程序功能介绍:rectangle的功能就是画一个矩形,12,8.5为矩形的一个点,他的长和宽分别为2、0.3。FaceColor,0.5,0.3,0.4是用来设置它的颜色的。 2.2.2直线的建模2-3 直线的建模图如上图所示,为在matlab下的直线建模图形。 实现程
8、序为: plot(13,13,7,8.5,r,linewidth,2) 程序功能介绍:plot是一个常用的画图函数,13,13,7,8.5确定的直线的位置,r设置直线颜色为红色。linewidth,2,直线的粗细设置。 2.2.3弹簧的建模2-4 弹簧的建模图 如上图所示,为在matlab环境下弹簧的建模图形。 实现程序为:y=2:.2:7; M=length(y); x=12+mod(1:M,2)*2; x(1)=13; x(end-3:end)=13; D=plot(x,y); 程序功能介绍:y=2:.2:7,2到7之间0.2为步长生成向量。M=length(y),M=y向量的长度。len
9、gth为求向量长度的函数。M=26。x=12+mod(1:M,2)*2,生成14 12这样的重复数据26个。 mod(x,y)为x模除y。mod(1:26,2) ans=1 0 1 0等26个。x(1)=13,令初始值为13。 x(end-3:end)=13,令最后4个数为13。D=plot(x,y),画出该图。 Plot函数介绍:plot(X,Y) 绘制所有由Xn和Yn数据对定义的曲线。如果仅Xn或者仅Yn是一个矩阵,plot函数绘制向量对矩阵的行或者列的曲线图,取决于是向量的行还是列的尺寸与矩阵相匹配。 2.2.4球的建模2-5 球的建模图 如上图所示,为在matlab环境下球的建模图形。
10、 实现程序为: C=0:.1:2*pi;r=0.35; t1=r*sin(C); F1=fill(13+r*cos(C),2+t1,r); 程序功能介绍:C=0:.1:2*pi;r=0.35,0到2之间0.1步长生成向量,r=0.35. t1=r*sin(C),返回r乘以C中每个元素的正弦值的值。F1=fill(13+r*cos(C),2+t1,r),画出多边形小球。Fill函数介绍;函数fill用于创建彩色的多边形。格式; fill(X,Y,C) 从X和Y中的数据出发创建填充的多边形,顶点颜色为C。C十一哥向量或者矩阵,它是指向色图的指标。如果C是一个行向量,则length(C)必须等于si
11、ze(X,2)和size(Y,2);如果C是一个列向量,则length(C)必须等于size(X, 1)和size(Y,1)。如果有必要,fill将通过最后一个顶点与第一个顶点连接来封闭多边形。 2.2.5 利用set函数返回当前坐标轴 通过上几步的建模我们可以得到如下所示的图形2-6 未重新设置轴建模图 为下一步实时动画做好准备我们需要重新设定一下坐标。在matlab中可以利用set函数返回句柄值改变来当前坐标轴。得到如下所示的图形。 2-7 设置后建模图 2-8 初步设置轴的建模图 实现程序为: set(gca,ytick,0:2:9); set(gca,yticklabels,num2s
12、tr(-1:3); plot(0,15,3.3,3.3,black); 程序功能介绍:gca未返回当前axes对象的句柄值,ytick为控制Y轴坐标刻度记号的位置,即控制坐标轴上刻度记号的位置以及每隔多少值会到下一个刻度记号的位置,同时还需配合yticklabel属性来调整。set(gca,ytick,0:2:9);将坐标轴从0开始以2为间隔到9设置Y坐标。而下一句程序set(gca,yticklabels,num2str(-1:3)就是通过yticklabel来改变Y轴属性,即由0、2、4、6、8变为-1、0、1、2、3。上面是对Y轴的设置。对平衡位置轴的设置为:plot(0,15,3.3,
13、3.3,black),plot为画直线的常用函数0,15,3.3,3.3定义了平衡位置轴的位置。black,定义平衡位置轴的颜色为黑。 2.3 弹簧振动的实时动画2.3.1弹簧振子简谐振动的物理模型弹簧振子简谐振动的物理模型弹簧振子简谐振动的物理模型弹簧振子简谐振动的物理模型 图2-9 弹簧振子的简谐振动 现在我们来定量地分析上图所示的弹簧振子的小振幅自由振动。 设弹簧的劲度系数为k,小球的质量为m,忽略各种阻力,取平衡位置O为坐标原点,x坐标轴指向右为正。小球位置坐标为x时,所受弹性回复力Fx可表示为 : Fx=-kx (1.1) 根据牛顿定律,小球的M的运动微分方程为:mxkx?=? 通常
14、将上式改写成 20xx?+= (1.2) 其中2/km= (1.3) 微分方程(1.2)的通解为 cos()xAt=+ (1.4) 14式(1.4)就是小球M的运动学方程。式中A和是两个积分常数,他们的物理意义和确定方法将在后面讨论。将式(1.4)对时间求一阶和二阶导数,得到小球运动速度和加速度 sin()vxAt=?+ (1.5) 2cos()axAt?=?+ (1.6) 因cos()sin(/2)tt+=+,故令/2=+,则解(1.4)还可以写成 sin()xAt=+ (1.7) 即微分方程(1.4)的解即可写成遇险函数的形式,也可以写成正弦函数形式。 从解(1.4)看出,弹簧振子运动时,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Matlab 实现 振动 弹簧 实时 动画
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【快乐****生活】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【快乐****生活】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。