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

上传人:wj 文档编号:2769358 上传时间:2023-05-04 格式:DOCX 页数:7 大小:546.59KB
下载 相关 举报
北航机电仿真实验报告(附源代码以及运行结果).docx_第1页
第1页 / 共7页
北航机电仿真实验报告(附源代码以及运行结果).docx_第2页
第2页 / 共7页
北航机电仿真实验报告(附源代码以及运行结果).docx_第3页
第3页 / 共7页
北航机电仿真实验报告(附源代码以及运行结果).docx_第4页
第4页 / 共7页
北航机电仿真实验报告(附源代码以及运行结果).docx_第5页
第5页 / 共7页
北航机电仿真实验报告(附源代码以及运行结果).docx_第6页
第6页 / 共7页
北航机电仿真实验报告(附源代码以及运行结果).docx_第7页
第7页 / 共7页
亲,该文档总共7页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

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

《北航机电仿真实验报告(附源代码以及运行结果).docx》由会员分享,可在线阅读,更多相关《北航机电仿真实验报告(附源代码以及运行结果).docx(7页珍藏版)》请在冰点文库上搜索。

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

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

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

题目:

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

院系:

班级:

姓名:

学号:

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

一、实验目的及意义

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

二、实验原理与要求

2.1Maple简介

Maple是一个具有强大符号运算能力、数值计算能力、图形处理能力的交互式计算机代数系统(ComputerAlgebraSystem)。

它可以借助键盘和显示器代替原来的笔和纸进行各种科学计算、数学推理、猜想的证明以及智能化文字处理。

Maple这个超强数学工具不仅适合数学家、物理学家、工程师,还适合化学家、生物学家和社会学家,总之,它适合于所有需要科学计算的人。

2.2滑块摆实验要求

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

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

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

3.滑块摆的运动动画

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

如下定义的拉格朗日方程

其中:

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

D 由于摩擦而消耗的能量

Fq 由自由度q产生的力

Ec和Ep 系统的动能和势能

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

系统的Lagrange方程为

计算出诸导数

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

3.2程序设计流程

四、实验结果与分析

4.1滑块摆运动动画

4.2位移随时间变化曲线

4.3角度随时间变化曲线

3

五、实验总结与体会

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

达到了实验要求。

通过此次实验,我对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];

posY[i]:

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

posX[i]:

=sin(ang[i])*l;

enddo:

>minx:

=10000:

maxx:

=-10000:

forito100do

temmin:

=`if`(minx

minx:

=temmin:

temmax:

=`if`(maxx>pos[i],maxx,pos[i]):

maxx:

=temmax:

enddo:

>fortto100do:

wall:

=curve([[maxx,0],[minx,0]]):

pospendx:

=posX[t]+pos[t]:

pendulum:

=disk([pospendx,posY[t]],0.15,color=tan):

mass:

=rectangle([pos[t]-0.18,0.1],[pos[t]+0.18,-0.1],color=violet):

#mass:

=disk([pos[t],0],0.15,color=tan):

lineM_P:

=curve([[pos[t],0],[pospendx,posY[t]]]):

G1[t]:

=display(pendulum,mass,lineM_P,wall):

enddo:

>display([seq(G1[t],t=1..100)],insequence=true,scaling=constrained,axes=none,title=`滑块摆的运动动画`);

>

>

>

>

>

>

>

>

>

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 自然科学 > 生物学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2