1第一章引言汽车车身曲线曲面造型是指运用自由曲线、自由曲面来描述汽车车身及其内饰件的空间几何形状。由于汽车车身零件多数为尺寸大,形状复杂的空间曲面,一般的机械制图方法难以将其完整地表现出来。在上世纪70年代以前,汽车车身曲线曲面造型一直采用手工造型,随着计算机技术本身和计算方法的不断发展,车身曲线曲面数值造型技术在企业中逐步应用。汽车车身曲线曲面的手工造型具有开发时间长、效率低、误差大等缺点。在传统汽车车身设计过程中,先采用特殊的绘图系统手工绘制车身“主模板”,再制作三维实体“主模型”的方法。由于产品开发过程中,需要对设计方案进行多次修改,使得整个开发过程持续时间很长,还会造成大量的返工和浪费。传统车身造型精度差是另外一个难以克服的缺点。在汽车车身的生产准备过程中,需要对手工制作出的“主模型”进行多次“移形”,即对同一曲线或曲面进行多次传递,例如,由主模板制作主模型,对主模型进行工艺补充后制作工艺模型,由凸工艺模型翻制凹工艺模型,再用工艺模型制造冲压用的模具。在这一系列的数据传递过程中,不可避免的会产生人为误差,使得制造出冲模精度难以得到保证,只有靠手工研配来解决。解析几何、微分几何在描述规则曲线、曲面方面已经建立了系统的理论,但是,在建立汽车车身曲线曲面的数学模型,并且对其进行控制方面,解析几何,微分几何难以担当此任。从1974年起,由函数逼近论、微分几何、计算几何、计算数学、数控技术、计算机图学等学科发展起来的新学科——计算几何(ComputationalGeometry)提供了自由曲线、自由曲面造型的数学方法,在汽车、飞机、轮船以及其他工程曲线的插值、拟合中广泛应用。与传统建模方法相比较,用数学方法建立车身曲线、曲面的模型具有众多优点,表现为:1)提高设计精度。在车身数据模型建立以后,存入数据库,可以为生产准备、工装设计制造提供详尽、准确的原始数据,消除传统手工模型在模型复制过程中的人为误差。2)提高产品开发速度。一方面车身曲面的数学模型直接为车身模具制造提供给准确的数据,减少模具开发时间,提高模具制造精度,而且,取消了三维实体模型的制造过程,不仅节约时间,而且节约人力和物力。3)建立的车身模型可以方便地用于车身强度、刚度、结构动力学和空气动力学分析,提高设计质量和可信度。4)可以在原设计的基础上方便地进行改型和换型设计。汽车车身曲线曲面多属于自由曲线曲面。人们对自由曲线的研究成果可以追述到1946年,SchoenbergI.J.提出了样条函数的概念,当时SchoenbergI.J.的研究成果并没有引起人们的重视,直到上世纪60年代,计算机技术的快速发展和生产需要,开始在航空、造船领域和数据拟合方面应用。1963年,波音公司的工程师FergusonJ.C.首先在飞机设计中应用参数三次曲线。1971年英国航空公司的SabinM.A.将参数样条曲线向曲面推广,用于自由曲面的造型和加工。由于样条函数的缺陷,当今曲线曲面造型已经不再使用样条函数。样条曲线属于插值曲线方法,主要用于构造那些通过型值点的曲线,不能进行曲线设计。法国雷诺汽车公司的工程师BezierP.于1962年提出以逼近理论为基础的曲线曲面设计系统,名为UNISURF系统。众多科学家,如Forrest、Gordon、Reisenfeld、常庚哲、吴骏恒、苏步青等,对Bezier方法的理论与应用进行大量的研究,揭示了Bezier方法与Berstein多项式之间的联系。美国Ryan飞机公司和英国剑桥大学都曾经应用Bezier方法建立曲线和曲面系统。由于Bezier方法不具备局部修改性,同时还具有不便于拼接的缺点。2为了保留Bezier方法的优点,克服其缺点,在1972~1976年间,Gordon、Reinsenfeld、Foresst等人改用B样条基函数代替Bezier方法中的Berstein基函数,将这种改进的曲线曲面建模方法称为B样条曲线。B样条方法同样以逼近理论为基础,保留了Bezier方法的直观性等优点,又弥补Bezier方法不便于拼接、不具备局部修改性等不足,成为当今自由曲线曲面数学造型的重要的工具。第二章微分几何基础汽车车身造型主要使用自由曲线和曲面,在讨论自由曲线曲面的理论和生成方法以前,需要介绍计算切矢量、法矢量、二阶导矢、曲率等概念,这些概念在曲线曲面生成、计算、拼合以及评价中都需要应用。2.1矢量与矢量函数2.1.1矢量具有大小和方向的量成为矢量,也成为向量。力、力矩、速度、位移、动量、动量矩等等都是矢量。在几何学中,矢量可以用空间的有向线段来表示,例如AB表示空间一个矢量,其长度AB表示矢量的大小,端点的顺序BA→表示该矢量的方向,该矢量记作→AB或用黑体a表示。矢量的长度或大小又称为模,用→AB或a表示。在右手直角坐标系{}zyxo,,;中,o表示坐标原点,i,j,k分别表示沿x,y,z三个坐标轴正方向的单位矢量。任何矢量a可表示为),,(zyxzyxaaaaaa=++=kjia(2-1)式中zyxaaa,,分别为矢量a沿x轴、y轴和z轴的坐标分量。矢量a的模为222zyxaaa++=a(2-2)模等于1的矢量称为单位矢量。矢量a的单位矢量为aau=。模等于0的矢量为零矢量,记为0,零矢量式始点与终点重合的矢量。只有当两个矢量的分量分别相等时,该两个矢量相等。模和方向不变的矢量称为常矢量,模和方向变化的矢量称为变矢量。32.1.2矢量函数若对应于bta≤≤中的每一个t值,有一个确定的矢量r,则r为t的矢量函数,记为)r(t。显然矢量函数)r(t的每一个坐标分量都是t的函数,即kji)r(r⋅+⋅+⋅===)()()())(),(),((tftftftftftftzyxzyx(2-3)式中)(),(),(tftftfzyx为三个标量函数。如果将变矢量函数a表示为空间P点的位置矢量→==OP)r(at则当t在[a,b]中变动时,P点在空间描出一条曲线,这时,P点在空间的轨迹是一条曲线,称为矢量的矢端曲线。方程btatztytxt≤≤++==kjirr)()()()((2-4)称为曲线的参数方程。关于函数的极限以及连续的概念都可以容易地推广到矢量函数。设())(),(),(tztytxt=)r(,()()0000,,zyxt=r。如果0)(lim0xtxtt=→,0)(lim0ytytt=→0)(lim0ztztt=→成立,则当0tt→时,)r(t趋向于极限)r(0t,记为0)(lim0rr=→ttt,而且不难证明0rr=−→0)(lim0ttt。矢量函数的极限运算还具有以下性质()())(limlim)(lim000ttttttttrtrt→→→=λλ()[]())(limlim)(lim0001tttttttt212rtrrtr→→→+=+()[]())(limlim)(lim0001tttttttt212rtrrtr→→→=⋅图2.1用矢量表示的球面图2.2导矢的几何意义4()[]())(limlim)(lim0001tttttttt212rtrrtr→→→×=×其中()tλ为一个在[a,b]中定义的数值函数。矢量函数)r(t的连续性被定义为它的分量())(),(),(tztytx的连续性,即如果)(),(),(tztytx关于t具有直到k阶的连续导数,则称矢量函数())(),(),(tztytxt=)r(为k阶的连续矢量。对矢量函数求导与对数值函数求导相同。设矢量函数)r(t在区间[]21,tt内连续,并且0t和)0(0≠+tttΔΔ都在区间[]21,tt内,若极限ttrtttΔΔΔ)()(lim0000−+→r存在,则称)r(t在0t是可微的,在极限称为)r(t在0t的导矢,用)(r'0t或0tdtd⎥⎦⎤⎢⎣⎡r表示:ttrttdtttΔΔΔ)()(lim)(0000'00−+=⎥⎦⎤⎢⎣⎡=→rdtrr(2-5)导矢具有重要的几何意义,如图2.2所示。当P点沿曲线趋向0P时,弦0PP达到某一极限位置,即曲线在0P点的切线位置,)(r'0t则称为曲线在0P点的切矢。若kjir)()()()(tztytxt++=,则()()()()()()⎟⎠⎞⎜⎝⎛−+−+−+=−+ttzttzttyttyttxttxttrttΔΔΔΔΔΔΔΔ,,)()(00r当0→tΔ时,有))(),(),(()(''''tztytxt=r(2-6)上式表明,矢量函数导数的坐标分量等于矢量函数各个分量关于参数t的导数。矢量函数的导数(切矢)仍旧是矢量函数,因此,也具有大小和方向,其方向为切矢方向,大小为切矢的模)('tr,()()()2'2'2'')()()()(tztytxt++=r(2-7)单位切矢量用t表示:)()(''ttrrt=(2-8)矢量函数的求导与数值函数的求导有所不同,部分矢量函数的求导公式为50=dtdc(c为常矢量)()dtdkkdtdaa=(k为常数)dtddtddtddtdcbac)ba++=++(()dtddtddtdaaaφφφ+=(φ是t的数值函数)()dtddtddtdbababa⋅+⋅=⋅(a和b顺序可以交换)()dtddtddtdbababa×+×=×(a和b顺序不可以交换)()dtddtddtddtdcabcbabcaabc++=(顺序不可以交换)()dtddtdtdtdφφaa=)((φ是t的数值函数)导矢在曲线曲面造型中具有非常广泛的应用。可以用导矢计算曲线的切矢、法矢、法平面、曲率、等矩线,可以用来计算曲面的切矢和法矢、曲面的等距面和曲率等等,还可以用来构造曲线和曲面。2.1.3以弧长为参数的曲线方程对于同一条曲线,选择的参数不同,或坐标系不同,曲线的表达式不同。这就是说,在讨论曲线时,坐标系和参数的选择具有人为因素的影响。曲线自身的弧长是曲线的不变量,与坐标系选择无关,选取弧长作为曲线参数,对研究曲线的性质有所帮助。设()tr为以空间给定曲线,其矢量方程为()))(),(),((tztytxt=r选()()()()()000000,,,,tztytxzyx=0P作为计算弧长的起点,()111,,zyx1P为曲线上任意一点,于是0P点到1P点的弧长为()()()dttztytxdzdydxdssttttt∫∫∫++=++==101012'2'2'222)(0t10P,P(2-9)由此曲线r上任意点()zyx,,P的位置与该点到()000,,zyx0P的弧长是一一对应的,如图所示。选择弧长作为曲线上坐标的参数,曲线r的矢量方程为()))(),(),((szsysxs=r(2-10)曲线以弧长为参数,称为弧长参数化。弧长称为自然参数。弧长为参数的曲线方程称为自然参数方程。现讨论曲线自然参数方程与参数方程之间的关系。已知曲线的矢量方程为6()))(),(),((tztytxt=r弧长的微分和积分分别为2222dzdydxds++=(2-11)()()()()()dttdtdtddttztytxdststttttt∫∫∫∫==++==101010'2'2'2')(rtr(2-12))(ts即为与参数0t点到1t对应两点0P点到1P之间的弧长。矢量函数()))(),(),((tztytxt=r的微分为()),,()('dzdydxdtttd==rr由式(2-11),弧长微分可表示为()()22rrrdddds=⋅=将弧长积分公式(2-12)两侧对参数t求导得到()0)(''=ttsr可见,弧长是参数t的单调增函数,故其反函数)(st必存在。将)(st代入曲线方程()tr,对其重新进行参数化,即得到以弧长为参数的自然参数方程()()sstrrr==)((2-13)由于()()22rdds=,则有()()1rr'==dsss(2-14)式(2-14)表明,当曲线以弧长为参数时,其切矢量为单位矢量。必须指出,弧长是一个重要的概念,主要用于理论分析和曲线算法研究。实际计算曲线弧长时,仍需要用计算弦长来近似弧长,具体计算方法为:设给定曲线为()btatztytxt≤≤==))(),(),((rr,如图2-4所示,图2.3弧长