人在仿真软件金宝app

金宝appSimulink &基于模型的设计

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

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

介绍

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

为了保持跳线的一致性和安全性,有一套由国际滑雪联合会(FIS)关于滑雪跳板的形状/轮廓。这是一张从跳台施工标准显示坡道所有规格的文件(通常称为在逃)和着陆区。在本文档中,您可以找到定义此图所示形状的所有数字和方程式:

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

实施

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

在这篇文章中,我决定使用Simscape语言实现滑雪跳跃动力学。我认为这将是一个很好的应用程序,可以利用R2017b中的一些新功能,比如模式图Simscape函数

一些象征性的你

首先,让我们绘制一个物体沿跑道移动的自由体图:

自由体图

如上所述,FIS标准对山丘剖面进行了很好的描述(y=f(x)形式的关系)。从这里我需要坡度(西塔)曲率半径(R)计算法向力(Fn)。这可通过两次区分山丘轮廓来实现。为了帮上忙,我用了符号数学工具箱.如果你还不知道,符号数学工具箱现在已经很好地集成到MATLAB桌面通过MATLAB实时脚本技术。

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

为了将最终结果转化为Simscape语言,我使用西姆斯方程函数,也来自符号数学工具箱。

利用sims方程

模式图

在我的Simscape组件中,我定义了一个具有3种模式的模式图:运行模式、机载模式和着陆模式:

modechart

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

转换

Simscape函数

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

这些允许改进组件的可读性和实用程序组件的重用。我将它们打包在一个目录结构中,该目录结构将分解运行中和着陆区域的单独方程,允许我给方程取相同的名称,但路径不同。以下是我的软件包的外观:

我的包裹

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

斜率Simscape函数

如您所见,In-run有3个单独的部分,使用Simscape函数中的If/Else语句实现。

下面是模拟结果的动画:

跳台滑雪动画

现在轮到你了

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

|

评论

如需留言,请点击在这里登录到您的MathWorks帐户或创建新帐户。