顺流式网箱试验数据可视化方法的研究

江涛, 谌志新, 刘平

江涛, 谌志新, 刘平. 顺流式网箱试验数据可视化方法的研究[J]. 南方水产科学, 2007, 3(4): 60-64.
引用本文: 江涛, 谌志新, 刘平. 顺流式网箱试验数据可视化方法的研究[J]. 南方水产科学, 2007, 3(4): 60-64.
JIANG Tao, ZHAN Zhixin, LIU Ping. Investigation on application of data visualization in downstream net cage experiment[J]. South China Fisheries Science, 2007, 3(4): 60-64.
Citation: JIANG Tao, ZHAN Zhixin, LIU Ping. Investigation on application of data visualization in downstream net cage experiment[J]. South China Fisheries Science, 2007, 3(4): 60-64.

顺流式网箱试验数据可视化方法的研究

基金项目: 

国家高技术研究发展计划(863计划)项目 2006AA10032

详细信息
    作者简介:

    江涛(1969-),男,高级工程师,从事海洋渔业工程技术。E-mail: shinek@163.com

  • 中图分类号: S969.19

Investigation on application of data visualization in downstream net cage experiment

  • 摘要:

    将网箱模型在水槽实验中获得的不同波高、流速状态下的实验数据,还原成网箱在水中空间6自由度运动,通过虚拟现实建模语言(VRML)和Java的联合使用,开发了可视化系统,使得网络用户不仅能访问该系统,且可选择不同实验数据进行交互访问。系统运行时,可实时切换场景的视角,进行多方位观察和研究。

    Abstract:

    This paper presents a visualization in scientific computing(ViSC) technique that could be used in dynamic simulation of net cage. The experiments on the mooring system under regular-wave condition and all kinds of currents were performed. According to above experiments, a new ViSC technique based on 3-Dimension surface rendering and dynamic coloration is put forward and implemented.This technique is efficient. The visual system was developed, based on the joint use of virtual reality modeling language(VRML) and Java.Internet users can browse the system and select different experimental data to observe and research it.

  • 顺流式网箱[1](以下简称网箱)系一种单锚固定的网箱系统[2]。在海洋中受到风、浪、流的联合作用,网箱的姿态及系统受力状态会发生变化。对该网箱系统采用1 : 15的模型进行缩比实验。实验时网箱被放置在能模拟无波、有波(4.5 m波高)和0~2 m·s-1流速实验水槽内,采集了波高、网箱位移、锚绳及框架绳索张力变化等数据(图 1)。然而,采样所获得数据成千上万,从数据中很难直观判断出网箱在空间6个自由度方向上的运动变化。因此,需要对实验数据进行采集和处理合成。本文采用通过Java语言的运算并基于虚拟现实建模语言(virtual reality modeling language,VRML)的cortona三维引擎[3],完成网箱模型试验数据数字化三维显示的可视化研究,为网箱系统的设计、优化或改进,提供直观、经济、便捷的手段和方法。

    图  1  单锚系泊顺流式网箱模型在试验水池中的布置示意图
    Figure  1.  Experimental installation of a reduced- scale pattern

    本网箱的6自由度运动是采用非接触式模型6自由度运动测量系统[4-5]。它是通过红外线发光源和位置测量仪来测量数个点的位置。数个发光源LED固定在模型上,并依次发光。位置测量仪通过摄像头测到光点运动的变化,产生系列复合信号。然后通过控制部分将其分解成二维通道位置数据,即光点在平面上的投影位置。

    为了测量光点在空间的位置(三维坐标),采用2个摄像头,将其安置互成直角,对准测量目标。测量目标由LED发光源组成3个空间点(不在一条直线上)。

    网箱在浪、流作用下6个自由度运动时必须明确规定坐标系,便于确切描述所发生的运动情况。这里用到了2个右手直角坐标系,其定义如下。

    大地固定坐标系o-xyz,它是固定在地球上的直角坐标系,对应于单点系泊网箱静止浮在静水面上时的位置,即初始位置,z轴向上为正。

    运动坐标系O-XYZ,它是以网箱中心位置O为原点而固定在网箱上的直角坐标系,随着网箱的运动而变,定义如图 2所示。在单点系泊网箱静止浮在静水面上时,运动坐标系O-XYZ与固定坐标系o-xyz重合。网箱在任意时刻的复杂运动可以分解为6个自由度的运动,即网箱中心O沿o-xyz坐标系3个坐标轴的直线运动以及网箱绕O-XYZ 3个坐标轴的转动,定义如下。

    图  2  顺流式网箱坐标系及6自由度运动定义
    1. 摄像机;2. 3个不同位置的红外线发光源;3. 网箱
    Figure  2.  The net cage′s coordinates and definition of six-freedom movement
    1. camera; 2. three lights from the light-emitting diodes (LEDs)which are fixed on the model; 3. net cage

    对于ox轴的直线运动称为纵荡(或称进退,surge),指向网箱系泊端向左为正;对于绕OX轴的转动称为横摇(roll),向左倾侧为正;对于oy轴的直线运动称为横荡(或称横漂,sway),向右为正;对于绕OY轴的转动称为纵摇(pitch),网箱系泊端向下为正;对于oz轴的直线运动称为垂荡(或称升沉,heave),向上为正;对于绕OZ轴的转动称为首摇(或称首尾摇,yaw),逆时针为正同样如图 2所示,3个光点的空间坐标为(XA,YA,ZA),(XB,YB,ZB),(XC,YC,ZC)。根据在3个点的坐标可求得相对坐标系O-XYZ与固定坐标系o-xyz的方向余弦Cξx,Cξy,Cξz,Cηx,Cηy,Cηz,Cζx,Cζy,Cζz,分别表示为:r00……r22,并由以下式(1)计算欧拉角θx、θy、θz[6]

    $$ \left[\begin{array}{ccc} \mathrm{r}_{00} & \mathrm{r}_{01} & \mathrm{r}_{02} \\ \mathrm{r}_{10} & \mathrm{r}_{11} & \mathrm{r}_{12} \\ \mathrm{r}_{20} & \mathrm{r}_{21} & \mathrm{r}_{22} \end{array}\right]=\left[\begin{array}{ccc} \mathrm{CyCz} & \mathrm{CzSxSy}-\mathrm{CxSz} & \mathrm{CxCzSy}+\mathrm{SxSz} \\ \mathrm{CySz} & \mathrm{CxCz}+\mathrm{SxSySz} & \mathrm{CzSx}+\mathrm{CxSySz} \\ -\mathrm{Sy} & \mathrm{CySx} & \mathrm{CxCy} \end{array}\right] $$ (1)

    式中:Cy为cos(θy),Sy为sin(θy)。其余依此类推。

    由此可求得网箱在运动过程中欧拉角变换值。欧拉角能很好的描述网箱绕自身各轴旋转的角度,能够很直观地看出网箱绕各轴转动的最大或最小角度。但当使用欧拉变换的时候,会出现所谓万向锁(gimbal lock)。这种现象通常在旋转变换的时候出现,其中会缺少一个自由度。因此在实现网箱空间运动时,不采用欧拉变换。本系统采用的是轴-角转换。所谓轴-角转换即网箱分别绕自身的OZ、OY、OX后的欧拉变换转换成绕空间某一轴旋转一定角度的变换。这种变换后的形式更适合虚拟现实的3D引擎读取。从旋转矩阵出发抽取旋转角度和单位长度的轴有很多种解,因为当$ \mathord{\buildrel{\lower3pt\hbox{$\scriptscriptstyle\frown$}} \over \omega } $是有效轴时,$ -\mathord{\buildrel{\lower3pt\hbox{$\scriptscriptstyle\frown$}} \over \omega } $也是有效轴,并且当θ是有效轴时,θ+2πk也是有效的角,因此需要限定θ∈[0,π],方法如下:

    $$ \theta=\cos ^{-1}\{[\rm{Trace}({\rm{R}})-1] / 2\} \quad \theta \in[0, \pi] $$ (2)

    如果θ=0,那么任何单位长度方向都可以作为有效轴,因为没有进行旋转。如果θ∈[0,π],可取

    $$ \vec{{\rm{d}}}=\left({\mathrm{r}}_{21}-{\mathrm{r}}_{12}, {\mathrm{r}}_{02}-{\mathrm{r}}_{20}, {\mathrm{r}}_{10}-{\mathrm{r}}_{01}, \quad \mathord{\buildrel{\lower3pt\hbox{$\scriptscriptstyle\frown$}} \over \omega }=\vec{{\rm{d}}} / \| \vec{{\rm{d}}}\|\right. $$ (3)

    其中$ \mathord{\buildrel{\lower3pt\hbox{$\scriptscriptstyle\frown$}} \over \omega } $ =(ω0,ω1,ω2)。由于本网箱在整个实验的拖曳过程中没有发生过180°的翻转现象,因此暂不考虑θ=π的求解。根据(2)和(3)即可求得旋转轴方位以及旋转角度。通过求解,可以获得所需的网箱轴-角变换值,如表 1所示。

    表  1  网箱空间摆动与时间对应表
    Table  1.  Counterpart of net-cage′s swing during the course of experiment
    时间/s
    time
    $ \mathord{\buildrel{\lower3pt\hbox{$\scriptscriptstyle\frown$}} \over \omega } $=(ω0,ω1,ω2) 角度θ/弧度
    angleθ/rad
    ω0 ω1 ω2
    0 -0.00344 0.183597 -0.983 0.148699
    0.194 -0.00982 0.161826 -0.98677 0.147186
    0.387 -0.01273 0.136175 -0.9906 0.144638
    0.581 -0.02029 0.0926 -0.9955 0.142977
    0.775 -0.03216 0.058748 -0.99775 0.141194
    0.968 -0.04359 0.014136 -0.99895 0.140642
    1.162 -0.0452 -0.03331 -0.99842 0.141162
    1.356 -0.04943 -0.07554 -0.99592 0.141828
    1.549 -0.05809 -0.11743 -0.99138 0.142019
    1.743 -0.06999 -0.16263 -0.9842 0.143225
    234.703 0.297757 -0.10446 -0.94891 0.489833
    234.896 0.293747 -0.11518 -0.94892 0.48748
    235.09 0.287081 -0.12961 -0.9491 0.485686
    235.284 0.282275 -0.14467 -0.94836 0.484056
    下载: 导出CSV 
    | 显示表格

    需要指出,如果旋转的平面具有单位长度法线$ \mathord{\buildrel{\lower3pt\hbox{$\scriptscriptstyle\frown$}} \over \omega } $,那么旋转的轴-角表示就是数对($ \mathord{\buildrel{\lower3pt\hbox{$\scriptscriptstyle\frown$}} \over \omega } $,θ)。旋转的方向选择为从$ \mathord{\buildrel{\lower3pt\hbox{$\scriptscriptstyle\frown$}} \over \omega } $所指向的一面向下看时,旋转是沿着原点逆时针方向旋转θ>0。

    浅海规则波[7]的模拟是靠调节造波机摇板的振幅及周期来实现的,并以电阻式浪高仪测量波高及周期和进行实时记录。根据所模拟的规则波结果可以看出,所模拟的规则波的正确程度都达到了国际船模试验池会议所规定的要求。电阻式浪高仪2只,安装在拖车上,分别用于波浪校验及实际试验时对波浪高度的实时测量。

    因此实际所测得的波高数据为一个波点上下震荡的数据,如图 3所示。而波浪的可视化是通过一个或数个波面来体现的,因此需要对已有的数据进行插值处理。本次实验模拟的波长为120 m,波高4.5 m,波浪周期为9.0 s。为了达到一定的波浪显示效果,在120 m的波长上共插入12个波点,这些波点形成一个类似于余弦的曲线,波点主要控制着波浪随时间变化而周期性震荡起伏的过程。插入的波点越多,波面的显示越光滑。

    图  3  单个波点随时间震荡图
    Figure  3.  One wave point′s oscillation during the course of experiment

    为了能比较精确地反映出波浪实验数据的实际情况,将图 3中波点的一个时间周期9.0 s分成12段,共12个时间点,不同时间内的点位移与一个波长的插值点一一对应。随着时间的变化,插值点各自上下震荡,形成标准的浅水波。

    波点高度计算方法如下:

    $$ \begin{array}{*{20}{c}} { \text { PointHeigh [0] = WaveHeigh [k} \times 0+\text { time }]}\\ {\text { PointHeigh [1] = WaveHeigh [k } \times 1+\text { time }]}\\ {\text { PointHeigh [2] = WaveHeigh [k } \times 2+\text { time }]}\\ \begin{array}{l} \\ \vdots \\ \vdots \end{array}\\ {\text { PointHeigh [11] = WaveHeigh [ k} \times 11+\text { time }]} \end{array} $$

    其中WaveHeigh[]为一个波点不同时间的波高,它是与时间一一对应。PointHeigh[]为从0~12个插值点在同一个时间内的不同高度。k为图 3中被划分成12段的间隔时间,单位(s)。time为实验过程的采样时间,比如,从0、0.194、0.387、0.581……235.284 s。

    本系统的运行界面如图 4所示,它基于网络环境,不同的用户可通过登入外部网或局域网的服务器对相关网页进行访问。运用网页交互技术对网箱的三维运动情况及受力状态进行动态显示。网箱随波浪运动的同时,还可以手动控制网箱的不同视角进行观测。网页内嵌入了Java Applet程序和虚拟现实模式语言场景。Java Applet是用Java语言编写的应用程序,这些程序是直接嵌入到页面中,由支持Java的浏览器(IE或Nescape)解释执行能够产生特殊效果的程序。它可以大大提高Web页面的交互能力和动态执行能力。VRML是一种描述交互式三维对象和世界的文件格式,设计者可以运用它去描述一个现有的或想象的景物并将它放入虚拟的三维环境中。它们之间是通过EAI(external authoring interface,外部程序接口)实现实时交互的。EAI方法依赖于一个与VRML浏览器相联系的Java的支持。该Java包由vrml.external.*、vrml.external.field.*、vrml.external.node.*以及vrml.external.exception.* 4个部分组成。开发者使用该接口创建的应用程序可以动态地创建、修改和删除VRML场景中的节点。

    图  4  实验数据可视化系统界面
    Figure  4.  The interface of data visualization in experiment

    在网箱模型实验时,电脑将不同传感器产生的数据(浪高、流速、运动情况以及锚绳张力、时间等)保存为一个二进制或转化为文本文件。将这些数据文件保存至网站服务器内,当用户访问网页时,嵌入网页内的Java Applet程序显示右侧的操作选项及按钮,左侧面积较大的部分显示虚拟现实模式场景。载入lab.wrl文件,完成对网箱系统的运动、浪高、流速及锚绳、网箱经纬张绳受力等的初始化。在此过程中Java Applet程序与lab.wrl之间进行通讯是通过Java获得vrml场景的句柄来完成的。关键代码如下:

    browser =Browser.getBrowser (this,"contents",0);//获得vrml浏览器(场景)的句柄。

    从而Lab.wrl的控制权交由Java Applet程序处理。用户通过右侧上方键入实验数据名或直接通过右侧下部的列表框选择“阻流罩,0 m·s-1,波高4.5 m”时,Java程序根据提供的文件名读取服务器内部的实验数据文件,对于文件内不同时间长度的6自由度运动和波浪数据以及受力数据,分别进行各自的数值变换。使用变换好的数据去控制场景内网箱空间运动。

    Java和VRML的结合使用,完成了载入服务器中的实验数据,对数据进行坐标变换和插值,增加节点的事件入口和事件出口的路由,完成了随着时间的变化,网箱水中空间的位置变化和引起波浪波动的显示。锚绳的受力变化过程、经向纬向绳索的张紧力变化过程、视角的动态变化以及实时画出的波浪曲线、锚绳张力曲线等可视化方法由于篇幅的关系就不再叙述。详细的系统介绍及演示请参照网页 http://www.fmiri.com/netlab/

    本系统能够读取网箱在不同波高及流速状态下所做的各类实验数据,并能真实地反映出网箱的空间三维运动和受力变化。用户能通过internet对本系统进行交互和访问。当然,根据实际情况的需要,也可以对本系统进行适当的扩充,比如数据分析、数理统计等亦可以在本系统内完成,从而构建一整套基于网络的可视化及分析集成系统。搭建该可视化系统的方法对其他网箱[8-9]实验数据可视化同样具有指导意义。

  • 图  1   单锚系泊顺流式网箱模型在试验水池中的布置示意图

    Figure  1.   Experimental installation of a reduced- scale pattern

    图  2   顺流式网箱坐标系及6自由度运动定义

    1. 摄像机;2. 3个不同位置的红外线发光源;3. 网箱

    Figure  2.   The net cage′s coordinates and definition of six-freedom movement

    1. camera; 2. three lights from the light-emitting diodes (LEDs)which are fixed on the model; 3. net cage

    图  3   单个波点随时间震荡图

    Figure  3.   One wave point′s oscillation during the course of experiment

    图  4   实验数据可视化系统界面

    Figure  4.   The interface of data visualization in experiment

    表  1   网箱空间摆动与时间对应表

    Table  1   Counterpart of net-cage′s swing during the course of experiment

    时间/s
    time
    $ \mathord{\buildrel{\lower3pt\hbox{$\scriptscriptstyle\frown$}} \over \omega } $=(ω0,ω1,ω2) 角度θ/弧度
    angleθ/rad
    ω0 ω1 ω2
    0 -0.00344 0.183597 -0.983 0.148699
    0.194 -0.00982 0.161826 -0.98677 0.147186
    0.387 -0.01273 0.136175 -0.9906 0.144638
    0.581 -0.02029 0.0926 -0.9955 0.142977
    0.775 -0.03216 0.058748 -0.99775 0.141194
    0.968 -0.04359 0.014136 -0.99895 0.140642
    1.162 -0.0452 -0.03331 -0.99842 0.141162
    1.356 -0.04943 -0.07554 -0.99592 0.141828
    1.549 -0.05809 -0.11743 -0.99138 0.142019
    1.743 -0.06999 -0.16263 -0.9842 0.143225
    234.703 0.297757 -0.10446 -0.94891 0.489833
    234.896 0.293747 -0.11518 -0.94892 0.48748
    235.09 0.287081 -0.12961 -0.9491 0.485686
    235.284 0.282275 -0.14467 -0.94836 0.484056
    下载: 导出CSV
  • [1] 江涛, 苏世强, 谌志新, 等. 新型顺流式网箱的研究[J]. 渔业现代化, 2005(1): 36-38. doi: 10.3969/j.issn.1007-9580.2005.01.020
    [2] 宋伟华, 梁振林, 赵芬芳, 等. 单点系泊网衣构件波浪试验研究[J]. 海洋与湖沼, 2005, 36(3): 9-16. doi: 10.3321/j.issn:0029-814X.2005.03.002
    [3] 雷朝铨, 吴伟斌. VRML与JAVA相结合开发3D交互式虚拟场景[J]. 泉州师范学院学报: 自然科学版, 2004, 22(2): 63-66. doi: 10.3969/j.issn.1009-8224.2004.02.012
    [4] 李木国, 韩冰, 王静, 等. 非接触式浮体六自由度检测系统研究[J]. 大连理工大学学报, 2004, 44(1): 114-118. doi: 10.3321/j.issn:1000-8608.2004.01.024
    [5] 杨建民, 顾海粟, 姚美旺, 等. 非接触式六自由度运动测量与分析方法[J]. 海洋工程, 1999, 17(2): 17-21. doi: 10.3969/j.issn.1005-9865.1999.02.003
    [6]

    SCHNEIDER P J, EBERLY D H. Geometric tools for computer graphics[M]. San Francisco: Morgan Kaufmann Publish, 2003: 848-852. doi: 10.1109/MCG.1984.276095

    [7] 罗伯特·E·兰德尔. 海洋工程基础[M]. 上海: 上海交通大学出版社, 2002: 23-29. https://hn.sslibrary.com/user/login/showlogin?backurl=%2Fshowbook.do%3FdxNumber%3D12527921%26d%3DF6D4838B9D55E40E3DE317051E1D973F%26fFenleiID%3D0P7005
    [8] 钱春茂, 周永平, 徐皓. 深水抗风浪网箱的应用与改造[J]. 渔业现代化, 2003(6): 28-31. doi: 10.3969/j.issn.1007-9580.2003.06.015
    [9] 谌志新, 王中新. 外海抗风浪网箱系统[J]. 渔业现代化, 2001(3): 19-22. doi: 10.3969/j.issn.1007-9580.2001.03.009
图(4)  /  表(1)
计量
  • 文章访问数:  5231
  • HTML全文浏览量:  136
  • PDF下载量:  2830
  • 被引次数: 0
出版历程
  • 收稿日期:  2007-04-08
  • 修回日期:  2007-05-07
  • 刊出日期:  2007-08-04

目录

/

返回文章
返回