利用一维波动方程模型解析海洋驻波的运动轨迹

2022-07-06 08:15张春玲施圳胡松程灵巧
现代信息科技 2022年3期
关键词:可视化

张春玲 施圳 胡松 程灵巧

摘  要:CINEMA 4D(简称C4D)是由德国Maxon Computer公司出品的一款三维软件,其具有行业公认的强大建模、渲染、动画功能,且配合XP粒子可以模拟流体和自定义波浪和海洋。另外,随着MATLAB的功能的日趋完备,其在海洋实际问题中的应用也越来越广泛。文章以海洋驻波为例,通过推导一维波动方程进行其运动轨迹的可视化,然后结合C4D的XP粒子海洋模拟模型,借助于CINEMA 4D和MATLAB进行运动轨迹的可视化建模验证,从而探讨其对应的物理意义。

关键词:C4D R21;XP-particles;MATLAB;可视化;海洋驻波

中图分类号:TP391.9        文献标识码:A文章编号:2096-4706(2022)03-0095-03

Analysis on the Motion Trajectory of Ocean Standing Wave by the Model of One-Dimensional Wave Equation

ZHANG Chunling, SHI Zhen, HU Song, CHENG Lingqiao

(College of Marine Sciences, Shanghai Ocean University, Shanghai  201306, China)

Abstract: CINEMA 4D (short for C4D) is a 3D software produced by Maxon Computer in Germany, which is recognized as having powerful modeling, rendering and animation functions, and it can simulate fluids and custom waves and oceans with XP particles. In addition, with the increasingly complete function of MATLAB, it is becoming more and more widely used in marine practical problems. This paper takes the ocean standing wave as an example, carries out its motion trajectory visualization by deducing one-dimensional wave equation, and then combines XP particles ocean simulation model of C4D, carries out the visualization modeling validation of motion trajectory with the help of CINEMA 4D and MATLAB, so as to explore its corresponding physical significance.

Keywords: C4D R21; XP-particles; MATLAB; visualization; ocean standing wave

0  引  言

計算机语言最初是为了解决数学问题而诞生的,在物理模型和数学计算要靠手算的年代里,前沿科技的进步是缓慢的。二十世纪五六十年代开始,随着电子技术的飞速发展,计算机进入大型机时代,一些高级语言被逐渐开发出来主要用于系统级编程和数学计算,例如Fortran,COBOL,C++,BASIC等。当人们发现上述的计算机语言已经不能满足科研的需要时,又特化出一系列如MATLAB这种的工程类编程语言。随着MATLAB的商业化,很快被应用于矩阵运算的教学,并且开发作者Liitle和Bangert对初版MATLAB做了许多重要的修改提高,其中最重要的是函数、工具箱和图形化[1]。从简单的计算器开始,到目前已成为一个富有生命力的计算系统,支持着各个领域的技术实现。

海洋数理基础是一门入门困难,但是真正掌握后能化枯燥为神奇的学科。在复变函数的学习中,有些人甚至会选择直接放弃,而有些人也能通过磨砺坚持到了最后。那么如果通过MATLAB结合C4D具体地刻画所学的内容,并让学生能够应用的话必能吸引同学学习的兴趣,在这条真理之路上走得也会相对轻松。C4D与实验整合的物理情景创设的意义在于,“C4D”是英文CINEMA4D的缩写,最初是由Maxon Computer开发的一款三维软件,可以将实验不具备的微观的宏观的无法模拟和展示、无法暂停或快进实验的某一个过程、三维空间的实物与平面上物体的转换困难等问题解决掉,利用其辅助实验是非常有必要的。相比其他视觉特效软件,C4D多出了一个动力学模块功能[2],拥有真实的力的作用效果,如模拟风力,同时也可以模拟各种形变、碰撞、摩擦等,也可以表现这些物质的动态变化,物体的颗粒感等视觉。结合XP粒子,便可以模拟海洋波浪等动力学效果[2]。

X-Particles是用于Maxon的Cinema 4D的功能齐全的高级粒子和VFX系统。其独特的行动规则系统可以完全控制粒子模拟。XP粒子液体和颗粒求解器使我们能够创建令人惊叹的大型和小型流体模拟,本次实验中运用到了XP粒子中的xpocean插件,它可以模拟出一片永不衰减的海洋模型,用于模仿真实的海洋观测。

在学习数学物理方程的过程中,“不知有何用”的想法容易减少学生的学习动力,因此结合计算机软件,可以使得课程教学效果有显著提升。本文以海洋驻波为例,用MATLAB绘出其运动轨迹图像,并且跟C4D中XP粒子的海洋模拟建模相结合,从而佐证由MATLAB推得图形的可信度。

1  一维波动方程方程解析海洋驻波的运动轨迹

海洋中存在各种形式、各种时空尺度的波动现象,而根据波形是否传播又可以分为行波和驻波[3,4]。在数学上,驻波对应于有限边界条件下的波动方程,并可以通过分离变量法来求解,其傅里叶解的形式为无穷级数,既无限多个正弦波或余弦波的叠加[5]。因此,海洋中的驻波可以被化简为一维线性波动方程来研究。假设有一根长度为L质量为M的绳,其两端受力,取一微元dx,质量为

ρ是绳子的密度。如果绳子保持平衡,那么右边轴力减去左端轴力N(x)等于绳子微元产生的惯性力,即:,两边同除以dx,可以得到。而轴向线应变,使得方程变化成:,等价于。通过边界条件列出以下方程式:

(1)

假设初始位移,初始速度为0,通过计算可得:

(2)

首先定义方程式中x与t函数的取值范围,x=[0:1/50:2],t=[0:1/10:10],然后用MESHGRID设为一个x0和t0的矩阵,令un为u(x,t),利用for-end循环函数表达累加,最后用plot函数画出随着t(时间)的增长un的变化曲线,如图1所示。由图可见,在任意固定时刻,每个位置点的振幅呈等差数列叠加,并且对于固定的位置点,振幅随时间均有明显的周期变化,其变化周期与规律符合真实的海洋波动规律。

通过反复实验得出:系数跟波长成正比,通过改变方程的系数可以调整波长到实验所需的长度。一维波动方程是以弦振动模型推导而成的,然而在现实中的波浪往往要考虑更多的因素,例如海风,海流等对波浪造成的影响。结合实际来说,海洋驻波的图像也和建立的波动方程模型有所区别。是否一维弦振动方程能够模拟出海洋驻波的模型需要更多的海洋观测数据和实验。现阶段仅仅借助MATLAB的功能是不够的,我们需要借助C4D强大的构建力学模型的力量,给我们带来跟现实最接近的海洋模型进行分析。

运行代码:

clc;

clear all;

close all;

x=[0:1/50:2];

t=[0:1/10:10];

[x0,t0]=meshgrid(x,t);

a=1;

un=0;

for n=1:100

un=un+(16./(n.^2*pi.^2)).*sin(n.*pi/2).*cos(n.*pi.*a.*t0/2).*sin(n.*pi.*x0/2);

end

plot(t,un)

2  海洋驻波轨迹验证

首先使用新的生成器xpOcean创建逼真的海面。调整波浪高度、风速等参数。再在轴心处建立一个立方体。赋予这个立方体材质和碰撞体积,用约束效果把立方体的轴心约束到海洋模型的表面,把强度调到百分之百,并且把立方体的位移关闭。这样这个立方体就变成了海洋波浪表面的跟踪器,再把这个立方体等比缩小到一定大小。如果这个正方体足够小,就可以看作海洋驻波的一个微元,以此为标准记录Y坐标的变化并画出图像,看与MATLAB所画图像是否相似,如图2所示。

得益于C4D和XP粒子提供的强大海洋模型和漂浮效果,我们可以观察到较为真实的海上波浪。通过观察正方体的运动轨迹可以发现并不是有规律的上下波动,上浮的幅度比下沉的幅度要高得多,且遇到的波浪大小决定了立方体波峰和波谷的长度。因此我们采用一个周期的时间,来观测立方体遭遇一个波浪的运动轨迹。

通过C4D中对立方体Y轴坐标的度数记录下来并绘制成驻波曲线,如图3所示,可以看出,模拟曲线与实际解的可视化运动轨迹非常相似,但是波峰和波谷振幅的幅度并不一致,因此海浪模拟曲线并不是关于X轴对称的一条曲线。

其误差产生的根本原因有两个,一物体在随着波浪运动时会受到Z轴方向的力,就会导致它的轴线产生微小的偏移,导致轴心发生转动,间接对测得的结果也会产生影响。二是海浪和弦振动不同之处在于,弦振动在向下振动时是不受外力影响的(空气阻力可以忽略不计),然而当我们把X轴看作水平面时,波浪向水平面以下的点做运动时就会受到来自水平面以下沿程阻力损失。若把水流看作一个管道,向下运动的波浪进到大的海流里面,会产生一定规模的涡流,因此可以看做成突扩管道模型,其必受到局部阻力损失。

运行代码:

clc;

clear all;

close all;

x=[0.386,-2.9,-3.5 ,-4.9, -5.59, -6.09, -5.382, -4.98, -3.418 ,-2.207,-0.789,1.938,3.606,5.781,8.838,9.314,7.431,4.464,2.728,1.04,-0.85];

t=[0:20];

c = polyfit(t, x, 2);

d = polyval(c, t, 1);

plot(t, x, ‘r’);

因此海洋駐波的运动轨迹除了根据一维弦振动建立模型以外还要考虑流体力学的相关知识。模型的建立必定会有误差的产生,为了尽力减小误差直至推导出近乎完美的海洋驻波运动轨迹,还需要多跟现实中海洋观测得到的数据进行逐一分析,逐一比对。

3  结  论

对于简单复变函数的图像来说,MATLAB确实可以准确画出其在三维的图像。它可以帮助学生理解,掌握复变函数的抽象物理意义。另一方面,它可以通过一维波动方程图像便捷实现,形象地刻画海洋运动现象,而且与模拟海洋的波动方程非常相似,并且能够展现实际与数模的不同之处和相对误差,即,真实的海洋驻波虽然是建立在一维弦振动方程的基础上的,但是还需要结合流体力学的知识才能完全模拟。可惜C4D这款软件跟MATLAB不兼容,因此C4D每一帧所测得的数据不能直接导入到MATLAB中,这就会造成数据误差。希望未来会有兼容MATLAB的海洋力学模拟软件或者是联通C4D和MATLAB的插件出现。这样就能让学生更直观,沉浸地学习物理海洋学或是流体力学的知识,并在软件的学习和应用中培养抽象思维,提高对流体和波浪的理解。

参考文献:

[1] 李冰,吴迪.将MATLAB软件在高中数学教学中进行推广的几点设想 [J].电脑知识与技术,2014,10(13):3033-3034+3036.

[2] 杨常炳.C4D与实验整合的物理情景创设实践研究 [D].重庆:西南大学,2021.

[3] 冯士筰,李凤岐,李少菁.海洋科学导论 [M].北京:高等教育出版社,2010.

[4] 侍茂崇,高郭平,鲍献文.海洋调查方法 [M].青岛:青岛海洋大学出版社,2000:329.

[5] 姜礼尚,陈亚浙,刘西垣,等.数学物理方程讲义:第3版 [M].北京:高等教育出版社,2007.

作者简介:张春玲(1981—),女,汉族,山东德州人,讲师,博士,研究方向:海洋数据分析研究;通讯作者:程灵巧(1985—),女,汉族,浙江台州人,讲师,博士,研究方向:海洋动力学研究。

猜你喜欢
可视化
数据可视化在互联网产品中的设计与应用
我国健美操相关文献研究的Citespace软件可视化分析
数据可视化设计在美妆类APP中的应用
地理可视化作业设计研究
基于文献可视化的国内港口建设研究综述
画图:数学思维可视化的有效工具
思维可视化
基于GeoGebra的高中物理可视化教学研究
复变函数级数展开的可视化实验教学
复变函数级数展开的可视化实验教学