个人中心

联系我们

搜索 登录 免费注册
界面美化
业务优化
开发工具
图像管理
文档管理
Parasoft

文章详情

用 Triton 模拟特定海况

2023-07-06 15:16:29

用 Triton 模拟特定海况


如果你将Triton用于培训和模拟目的,你会想使用它更先进的物理模拟能力。


有几种方法可以用Triton指定海洋条件。


首先要了解的是局部风浪和海浪之间的区别。风浪是由局部风况产生的,由覆盖观测者的WindFetch对象定义。海浪通常是波长较长的海浪,可能来自于不影响附近地区的远方风暴。你可能想单独指定这些类型的海浪,Triton让你这样做。


另一个重要的概念是 "风向长度"。这是风在到达观察者之前所走过的距离。当风吹过海洋表面时,风浪会随着时间的推移而增加,所以风向长度越长,风浪越大。


选择一个波谱模型


在Triton::Ocean::Create()方法中,你有几种波谱模型的选择。简单地说--如果你要建立一个海事培训应用,或者如果你用Triton为浮力模型提供动力,而船舶运动应该是真实的,那么就使用JONSWAP。JONSWAP(联合北海波浪观测项目)能够使用潮汐长度作为其模拟的一部分,如果没有指定潮汐长度,它将自动退回到PIERSON_MOSKOWITZ模型。JONSWAP只是通过模拟水草长度的非线性效应来扩展PIERSON_MOSKOWITZ,但这些效应可能很重要。


TESSENDORF、PIERSON_MOSKOWITZ和JONSWAP模型都使用反快速傅里叶变换来驱动它们的波浪模拟,所以它们在运行时具有相同的性能特征。然而,它们在设置FFT时有不同的计算成本,每当模拟的风向或海浪条件发生变化时,就会出现这种情况。如果你预计每一帧都会改变风向和/或风速,你可以选择使用TESSENDORF来获得最佳性能,尽管这要以一些物理精度为代价(Tessendorf使用简化的菲利普斯频谱,计算速度非常快)。PIERSON_MOSKOWITZ比TESSENDORF慢,而JONSWAP是三者中最慢的。但同样,这只在你每一帧都要改变模拟条件的情况下才重要。


指定风向长度


为了充分利用JONSWAP模型,你必须指定风的长度作为模拟的一部分。这是从你通过Triton::Environment::AddWindFetch()传递给Triton的WindFetch对象推断出来的。


如果你在一个风场上调用Triton::WindFetch::SetLocalization(),Triton可以根据风场的边界体积和观测者的位置推断出风场长度。风流的中心代表风的原点,而风流长度是观察者到这个原点的距离。如果观测者在WindFetch的边界之外,它的风就不会被使用。


你也可以用Triton::WindFetch::SetFetchLength()指定一个明确的、恒定的取风长度。如果设置了,它将取代使用SetLocalization()中定义的边界来计算取值长度。然而,如果SetLocalization()被调用到WindFetch上,它的边界将被用来确定WindFetch是否会影响观察者。


重要的是,如果你要指定它们的话,要使用实际的取样长度。通常情况下,这些长度在 100 公里左右。汇流长度在整个海浪高度中起着非常重要的作用,所以设置得太小可能会导致海浪不自然地变小。设置得太高可能会产生不自然的大浪。如果你没有真实的取水长度数据,你最好不要指定它,而是使用PIERSON_MOSKOWITZ模型。


模拟海浪


Triton可以模拟来自远方风暴的海浪,而不是本地风浪。参见Triton::Environment::AddSwell()和Triton::Environment::ClearSwells()方法。这些方法可以让你精确控制加入到本地风浪中的膨胀波的高度、波长和方向。典型的海浪高度是3米左右,典型的海浪波长是100米左右--请确保你指定的数值是现实的,以防止出现异常。尽管你可以为你的海浪指定一个与当地风向不同的方向,但这可能看起来不自然。


海浪是通过修改我们的反FFT的输入来实现的,以烘托出你所指定的海浪。因此,你可以指定你想要的海浪数量,而且它们不会有任何运行时的性能损失。


模拟特定的波弗特或道格拉斯海况


你的应用程序的用户可能希望模拟特定的 "海况",而Triton使之尽可能简单。


Triton::Environment::SimulateSeaState()方法将产生与Beaufort尺度给出的状态一致的局部风浪。关于每个值所描述的条件,见http://en.wikipedia.org/wiki/Beaufort_scale。


程度描述波高(米)
0平静0
1轻微空气0-0.2
2轻微的微风0.2-0.5
3温和的微风0.5-1
4中等微风1-2
5清爽的微风2-3
6强劲的微风3-4
7大风4-5.5
8中等大风5.5-7.5
9强烈大风7-10
10暴风雨9-12.5
11猛烈风暴11.5-16
12飓风14以上

除了模拟的海况外,你的用户可能还想加入特定的海浪情况。只要使用Triton::Environment::AddSwell()来添加你想要的特定海浪,并记得在重新创建海浪条件之前使用Triton::Environment::ClearSwells()。


道格拉斯海平面图( http://en.wikipedia.org/wiki/Douglas_Sea_Scale )独立地指定了当地的风浪和海浪,所以它一次指定了两种条件。Triton::Environment::SetDouglasSeaScale() 方法可以用来模拟这些条件。道格拉斯海标指定了一个特殊的 "混乱 "海浪状态(#9,),Triton将其解释为从模拟的海浪中去除所有方向性。


程度风浪涌浪
0平静(玻璃状)(0-.1米)无波浪
1平静(波纹)(.1-.5米)非常低(短而低)
2平稳 (.1-.5米) 低 (长而低)
3轻微 (.5-1.25m) 轻微 (短而中等)
4中等 (1.25-2.5米) 中等 (平均和中等)
5粗糙 (2.5-5米) 中等粗糙 (长和中等)
6非常粗糙 (4-6米)粗糙 (短而重)
7高(6-9米) 高(平均和重)
8非常高(9-14米) 非常高(长而重)
9
偏高(14米以上) 混乱(无法定义)


联系我们

周一至周日 8:00-23:00

免费热线

023-62585653

Gavin:13082556879

Jillian:17558866126

Angela:13057566525

开发外包

ERP-一体化

小程序

企业微信客服二维码

企业微信客服

版权所有:重庆庚乾信息科技有限公司 ©2025 Gengqian Information Technology Co., Ltd. 渝ICP备2022008063号-2 渝公网安备50010702505508

版权所有:重庆庚乾信息科技有限公司

©2025 Gengqian Information Technology Co., Ltd. 渝ICP备2022008063号-2 渝公网安备50010702505508