舰船科学技术  2024, Vol. 46 Issue (8): 1-7    DOI: 10.3404/j.issn.1672-7649.2024.08.001   PDF    
基于B样条的螺旋桨桨叶参数化及曲面生成
张代雨1, 张曼玉1, 刘可峰1, 凌宏杰1, 王志东1, 陈旭2     
1. 江苏科技大学 船舶与海洋工程学院,江苏 镇江 212003;
2. 中国船舶科学研究中心,江苏 无锡 214082
摘要: 为了提高螺旋桨优化过程中桨叶的参数化灵活性和建模效率,开展基于B样条方法的螺旋桨桨叶参数化及曲面生成研究。基于B样条曲线方法,采用最小二乘法对不同半径处的叶切面型值点进行拟合,并利用比例、偏移、坐标转换等方法,实现了桨叶叶切面和外形轮廓的参数化;基于B样条曲面方法,高效生成螺旋桨叶面、叶背、叶根和叶顶曲面;基于Python语言完成相关程序编写,并给出程序的UML类图。最终,通过对螺旋桨实例进行对比分析,证明螺旋桨桨叶参数化的灵活性和桨叶曲面生成的高效性。
关键词: 螺旋桨桨叶     B样条曲线     参数化建模     最小二乘法    
Parameterization and surface generation of propeller blades based on B-spline
ZHANG Dai-yu1, ZHANG Man-yu1, LIU Ke-feng1, LING Hong-jie1, WANG Zhi-dong1, CHEN Xu2     
1. School of Naval Architecture and Ocean Engineering, Jiangsu University of Science and Technology, Zhenjiang 212003, China;
2. China Ship Scientific Research Center, Wuxi 214082, China
Abstract: In order to improve the parameterization flexibility and modeling efficiency of propeller blades in the process of propeller optimization, the parameterization and surface generation of propeller blades based on B-spline method are studied. Based on the B-spline curve method, the least square method is used to fit the data points of blade section at different radii, and the parameterization of blade section is realized by using the methods of scale, offset and coordinate transformation. Based on B-spline surface method, the surfaces of blade surface, blade back, blade root and blade top are generated efficiently. The relevant programs are written based on Python language, and the UML class diagram of the program is given. Finally, through the comparative analysis of propeller examples, the parameterization flexibility of propeller blade and the efficiency of blade surface generation are proved.
Key words: propeller blade     B-spline curve     parametric modeling     least squares    
0 引 言

随着人类社会的发展,陆地上的资源消耗严重,世界上各国对海洋资源的开发与利用逐渐重视起来,而进行海洋资源的开发与利用离不开先进的海洋装备。推进器作为船舶、军舰、潜艇、水下机器人等海洋装备的主要动力来源,是保证其定位精度、平稳性和续航能力的核心部件。

螺旋桨是现代推进器的主要形式,螺旋桨的设计性能直接决定了海洋装备的快速性、机动性、噪声等性能。传统的图谱设计和理论设计方法无法综合考虑螺旋桨各项性能,往往得不到综合性能最优的设计方案。因此,优化设计方法[14]被逐渐应用于螺旋桨的外形设计,以显著提高螺旋桨的综合性能,且发挥出越来越重要的作用,相关研究也越来越多。

在进行螺旋桨外形优化设计时,需要通过一定的函数关系,用一组设计参数对螺旋桨外形进行定义和表示,以便通过调整参数自动生成几何形状不同的螺旋桨,从而将螺旋桨外形优化设计过程转化为对这组设计参数的寻优过程。螺旋桨外形主要由桨毂和桨叶组成。桨毂外形通常较为简单,易于进行参数化描述;但桨叶是典型的自由曲面,几何形状复杂多变,除少数情况下,很难使用简单的外形参数和数学表达式进行描述。因此,实现螺旋桨桨叶的参数化建模和曲面生成是实现螺旋桨优化设计的先决条件。

唐英等[5]采用对UG进行二次开发的方法,实现了船用螺旋桨的参数化建模,并对桨叶叶梢进行光顺处理。王超等[6]基于CASES软件提出了一种快速生成螺旋桨实体模型的方法,简化了螺旋桨的设计过程。刘勇杰等[7]针对船用螺旋桨三维外形复杂的特点,提出了一种基于CATIA平台的坐标变换的船用螺旋桨三维建模方法,该方法具有柔性好、效率高的特点。陈艳君等[8]基于UG开发平台,自主开发了船用螺旋桨的CAD/CAM智能数控编程系统,改善了CAD/CAM软件建模效率低的问题。此外,王欢等[912]也对螺旋桨自动建模方法进行了相关研究,并取得了一系列研究成果。但现有研究大多主要依赖SOLIDWORKS、UG、CATIA、CASES等商业软件,进行二次开发以实现几何外形的自动生成,使用起来资源耗费较大,并且商业软件对设计人员相当于黑箱,参数化几何信息获取和操作困难,不能很直观地根据物理意义直接改变外形。

此外,从优化设计角度,既希望螺旋桨桨叶的参数化方法能准确描述桨叶外形,具有较大的变形空间,又希望能灵活控制参数化变量的个数,否则变量个数过多会导致优化时间过长,优化效率低。基于商业软件的参数化方法灵活性不足,不易满足要求。

B样条[13]作为计算机辅助几何设计中形状数学描述的一个基本方法,具有表示与设计自由型曲线曲面的强大功能。本文基于B样条方法,对螺旋桨桨叶切面和外形轮廓进行参数化,并实现桨叶叶面、叶背、叶根和叶顶的曲面生成,能有效提高了螺旋桨的建模效率,并在优化过程中对桨叶进行灵活变形。

1 螺旋桨几何外形

螺旋桨是典型的自由曲面类零件,主要由桨毂和若干径向固定于桨毂上的桨叶组成。图1对螺旋桨外形进行详细描述,具体包括叶面、叶背、导边、随边、叶根、叶梢(端)、桨毂等部件。

图 1 螺旋桨几何外形 Fig. 1 Propeller geometry

桨毂和毂帽是标准的回转体,近似为圆锥体或圆柱体,建模较为简单;但桨叶的叶面为类螺旋曲面,叶片厚薄不均,形状非常复杂,无法使用简单的数学公式进行描述,建模较为复杂。本文主要进行螺旋桨桨叶的参数化及曲面建模方法研究。

2 基于B样条的桨叶参数化 2.1 B样条曲线方法

B样条曲线方法[14]是现代工业几何建模中最为广泛流行的技术。B样条曲线方法在复杂曲线参数化建模方面具有精度高、效率高的特点,且容易进行曲线的修改,进而能更好地控制创建的几何曲线。目前,基于B样条的曲线建模技术被广泛应用于汽车、飞机、船舶等工业设计及制造领域以及其他高新科技领域。

$ p $阶B样条曲线的定义如下:

$ C\left(u\right)={\sum }_{i=0}^{n}{N}_{i,p}\left(u\right){P}_{i}\text{,}a \leqslant u \leqslant b 。$ (1)

式中:$ {P}_{i} $为曲线的控制点,$ {N}_{i,p}\left(u\right) $为定义在曲线节点矢量$ \boldsymbol{U}(m+1) $上的$ p $阶B样条基函数。除非特别声明,一般取$ a=0,b=1 $。阶数$ p $、控制点个数$ n+1 $和节点个数$ m+1 $满足关系:$ m=n+p+1 $

B样条基函数$ {N}_{i,p}\left(u\right) $的表达式描述如下:

$ \begin{split} {N}_{i,p}\left(u\right)=\,&\frac{u-{u}_{i}}{{u}_{i+p}-{u}_{i}}{N}_{i,p-1}\left(u\right)+ \\ \,&\frac{{u}_{i+p+1}-u}{{u}_{i+p+1}-{u}_{i+1}}{N}_{i+1,p-1}\left(u\right) 。\end{split} $ (2)

节点矢量$ \boldsymbol{U}(m+1) $的表达式描述如下:

$ \boldsymbol{U}=\left\{\underset{p+1}{\underbrace{a,...a}},{u}_{p+1},...,{u}_{m-p-1},\underset{p+1}{\underbrace{b,...,b}}\right\} 。$ (3)

通过移动式(1)中的B样条曲线控制点$ {P}_{i,j} $,可以实现曲线形状的灵活控制。

2.2 桨叶切面参数化

$ \left\{{Q}_{k}({x}_{k},{y}_{k},{z}_{k})|0 \leqslant k \leqslant l\right\} $为初始螺旋桨桨叶伸张轮廓某一半径$ {r}_{j} $处的$ l+1 $个二维叶切面型值点(来源于二维图纸中的数据信息),如图2的圆形数据点,且以叶切面随边为起止点在叶切面曲线上依序排列。

图 2 桨叶伸张轮廓半径$ {r}_{j} $处的叶切面型值点 Fig. 2 The blade profile value point at the radius $ {r}_{j} $ of the blade extension profile

桨叶切面参数化即是寻找B样条曲线对型值点$ \left\{{Q}_{k}({x}_{k},{y}_{k},{z}_{k})|0 \leqslant k \leqslant l\right\} $进行拟合,且满足条件:$ {Q}_{0}=C\left(0\right) $$ {Q}_{l}=C\left(1\right) $。对与除首尾端点外的剩余数据点$ {Q}_{k} $,以最小二乘形式进行逼近,并求解$ n+1 $个控制点变量$ {P}_{i} $使误差达到最小,具体表达式为:

$ \begin{split} & {\mathrm{min}} \sum _{k=1}^{l-1}{\left|{Q}_{k}-{\sum }_{i=0}^{n}{N}_{i,p}\left(\overline{{u}_{k}}\right){P}_{i}\right|}^{2},\\ & w.r.t.{P}_{i}(i=0,\cdots ,n) 。\end{split} $ (4)

式中:$ \left\{\overline{{u}_{k}}|0\leqslant k\leqslant l\right\} $为每一个型值点$ {Q}_{k} $对应的参数值,通常有3种确定$ \overline{{u}_{k}} $的方法:均匀参数化、弦长参数化和向心参数化。考虑桨叶切面导边处的型值点曲率较大,而向心参数化在数据点急转弯变化时能得到更好的结果,故此处选用向心参数化方法,向心参数化方法的表达式为:

$ d=\sum _{k=1}^{l}\sqrt{\left|{Q}_{k}-{Q}_{k-1}\right|} \text{,} \overline{{u}_{0}}=0,\overline{{u}_{l}}=1 , $ (5)
$ \overline{{u}_{k}}=\overline{{u}_{k-1}}+\frac{\sqrt{\left|{Q}_{k}-{Q}_{k-1}\right|}}{d} \text{,} k=1,\cdots ,l-1 。$ (6)

此外,为保证每一个节点区间内至少包含一个$ \overline{{u}_{k}} $,按如下的方法选定节点矢量$ \boldsymbol{U}(m+1) $

$ d=\frac{l+1}{n-p+1} ,i=\boldsymbol{int}(jd) ,a=jd-i, $ (7)
$ {u}_{p+j}=(1-a)\overline{{u}_{i-1}}+a\overline{{u}_{i}},j=1,\cdots ,n-p 。$ (8)

最终,求解最小二乘问题(4)可转变为求解如下的含$ (n-1) $个未知量的线性方程组:

$ \left({\boldsymbol{N}}^{\rm T}\boldsymbol{N}\right)\boldsymbol{P}=\boldsymbol{R} 。$ (9)

式中,$ \boldsymbol{N} $是由标量组成的$ (m-1)\times (n-1) $矩阵:

$ \boldsymbol{N}=\left[\begin{array}{ccc}{N}_{1,p}\left(\overline{{u}_{1}}\right)& \cdots & {N}_{n-1,p}\left(\overline{{u}_{1}}\right)\\ \vdots & \ddots & \vdots\\ {N}_{1,p}\left(\overline{{u}_{l-1}}\right)& \cdots & {N}_{n-1,p}\left(\overline{{u}_{l-1}}\right)\end{array}\right] 。$ (10)

$ \boldsymbol{R} $是由$ n-1 $个点组成的列向量:

$ \boldsymbol{R}=\left[\begin{array}{c}{N}_{1,p}\left(\overline{{u}_{1}}\right){R}_{1}+\cdots +{N}_{1,p}\left(\overline{{u}_{l-1}}\right){R}_{l-1}\\ \vdots\\ {N}_{n-1,p}\left(\overline{{u}_{1}}\right){R}_{1}+\cdots +{N}_{n-1,p}\left(\overline{{u}_{l-1}}\right){R}_{l-1}\end{array}\right] 。$ (11)

$ {R}_{k} $的具体表达式如下:

$ {R}_{k}={Q}_{k}-{N}_{0,p}\left(\overline{{u}_{k}}\right){Q}_{0}-{N}_{n,p}\left(\overline{{u}_{k}}\right){Q}_{l} 。$ (12)

$ \boldsymbol{P} $为由中间$ n-1 $个控制点组成的列向量:

$ \boldsymbol{P}=[\begin{array}{ccc}{P}_{1}& \cdots & {P}_{n-1}\end{array}{]}^{\rm T} 。$ (13)

求解方程组(9)即可得到半径$ {r}_{i} $处拟合的B样条桨叶切面曲线,如图3所示的拟合曲线。本文选择对应的$ n-1 $个控制点作为桨叶切面曲线的参数化变量,具体如图3所示的圆形控制点。

图 3 桨叶半径$ {r}_{j} $处的叶切面B样条拟合曲线及控制点 Fig. 3 B spline fitting curve and control point of blade section at blade radius $ {r}_{j} $
2.3 桨叶外形轮廓参数化

对于螺旋桨的桨叶外形,基于桨叶切面的参数化方法,进一步实现桨叶外形轮廓的参数化,详细过程如下:

首先,根据图2坐标系,$x$方向为叶切面的宽度方向,$y$方向为叶切面的厚度方向,$z$方向为叶切面的半径方向。令$ {A}_{{r}_{j}i}=[{Px}_{{r}_{j}i},{Py}_{{r}_{j}i},{r}_{j}{]}^{\rm T} $表示半径$ {r}_{j} $处叶切面上的第$ i $个控制点的坐标值,定义宽度比例因子$ {s}_{j} $改变半径$ {r}_{j} $处的叶切面宽度,定义厚度比例因子$ {t}_{j} $改变半径$ {r}_{j} $处的叶切面厚度,定义偏移因子$ {\delta }_{j}=[{x}_{\delta j},{y}_{\delta j},0{]}^{\rm T} $改变半径$ {r}_{j} $处叶切面上的控制点的坐标值,经过比例缩放和偏移后,半径$ {r}_{j} $处叶切面上的第$ i $个控制点的坐标值$ {B}_{{r}_{j}i} $可通过下式表述:

$ {B}_{{r}_{j}i}={s}_{j}{t}_{j}({A}_{{r}_{j}i}-{\delta }_{j}) 。$ (14)

然后,假设控制点坐标$ {B}_{{r}_{j}i} $在笛卡尔坐标系中的3个分量表示为$ \left({Bx}_{{r}_{j}i}{,By}_{{r}_{j}i}{,Bz}_{{r}_{j}i}\right) $,将其包络到半径为$ {r}_{j} $的圆柱曲面上,进行相应的坐标变换,计算出新的控制点坐标$ {C}_{{r}_{j}i} $。定义半径$ {r}_{j} $的螺距角为$ {\phi }_{j} $(变螺距螺旋桨不同半径处螺距角不同)、纵斜角为$ \theta $,则具体的坐标转换公式可描述如下:

$ {C}_{{r}_{j}i}=\left[\begin{array}{c}{r}_{j}\mathrm{sin}\left(\dfrac{{Bx}_{{r}_{j}i}{\rm cos}{\phi }_{j}-{By}_{{r}_{j}i}{\rm sin}{\phi }_{j}}{{r}_{j}}\right)\\ {Bx}_{{r}_{j}i}{\rm sin}{\phi }_{j}+{By}_{{r}_{j}i}{\rm cos}{\phi }_{j}-{r}_{j}{\rm tan}\theta \\ {r}_{i}\mathrm{cos}\left(\dfrac{{Bx}_{{r}_{j}i}{\rm cos}{\phi }_{j}-{By}_{{r}_{j}i}{\rm sin}{\phi }_{j}}{{r}_{j}}\right)\end{array}\right] 。$ (15)

综上,通过采用定义的局部和全局参数化变量(见表1)对各个桨叶切面的控制点进行操控,可实现螺旋桨桨叶外形的参数化变形。

表 1 桨叶外形的参数化变量 Tab.1 Parametric variables for blade profile
3 基于B样条的桨叶曲面生成 3.1 B样条曲面生成方法

B样条曲面[14]是B样条曲线的扩充,主要由2个方向的控制点网格、2个节点矢量和单变量B样条基函数来定义,具体方程表达式为:

$ S\left(u,v\right)={\sum }_{i=0}^{n}{\sum }_{j=0}^{m}{N}_{i,p}\left(u\right){N}_{j,p}\left(v\right){P}_{i,j}。$ (16)

式中:$ {P}_{i,j} $为曲面网格上的控制点;$ {N}_{i,p}\left(u\right) $$ {N}_{j,p}\left(v\right) $分别为节点矢量$ \boldsymbol{U}(r+1) $$ \boldsymbol{V}(s+1) $上的$ p $阶B样条基函数;$ \boldsymbol{U}(r+1) $$ \boldsymbol{V}(s+1) $的表达式如下:

$ \boldsymbol{U}=\left\{\underset{p+1}{\underbrace{0,...0}},{u}_{p+1},...,{u}_{r-p-1},\underset{p+1}{\underbrace{1,...,1}}\right\}, $ (17)
$ \boldsymbol{V}=\left\{\underset{q+1}{\underbrace{0,...0}},{u}_{q+1},...,{u}_{s-q-1},\underset{q+1}{\underbrace{1,...,1}}\right\} 。$ (18)

此外,上述B样条曲面表达式中的阶数$ p $、控制点个数$ n+1 $和节点个数$ r+1 $满足关系:$ r=n+p+1 $;阶数$ q $、控制点个数$ m+1 $和节点个数$ s+1 $满足关系:$ s=m+q+1 $

3.2 叶面叶背曲面生成

对于螺旋桨,由船尾后面向前看时所见到的桨叶面称为叶面,另一面称为叶背。基于B样条曲面生成方法,生成螺旋桨的叶面和叶背,需要获取叶面和叶背曲面网格上的控制点、节点矢量$ \boldsymbol{U} $和节点矢量$ \boldsymbol{V} $

对于叶面和叶背曲面网格上的控制点,2.3节中经过坐标变换已得到不同半径$ {r}_{j} $处的叶切面控制点$ {C}_{{r}_{j}i} $,由$ {C}_{{r}_{j}i} $可以生成不同半径$ {r}_{j} $处的叶切面B样条曲线,但这些曲线以随边为起始点,导边位于曲线中部附近,叶面和叶背曲面未分隔开。采用B样条曲线的分裂方法[14],在不改变分裂点曲线曲率的前提下,将叶切面曲线分成2条独立的曲线:一条为叶背曲面上的叶切面曲线,一条为叶面曲面上的叶切面曲线。具体的分裂点取在B样条曲线节点矢量$ \boldsymbol{U}(m+1) $的中间分量处,由$ m+1 $除以2取整得到。分裂后,得到叶面曲面上不同半径$ {r}_{j} $处叶切面曲线的控制点$ {D}_{{r}_{j}i} $及节点矢量$ {\boldsymbol{U}}_{{r}_{j}1} $;得到叶背曲面上不同半径$ {r}_{j} $处叶切面曲线的控制点$ {E}_{{r}_{j}i} $及节点矢量$ {\boldsymbol{U}}_{{r}_{j}2} $。直接选用叶面上所有叶切面的控制点$ {D}_{{r}_{j}i} $作为叶面曲面的控制点,选用叶背上所有叶切面的控制点$ {E}_{{r}_{j}i} $作为叶背曲面的控制点。

对于叶面和叶背曲面上的节点矢量$ \boldsymbol{U} $,叶面曲面使用所有分裂曲线节点矢量$ {\boldsymbol{U}}_{{r}_{j}1} $的平均值作为节点矢量$ \boldsymbol{V} $;叶背曲面使用所有分裂曲线节点矢量$ {\boldsymbol{U}}_{{r}_{j}2} $的平均值作为节点矢量$ \boldsymbol{U} $

对于叶面和叶背曲面上的节点矢量$ \boldsymbol{V} $,使用B样条曲线方法对不同半径$ {r}_{j} $进行拟合,两者均取相应拟合曲线的节点矢量作为节点矢量$ \boldsymbol{V} $

综上,叶面曲面的数学表达式可描述为:

$ S\left(u,v\right)={\sum }_{i=0}^{n}{\sum }_{j=0}^{m}{N}_{i,p}\left(u\right){N}_{j,p}\left(v\right){D}_{{r}_{j}i} ,$ (19)

叶背曲面的数学表达式可描述为:

$ S\left(u,v\right)={\sum }_{i=0}^{n}{\sum }_{j=0}^{m}{N}_{i,p}\left(u\right){N}_{j,p}\left(v\right){E}_{{r}_{j}i} 。$ (20)

图4为生成的桨叶叶面曲面。图中,圆点为叶面曲面的控制点,正方体点为叶背曲面的控制点。

图 4 叶面和叶背曲面及其控制点 Fig. 4 Leaf surface and dorsal surface and their control points
3.3 叶根叶顶曲面生成

对于螺旋桨桨叶,只生成叶面和叶背曲面是不完整的,还需生成叶根和叶顶曲面。

对于叶根曲面,需计算曲面网格上的控制点、节点矢量$ \boldsymbol{U} $和节点矢量$ \boldsymbol{V} $。叶面曲面上半径$ {r}_{0} $处(即叶根处)的叶切面曲线的控制点为$ {D}_{{r}_{0}i} $,叶背曲面上半径$ {r}_{0} $处的叶切面曲线的控制点为$ {E}_{{r}_{0}i} $,故直接选择$ {D}_{{r}_{0}i} $$ {E}_{{r}_{0}i} $分别作为叶根曲面的上下2排控制点$ {F}_{i0} $$ {F}_{i1} $。同时,为了保证叶根曲面边界跟叶面曲面和叶背曲面边界一致,采用叶面曲面或者叶背曲面的节点矢量$ \boldsymbol{U} $作为叶根曲面的节点矢量$ \boldsymbol{U} $。此外,考虑到叶根曲面只包含上下2排控制点,选择$ \left\{0, 0, 1, 1\right\} $作为叶根曲面的节点矢量$ \boldsymbol{V} $

综上,叶根曲面的数学表达式可描述为:

$ S\left(u,v\right)={\sum }_{i=0}^{n}{\sum }_{j=0}^{1}{N}_{i,p}\left(u\right){N}_{j,p}\left(v\right){F}_{ij}。$ (21)

图5为生成的桨叶叶根曲面,曲面即为叶根曲面,圆点为叶根曲面的控制点。

图 5 叶根曲面及其控制点 Fig. 5 Leaf heel surface and its control points

对于叶顶曲面,同样需计算曲面网格上的控制点、节点矢量$ \boldsymbol{U} $和节点矢量$ \boldsymbol{V} $,但相比于叶根曲面,叶顶曲面需考虑水动力特性,更为复杂,常设计成圆弧面。本文计划采用4排控制点来生成所要求的圆弧面,具体过程如下:首先,直接选择叶面曲面上半径$ {r}_{m} $处(即叶顶处)的叶切面曲线的控制点$ {D}_{{r}_{m}i} $作为第1排控制点$ {G}_{i1} $,选择叶背曲面上半径$ {r}_{m} $处的叶切面曲线的控制点$ {E}_{{r}_{m}i} $作为第4排控制点$ {G}_{i4} $。然后,通过下式计算第2排和第3排控制点。

$ \begin{split} & {G}_{i2}={D}_{{r}_{m}i}+0.5\frac{{D}_{{r}_{m}i}-{D}_{{r}_{m-1}i}}{\left|{D}_{{r}_{m}i}-{D}_{{r}_{m-1}i}\right|}\left|({D}_{{r}_{m}i}-{E}_{{r}_{m}i})\right|,\\ & {G}_{i3}={E}_{{r}_{m}i}+0.5\frac{{E}_{{r}_{m}i}-{E}_{{r}_{m-1}i}}{\left|{E}_{{r}_{m}i}-{E}_{{r}_{m-1}i}\right|}\left|\left({D}_{{r}_{m}i}-{E}_{{r}_{m}i}\right)\right|。\end{split} $ (22)

节点矢量$ \boldsymbol{U} $与叶根曲面的选择相同,采用叶面曲面或者叶背曲面的节点矢量$ \boldsymbol{U} $作为叶顶曲面的节点矢量$ \boldsymbol{U} $,以保证叶顶曲面边界跟叶面曲面和叶背曲面边界一致。此外,考虑到叶顶曲面包含4排控制点,选择$ \left\{0, 0,0, 0, 1, 1, 1, 1\right\} $作为叶顶曲面的节点矢量$ \boldsymbol{V} $

综上,叶顶曲面的数学表达式可描述为:

$ S\left(u,v\right)={\sum }_{i=0}^{n}{\sum }_{j=0}^{3}{N}_{i,p}\left(u\right){N}_{j,p}\left(v\right){G}_{ij}。$ (23)

图6为生成的桨叶叶顶曲面,曲面即为叶顶曲面,圆点为叶顶曲面的控制点。

图 6 叶顶曲面及其控制点 Fig. 6 Tip surface and its control points
4 基于Python语言的程序结构

本文使用Python对整个过程进行编程,实现螺旋桨桨叶的参数化及曲面自动生成。

图7为螺旋桨桨叶参数化及曲面建模程序的UML类图,对程序中类的内部结构和相互关系进行详细描述。图中,主要包含Curve、Surface、BladeSection、Parameterizaton、PropellerShape等5个类模块。Curve模块包含了B样条曲线的基本方法,Surface模块包含了B样条曲面的基本方法,BladeSection模块实现了螺旋桨桨叶切面的参数化,Parameterizaton模块实现了桨叶外形轮廓的参数化,PropellerShape模块实现了螺旋桨叶面、叶背、叶根和叶顶曲面的生成。

图 7 螺旋桨桨叶参数化及曲面生成程序的UML类图 Fig. 7 UML class diagram of propeller blade parameterization and surface generation program
5 实例分析

为了验证提出的螺旋桨桨叶参数化及曲面生成方法,进行螺旋桨实例分析。

首先,进行桨叶切面的参数化。在螺旋桨实例中,采用标准NACA0012翼型作为桨叶伸张轮廓不同半径$ {r}_{j} $处的二维叶切面形状,且其型值点$ {Q}_{k} $为归一化后的翼型数据,具体见文献[15]。本文选取17个控制点作为桨叶叶切面曲线的参数化变量,则可求得如表2不同半径$ {r}_{j} $处的控制点坐标值。表2$ {r}_{j} $可根据桨叶切面在径向的具体位置确定。

表 2 不同半径$ {r}_{j} $处的叶切面控制点坐标值 Tab.2 Coordinates of blade section control points at different radii $ {r}_{j} $

然后,进行桨叶外形轮廓的参数化。针对表2中不同半径$ {r}_{j} $处的叶切面控制点坐标值,定义不同半径$ {r}_{j} $处的偏移因子$ {\delta }_{j} $、宽度比例因子$ {s}_{j} $、厚度比例因子$ {t}_{j} $、螺距角$ {\phi }_{j} $和纵斜角$ \theta $的参数化变量值。其中,半径$ {r}_{j} $的单位为mm,偏移因子$ {\delta }_{j} $的单位为mm,宽度比例因子$ {s}_{j} $和厚度比例因子$ {t}_{j} $为无量纲数据,螺距角$ {\phi }_{j} $和纵斜角$ \theta $的单位为(°)。

当参数化变量$ {r}_{j} $$ {\delta }_{j} $$ {s}_{j} $$ {t}_{j} $$ {\phi }_{j} $$ \theta $表3中的值时,则可根据提出的桨叶曲面生成方法得到图8中所示的螺旋桨桨叶外形1。

表 3 桨叶外形1的参数化变量值 Tab.3 Parametrized variable value of blade shape 1

图 8 螺旋桨桨叶外形1 Fig. 8 Propeller blade shape 1

当参数化变量$ {r}_{j}{、\delta }_{j} $$ {s}_{j} $$ {t}_{j} $$ {\phi }_{j} $$ \theta $改变为表4中的值时,则可根据提出的桨叶曲面生成方法得到图9中所示的桨叶外形2。

表 4 桨叶外形2的参数化变量值 Tab.4 Parametrized variable value of blade shape 2

图 9 螺旋桨桨叶外形2 Fig. 9 Propeller blade shape 2

分析图8图9可以发现,通过改变定义的参数化变量,可实现螺旋桨桨叶外形的大范围几何变形,并生成相应曲面,参数化变量类型和变量值可根据设计师需求灵活选择,灵活性强。此外,整个参数化及曲面生成过程不需要商业软件辅助,建模效率高。所提方法和所编程序能为螺旋桨桨叶优化设计提供高效灵活的参数化变形控制。

6 结 语

实现螺旋桨桨叶参数化是进行螺旋桨外形优化的先决条件。为了提高优化过程中的螺旋桨建模效率和参数化变量选择的灵活性,本文基于B样条曲线方法,对螺旋桨的桨叶切面和外形轮廓进行参数化,并结合螺旋桨叶外形特征,采用B样条曲面生成方法分别生成了叶面、叶背、叶根和叶顶曲面。然后,基于Python语言,编写了相应参数化及曲面生成程序。最后,以一型螺旋桨为例,对所提方法和所编程序进行了验证。

实例对比分析的结果表明:设计人员可以根据自己需求,灵活改变定义的参数化变量,以实现螺旋桨桨叶的几何变形和曲面生成,所提方法灵活性强,建模效率高。

此外,本文所提的螺旋桨桨叶参数化及曲面生成方法不仅可以为螺旋桨优化设计提供可靠支撑,还可应用于水下滑翔机、机翼等具有相似自由曲面外形的参数化及曲面生成领域。

参考文献
[1]
王超, 熊鹰, 何苗, 等. 粒子群算法在大侧斜螺旋桨侧斜分布优化中的应用[J]. 上海交通大学学报, 2012, 46(3): 398-403+409.
[2]
彭言峰, 赵淼, 许磊. 船用螺旋桨推进性能优化设计及试验方法[J]. 舰船科学技术, 2021, 43(1): 67-71.
[3]
王波, 张以良, 熊鹰. 船用螺旋桨水动力性能优化设计[J]. 武汉理工大学学报(交通科学与工程版), 2015, 39(4): 773-777.
[4]
ZHANG Yi-fei , CHEN Hai-xin , ZHANG Yu-fei. Wing optimization of propeller aircraft based on actuator disc method[J]. Chinese Journal of Aeronautics, 2021, 34(5): 65-78. DOI:10.1016/j.cja.2020.12.032
[5]
唐英, 王志坚, 杨凯. 基于UG二次开发的船用螺旋桨参数化建模方法与实现[J]. 船舶工程, 2010, 32(4): 52-55.
TANG Ying, WANG Zhi-jian, YANG Kai. Parametric modeling method and implementation of marine propeller based on ug secondary development[J]. Marine Engineering, 2010, 32(4): 52-55. DOI:10.3969/j.issn.1000-6982.2010.04.014
[6]
王超, 吴浩, 韩康, 等. 基于CAESES的船用螺旋桨三维建模研究[J]. 应用科技, 2021, 48(5): 7-11. DOI:10.11991/yykj.202012010
[7]
刘勇杰, 徐青, 胡勇, 等. 基于CATIA的船用螺旋桨三维建模方法[J]. 船海工程, 2018, 47(4): 84-87. DOI:10.3963/j.issn.1671-7953.2018.04.020
[8]
陈艳君, 李凤. 基于UG的船用螺旋桨CAD/CAM计算机仿真系统的开发与建模[J]. 舰船科学技术, 2015, 37(10): 133-136. DOI:10.3404/j.issn.1672-7649.2015.10.028
[9]
王欢. 基于SolidWorks和Pro/E的船用螺旋桨建模研究[J]. 南通航运职业技术学院学报, 2016, 15(2): 32-35.
[10]
彭勤学. 基于SolidWorks的船用螺旋桨建模[J]. 武汉交通职业学院学报, 2014, 16(2): 80-82. DOI:10.3969/j.issn.1672-9846.2014.02.019
[11]
汪涛, 张继光. 基于PRO/E软件的船用螺旋桨建模[J]. 江苏船舶, 2015, 32(1): 28-30.
[12]
龚京风, 李瑞洁, 陈子昊, 等. 螺旋桨叶片自动建模方法[J]. 造船技术, 2020(4): 19-22.
[13]
PIEGL L A , TILLER W . The NURBS book. [M]. Springer Berlin Heidelberg, 1997.
[14]
施法中. 计算机辅助几何设计与非均匀有理B样条[M]. 北京:高等教育出版社, 2001.
[15]
UIUC APPLIED AERODYNAMICS GROUP. UIUC Airfoil DataSite[EB/OL]. https://mselig.ae.illinois.edu/ads/coord_database.html.