1、1、综述、综述自由曲线曲面造型技术是自由曲线曲面造型技术是CAx的理论基础的理论基础CAx计算机辅助技术,包括计算机辅助技术,包括 CAD,CAM,CAE,CAPP,CAD computer aided design 计算机辅助设计计算机辅助设计CAM computer aided manufacturing 计算机辅助制造计算机辅助制造CAE computer aided engineering 计算机辅助工程计算机辅助工程CAFD computer aided fixture design 计算机辅助夹具设计计算机辅助夹具设计CAPP computer aided process plan
2、ning 计算机辅助工艺设计计算机辅助工艺设计CAQ computer aided quality assurance 计算机辅助质量保证计算机辅助质量保证CATD computer aided tool design 计算机辅助刀具设计计算机辅助刀具设计计算机辅助技术的应用范围:计算机辅助技术的应用范围:宇航、汽车、船舶、计算机、宇航、汽车、船舶、计算机、机械、模具、地质、气象、机械、模具、地质、气象、医学等等。医学等等。从数学的角度讲从数学的角度讲 曲线曲线=一元函数的图象(表示)一元函数的图象(表示)曲面曲面=二元函数的图象(表示)二元函数的图象(表示)所谓所谓“自由自由”,亦即,亦即“
3、不依赖坐标架不依赖坐标架的选取的选取”图象表示是函数的表示方式之一,图象表示是函数的表示方式之一,特别函数没有解析表达的时候。特别函数没有解析表达的时候。市面上 超人CAD/CAM系统 是集几何造型与数控编程于一体的集成化软件,具有统一的数据结构,数据管理和用户界面.系统采用NURBS(Non Uniform Rational B-Spline)方法为造型核心,统一表示二次曲线曲面和自由自由曲线曲面曲线曲面.从根本上解决了不规则的任意边界的曲面造型曲面造型问题,解决了复杂零件的四,五坐标加工编程问题,适用于各种刀具端铣和侧铣,大大提高了系统的数控编程能力.可以大面积切除毛坯余量,提高加工效率.
4、系统具有良好的开放性.自由曲面理论的发展经历了长期的实践酝自由曲面理论的发展经历了长期的实践酝酿,早在二战期间,飞机工业就成功创造了成酿,早在二战期间,飞机工业就成功创造了成套的飞机外形及其主要结构件的数据定义方法。套的飞机外形及其主要结构件的数据定义方法。20世纪世纪60年代年代Coons和和Bzier通过长期从事飞通过长期从事飞机汽车的外形设计加工,提出更加完美、通用机汽车的外形设计加工,提出更加完美、通用的曲面表达式,最终导致了完备的非均匀有理的曲面表达式,最终导致了完备的非均匀有理B样条样条(NURBS)曲面理论体系的诞生。曲面理论体系的诞生。但人们并不安于现状,继续探索新的造型但人们
5、并不安于现状,继续探索新的造型方法。相继出现了自由变形造型、偏微分方程方法。相继出现了自由变形造型、偏微分方程造型、能量法造型、小波技术等。这些方法目造型、能量法造型、小波技术等。这些方法目前还处于深入研究阶段,有望于前还处于深入研究阶段,有望于21世纪得到广世纪得到广泛的应用。泛的应用。插值插值(interpolation)、拟合(、拟合(fitting)和和逼近(逼近(approximation),一直是曲线曲面,一直是曲线曲面造型基本的方法。造型基本的方法。自由曲线曲面造型技术是与计算机技自由曲线曲面造型技术是与计算机技术同步发展的。术同步发展的。样条函数由样条函数由Schoenberg
6、于于1946年提出;年提出;第一台电子计算机第一台电子计算机1946年年2月问世。并非月问世。并非是巧合。是巧合。1.1 研究现状研究现状1.1.1 曲面变形曲面变形(Deformation or Shape Blending)传统的NURBS模型仅允许调整控制顶点或权因子来局部改变曲面形状。计算机动画业和实体造型业需要与曲面表示方法无关的变形方法或性状调配方法。1.1.2 曲面重建(Reconstuction)从曲面上的部分采样信息来恢复原始曲面的几何模型。称为曲面重建。轿车车身设计和人脸类雕塑曲面的动画制作中,常先用油泥制模,在作三维型值点采样;医学图像可视化中,先用CT切片来得到人体脏器
7、表面三维数据。1.1.3 曲面简化(Surfaces Simplification)从三维重建后的离散曲面或造型软件的输出结果中除去冗(rong)余信息而又保证模型的准确度,以利于图形的实时性、数据存储的经济性和数据传输的快速性。1.1.4 曲面转换(Conversion)同一张曲面可以表示为不同的数学形式,这一思想不仅有理论意义,而且具有工业应用的现实意义。1.1.5 曲面等距性(offset)在计算机图形及加工中有广泛的应用。(如:平面到柱面)clear,close;close;x=-3:0.1:3;y=1:0.1:5;X,Y=meshgrid(x,y);Z=(X+Y);figure(1)
8、plot3(X,Y,Z)figure(2)N=100;R=1 1;X,Y,Z=CYLINDER(R,N);plot3(X,Y,Z);hold on;plot3(X(1,:),Y(1,:),Z(1,:);hold onplot3(X(2,:),Y(2,:),Z(2,:);1.2 发展趋势1.2.1 能量优化法1.2.2偏微分方程法(PDE)1.2.3流1.2.4小波技术(略)这些技术21世纪有望被CAD/CAM技术所采用。1.2.1 能量优化法 1987,加那大Terzopoulos,基于物理能量模型的可变形曲线曲面造型技术引人计算机图形学,用Lagrange方程建立能量模型,并用差分法解偏微分
9、方程。有时问题会化为多目标规划问题.由柔性的薄膜形成的表面被最优化问题决定:min c*x+0.5*x*H*x:low=x 其中 c*x+0.5*x*H*x 能量函数不连续的近似值 H=delsq(numgrid(S,30+2);(numgrid数据格子)h=1/(30-1);c=-h2*ones(302,1);1.2.2偏微分方程法(PDE)主要用于船体、飞机、螺旋桨叶片等外形。1.2.3 流 人们希望所设计的运动物体外型具有“流线型”2、简单技术(插值与拟合)2.12.1曲曲 线线 拟拟 合合 问问 题题 的的 提提 法法已知一组(二维)数据,即平面上已知一组(二维)数据,即平面上 n个点
10、个点(xi,yi)i=1,n,寻求一个函数(曲线)寻求一个函数(曲线)y=f(x),使使 f(x)在某种准则下与所在某种准则下与所有数据点最为接近,即曲线拟合得最好。有数据点最为接近,即曲线拟合得最好。+xyy=f(x)(xi,yi)i i 为点为点(xi,yi)与与曲线曲线 y=f(x)的距离的距离曲线插值的定义曲线插值的定义已知已知 n+1个节点个节点,1,0(),(njyxjj其中其中jx互不相同,不妨设互不相同,不妨设),10bxxxan求任一插值点求任一插值点)(*jxx 处的插值处的插值.*y0 x1xnx0y1y节点可视为由节点可视为由)(xgy 产生产生,,g表达式复杂表达式复
11、杂,,或无封闭形式或无封闭形式,,或未知或未知.。*x*y 构造一个构造一个(相对简单的相对简单的)函数函数),(xfy 通过全部节点通过全部节点,即即),1,0()(njyxfjj再用再用)(xf计算插值,即计算插值,即).(*xfy 0 x1xnx0y1y*x*y拟合与插值的关系拟合与插值的关系 函数插值与曲线拟合都是要根据一组数据构造一个函数作函数插值与曲线拟合都是要根据一组数据构造一个函数作为近似,由于近似的要求不同,二者的数学方法上是完全不同为近似,由于近似的要求不同,二者的数学方法上是完全不同的。的。实例:实例:下面数据是某次实验所得,希望得到X和 f之间的关系?x124791 2
12、1 31 51 7f1.53.96.611.71 5.61 8.81 9.62 0.62 1.1MATLAB(cn)问题:问题:给定一批数据点,需确定满足特定要求的曲线或曲面解决方案:解决方案:若不要求曲线(面)通过所有数据点,而是要求它反映对象整体的变化趋势,这就是数据拟合数据拟合,又称曲线拟合或曲面拟合。若要求所求曲线(面)通过所给所有数据点,就是插值问题插值问题;最临近插值、线性插值、样条插值与曲线拟合结果:最临近插值、线性插值、样条插值与曲线拟合结果:曲线拟合的方法有很多种,主要有曲线拟合的方法有很多种,主要有1、多项式拟合、多项式拟合2、线性最小二乘法、线性最小二乘法3、非线性最小二
13、乘法、非线性最小二乘法4、根据具体情况取指数函数、对数函数等、根据具体情况取指数函数、对数函数等拟合拟合5、分段拟合、分段拟合 等等等等曲线拟合问题最常用的解法曲线拟合问题最常用的解法线性最小二乘法的基本思路线性最小二乘法的基本思路第一步:先选定一组函数先选定一组函数 r1(x),r2(x),rm(x),mn,令令 f(x)=a1r1(x)+a2r2(x)+amrm(x)(1)其中其中 a1,a2,am 为待定系数。为待定系数。第二步:确定确定a1,a2,am 的准则(最小二乘准则):的准则(最小二乘准则):使使n个点个点(xi,yi)与与曲线曲线 y=f(x)的距离的距离 i 的平方和最小的
14、平方和最小。记记)2()()(),(211211221iiknimkkininiiimyxrayxfaaaJ 问题归结为,求问题归结为,求 a1,a2,am 使使 J(a1,a2,am)最小。最小。+xyy=f(x)(xi,yi)i i 为点为点(xi,yi)与与曲线曲线 y=f(x)的距离的距离2、插值、插值曲线插值的方法也很多曲线插值的方法也很多,主要有主要有1)多项式插值多项式插值2)样条插值样条插值(B样条样条,三次样条三次样条)3)最临近值插值最临近值插值4)线性插值线性插值等等等等比分段线性插值更光滑。比分段线性插值更光滑。xyxi-1 xiab 在数学上,光滑程度的定量描述是:函
15、数(曲线)的k阶导数存在且连续,则称该曲线具有k阶光滑性。光滑性的阶次越高,则越光滑。是否存在较低次的分段多项式达到较高阶光滑性的方法?三次样条插值就是一个很好的例子。样条插值样条插值 三次样条插值,1,),()(1nixxxxsxSiii,)()3),1,0()()2),1()()10223niiiiiiixxCxSniyxSnidxcxbxaxs)1,1()()(),()(),()(111 nixsxsxsxsxsxsiiiiiiiiiiii自然边界条件)(0)()()40 nxSxS)(,)4)3)2xSdcbaiiii)()(limxgxSng g(x x)为被插值函数为被插值函数。用
16、用MATLABMATLAB作插值计算作插值计算一维插值函数:一维插值函数:yi=interp1(x,y,xi,method)插值方法插值方法被插值点被插值点插值节点插值节点xixi处的插处的插值结果值结果nearest :最邻近插值:最邻近插值linear :线性插值;线性插值;spline :三次样条插三次样条插值;值;cubic :立方插值。立方插值。缺省时:缺省时:分段线性插值。分段线性插值。注意:所有的插值方法都要求注意:所有的插值方法都要求x x是单调的,并且是单调的,并且xi不不能够超过能够超过x的范围。的范围。xy机翼下轮廓线X035791 11 21 31 41 5Y01.21
17、.72.02.12.01.81.21.01.6例例 已知飞机下轮廓线上数据如下,求已知飞机下轮廓线上数据如下,求x每改变每改变0.1时的时的y值。值。To MATLAB(plane)二维插值二维插值一、一、二维插值定义二维插值定义二、网格节点插值法二、网格节点插值法三、用三、用MatlabMatlab解插值问题解插值问题最邻近插值最邻近插值分片线性插值分片线性插值双线性插值双线性插值网格节点数据的插值网格节点数据的插值散点数据的插值散点数据的插值二维插值的定义二维插值的定义 xyO O第一种(网格节点):第一种(网格节点):已知已知 m n个节点个节点),2,1;,.,2,1(),(njmiz
18、yxijji 其中其中jiyx,互不相同,不妨设互不相同,不妨设bxxxam 21dyyycn 21 构造一个二元函数构造一个二元函数),(yxfz 通过全部已知节点通过全部已知节点,即即再用再用),(yxf计算插值,即计算插值,即).,(*yxfz ),1,0;,1,0(),(njmizyxfijji 第二种(散乱节点):第二种(散乱节点):yx0 0已知已知n个节点个节点),.,2,1(),(nizyxiii 其中其中),(iiyx互不相同,互不相同,构造一个二元函数构造一个二元函数),(yxfz 通过全部已知节点通过全部已知节点,即即),1,0(),(nizyxfiii 再用再用),(y
19、xf计算插值,即计算插值,即).,(*yxfz 双线性插值是一片一片的空间二次曲面构成。双线性插值函数的形式如下:)dcy)(bax()y,x(f其中有四个待定系数,利用该函数在矩形的四个顶点(插值节点)的函数值,得到四个代数方程,正好确定四个系数。双线性插值双线性插值x y(x1,y1)(x1,y2)(x2,y1)(x2,y2)O O 要求要求x0,y0 x0,y0单调;单调;x x,y y可取为矩阵,或可取为矩阵,或x x取取行向量,行向量,y y取为列向量,取为列向量,x,yx,y的值分别不能超出的值分别不能超出x0,y0 x0,y0的范围。的范围。z=interp2(x0,y0,z0,
20、x,y,method)被插值点插值方法用用MATLAB作网格节点数据的插值作网格节点数据的插值插值节点被插值点的函数值nearest nearest 最邻近插值最邻近插值linear linear 双线性插值双线性插值cubic cubic 双三次插值双三次插值缺省时缺省时,双线性插值双线性插值例例 山区地貌:山区地貌:在某山区测得一些地点的高程如下表。平面区域为在某山区测得一些地点的高程如下表。平面区域为 1200=x=4000,1200=y=3600)试作出该山区的地貌图和等高线图,并对几种插值方法进行比较。试作出该山区的地貌图和等高线图,并对几种插值方法进行比较。X Y120016002
21、00024002800320036004000120011301250128012301040900500700160013201450142014001300700900850200013901500150014009001100106095024001500120011001350145012001150101028001500120011001550160015501380107032001500155016001550160016001600155036001480150015501510143013001200980 通过此例对最近邻点插值、双线性插值方法和双三次插值方法的插值效果进
22、行比较。To MATLAB (moutain)插值函数插值函数griddata格式为格式为:cz=griddata(x,y,z,cx,cy,method)用用MATLABMATLAB作散点数据的插值计算作散点数据的插值计算 要求要求cxcx取行向量,取行向量,cycy取为列向量。取为列向量。被插值点插值方法插值节点被插值点的函数值nearest nearest 最邻近插值最邻近插值linear linear 双线性插值双线性插值cubic cubic 双三次插值双三次插值v4-Matlab提供的插值方法提供的插值方法缺省时缺省时,双线性插值双线性插值 例例 汽车外形。汽车外形。clear;cl
23、osex1=-2.1 0 2.1 2.1 2.1 -2.1-2.1-2.1 -2.1;x2=-2,0,2,2,2,0,-2,-2,-2;x3=-1.5,1.5;x4=-1.5,1.5,1.5,1.5,-1.5,-1.5,-1.5;x5=-2,2,2,-2,0;y1=-4-.1-4-.1-4-.1 0 4+.1 4+.1 4.1 0-4-0.1;y2=-4,-4,-4,0,4,4,4,0,-4;y5=-2,-2,2,2,0;y3=-3,-3;y4=-2,-2,0,2,2,0,-2;z1=0 0 0 0 0 0 0 0 0;z2=1,1,1,1,1,1,1,1,1;z3=1.2,1.2;z4=1.
24、5,1.5,1.5,1.5,1.5,1.5,1.5;z5=1,1,1,1,1.7figure(1);plot3(x1,y1,z1);hold on;plot3(x2,y2,z2);hold on;plot3(x4,y4,z4);hold on;plot3(x3,y3,z3);hold on;axis(-4 4-6 6 0 2);x=x1 x2 x3 x4 x5;y=y1 y2 y3 y4 y5;z=z1 z2 z3 z4 z5;figure(2);scatter3(x,y,z);axis(-4 4-6 6 0 2);x,y,zcx=-2:0.1:2;cy=-4:0.2:4;cz=griddat
25、a(x,y,z,cx,cy,cubic);figure(3);mesh(cx,cy,cz),axis(-4 4-6 6 0 2);汽车外形 结束语结束语 我国自由曲线曲面造型技术的的理论我国自由曲线曲面造型技术的的理论及应用研究,主要集中在中科院、北航、及应用研究,主要集中在中科院、北航、南航、北方工大、西北工大和浙大等,南航、北方工大、西北工大和浙大等,其任务是要其任务是要 创建自由曲面实体造型平台,创建自由曲面实体造型平台,为各行各业的为各行各业的CAD应用系统开发提供强应用系统开发提供强有力的几何支持。有力的几何支持。世界上,美国和法国最强大。世界上,美国和法国最强大。传统意义下的传统意
26、义下的实体造型实体造型技术(至今)技术(至今)还限制在操作圆锥踢椭球体等规则曲面还限制在操作圆锥踢椭球体等规则曲面形体,而地质地貌描述、矿藏储量图示、形体,而地质地貌描述、矿藏储量图示、铁路勘探设计与环境工程、人体器官造铁路勘探设计与环境工程、人体器官造型与型与CT图象三维重建、服装设计、机图象三维重建、服装设计、机械(汽车)设计、制鞋、虚拟视景生成械(汽车)设计、制鞋、虚拟视景生成等都要用到不规则曲面的拟合和生成技等都要用到不规则曲面的拟合和生成技术。这些问题覆盖域宽广,求解的技术术。这些问题覆盖域宽广,求解的技术难度大。非难度大。非实体造型(如二元函数),实体造型(如二元函数),少为人用。少为人用。自由曲线曲面造型技术的的理论及自由曲线曲面造型技术的的理论及应用前景非常广阔。应用前景非常广阔。精品课件精品课件!精品课件精品课件!