人在仿真软件万博1manbetx

万博1manbetxSimulink &基于模型的设计

模拟奥林匹克跳台滑雪比赛

这周我很高兴地欢迎客座博主扎克•彼得斯来描述他是如何实现一个滑雪跳台的模拟,类似于男子高山个人赛事件的平昌冬季奥运会这周五开始。

介绍

如果你不熟悉奥林匹克跳台滑雪比赛,让我们以一个视频来解释它的内容:

为了保持跳跃者的一致性和安全性,有一套完整的标准由国际滑雪联合会关于滑雪跳板的形状/轮廓。这是一张从跳台施工标准显示斜坡的所有规格的文档(通常称为在运行)及降落区。在这个文档中,你可以找到定义图中所示形状的所有数字和方程:

滑雪跳台和降落区域的规格

实现

可以想象,这个系统可以以多种方式建模。一种选择是对跳转的每个阶段使用一个有条件启用的子系统,方法与我们的方法类似模拟了上届夏季奥运会的撑杆跳高比赛.另一个选择是在statflow中使用新的Simulink States,就像我们以前做的那样万博1manbetx模拟一个盒子在桌子上跳几个月前。

在这篇文章中,我决定使用Simscape语言来执行滑雪跳跃动态。我认为它将是一个很好的应用程序,利用一些新的功能,在R2017bmodechartsSimscape功能

一些象征性的你

首先,让我们画一个物体沿着In-run移动的自由体图:

自由体图

如上所述,FIS标准提供了一个很好的山的轮廓描述(关系形式为y=f(x))。从那里我需要坡度(θ)及曲率半径(R)计算法向力(Fn).这可以通过把山的剖面区分两次得到。为了解决这个问题,我用了符号数学工具箱.如果你还不知道,符号数学工具箱现在已经很好地集成到MATLAB桌面通过MATLAB脚本生活技术。

使用符号数学工具箱的斜率推导

为了将最终结果引入Simscape语言,我使用了simscapeEquation函数,也来自符号数学工具箱。

使用simscapeEquation

Modechart

在我的Simscape组件中,我定义了一个具有3种模式的modechart: In-run, airborne和landing:

modechart

我定义了系统从一种模式切换到下一种模式的条件:

转换

Simscape功能

在查看上面的代码时,您可能想知道这些函数像“jumpPkg.jump”。和其他类似的。这些都是Simscape功能,在R2017b中引入。

这样可以提高组件的可读性和实用组件的重用。我将它们打包在一个目录结构中,这个目录结构将为in -run和着陆区域分解不同的方程,允许我为方程提供相同的名称,但不同的路径。这是我的包看起来像:

我的包

在这些函数中,我使用了符号数学工具箱导出的方程。这里有一个关于进站坡度的例子。

斜率Simscape函数

可以看到,in -run有3个独立的部分,在Simscape函数中使用If/Else语句实现。

下面是模拟结果的动画:

跳台滑雪动画

现在轮到你了

有人想给我们的跳线模型增加保真度吗?还有其他你感兴趣模拟的奥运项目吗?请在下面的评论中告诉我们。

|

评论

要留下评论,请点击在这里登录到您的MathWorks帐户或创建一个新帐户。