在力学的学习过程中经典分析力学是最基本的入门知识,过冷水之前和大家一起学习了两个小车通过弹簧链接起来的做来回摆动运动的运动轨迹学习。推文中直接给了一个微分方程组,然后解出微分方程组就得到了小车的演化轨迹。本期过冷水从零开始构建一个微分方程组,而不是单纯解微分方程。

假设有一个一维的谐振子在三维空间中做运动。m=5 kg;kx=2 N/m;ky=7 N/m;kz=4 N/m。

根据三维空间受力分析可得:

谐振子的势能函数为:

过冷水在这里需要给大家补充一点点初中弹簧做功的知识。W=Fr是做功的函数,已知F=kr;则W=kr2,而这里势能却是W=0.5kr2,这是因为错误使用W=Fr,该公式是恒力做功,而弹簧力是变力做功,需要使用积分来算功。

谐振子的动能为:

谐振子的总能量为:

谐振子的Lagrange函数为:

已知Lagrange方程方程形式:

Lagrange方程的证明较为复杂,在此过冷水只告诉打算使用了该方程而不证明方程的由来,感兴趣的可以找一本力学方面的书进行探究。Lagrange是一个微分方程,针对于我们的情况,可以很容易的就解出原函数。Lagrange方程的通解为:

设初始条件t=0时:

解得:

这样我们就求得了一个谐振子在三维空间的运动方程。可以得到如下的运动轨迹图

原始代码为:

clear
t=linspace(0,50,50000);
x=2.5*cos(sqrt(2/5)*t)+2*sqrt(5/2)*sin(sqrt(2/5)*t);
y=5*cos(sqrt(7/5)*t)+2*sqrt(5/7)*sin(sqrt(7/5)*t);
z=10*cos(sqrt(4/5)*t)+2*sqrt(5/4)*sin(sqrt(4/5)*t);
Coordiate=[x',y',z'];
[m,~]=find(Coordiate(:,1)==x(1)&Coordiate(:,2)==y(1)&Coordiate(:,3)==z(1))figure1 = figure('Name','谐振子运动','NumberTitle','off','Color','w','Menubar','figure','WindowState','maximized');
subplot1 = subplot(2,2,1,'Parent',figure1);
view(subplot1,[-37.5 30]);
subplot2 = subplot(2,2,2,'Parent',figure1);
subplot3 = subplot(2,2,3,'Parent',figure1);
subplot4 = subplot(2,2,4,'Parent',figure1);
hold(subplot1,'on');
hold(subplot2,'on');
hold(subplot3,'on');
hold(subplot4,'on');
gg=1;
for k=1:length(t)%fill3([0 14 14 0],[0 0 14 14],[0 0 0 0],[0 1 1],'Parent',axes1);%hold(axes1,'on')plot3%fill3([0 14 14 0],[14 14 14 14],[0 0 14 14],[0 0 1],'Parent',axes1);%fill3([14 14 14 14],[0 0 14 14],[0 14 14 0],[1 0 0],'Parent',axes1);plot3(x(k),y(k),z(k),'Parent',subplot1,'MarkerFaceColor',[0 1 1],'MarkerEdgeColor',[0 1 1],'MarkerSize',3,'Marker','o','LineStyle','none');xlim(subplot1,[min(x)-1 max(x)+1]);ylim(subplot1,[min(y)-1 max(y)+1]);zlim(subplot1,[min(z)-1 max(z)+1]);box(subplot1,'on');ylabel(subplot1,'$Y$','FontSize',20,'Interpreter','latex');xlabel(subplot1,'$X$','FontSize',20,'Interpreter','latex');zlabel(subplot1,'$Z$','FontSize',20,'Interpreter','latex');title(subplot1,'三维空间轨迹图','FontSize',20,'FontName','楷体');plot(t(k),z(k),'Parent',subplot2,'MarkerFaceColor',[0 1 1],'MarkerEdgeColor',[0 1 1],'MarkerSize',10,'Marker','o','LineStyle','none');ylim(subplot2,[min(z)-1 max(z)+1]);xlim(subplot2,[min(t)-2 max(t)+2])box(subplot2,'on');xlabel(subplot2,'$T$','FontSize',20,'Interpreter','latex');zlabel(subplot2,'$Z$','FontSize',20,'Interpreter','latex');title(subplot2,'TZ图','FontSize',20,'FontName','楷体');plot(t(k),x(k),'Parent',subplot3,'MarkerFaceColor',[0 1 1],'MarkerEdgeColor',[0 1 1],'MarkerSize',10,'Marker','o','LineStyle','none');ylim(subplot3,[min(x)-1 max(x)+1]);xlim(subplot3,[min(t)-2 max(t)+2])box(subplot3,'on');xlabel(subplot3,'$T$','FontSize',20,'Interpreter','latex');zlabel(subplot3,'$X$','FontSize',20,'Interpreter','latex');title(subplot3,'TX图','FontSize',20,'FontName','楷体');plot(t(k),y(k),'Parent',subplot4,'MarkerFaceColor',[0 1 1],'MarkerEdgeColor',[0 1 1],'MarkerSize',10,'Marker','o','LineStyle','none');ylim(subplot4,[min(y)-1 max(y)+1]);xlim(subplot4,[min(t)-2 max(t)+2])box(subplot4,'on');xlabel(subplot4,'$T$','FontSize',20,'Interpreter','latex');zlabel(subplot4,'$Y$','FontSize',20,'Interpreter','latex');title(subplot4,'TY图','FontSize',20,'FontName','楷体');fmat(:,k)=getframe;           %拷贝祯到矩阵fmat中im = frame2im(getframe);[I,map] = rgb2ind(im,256);if gg == 1imwrite(I,map,'lxx.gif','GIF', 'Loopcount',inf,'DelayTime',0.05);gg = gg + 1;elseimwrite(I,map,'lxx.gif','WriteMode','append','DelayTime',0.05);end
end
movie(fmat,1)

根据轨迹图像可以看出谐振子在三维空间中运动轨迹很复杂。这只是动力学上比较简单一个运动问题。过冷水要带大家做的是有很多个相互作用的空间运动问题。不积跬步无以至千里,本期先和大家分享这个简单的案例,下期带大家了解两个谐振子的一维运动图像。想要深入了解学习请持续关注过冷水的推文。

往期回顾>>>>>>

数值优化方法—迭代法&终止条件

数值优化方法及MATLAB实现(一)

十万个matlab编程问题征集,欢迎来问

数值优化—复杂函数重积分计算方法实例演示

MATLAB编程爱好者Q群正式升级为2000人群,欢迎加入!

谐振子的动力学学运动相关推荐

  1. 【论文解读--MIT足式机器人集成】(2020)正则化预测控制框架强健的动力腿运动

    系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 TODO:写完再整理 文章目录 系列文章目录 前言 控制框架的对比 Cheetah 3 (PD控制) Cheetah 3 ...

  2. 深度学习公开数据集汇总(含计算机视觉自然语言处理推荐系统)

    合适的数据集对于深层神经网络的训练至关重要,今天我们一起来看看现在已经公开的数据集下载汇总,本文中的内容来源于网络.主要是方便自己以后学习工作中使用,本数据集定期更新. 查看全文 http://www ...

  3. 运动APP软件开发具有什么好处?

    人的身体健康离不开有效的运动,为了满足用户在运动方面的需求,健身运动 APP开发也开始出现,通过方便的手机平台为用户提供一条龙的运动服务. 运动APP软件开发具有什么好处? 对经营者来说: 降低用户管 ...

  4. 笔记-基于对偶四元数的姿轨耦合动力学模型1

    基于对偶四元数的航天器姿轨耦合建模 对偶四元数能一体化描述空间刚体转动和平动,基于对偶四元数建立航天器相对运动的姿轨耦合动力学模型.对偶四元数表示的动力学模型形式简洁,具有明确的物理意义,与四元数描述 ...

  5. 详解|工业机器人内部机构详解

    导读 小编今天给大家讲讲工业机器人内部结构的知识,教教大家控制.驱动.传动.执行等一些有关于机器人的基础知识. 大家可不要小瞧了这基础的内容,俗话说磨刀不误砍柴功,有了坚实的基础,对日后的学习和拓展都 ...

  6. 这是我看过最全的工业机器人知识介绍 !

    来源:产业智能官 编者按 工业机器人广泛使用在产业制造上,汽车制造.电器.食品等,能替代反复机器式操纵工作,是靠本身动力和控制才能来实现种种功用的一种机器.它能够承受人类指挥,也能够按照事先编排的程序 ...

  7. SimMechanics/Second Generation倒立摆模型建立及初步仿真学习

    笔者最近捣鼓Simulink,发现MATLAB的仿真模块真的十分强大,以前只是在命令窗口敲点代码,直到不小心敲入simulink,就一发不可收拾.话说simulink的模块化建模确实方便,只要拖拽框框 ...

  8. 又一大波机械动图来了,工作原理都能看明白!

    全世界只有3.14 % 的人关注了 爆炸吧知识 01 截止阀 ▼ 截止阀阀体是阀的主要承压部件,并且容纳闭合元件.截止阀内的流动通道被设计成具有光滑的圆弧内壁而没有尖锐的角和尖棱,这样可提供一个不产生 ...

  9. 类人机器人AI系统进阶模型 - 试论计算机模拟意识

    类人机器人AI系统进阶模型 - 试论计算机模拟意识 一.思维不可超越原理 思维具有不可超越性,这是一个客观存在. 任何理论都源于思维,思维是不可超越的. 无论宇宙多么浩渺无际,大自然多么变化无常, 人 ...

最新文章

  1. python信号与槽_Python信号和插槽(1),python,与,一
  2. PHP查看PECL模块包含的函数
  3. 项目当中套一个自己的小库的方式问题记录
  4. Dapper介绍--Micro-ORM
  5. ASP.NET Core在Azure Kubernetes Service中的部署和管理
  6. centos7 如何使用ReaR进行系统备份(如何使用NFS方法设置ReaR备份)
  7. 约束理论学习随笔(1)
  8. 如何高效高质进行Android技术开发
  9. c语言怎么随机生成迷宫地图,C++实现随机生成迷宫地牢
  10. 路由侠(连接外网工具) v1.0 官方最新版
  11. kali2020 中文乱码问题
  12. CodeForces 595A Vitaly and Night
  13. 智能注塑工艺与模流分析技术研讨会暨上海大学Moldex3D实训基地开幕式圆满结束
  14. Python- sklearn之最小二乘法
  15. 硬盘已成为计算机性能提高瓶颈吗,固态硬盘停步 接口或已成为性能瓶颈?
  16. 锁相环载波同步MATLAB实现,利用锁相环实现载波同步
  17. 2.6 修饰符的位置
  18. linux 下skype 无法登录
  19. 深入理解JVM虚拟机读书笔记——锁优化
  20. 3DTiles Terrian Builder

热门文章

  1. IPV6 公共DNS
  2. python IDE安装
  3. macos git技巧【配置公匙】【提交代码】[中文目录的命令匹配(clean checkout等命令)][删除所有记录的某个文件]
  4. g++编译报错原因分析 makefile : *** commands commence before first target. stop.
  5. 调用 SSPI 失败,请参见内部异常,System.Net.Security.SslState.StartSendAuthResetSignal 异常解法
  6. 冠名教授|香港科大曹圭鹏教授获颁夏利莱博士物理学副教授席
  7. Hadoop之常见压缩格式以及性能对比
  8. java高级面试题总结
  9. linux内存功耗测试,一种服务器动态功耗的测试方法
  10. HTML+CSS_第三部分(Flex弹性盒子布局、grid网格布局、移动端、移动端流式布局、移动端rem布局、响应式布局、Bootstrap框架)