单摆模型MATLAB程序
MATLAB仿真教程

MATLAB仿真教程一、MATLAB的基本操作1.启动MATLAB:在桌面上双击MATLAB图标,即可启动MATLAB软件。
3.基本运算:在命令窗口中输入基本运算表达式,如加减乘除,然后按下回车键即可得到结果。
4.变量的定义和操作:在MATLAB中,可以定义变量,并对其进行各种运算操作。
例如,定义一个变量a,并对其进行加法运算,如a=2+35.矩阵操作:MATLAB中的矩阵操作非常方便。
可以使用矩阵运算符进行矩阵的相加、相乘等操作。
6. 绘图功能:MATLAB提供了丰富的绘图功能,可以绘制曲线、散点图、三维图等。
通过plot函数可以绘制曲线,scatter函数绘制散点图,surf函数绘制三维图。
二、MATLAB的仿真研究1.数值计算:MATLAB可以进行各种数值计算,如解线性方程组、求解微分方程、进行最优化等。
通过编写相应的代码,调用MATLAB提供的函数库,可以实现这些仿真研究。
2.信号处理:MATLAB提供了丰富的信号处理工具箱,可以进行信号的滤波、谱分析、频谱绘制等操作。
通过调用相应的函数库,可以实现这些功能。
3.控制系统仿真:MATLAB提供了强大的控制系统工具箱,可以进行控制系统的建模、仿真和优化。
可以使用MATLAB的控制系统工具箱进行系统的响应、稳定性分析和控制器设计。
4.图像处理与计算机视觉:MATLAB可以进行基本的图像处理操作,如图像的灰度化、二值化、滤波、边缘检测等。
通过调用MATLAB的计算机视觉工具箱,还可以进行目标检测、图像识别等高级图像处理操作。
5.多体动力学仿真:MATLAB提供了多体动力学仿真工具箱,可以进行机械系统的建模、动力学仿真和分析。
可以通过编写相应的代码,定义机械系统的运动方程和控制方程,实现仿真研究。
总结:MATLAB是一种强大的数值计算和编程软件,广泛应用于科学、工程、金融等领域。
本教程介绍了MATLAB的基本操作以及如何进行仿真研究。
通过学习MATLAB,可以提高数值计算和仿真研究的效率,为科研工作提供有力的支持。
MATLAB计算单摆的周期和动画

单摆振动的周期和运动规律[问题] 单摆振动的周期和运动规律(1)求单摆的周期与角振幅的关系。
(2)演示单摆的振动。
[数学模型](1)如A5.1图所示,设摆锤质量为m ,角位置为θ,摆锤的运动方程为22d sin d ml mg tθθ=-, 即 22d sin d g t lθθ=-, (5.1.1) 在小角度的情况下,sin θ ≈ θ,可得 2202d 0d tθωθ+=, (5.1.2)其中0ω=,ω0为圆频率。
可知:单摆在小角度时作简谐振动,小角度周期为002π2T ω==。
(5.1.3) 可见:在小角振动的情况下,单摆的周期与角振幅无关,这称为单摆的等时性。
摆锤的角速度为ω = d θ/d t ,因此22d d d d d d d d d d t t t θωωθωωθθ===, 由(5.1.1)式可得d sin d g lωωθθ=-, 积分得21cos 2g C lωθ=+, 当t = 0时,ω = 0,θ = θm ,可得C = -g cos θm /l 。
因此角速度大小为d d t θω==。
(5.1.4) 注意:角速度是单位时间内角度的变化率d θ/d t ,圆频率是简谐运动中2π时间内周期性运动的次数2π/T ,它们常用字母ω表示,单位也相同,但意义不同。
单摆的周期为m g A5.1图m m00πT T==⎰。
(5.1.5)对于任何角振幅θm,通过数值积分和符号积都能计算周期。
利用半角公式可得m1πT Tθ=⎰设msin2kθ=,(5.1.6) 并设k sin x = sin(θ/2),因此1cos d cos d22k x xθθ=,可得π/2π/2000012ππT T T==⎰⎰,即π/22πT T=⎰(5.1.7) 这是椭圆积分。
第一类完全椭圆积分定义为π/2K()k=⎰(5.1.8) 周期为2K()πT T k=。
(5.1.9)[算法]对于任何一个角振幅θm,利用(5.1.5)式,通过MA TLAB数值积分指令quadl和符号积分指令int都可计算单摆的周期。
可变摆长的单摆运动的MATLAB仿真

成八种情况 。
中图分 类号 : O 4 - 3 9
单 摆运 动是 一 个 经 典 的物 理模 型 , 在 物 理 学 中有着 重要 的作 用 。有 文献研 究 了双钉 子 的小 角 度 下理 想单 摆 运 动 l 1 ] , 也 有 文 献 通 过 研 究 双 绞线 的大角 度摆 运 动 来研 究 混沌 现 象 [ 2 ] , 对 于小 摆 角 单摆 问题 的研 究 已经很 成 熟 E 引, 但 极 少地 考 虑 有 钉 子大 角度 下单 摆运 动 的整个 物理 过程 。
卢一
一
, , ;
[ O , 0 , 0 , O ] ; F t =[ V o , , , v o ]
0E [ 一 0 o , 0 ) 一 ∈ [ O , ) 一 妒E [ , O ) 一0 ∈[ O , 一0 o )
一
循 环
R一[ L 1 , L 2 , 0 , L 2 , L 1 ] ;
动过 程交 互式 可视 化仿 真 。这 种方 法可 以加 深对 物理理 论 的直 观认 识 。
收 稿 日期 :2 0 1 2 — 0 7 — 0 8
基金项 目: 西南科技大学博士基金 ( 1 0 z x 7 1 3 9 ) ; 西南科技大学 2 0 1 2 年教改项 目
*通 讯 联 系 人
用 长度 为 L 的细绳 一端拴 着 质 量为 的摆
摆球摆动运动 的理论分析
球, 另一 端 固定在 点 O1 处。 在 点 正下 方距 离 D
—
L 一 L 。 的点 0 2 处有 一钉 子 。 是 初始 位置 时与
01 竖 直方 向 的夹 角 , 在 摆 球 自 由下 落 的 过 程
Ⅲ一 1
matlab单摆振动的课程设计

matlab单摆振动的课程设计一、课程目标知识目标:1. 理解单摆振动的基本原理,掌握单摆的动力学方程及其求解方法;2. 学习运用MATLAB软件进行单摆振动模拟,理解数值解的基本概念;3. 掌握单摆周期与摆长、重力加速度之间的关系,并能够运用MATLAB进行数据分析。
技能目标:1. 能够运用MATLAB软件构建单摆振动模型,进行数值模拟和结果分析;2. 通过实际操作,培养解决物理问题的编程能力和科学计算能力;3. 能够运用MATLAB绘图功能,直观展示单摆振动过程,分析振动特性。
情感态度价值观目标:1. 培养学生对物理现象的好奇心,激发探索自然规律的兴趣;2. 培养学生严谨的科学态度,强调理论与实践相结合的重要性;3. 培养团队协作意识,让学生在合作中共同解决问题,提高沟通与表达能力。
课程性质:本课程为物理实验课程,旨在通过MATLAB软件辅助教学,帮助学生深入理解单摆振动现象。
学生特点:针对高年级学生,已具备一定的物理基础和计算机操作能力,能够较快掌握MATLAB软件的使用。
教学要求:结合课程特点和学生实际情况,注重理论与实践相结合,强调动手实践和问题解决能力的培养。
在教学过程中,将目标分解为具体的学习成果,以便进行教学设计和评估。
二、教学内容1. 理论知识:- 单摆振动的基本原理;- 单摆动力学方程及其解析解;- 单摆周期与摆长、重力加速度之间的关系。
2. MATLAB软件操作:- MATLAB基本操作与命令;- 使用MATLAB进行数值计算和绘图;- 构建单摆振动模型并进行数值模拟。
3. 教学大纲:- 第一阶段:单摆振动基本原理学习,讲解动力学方程及其解析解;- 第二阶段:MATLAB软件操作教学,学习基本命令和绘图功能;- 第三阶段:结合理论,运用MATLAB构建单摆振动模型,进行数值模拟;- 第四阶段:数据分析,探讨单摆周期与摆长、重力加速度之间的关系。
4. 教学内容安排与进度:- 理论知识:2课时;- MATLAB软件操作:2课时;- 模型构建与数值模拟:3课时;- 数据分析:1课时。
基于MATLAB单摆运动的数值分析

Journal of Chizhou University2019年6月第33卷第3期Jun.2019Vol.33No.3收稿日期:2018-11-07基金项目:教育部产学合作协同育人项目(201802040052);黄山学院教学研究项目(2016JXYJ19);黄山学院精品课程项目(2017JPKF05);安徽省教学研究项目(2018jyxm1244)。
作者简介:马堃(1983—),男,回族,安徽六安人,黄山学院信息工程学院副教授,博士,主要研究方向为从事大学物理和原子与分子物理。
基于MATLAB 单摆运动的数值分析马堃(黄山学院信息工程学院,安徽黄山245041)[摘要]基于单摆动力学微分方程的严格精确解,分析了线性单摆和非线性单摆在有无阻尼振动时能量和角位移随着时间的演化规律,讨论了不同初始角位移对单摆周期的影响。
结果表明,对于线性单摆,无阻尼时作等周期等振幅摆动,有阻尼时,振幅逐渐衰减;非线性单摆的初始角位移越大,单摆的周期越大,相同初始角位移下,无阻尼摆的周期比有阻尼的大。
数值计算得到的非线性摆周期与文献中积分解的结果一致,误差均在0.3%以内。
[关键词]单摆;阻尼;非线性;能量;周期[中图分类号]O322[文献标识码]A[文章编号]1674-1102(2019)03-0037-03单摆作为简谐振动的一种物理模型,几乎在每一本大学物理教材中都会介绍[1-2]。
但由于其动力学方程的非线性特点,在教学过程中往往只研究其小摆角的情况,此时动力学方程简化为线性方程,其解为一余弦函数。
而对于大摆角单摆的运动状态随时间的演化规律,如何在大学本科阶段讨论单摆振动时的物理规律是大学物理力学部分一个教学难点。
早在1984年,赵炳林先生就对单摆振动的严格周期进行了分析,将积分方程中的被积函数进行级数展开,从而得到精确的级数解[3];随后,人们探索了多种近似算法,如线性插值[4]、格林函数[5]、冲击波解[6]等。
SimscapeMultibody 物理建模

Simscape Multibody 物理建模与刚体变换简介以一个单摆为例说明如何进行物理建模。
一、创建模型1.在MatLab命令行输入smnew打开一个新的simscape multibody项目在命令行输入sm_lib打开Simscape Multibody block library选择自己想要添加的块二、创建机械连接1.块类型说明–Rigid Transform(刚体变换)块:提供端坐标系。
–Solid(立体)块:提供几何(geometry),惯性(inertia),颜色(color)特性。
Rigid Transform块在Frame and Transform下,Solid块在Body Element 下。
2.连接块图3.设置Solid block 特性1.左键快速单击solid block两次,在弹出的对话框中将参数设置为如下图所示:将长宽高用变量LHW代替,密度用rho代替,颜色用rgb代替,方便修改参数。
这里出现错误是因为我们输入的变量未定义,将在下面定义。
4.设置Rigid Transform块左键快速单击Rigid Transform block,在弹出的对话框中将参数设置为如下图所示:–将Rigid Transform设置为如下图所示–将Rigid Transform1设置为如下图所示5.生成子系统同时选中Rigid Transform,Rigid Transform1和solid block,在高亮的地方右键选择CreateSubsystem from Selection得到如下所示子系统:6.定义前面的参数右键单击Subsystem,在弹出的对话框中选择Mask > Create Mask在弹出的对话框中选择Parameters & Dialog,在左边的栏中添加五个到Parameters,然后将变量名改为前面输入的变量名在右边栏Properties > value中将各变量值设置为如下所示确定,然后在simulink界面中选择Simulation > Update Diagram,更新块图,得到如下图的立体7.添加旋转部件在matlab命令行输入smnew新建一个模型,删除不需要的块并将上述的Subsystem复制过来从Simscape > Multibody > Joints中添加一个Revolute Joint(旋转节点)到图中,并连接成如下图所示鼠标左键快速单击图中的solid block两次,在弹出的对话框中将其参数设置为如图所示点击确定。
摆动导杆机构的Matlab运动学仿真

Vol 21 No 2008202
p lot ( simout (: , 1) , simout (: , 4) , simout (: , 1) , si2 mout(: , 5) )
p lot ( simout (: , 1 ) , simout (: , 7 ) , simout (: , 1 ) , simout (: , 8) )
% u (6) = r3
% u (7) = theta3
r1 = 1000; r2 = 400;
%
a = [ cos ( u ( 7 ) ) - u ( 6 ) 3 sin ( u ( 7 ) ) ; sin ( u
(7) ) u (6) 3 cos ( u (7) ) ];
b = [ - u ( 1) 3 r2 3 sin ( u ( 5) ) - r2 3 u ( 2) ^2 3
cos( u (5) ) + 2 3 u ( 3) 3 u ( 4) 3 sin ( u ( 7 ) )
+ u (6) 3 u (4) ^23 cos( u (7) ) ;
u (1) 3 r2 3 cos ( u ( 5 ) ) - r2 3 u ( 2 ) ^2 3 sin ( u
(5) ) - 2 3 u ( 3) 3 u ( 4) 3 cos ( u ( 7 ) ) + u
M atlab是目前国际上广泛使用的一种功能强大的数
单级移动倒立摆建模及控制器设计matlab

单级移动倒立摆建模及控制器设计matlab 单级移动倒立摆是一种常见的控制系统模型,它在机器人控制、自动驾驶等领域有着广泛的应用。
本文将介绍如何使用MATLAB进行单级移动倒立摆的建模和控制器设计。
首先,我们需要了解单级移动倒立摆的基本原理。
单级移动倒立摆由一个垂直的杆和一个可以在水平方向上移动的小车组成。
小车上有一个可以旋转的杆,杆的一端连接着小车,另一端有一个质量块。
通过控制小车的位置和杆的角度,我们可以实现倒立摆的平衡。
接下来,我们开始建立单级移动倒立摆的数学模型。
首先,我们需要定义系统的状态变量。
在这个模型中,我们可以选择小车的位置x、小车的速度v、杆的角度θ和杆的角速度ω作为状态变量。
然后,我们可以根据物理原理建立系统的动力学方程。
根据牛顿第二定律和角动量守恒定律,我们可以得到如下的动力学方程:m*x'' = F - m*g*sin(θ) - m*l*θ'^2*cos(θ)m*l^2*θ'' = -m*g*l*sin(θ) + m*l*x''*cos(θ) - b*θ'其中,m是小车和质量块的总质量,l是杆的长度,F是施加在小车上的外力,g是重力加速度,b是杆的阻尼系数。
接下来,我们可以使用MATLAB进行模型的建立和仿真。
首先,我们需要定义系统的参数和初始条件。
然后,我们可以使用ode45函数来求解系统的动力学方程。
ode45函数是MATLAB中用于求解常微分方程的函数,它可以根据给定的初始条件和参数,计算出系统在一段时间内的状态变化。
在求解动力学方程之后,我们可以得到系统的状态变量随时间的变化。
通过绘制状态变量随时间的曲线,我们可以观察到系统的动态行为。
例如,我们可以绘制小车位置随时间的变化曲线,以及杆角度随时间的变化曲线。
最后,我们需要设计一个控制器来实现单级移动倒立摆的平衡。
常见的控制器设计方法包括PID控制器和模糊控制器。
Recurdyn与Matlab连结control倒单摆控制分析仿真教程

Recurdyn/control例題:倒單擺控制分析-使用matlab/simulink(part-1)1.選取inverse_pendulum_i.rdyn項目,按開啟按鈕2.選取Axial項目,產生Axial Force(軸向力)在路面(Base)和台車(Car)之間3.選取Body,Body,Point,Point項目,Body選地面、Body選車子、Point :2000,-100,0、Point : -500,-100,0(注意:軸向力方向(向右為正),因為建立軸向力時,方向是由左到右)4.選取Plant Input項目,按一下Add按鈕5.axial_force是系統的輸入廠(由控制迴路所決定),按一下確定按鈕6.選取Plant Output項目,按一下Add按鈕7.按兩下Add按鈕8.選取項目9. base.Marker1和bird.Marker1項目10.選取文字方塊,az(2,1):單擺的角度值,是系統的輸出廠(由RecurDyn計算),name:angle,按一下OK按鈕11.Plant Output List對話方塊開啟了,按一下確定按鈕12.選取axial1項目13.按一下EL按鈕14. 開啟Expression List對話方塊,按一下Create按鈕15. 開啟Expression對話方塊,按一下Add按鈕16. 軸向力內存函數是:pin(1);pin就是:Plant of Input,(1):就是axial_force。
選取文字方塊:pin(1)。
按一下OK按鈕17. 按一下確定按鈕18. 按一下確定按鈕19. 選取Cosim項目20. 選取Simulink項目,由Simulink啟動RecurDyn21. 輸出matlab*.m檔案,選取m-file to create plant block文字方塊,按delete鍵,輸入inverse_pendulum,按一下Export按鈕22. 按一下儲存(s)按鈕23. 按一下套用(A)按鈕,再按一下取消按鈕24. 記得存檔,關閉RecurDyn軟體------------------------------------------------------------------------------------------------------- Recurdyn/control例題:倒單擺控制分析-使用matlab/simulink(part-2)1.載入:inverse_pendulum.m2.鍵入:rdlib,rdlib是recurdyn plant控制,按enter鍵3.recurdyn_plant_7_視窗開啟4.鍵入:simulink,啟動simulink,按enter鍵5.simulink library browser視窗開啟,按一下simulink library browser按鈕6.按一下create a new model按鈕7.untitled視窗開啟8.拉進recurdyn plant,選取選項,建立pid迴路去控制軸向力大小,讓單擺可以動平衡9.選取Gain圖案進來,按ctrl+c鍵10.選取選項continuous\derivative、integrator圖案進來11.選取項目math operations\add圖案進來12.選取項目commonly used blocks\scope圖案進來,按ctrl+v鍵13.按add圖案快按兩下,function block parameters:add視窗開啟了,將++改成---,按一下OK按鈕14.連好線15.按Gain圖案快按兩下,function block parameters:gain視窗開啟,將1改成200,按一下OK按鈕16.按Gain1圖案快按兩下,function block parameters:gain視窗開啟,將1改成1,按一下OK按鈕17.按Gain2圖案快按兩下,function block parameters:gain視窗開啟,將1改成5,按一下OK按鈕18.按一下save(ctrl+s)按鈕19.輸入inverse_pendulum檔名,按Enter按鈕20.快按recurdyn plant block兩下,inverse_pendulum/recurdyn plant block視窗開啟,recurdyn plant圖案(紅色)是recurdyn與simulink之間的控制核心,快按兩下21. [ ]static analysis(事先進行靜力分析,之後再進行動力分析)[X ]recurdyn_show(計算過程可以啟動recurdyn畫面)[X ]recurdyn_animation(計算過程可以顯示動畫)之後按一下cancel按鈕,按一下關閉按鈕22.模擬時間5,按一下Start simulation按鈕23. RecurDyn 6.4視窗開啟,RecurDyn會自動載入模型,且可以看到計算過程中的動畫(很快就結束所以省略)24.快按scope圖案兩下,scope視窗開啟(scope是角度位移變化、scope1是軸向力輸出變化),Finish。
用Matlab仿真探究摆角对单摆周期影响

用Matlab 仿真探究摆角对单摆周期影响摘要:本文通过Matlab 仿真验证小角摆动是简谐振动,并利用数值法求解微分方程,画出不同摆角下单摆的振动图像,定性分析,得出大角摆动时单摆周期随角度的变化情况。
关键字:单摆周期 摆角大小 0.引言单摆是生活中常见的一种简单物理模型,物理学中所讨论的单摆是一种理想化的模型,也称数学摆。
它由一根不可伸缩的细线(质量不计),一端固定,另一端悬挂一质量为m 的小球(视为质点),且摆角小于5度的振动系统。
对于这种理想单摆的周期,不随摆角大小的改变而改变。
但当单摆摆角大于5度时,理想单摆的周期公式不再适用,本文通过建立物理模型,在忽略空气阻力的前提下,用Matlab 进行大角摆动的模拟,画出震动图像,研究大角摆动时摆角对周期的影响。
1.建立物理模型根据单摆的理想条件,摆线不可伸长且质量忽略不计,空气阻力忽略不计.设摆线长度为l,摆球质量为m ,重力加速度为g,摆球离开平衡位置的角度为θ,对摆球做受力分析如有图所示。
由牛顿第二定律,有22d dt θ=-θωθsin sin 2-=lg(1-1其中lg =ω 假定位移很小,θθ=sin ,即小角摆动。
则式1-10lgd 22=+θθdt (1-2) 大角摆动时,仍为1-1式,该式为非线性方程,为方便起见,将θ用y 来表示,该式又可以写为下列一阶微分方程组21y dt dy = ;()12y sin lg-dt dy = (1-3) 2.用Matlab 方程求解 2.1小角摆动用Matlab 求解式1-1,其结果为y =theta0*cos(1/l^(1/2)*g^(1/2)*t) (2-1)即⎪⎪⎭⎫⎝⎛=t t g cos 0θθ (2-2)由式2-1可以看出,当小角摆动时为简谐振动。
其周期为:T 0=gl22πωπ=⨯ (2-3)取摆长l=1,重力加速度g=9.8,摆角οθ5=,利用Matlab 求解式1-1,取步长为0.1的点作图,与应用式1-2求出解析解并绘图,将两图象放在一起比较如下图1所示12345678910图1 小角摆动图1中曲线为求解式1-2所得图像,而离散点为求解式1-1所得,观察图像可得两方程的解几乎吻合,可以说明当θ较小时(οθ5≤ ),两方程的解几乎相等,故周期公式此时较为准确,即单摆周期不随摆角变化而变化。
基于MATLAB的单摆系统分析及PID仿真设计

基于MATLAB的单摆系统分析及PID仿真设计
张勃;李自成;罗阳杰;黄俊龙;谢飚;杨星
【期刊名称】《现代工业经济和信息化》
【年(卷),期】2024(14)3
【摘要】对单摆系统的稳定性及对各种阻尼状态的图像进行对比分析,利用MATLAB中的Simulink功能来对单摆系统进行PID的仿真,探究阻尼对单摆系统的影响并通过调整参数消除误差,使系统达到理想状态.
【总页数】3页(P103-105)
【作者】张勃;李自成;罗阳杰;黄俊龙;谢飚;杨星
【作者单位】成都理工大学工程技术学院
【正文语种】中文
【中图分类】TP273
【相关文献】
1.基于MATLAB的控制系统分析教学仿真软件设计
2.基于MATLAB的“电力系统分析”仿真平台的设计与实现
3.基于MATLAB GUI的PID控制仿真系统设计
4.基于MATLAB的四旋翼无人机飞控PID仿真设计
5.基于群智能优化算法与MATLAB仿真的高温炉模糊PID温度控制系统设计
因版权原因,仅展示原文概要,查看原文内容请购买。
Matlab软件在单摆自由振动中的应用_李硕

在单摆的摆动问题中, 系统自由度为 1 , 选取广义 坐标 θ 来 描 述 单 摆 的 运 动。 系 统 动 能 为 T =
· 1 m( lθ ) 2 , 势能为 V = mgl( 1 - cos θ) , 能量关系为 2
也是简谐振动 式( 2 ) 是单摆小角摆动时的微分方程, 的动力学方程, 式( 2 ) 的解为 ( 3) θ = A θ cos( ω0 t + α) Aθ 、 α 是由初值条件来决定的待定常数 。 式中, 不能近似用 sin θ ≈ θ, 微分方程由 若大角度摆动, 式( 1 ) 改为 g d2 θ sin θ = 0 ( 4) 2 + l dt 小角度单摆的周期为 T0 = 2 π l g
槡
( 5)
(
)
图1
大角度单摆的周期变化
图3
不同能量单摆的相图
第 11 期
李
硕, 等: Matlab 软件在单摆自由振动中的应用
67
点) , 由此出现了非线性 下一刻的运动具有不确定性, [13 ] , , 在非线性振动中 轻微扰动会使系统出现间 现象 断和分岔。
l = l0 + mg / k, 让摆在竖直平面内自由摆动。 系统自由 度为 2 , 设 r 为摆球到固定点的距离, 摆角为 θ。 系统 的拉格朗日函数为 1 · L = m[ ( r) 2
性力学不借助 Matlab 软件的微分方程求解及可视化 [39 ] 。本文利用 Matlab 软件[10-11]研 功能是很难说明的 究了单摆自由振动时的一些问题 , 主要包括: 大角度自 由振动单摆周期与角振幅的关系曲线、 大角度自由振 动单摆的相图、 大角度阻尼振动单摆的相图和弹簧单 摆的微分方程求解及动画效果, 从而直观地显示了单 摆在不同条件下自由振动时的运动情况 。
弹簧摆matlab演示及源代码

弹簧摆写出弹簧摆的运动微分方程,并用matlab 编写程序,演示弹簧摆的运动弹簧摆的运动微分方程可以通过拉格朗日函数法求得,对于弹簧单摆系统,在极坐标系中其拉格朗日函数为222211 ()cos ()22L T Vmg m r r mgr k r l kθθ=-=++--+ 其中,r θ为自由度,,,,m k g l 分别为摆球质量,弹簧刚度,重力加速度和摆初始长。
将拉格朗日函数带入到拉格朗日方程00d L L dL L dt θθ∂∂⎧-=⎪⎪∂∂⎨∂∂⎪-=⎪∂∂⎩得到系统的运动微分方程:sin ()02sin 0k mg r r g r l g k r rg θθθθθ⎧--+-+=⎪⎨⎪++=⎩ 对于这个非线性方程组,利用matlab 里面自带的ode45常微分方程组求解函数,对上面的方程组进行数值求解,得到了摆球的运动轨迹,如下图所示0246810121416弹簧摆内共振动画模拟及自由度随时间的变化曲线时间t 单位秒对应的自由度图中给出了弹簧摆运动过程中自由度,r 随时间的变化关系,下面将给出这个程序的源代码,演示程序时,首先停顿三秒,然后开始摆动,图形上方的弹簧摆的示意图开始摆动并描绘出轨迹,同时图形下方自由度随时间变化关系也会动态的给出,从这个过程中可以明显看出弹簧摆的内共振现象。
程序源码:function springmasstheta0=1.5*pi/10;%单摆的初始角度m=20/9.8;k=80;g=9.8;%弹簧质量的参数保证弹簧固有频率是单摆固有频率的2倍L0=1;L=L0+m*g/k;%L0为弹簧原来长度,L为弹簧静止时长度[t,u1]=ode45(@weifen,[0:0.05:15],[L00theta00],[],L,k,m,g);[y1,x1]=pol2cart(u1(:,3),u1(:,1));y1=-y1;%将极坐标换为直角坐标axis([016-1.54]);%text(0,u1(1,1),'摆长l');%text(0,u1(1,3),'摆角\theta');%axis offtitle('弹簧摆内共振动画模拟及自由度随时间的变化曲线','fontsize',15)xlabel('时间t单位秒');ylabel('对应的自由度');hold on;R=0.055;%设置弹簧半径yy=-L0:0.01:0;xx=R*sin(yy./L0*30*pi);%用正弦曲线表示弹簧[a,r]=cart2pol(xx,yy);%用坐标变换来画初始位置的弹簧a=a+theta0;[xx,yy]=pol2cart(a,r);%弹簧的数据xx=2*xx+7;yy=yy+3.5;%xx(1)=x(1)+15;line([68],[3.53.5],'color','k','linewidth',4)%弹簧单摆系统初始状态for i=1:9line([6+0.2*i6+0.2*i+0.2],[3.53.7],'color','k','linewidth',1);endline([77],[3.52.3],'color','k','linestyle','-.','linewidth',1)bigball=line(xx(1),yy(1),'color','b','marker','.',...'markersize',30,'erasemode','xor');%球ball2=line(xx(1),yy(1),'color','g','linestyle','-',...'linewidth',1.3,'erasemode','none');%轨线spring=line(xx,yy,'color','k','linewidth',2,'erasemode','xor');%弹簧linex=line(t(1),u1(1,1),'color','r','marker','.',...'markersize',10,'erasemode','none');%摆长曲线初始liney=line(t(1),u1(1,3),'color','b','marker','.',...'markersize',10,'erasemode','none');%摆角曲线初始%以下为标注text(6,-0.75,'\uparrow');text(4,-1,'摆角随时间变化曲线');text(9.0,1.9,'摆长随时间变化曲线');text(11.4,1.70,'\downarrow');%在初始状态下停顿三秒pause(2)%以下程序开始实现动画,在弹簧摆开始振动时画出相应的变化曲线for i=2:length(t)yy=-u1(i,1):0.01:0;%弹簧xx=R*sin(yy./u1(i,1)*30*pi);%xx(i)=x(i)+15;[a,r]=cart2pol(xx,yy);a=a+u1(i,3);%set(linex,'XData',t(i),'YData',u1(i,1));%%摆长初始%set(ball2,'XData',2*x1(i)+7,'YData',y1(i)+3.5);%轨线%set(liney,'XData',t(i),'YData',u1(i,3));%摆角初始plot([t(i-1),t(i)],[u1((i-1),1),u1(i,1)],'xr');plot([t(i-1),t(i)],[u1((i-1),3),u1(i,3)],'*b');%legend('摆长曲线','摆角曲线')[xx,yy]=pol2cart(a,r);xx=2*xx+7;yy=yy+3.5;set(bigball,'XData',2*x1(i)+7,'YData',y1(i)+3.5);%球%plot(2*x1(i)+7,y1(i)+3.5,'b');%球%set(ball2,'XData',2*x1(i)+7,'YData',y1(i)+3.5);%轨线plot([2*x1(i-1)+7,2*x1(i)+7],[y1(i-1)+3.5,y1(i)+3.5],'-g');%轨线set(spring,'XData',xx,'YData',yy);%弹簧drawnow;end%以下为弹簧摆的运动微分方程function value=weifen(t,u,l,k,m,g)value=[u(2);u(1.)*u(4).^2+g*cos(u(3))-k/m*(u(1)-l+m*g/k);u(4);-2.*u(2).*u(4)./u(1)-g*sin(u(3))./u(1)];。
MATLAB计算单摆摆动角度衰减

这是一个计算单摆摆动角度衰减的程序% ***** PROGRAM 1.2 *****% MOTION OF A SIMPLE PENDULUM IN AIR% Reference: Computational Fluid Mechanics by Example (Biringen and Chow; Wiley 2011)clc; 清屏clear all; 清内存区间format short e; 设置一种输出格式global A B C D G L NU 定义单摆小球概念,这些均为小球参数% ***** SPECIFY DATA *****RHO = 2500.; 园RHOF = 1.22;%PI = 3.14159;PI = pi; πDT = 0.1;TMAX = 20.;D = 0.01; 直径G = 9.8; 重力加速度L = 2.0; 绳长NU = 1.49E-5; 科学计算法表示的一个参数RHOBAR = RHOF/RHO;A = 1.+RHOBAR/2.;B = (1.-RHOBAR)*G;C = 3.*RHOBAR/(4.*D); 以上均为定义各参数数据% ***** INITIALIZE THE PROBLEM *****T0 = 0.0; 时间开始为0V0 = 0.0; 速度开始为0THETA0 = 45.0; tao,衰减过程中的时间参数Y0 = L*THETA0*PI/180.0; 初始化单摆小球的坐标位置和角度% ***** INTEGRATE THE EQUATIONS OF MOTION BY USING FOURTH-ORDER RUNGE-KUTTA% METHOD, STOP THE COMPUTATION WHEN T>TMAX *****disp(' IN AIR ');disp(' T THETA V ');disp(' (SEC) (DEG) M/SEC) ');在工作区(command window)显示这些名称,运行时可以看到%[T,SOLN]=ode23(@FN,[T0:DT:TMAX],[Y0 V0]);[T,SOLN]=ode45(@FN,[T0:DT:TMAX],[Y0 V0]); 公式中的FN已在子函数中定义Y=SOLN(:,1); Y为竖直方向的坐标,SOLN是单值的意思V=SOLN(:,2); V为小球速度THETA = Y/L * 180.0/PI; THETA为小球的角度,以上是计算公式,运用四阶导数运算disp([T THETA V]); 在工作区显示这些数据,运行时你可以看到%PLOT THE DATAclear plot; 清除内存中原来的图像plot(T,THETA) 绘制新的图像grid on 绘制坐标方格xlabel('t (s)'),ylabel('\theta (deg)') 定义图像的x,y坐标的名称title('Angular displacement for glass sphere in air') 定义图像的名称function [X,P,T] = RUNGE(X,P,T,H,F); 定义一个函数% ***** FOURTH-ORDER RUNGE-KUTTA FORMULAE (1.1.12) AND (1.1.13) ARE % PROGRAMED IN THIS SUBROUTINE FOR SOLVING A SECOND-ORDER DIFFERENTIAL % EQUATION REWRITTEN IN THE FORM :% DX/DT = P AND DP/DT = F(X,P,T)% H IS THE SIZE OF INCREMENT IN THE INDEPENDENT VARIABLE T, AND F IS A% FUNCTION DEFINED IN ANOTHER SUBPROGRAMD1X = H*P; x(小球横坐标位置)的一阶导数D1P = H*feval(F,X,P,T); P的一阶导数D2X = H*(P + D1P/2.); x二阶导数D2P = H*feval(F,X+D1X/2.,P+D1P/2.,T+H/2.); P的二阶导数D3X = H*(P + D2P/2.); 三阶D3P = H*feval(F,X+D2X/2.,P+D2P/2.,T+H/2.); 三阶D4X = H*(P + D3P); 四阶D4P = H*feval(F,X+D3X,P+D3P,T+H); 四阶T = T + H;X = X + (D1X + 2.*D2X + 2.*D3X + D4X)/6.; 貌似是泰勒公式P = P + (D1P + 2.*D2P + 2.*D3P + D4P)/6.; 貌似是泰勒公式function [RES] = FN(T,VEC); 定义FN函数,主函数中用到了global A B C D G L NUY = VEC(1);V = VEC(2);FN = (-B*sin(Y/L) - C*V*abs(V)*CD(V)) / A;RES = [V;FN]; RES是定义的函数的名称,这个是运行时将RES在工作区中显示出来其余的不用解释function [CD] = CD(V) 球体在空气中的阻力系数的函数% ***** CD IS THE APPROXIMATE DRAG COEFFICIENT OF A SPHERE ***** global A B C D G L NURE = abs(V)*D/NU; abs是取绝对值if (RE==0.)CD=0.;endif (RE>0. && RE<=1.)CD=24./RE;endif (RE>1. && RE<=400.)CD=24./RE^0.646;endif (RE>400. && RE<=3.0E+5)CD=0.5;endif (RE>3.0E+5 && RE<=2.0E+6)CD=3.66E-4*RE^0.4275;endif (RE>2.0E+6)CD=0.18;End这些都是这个系数是怎么求取的,很复杂。
数学建模之单摆摆动问题分析

数学建模之单摆摆动问题分析数学建模在实际中的应用单摆摆动问题分析学号姓名专业根据平常接触到的摆钟、秋千等实物中,抽象出单摆的模型。
在理想条件下,单摆的摆动规律大致分为两种情况:小角度摆动和大角度摆动,分别针对这两种情况,从摆动微分方程出发,之后采取不同的方法分析。
小角度摆动时,可做三角近似代替,将非线性微分方程转化为线性微分方程,进而求出其解析解,得到小摆角时单摆运动规律。
通过matlab软件的验证,可以明显的看出结果与实际相符的很好。
一、问题描述针对理想条件下的单摆,分析在小摆角和大摆角两种不同情况下的运动规律。
二、模型假设1.悬挂小球的细线伸缩和质量均忽略不记,线长比小球的直径大得多;2.装置严格水平;3.不受空气阻力,且无驱动力。
三、符号说明符号含义(rad) 单摆偏离平衡位置的角位移 ,单摆的最大摆角 ,(rad) 0g 2重力加速度,取9.8m/sl 细线长,取1mt(s) 单摆摆动时间四、模型建立与求解1.最简单的单摆模型(如图1)1图1 简单单摆模型o2.小角度时单摆运动规律(<5) ,,,1单摆的运动微分方程为:2d,g+=0 (1) sin,2dtl当摆角很小时,sin,故方程1可简化为: ,,,,2d,g+=0 (2) ,2dtl这是一个简单的谐振动方程,其解析解为:,,,=Acos() (3) ,00其固定角频率为:g,= (4) 0l得其周期为:,2,lT= (5) 2,,0g,0o可以利用matlab软件在[0, 5]分别作出方程(1)和方程(2)的解得图像,如图2图2 小角度单摆摆动规律(—方程(1)的解,**方程(2)的解)o由图像可以看出两方程的解的图像几乎吻合,可以说明当较小时(<5),,,两方程的解几乎相等,故周期公式此时较为准确。
o 上述结论仅仅适用于摆角很小时(<5),当摆角很大时,方程sin不,,,,,再成立,方程(1)和方程(2)的解不再相近,故周期公式(5)不再成立。
Matlab 软件在单摆自由振动中的应用探索

Matlab 软件在单摆自由振动中的应用探索
郭娜;朱奕奕
【期刊名称】《电子技术与软件工程》
【年(卷),期】2015(000)010
【摘要】自由振动主要是指在系统振动的整个过程中,没有激励作用产生的振动,可以分为阻尼振动或者是无阻尼振动两种。
本文主要利用 Matlab 软件对产生的单摆自由振动进行深入的分析与探究,分别讲述了大角度自由振动具有的单摆周期以及其中的角振幅具有的基本关系,进行大角度自由振动单摆具有的相图以及大角度进行阻尼振动具体的单摆相图等内容。
【总页数】2页(P86-86,95)
【作者】郭娜;朱奕奕
【作者单位】四川传媒学院数字媒体技术系,四川省成都市611745
【正文语种】中文
【中图分类】TP311.1
【相关文献】
1.Matlab软件在单摆自由振动中的应用 [J], 李硕;赵彤帆;李根全;宋海珍
2.MATLAB仿真软件在流体机械振动课程教学中的应用 [J], 周文杰
3.基于MATLAB软件平台的全息谱图及在风机振动故障诊断中应用的研究 [J], 徐敏强;张嘉钟;张国斌
4.基于Matlab软件的微振动理论及其应用 [J], 李硕;赵彤帆;宋海珍
5.MATLAB软件在空间解析几何教学中的应用探索 [J], 孔祥强
因版权原因,仅展示原文概要,查看原文内容请购买。