2。1 Bezier曲线定义
Bezier曲线是参数多项式曲线,通过一组控制多边形折线的顶点来唯一确定图形位置[5]。控制点中,首末两个点决定曲线的起止位置,其他顶点可以控制曲线的斜率与走向。Bezier曲线具有严格的数学基础及良好的几何特性,非常适用于空间曲线的几何描述,在叶片翼型的几何造型、气动结构设计以及工业加工中应用十分广泛。
一阶Bezier曲线有两个控制点、,决定了其曲线肯定是这两点一条直线:文献综述
(2。1)
二阶Bezier曲线的三个控制点、、,除了两个点确定起点终点之外,还有一个点影响了曲线的弯曲情况:
(2。2)
三阶Bezier曲线起始于走向,并从的方向来到[6]。一般不会经过或;这两个点只控制了位置走向。、、、这四个点中,、两个点同时作用,共同影响了曲线的形状。
三阶曲线的参数形式为:
(2。3)
一般化的n个控制点的贝塞尔曲线即
(2。4)
也可以写成多项式:
(2。5)
线性Bezier曲线函数中的表示路径进行的百分比。例如一阶时刻,表示至的直线的进程。在高次的Bezier曲线中,比例运用在每一段控制多边形中,即每一时刻对应的多边形每一条边上的进程。
2。2 基于Bezier曲线的翼型参数化表达
使用贝塞尔曲线对风力机翼型进行参数化表达,最核心的步骤是通过已知翼型外形曲线的坐标反求出控制点的坐标,用这些控制点来唯一确定翼型的外形曲线。本文借助常用的最小二乘法,根据Bezier曲线和翼型表面离散点误差平方和最小的原则,来计算最贴近原翼型曲线的控制点坐标[7]。从上文中得知,首末控制点肯定落在曲线上,因此把风力机翼型的前缘顶点和尾缘点直接作为Bezier曲线起止的两个控制点。因此在求解n阶Bezier曲线拟合时,计算的控制点为n-1个,变量为2*(n-1)个。由于翼型的气动性能与其几何外形有很大关联,所以求出控制点坐标之后一般可以唯一确定该翼型的轮廓外形。在后续的优化操作中,只需不停改变控制点坐标,就可以改变翼型的性能,寻找到气动特性最佳点。
此外,Bezier曲线的阶数越高时,拟合的误差越小,但却不容易控制曲线的形状和走向,计算量也就更大。因此,在满足一定误差精度的前提之下,尽可能降低Bezier的阶数,从而减小后续遗传算法的变量个数,可以更快寻找到最优变量。来:自[优E尔L论W文W网www.youerw.com +QQ752018766-
本文运用Matlab中常用的fmincon函数,可求解非线性约束条件下的最小值问题。以Bezier曲线和翼型外形的误差为目标函数,寻找误差最小时刻的最优解(即与原翼型拟合程度最好的曲线)。虽然贝塞尔曲线可以直接生成一个封闭连续光滑曲线,但是这样需要的控制点更多,形状也不易控制。因此,本文决定把上翼面和下边分开拟合,只需要保证两条曲线的第一个交汇点即翼型的前缘点处光滑连接即可。即要求两条Bezier的第一个控制点和前缘点三点共线,反映成函数语言即是一条非线性等式约束条件。
该程序是可以寻找不同的n阶情况下最贴近原翼型的贝塞尔曲线的控制点坐标。在主函数中,输入的数据是翼型上、下面的外形离散点数据,输出拟合效果最好时的控制点坐标及当时的误差。变量初值对函数影响不大,因此控制点纵坐标初值取0,横坐标初值为0到1之间的均匀分布。值得一提的是,本文为了确保生成的控制点是按顺序排列的,即控制点按照从尾缘开始沿着上表面至前缘,再沿着下表面回到尾缘下顶点,本文通过线性等式约束,保证上表面控制点横坐标单调递减,下表面横坐标又从小到大排列,且这些点的横坐标均在尾缘点与前缘点之间。主函数中调用工具fmincon函数,通过线性不等式约束条件的A和b两个矩阵,来保证控制点按顺序排列。