基于NURBS曲面插值的船体曲面重构_第1页
基于NURBS曲面插值的船体曲面重构_第2页
基于NURBS曲面插值的船体曲面重构_第3页
基于NURBS曲面插值的船体曲面重构_第4页
基于NURBS曲面插值的船体曲面重构_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、基于NURBS曲面插值的船体曲面重构钱 宏1, 刘 敏2, 贺 庆1, 刘朕明1, 荣焕宗1(1.中国船舶及海洋工程设计研究院,上海 200011;2.中国科学技术大学,合肥 230000)摘 要本文提出了一种船体曲面重构方法。首先,用特征线把船体曲面划分为曲面片,便于表达复杂船体曲面和保留船体特征。其次,对船体线框模型的网格均匀化处理,得到型值点的位置,并给它们加上特征,生成NURBS网格。最后,用带重节点的B样条曲面插值带切矢和重点的NURBS网格,并进行曲面片拼接,生成无缝隙的NURBS曲面。因此,可以用较少的曲面片(几至十几块)重构带有球首、球尾、平边线、平底线、部分折角线和方尾的复杂

2、船体曲面。这给船舶结构设计、CAM和CFD计算提供了良好的船体NURBS曲面模型。关 键 词:船舶设计;NURBS曲面插值;船体曲面重构中图分类号:U66.22 文献标识码:A0前言 收稿日期:2015-02-04;修改稿收稿日期:2015-在船体型线设计中,船体线框和曲面设计方法1是以B样条曲线为基础,先用B样条曲线插值算法,根据给定的型值点生成横剖线、水线、纵剖线、首尾轮廓线和折角线等,创建船体线框模型。然后用NURBS曲面片覆盖此线框模型重构船体曲面,最后生成船体曲面模型。由于该方法符合设计船舶型线的习惯,船舶设计师容易掌握,在国内还有很大市场。重构船体曲面的方法主要有孔斯(Coons)

3、曲面、蒙皮曲面和插值曲面方法。孔斯曲面方法2采用超限插值法构造满足给定边界和跨界切矢条件的曲面,使构造出来的曲面片光滑拼合。方法简洁、易于实现,且适应各种船型。但是,要得到比较光顺的船体曲面,必须对线框模型进行仔细处理和光顺,而且生成的曲面片太多(几十至几百块),曲面片之间会有缝隙,这给进一步交互修改船体、生成光顺船体曲面带来困难。瑞典Tribon M33和芬兰NAPA4等软件属于这类方法,它们占领着中国市场。蒙皮曲面方法2是先在关键位置处布置若干条描述曲面形状的截面曲线,然后生成一张通过这些曲线的曲面。这种方法直观、易于实现,生成的曲面片少(几块),但是对于复杂船型很难实现。闫秋莲和杨启5采

4、用一种改进的蒙皮法重构船体曲面,利用广义站改进了船体曲面的首尾控制网格,并利用节点删除优化了相容性处理后的节点数目,具有一定的工程应用价值,但是对于复杂船型仍然很难实现。插值曲面方法6-7采用插值法构造通过给定型值点或点云数据的曲面,常用NURBS曲面片插值或三角曲面片插值等。这种方法需对型值点进行分块,对各分块的型值点分别进行插值,得到分片插值曲面,然后采用曲面拼接技术构造复杂曲面。该方法生成的曲面片太多(几十至几百块),而且曲面片之间会有缝隙。对于船型设计来说,常常需对船体曲面进行修改以满足设计要求,显然,太多的曲面片使得交互修改很困难,而且工作量大。虽然在逆向工程的曲面重构中有广泛的应用

5、,但是还没有见到用于重构船体曲面的文献。本文提出了一种NURBS曲面插值方法,直接插值船体线框模型的网格型值点,生成船体NURBS曲面,成功地处理了带切矢的点和重点等复杂情况,实现了用较少的曲面片(几至十几块)重构带有球首、球尾、平边线、平底线、部分折角线和方尾的复杂船体曲面。由于NURBS曲面由较少的曲面片组成,所以可以比较方便地对它进行修改,得到满足设计要求的、光顺的船体曲面。1 B样条(B-spline)曲线曲面定义1.1 B样条曲线定义给定n+1个空间矢量,节点矢量,称p次(degree)或p+1阶(order)参数曲线(1)为p次B样条曲线。式中,m = n + p + 1,为p次B

6、样条基函数, 为控制顶点。p次B样条曲线的定义域为。为便于统一处理,通常将B样条曲线的定义域取成规范参数域。B样条基函数用deBoor-Cox-Mansfield递推公式计算。本文只讨论非周期B样条曲线,简称为B样条曲线2。其节点矢量形式如下:(2)1.2 B样条曲面定义给定(n+1) Í(m+1)个空间矢量,节点矢量与,称pÍq次参数曲面(3)为pÍq次B样条曲面。式中,和为p和q次B样条基函数,为控制顶点。本文只讨论非周期B样条曲面,简称为B样条曲面2。其节点矢量形式如下:(4)2 B样条曲线插值为了表示一组数据点(型值点)的位置和切矢,将三维空间的的点附加上

7、切矢控制条件,用ida表示左导数条件,idf表示右导数条件,根据它们可以确定该点的左右切矢。称它们为型值点的特征,可取如下值,切矢长度取数据点的弦长。ORDINARY:无给定的左右切矢,称为普通点。DIRLINE:以两点所在直线方向为切方向。若切方向为0,切矢条件退化为重顶点条件。DIRCURVE:以此点出发的连续三个数据点插值出的抛物线在此点处的切方向为切方向。若不够三个数据点,退化成DIRLINE;若切方向为0,切矢条件退化为重顶点条件。作为端点切矢的默认值。DIRX:以DIRLINE在X轴的投影为切方向。DIRY:以DIRLINE在Y轴的投影为切方向。DIRZ:以DIRLINE在Z轴的投

8、影为切方向。DIRMIDCURVE:以此点和左右两个点插值出的抛物线在此点处的切方向为切方向。用于光滑拼接。若三个数据点中有且仅有两个相等,退化成DIRLINE;若切方向为0,切矢条件退化为重顶点条件。INVERSE:表示该方向的切矢与其相反方向切矢相等。用于180º的光滑拼接。ZERO:切矢取为0。当型值点中某点有左或右切矢时,用带有2重节点的B样条曲线插值;当型值点中某点有左右切矢时,用带有3重节点的B样条曲线插值,解法详见文献8。当型值点中有重型值点时,把重型值点处理成重控制顶点,解法与文献8类似,由于篇幅限制,不再详述。一般,两重点会产生明显的凸起,但是,如果在该处加上方向相

9、反的左右切矢条件,就可使之比较平滑;三重点及更高重会产生折线。3 B样条曲面插值为了表示一组网格形式的数据点(型值点)的位置和切矢,将三维空间的一个点附加上切矢控制条件,用ida_u和idf_u分别表示沿着u方向的左、右导数条件,ida_v和idf_v分别表示沿着v方向的左、右导数条件,根据它们可以确定该点的u/v方向左右切矢,称它们为网格型值点的特征,它们的取值见第2节,切矢长度取子网格内对应等参数线的弦长。设切矢条件总是一行行或一列列地出现,这种有切矢控制的线称之为特征线(边界也可以认为是特征线)。如果某一行/列只有部分数据有切矢控制,根据DIRMIDCURVE规则将该行缺失的特征补全。当

10、网格型值点中某列/行有左或右切矢时,在u/v方向节点向量中用2重节点;当有左右切矢时,用3重节点;当型值点中有重型值点时,把重型值点处理成重控制顶点。下面将详细讨论边界有切矢,内部u、v方向特征线都有切矢的曲面插值算法。类似地,可以得到其它情况的算法,由于篇幅限制,不再详述。给定数据点,四条边界切矢 (左边界)、(右边界)、(上边界)、(下边界)以及四个角点的扭矢 、。再给出两条内部特征线的左右切矢:第3列网格线的左右切矢及扭矢、;第行网格线的左右切矢及扭矢、;以及内部交点处扭矢、。所有切矢可以根据型值点的特征ida_u、idf_ u、ida_v和idf_v估算它们,详见第2节,切矢的长度取其

11、所在等参数线的总弦长,即等参数线上所有型值点连接线的长度。为了方便起见,将扭矢都取为0,因而曲面上相应的地方可能会比较平坦,也可用其它方法确定扭矢,如文献8的简单扭矢等。网格数据点、切矢和扭矢如图1所示。图1 u、v方向都带左右切矢的网格数据点、切矢和扭矢用带重节点的双三次B样条曲面插值这些条件(5)这里,控制顶点为的网格,u向节点数为,v向节点数为。对于曲面,既可以采用对每条网格线的参数化做平均来得到u、v的参数,也可采用与曲线参数无关的均匀参数化方法。经过试验,当数据分布不均匀时(网格线不是几乎平行的),给予曲线参数化然后取平均的方法效果并不好,因为此时的参数不再有几何意义。这里我们采用均

12、匀参数化确定参数值和节点向量。u向参数:u向节点向量(含3重节点):v向参数:v向节点向量(含3重节点):插值条件为(6)将其写成矩阵形式(7)式中,表示沿方向右导数,表示二阶混合导数,其他类似。令控制点矩阵为矩阵中的每一项都可以表示为与有关的行向量、控制点矩阵、与之有关的列向量的乘积。例如 (8) (9)将上述诸式代入(7),得(10)与类似都是三对角矩阵。例如令,得(11)首先求解,对的每一列用追赶法求解,由于系数矩阵相同,所以效率很高。再用相同方法解,就可得到曲面的控制点网格。以 u、v方向都带左右切矢的曲面插值为例:数据点为,边界切矢取DI RCURVE默认值,扭矢取默认值0。第3列和

13、第3行左右切矢全为DIRLINE,扭矢取0。计算结果(型值点和NURBS曲面)如图2所示。图中,方块表示数据点,黑色曲线表示插值数据网格线,灰色曲面表示NURBS插值曲面。因为数据点的第3列和第3行的切矢为DIRLINE,所以曲面在u和v向都产生折线。图2 u、v方向都带左右切矢的曲面插值4 NURBS曲面重构在船体型线设计中,船体线框和曲面设计方法1是以B样条曲线为基础,先用B样条曲线插值算法,根据给定的型值点生成横剖线、水线、纵剖线、首尾轮廓线和折角线等,创建船体线框模型XYZSurf。但是,有了这个船体线框模型,并不能用它来直接生成NURBS曲面,必须先对船体曲面进行分块,并对XYZSu

14、rf进行处理,生成满足一定条件的NURBS网格,再用第4节的方法生成NURBS曲面片。然后,将曲面片拼接起来,完成船体曲面的重构,生成船体曲面模型。4.1船体曲面划分用特征线,例如平边线、平底线、尾封板线、折角线和特殊线等,把船体曲面划分为内部不含特征线的曲面片网格。为了使相关曲面片的u、v节点向量保持一致,分块应满足如下规则:(a) 特征线必须延伸到相对边界;(b) 异向特征线必须相交(在一定误差范围内);(c) 水线必须与异向特征线(包括边界线)相交。图3给出了带平底线和尾封板船体曲面的划分示意图,划分成4块曲面片。图3带平底线和尾封板船体的曲面划分图4.2生成NURBS网格由船体线框模型

15、XYZSurf生成NURBS网格的主要步骤如下:(1)对每块曲面片构造型值点的位置一般,船体线框模型XYZSurf是由横剖线和水线组成,它们用B样条曲线(spline)或折线(polyline)表达。在曲率变化大的地方可通过对横剖线的插值,加密水线。先对曲面片内的每条水线进行采样和网格均匀化处理,使得采样的点数相等,且相邻两点之间的距离也相等,这些点就是曲面片网格的型值点。然后,将它们拟合成B样条曲线作为v线。将所有v线上对应的点拟合成B样条曲线作为u线。根据上述v线和u线,在每两段特征线之间设定一个密度,通过插值可以得到不同疏密的曲面片网格型值点的位置。(2)构造型值点的特征,生成NURBS

16、网格给型值点加上特征,就可得到NURBS网格。型值点的默认特征为ORDINARY。当型值点位于特征线上时,其切矢特征由如下规则确定: (a)若型值点位于折角线或者部分折角线的折角部分,添加左右切矢DIRLINE或DIRCURVE;(b)若型值点位于部分折角线的不折部分或曲面的光滑部分,添加左右切矢DIRMIDCURVE;(c)若型值点位于切线,添加左或右切矢DIRLINE或DIRCURVE;若左右切矢成180度,则添加左或右切矢INVERSE。4.3生成NURBS曲面用第4节的插值曲面方法,依次对划分的曲面片的NURBS网格进行插值,生成多块NURBS曲面片。也可以用3重节点,将面片拼接成一张

17、NURBS曲面。单张曲面便于编辑,但是,如果扭矢处理得不好,拼接后误差会更大。此外,拼接成单张NURBS可能会引入大量无意义的退化区域,极大地增加了数据量。多张NURBS片表达更精确、有效。对于有左右切矢控制的特征线(折角线)B样条曲面自然满足G0拼接。如果拼接处只有左切矢或右切矢(如切线),或者没有切矢控制(如部分折角线的不折部分),就需要G1拼接。根据文献8,采用如下方法处理:使拼接边界处的每个公共顶点与位于两侧各一个相邻非公共顶点共线,且取相邻控制点的距离为对应型值点距离的1/3。实际处理时,先用切矢条件对某个子网格进行插值,当处理与之相邻的子网格时,拼接处的切矢控制用拼接条件替换。例如

18、,曲面A、B交于曲线m,曲面B在边界m上的特征INVERSE需要用到曲面A的控制点信息。如果对生成的NURBS曲面不满意,可以用交互修改功能修改网格的控制点,直到满意为止。由于NURBS曲面由较少的曲面片组成,所以可以比较方便地对它进行修改,得到满足设计要求的、光顺的船体曲面。5 实例为了验证上述算法的正确性和实用性,测试了多艘实船,输入都是中国船舶及海洋工程设计研究院开发的“船舶总体初步设计系统NuCAS”生成的船体线框模型,用本文方法重构船体曲面,生成了船体NURBS曲面。下面给出了1艘实船的结果。例1 带球首、球尾、平底线和方尾的船船体初始线框模型见图4,把船体曲面划分为4块曲面片,如图

19、3所示。图5给出了均匀化和加密横剖线、水线的NURBS网格。分片插值出各NURBS面片,并进行面片拼接,最后,得到整个船体曲面模型。图6和图7给出了NURBS曲面的斑马线和渲染图,可以看出曲面保持了球首、球尾、平底和方尾的特征,平底和尾封板是平面,很好地重构了船体曲面。但是,在船体的尾部还有一些不光顺,可以用交互修改功能修改网格的控制点,直到满意为止。图4 带平底线船体的初始线框模型 图5 带平底线船体的NURBS网格图6 带平底线船体的NURBS曲面斑马线 图7 带平底线船体的NURBS曲面渲染图6结论本文提出了一种NURBS曲面插值方法,直接插值船体线框模型的网格型值点,生成船体NURBS

20、曲面,成功地处理了带切矢的点和重点等复杂情况,实现了用较少的曲面片(几至十几块)重构带有球首、球尾、平边线、平底线、部分折角线和方尾的复杂船体曲面。由于NURBS曲面由较少的曲面片组成,所以可以比较方便地对它进行修改,得到满足设计要求的、光顺的船体曲面。这也给船舶结构设计、CAM和CFD计算提供了良好的船体NURBS曲面模型。1)引进网格型值点的特征,将三维空间的一个型值点表示为附加上切矢控制条件ida_u、idf_u、ida_v和idf_v,很好地表达了网格型值点的位置和切矢。2)用特征线,例如平边线、平底线、尾封板线、折角线和特殊线等,把船体曲面划分为内部不含特征线的曲面片网格,便于表达复

21、杂船体曲面并保留船体特征。分块规则能使相关曲面片的u、v节点向量保持一致,满足NURBS网格的要求。3)对曲面片内的每条水线进行采样和网格均匀化处理,使得采样的点数相等,且相邻两点之间的距离也相等,得到型值点的位置,并给型值点加上特征,生成NURBS网格,便于用较少的曲面片重构复杂船体曲面。4)用带重节点的双三次B样条曲面插值带切矢和重点的NURBS网格,生成多块NURBS曲面片,再沿特征线将它们拼接起来,生成无缝隙的NURBS曲面,并在特征线上达到G1或G0(折角线)连续。参 考 文 献1 王 栋, 荣焕宗, 数字化船型设计方法, 船舶工程,2008(02) .2 PIEGL L, TILL

22、ER W. The NURBS book, 2nd ed.M . Springer, Berlin, 1997.3 AVEVA. Tribon M3 user's guideM . 2005.4 NAPA. NAPA online manualsM.2005. 5 闫秋莲,杨启. 基于NURBS的船体曲面重构J.船舶工程,2006(05) .6 张 楠,王晏民. 基于点云数据NURBS曲面重构技术探究J. 北京建筑工程学院学报,2009(01).7 梁群仙,许宏丽. 一种基于点云数据的快速曲面重构方法. 计算机工程,2013(02) . 8 施法中,计算机辅助几何设计与非均匀

23、有理B样条. 高等教育出版社, 2001.Ship Hull Reconstruction Based on NURBS Surface InterpolationQIAN Hong, LIU Min, HE Qing, LIN Zhenming, RONG HuanzongAbstract A ship hull reconstruction method is presented. Firstly, a ship hull surface is divided into panels according to its character curves in order to represent a complex ship hull surface and to reserve its characters. Secondly, the net of the wire frame model of a ship hull are dealt with evenly to get offset points, character v

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论