|
|
用神经网络法实现反向工程中的曲面插补 |
目前在计算机辅助设计和制造环境中对构成模型和加工曲面进行了较多的研究,其中许多问题涉及到曲面模型、插值问题、加工曲面的刀具轨迹工艺以及曲面的数学表达。工业产品的形状大致可以分为两类或由这两类组成:一类是由初等解析曲面,例如平面、圆锥面、球面、圆柱面、圆环面、椭球面等组成,可以用一个多项式方程f(x,y,z)=0形式来表达;第二类是不能用初等解析曲面来组成,而是以复杂方式自由地变化的曲面,即所谓自由曲面组成。自由曲面通常是由矢函数形式的参数曲面方程P=P(u,v)来描述,常用的有Coons曲面、Bezier曲面、B样条曲面和NURBS曲面,它们都是用一些基本函数和控制点定义的。目前自由曲面构造方法可分为两大类:插值和逼近。插值法中曲面的拟合是通过所有的数据点,通常用于精确点的测量。逼近法中表面的拟合不必通过所有的数据点,但它表达了对数据点的总体最优逼近的程度,通常用于处理大量的数据点,或需要对测量误差和噪声进行处理的情况。曲面的数学表达要涉及许多问题。如曲面模型构造、插值点的选择、插补点的密度等问题。这需要较高的技巧来构造曲面。本文尝试用神经网络方法对曲面的坐标点进行插补,为了评价这种方法,采用数学曲面上的一系列点进行网络训练。网络通过训练后,计算一系列的点,这些点可以用来同已知曲面数学方程产生的点进行比较,比较的差异能够表明该方法的实用程度。训练网络生成的点同样能够产生加工表面的刀具轨迹。
1 计算模型的建立
采用反向传播算法的网络结构,它是一种梯度降低法,是最小二乘法的概括,其中权值的修改是由误差函数对权值偏导而得到的。神经网络具有一种储存知识的自然属性,在某种意义上与人脑相类似,即通过训练而不是编程来获取知识。使用反向传播法对多层神经网络的训练是一个迭代过程,用户可以使用两个参数:学习率h和激活因子a,来调整步骤和先前步骤记录,以便反向传播算法收敛到最小值。对于多层感知器,反向传播算法是一种非常有效的学习算法。
通常曲面是一个含有变量u和v的函数P=P(u,v),求曲面插补点的关键问题是确定参数变量u,v和坐标值x,y,z之间的关系。本文将其分解为3个曲面表达式x(u,v),y(u,v)和z(u,v)。这样可以将神经网络设计成与3个函数x(u,v),y(u,v)和z(u,v)联系的3个独立网络,每个网络有4层结构:输入层、输出层和两个隐含层。输入层含有两个参数变量u和v的两个节点;输出层含有与x,y,z有关的一个节点;两个隐含层的每一层是由10个节点构成。设计成3个分离网络的目的是为了与单一的三节点输出层的网络进行比较。
为了评价神经网络方法曲面插补的实用性,采用一个数学曲面—非均匀有理B样条曲面—NURBS进行验证。NURBS方法在CAD/CAM与计算机图形学领域获得越来越广泛的应用。1991年国际标准组织(ISO)正式颁布了工业产品几何定义的STEP标准,作为产品数据交换的国际标准,在STEP标准中,自由型曲线曲面唯一地用NURBS表示,其有理分式表达式为:
这里控制顶点dI,J,i=0,1,…,m;j=0,1,…,n呈拓扑矩阵阵列,形成一个控制网格。wi,j是与顶点di,j联系的权因子,规定四角顶点处用正权因子,即w0,0,<wm,0,w0,n,wm,n>0,其余wi,j≥0。Ni,k(u),i=0,1,…qm和Nj,l(v),j=0,1,…,n分别为u向k次和v向l次的规范B样条基。它们分别由u向与v向的节点矢量U=[u0,u1,…,um+k+1]与V=[v0,v1,…,vn+l+1]按德布尔递推公式决定。
样本选取的具体方法是首先对插补曲面上的已知坐标点进行NURBS曲面拟合,曲面构造后,使用一组等距u,v值作为样本输入,由此计算出一系列的坐标点x,y,z作为样本输出。编制有关程序,对数据进行归一化处理,作为最后的训练网络值。使用神经网络计算插补曲面坐标值的方法是选取另外一组u,v值作为计算输入,计算出相应的坐标点x,y,z即为曲面插补点。使用同样的u,v值,由NURBS公式计算出相应的点,与神经网络方法的计算点进行比较,两者之间的差异可以表明该方法的实用程度。
|
|
|
|
| |
|
|
|
|