北航机电仿真实验报告(附源代码以及运行结果).docxVIP

北航机电仿真实验报告(附源代码以及运行结果).docx

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

北京航空航天大学机电系统设计仿真实验

机电系统设计仿真实验报告

题目:基于Maple的滑块摆仿真实验程序设计

院系:

班级:

姓名:

学号:

北京航空航天大学机电系统设计仿真实验

1

基于Maple的滑块摆实验程序设计

一、实验目的及意义

通过本实验掌握Maple仿真软件的使用方法,建立系统数学建模的思想,同时对编程能力也是一种提高。

二、实验原理与要求

2.1Maple简介

Maple是一个具有强大符号运算能力、数值计算能力、图形处理能力的交互式计算机代数系统(ComputerAlgebraSystem)。它可以借助键盘和显示器代替原来的笔和纸进行各种科学计算、数学推理、猜想的证明以及智能化文字处理。Maple这个超强数学工具不仅适合数学家、物理学家、工程师,还适合化学家、生物学家和社会学家,总之,它适合于所有需要科学计算的人。

2.2滑块摆实验要求

滑块摆由一置于光滑杆上的质量为m的滑块A、一质量为M的小球B和长度为L,质量不计的刚性杆铰接而成,不计各处摩擦,以过A点的水平面为零势能面,通过Lagrange方程建立系统的运动方程,利用Maple软件画出:

滑块A的位移x随时间t的变化曲线

角度φ随时间t的变化曲线

滑块摆的运动动画

xm

x

m

M

ψ

A

B

L

+

+

三、实验设计及方法

3.1设计原理

设定初始条件为:m=1Kg,M=1Kg,g=9.8,L=2m

φ(0)=0rad,x(0)=0m,φ’(0)=-1.3rad/s,x’(0)=1m/s

如下定义的拉格朗日方程

其中:

3

2

q x(t)和θ(t)的自由度

D 由于摩擦而消耗的能量

Fq 由自由度q产生的力

Ec和Ep 系统的动能和势能

系统有两个自由度,以x和为广义坐标,以过A点的水平面为零势能面,系统的动能和势能分别为

系统的Lagrange方程为

计算出诸导数

带入Lagrange方程,得到系统的运动微分方程

3.2程序设计流程

四、实验结果与分析

4.1滑块摆运动动画

4.2位移随时间变化曲线

4.3角度随时间变化曲线

4

五、实验总结与体会

此次实验成功实现了滑块摆的运动演示,并且绘制出了位移和角度随时间的变化曲线。达到了实验要求。

通过此次实验,我对Maple强大的仿真功能有了新的认识和学习,并对系统进行数学建模的思想有了更为深入的理解,对自己的编程能力也有很大的锻炼。

六、附录

程序源代码:

restart;

with(DEtools):

with(plots):

with(plottools):

m:=1:M:=1:g:=9.8:l:=2:

eq1:=(m+M)*diff(x(t),t$2)+M*l*diff(phi(t),t$2)*cos(phi(t))-M*l*(diff(phi(t),t))^2*sin(

phi(t))=0;

eq2:=M*(l^2)*diff(phi(t),t$2)+M*l*diff(x(t),`$`(t,2))*cos(phi(t))+M*g*l*sin(phi(t))=0;

sys:={eq1,eq2};

Ini:={phi(0)=0,x(0)=0,D(phi)(0)=-1.3,D(x)(0)=1};

var:={phi(t),x(t)}:

val:=array(1..100):forito100doval[i]:=i/10enddo:

S:=dsolve(`union`(sys,Ini),var,type=numeric,method=rkf45,output=val):

eval(S):

forito100do

pos[i]:=S[2,1][i,4];

ang[i]:=S[2,1][i,2];

5

posY[i]:=-cos(ang[i])*l;

posX[i]:=sin(ang[i])*l;

enddo:

minx:=10000:maxx:=-10000:

forito100do

temmin:=`if`(minxpos[i],minx,p

您可能关注的文档

文档评论(0)

liwenfang + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档