65.9K
CodeProject 正在变化。 阅读更多。
Home

双摆(DoublePendulum)第二部分:双摆的相空间轨迹

starIconstarIconstarIconstarIconstarIcon

5.00/5 (10投票s)

2016 年 5 月 26 日

GPL3

5分钟阅读

viewsIcon

26179

downloadIcon

461

一个 WPF 3D 模拟,用于可视化双摆的相空间轨迹。

引言

我的双摆项目的第一个部分介绍了一个应用程序,该应用程序根据不同的初始参数显示双摆在位置空间中的运动。长期行为通过庞加莱截面图进行可视化。

在第二部分中,我添加了3D视图,以便在相空间中可视化运动,并能够加载不同能量的庞加莱截面图。

背景

正如第一篇文章所述,双摆有四个自由度:两个摆锤的角度和角速度(Θ1、Θ2、ω1和ω2)。为了求解运动方程,切换到广义坐标更方便,在这种情况下是角度和角动量(Q1、Q2、L1和L2)。

当摆动时,它在由Q1、Q2、L1和L2组成的四维相空间中沿一条路径移动:相空间轨迹。如果运动是周期性的,轨迹是一个闭合曲线,因为运动会在某个时间点重复。对于准周期运动,轨迹不再闭合,而是形成规则的结构;对于混沌运动,轨迹完全不规则,就像一团乱麻。

由于我们有限的3D能力,我们无法观察4D空间中摆的运动。但我们可以使用建筑师在绘制他们计划的3D建筑物的2D图纸时使用的相同技巧:而不是一个3D视图,他们会创建几个2D视图,从顶部、正面和侧面展示建筑物。在每个视图中,第三个维度都被简单地忽略了。

在我们的情况下,我们可以创建四个3D视图,从不同的侧面展示4D轨迹。可能的截面是:(Q1、Q2、L1)、(Q1、Q2、L2)、(L1、L2、Q1)和(L1、L2、Q2)。

使用代码

如果你解压演示项目,会有一个Data文件夹,其中包含数千个不同能量模拟的庞加莱点。每个能量都有一个单独的子文件夹。如果你自己构建代码,你需要将该文件夹移动到VS解决方案的bin目录。

使用应用程序

启动时,应用程序会读取Data文件夹的子目录,并在主窗口的右侧列表中显示它们。通过选择其中一个,将加载相应能量的所有模拟的庞加莱点,并重新创建庞加莱截面图。

你现在可以通过在地图的某个点上单击鼠标右键来开始新的模拟。再次单击鼠标右键或使用2D视图中的“开始/停止”按钮停止模拟。

如果你想放大地图,只需按住左键将鼠标拖动到右下角。拖动到左上角将缩小。拖动一小段距离将缩小一个级别,而拖动长距离将再次显示整个地图。

3D视图显示摆本身或四个相空间截面之一。通过顶部的按钮在它们之间切换。每次切换视图时,相空间中的轨迹都会重新创建。因此,需要运行模拟才能在此处看到内容。

示例轨迹

在极低能量下,摆的运动主要由两个周期性状态主导:同相运动和反相运动。任何不严格周期性的运动都属于这些状态之一,是准周期的。这是能量为0.1时的庞加莱截面图

上半区域的白点代表同相运动,而下半区域的黄点代表反相运动。如果你读过我关于摆的第一篇文章,你可能会回想起单摆在低能量下的相空间轨迹只是一个圆。因此,双摆在同相运动时显示出类似的简单特征并不令人惊讶

反相运动的轨迹也非常简单

那么,准周期运动呢?如果我们开始一个在同相共振点附近的模拟,并让摆动几下,轨迹看起来是这样的

正如你可能想到的,轨迹不会重复,但也不会远离周期路径,从而在周期曲线周围形成一个漂亮的图案。如果我们现在将初始点从同相共振点移开,比如移到同相和反相吸引子之间的某个位置,图案就会扩展成这个美丽的环

当能量升高时,会出现新的周期性运动,正如你在能量为0.3的庞加莱截面图中看到的

在左侧或右侧的品红色吸引子的中心开始模拟将导致此轨迹

路径仍然是闭合的,但比之前的单个共振点要复杂。通常,庞加莱图中的共振点数量与轨迹的复杂度之间存在相关性。下一张图显示了能量为2.2时三共振的轨迹

这是一条在庞加莱图中具有5个点的周期性运动,能量为1

你肯定会同意,这些周期性和准周期运动的轨迹看起来很棒,而且实时观察不同能量下的它们真的很有趣。但肯定还缺少一张图。混沌!这是能量为3.8时的样子

就是这样!

双摆文章的第二部分增加了超过5000次模拟的庞加莱截面图数据,以及查看相空间截面中摆运动的能力。希望你喜欢它!

致谢

对于应用程序的3D部分,我使用了自己开发的WFTools3D库,我需要为轨迹添加一个新的模型。我不知道如何实现这样的管子,但最终发现了Helix Toolkit项目,它有一个很酷的MeshBuilder类(以及其他很酷的东西),可以完成这项工作。为了让我的库保持小巧,我只复制了相关的代码行并根据我的目的进行了调整。

历史

2016年5月26日:初始上传

© . All rights reserved.