设计资料的程序处理

上传人:tian****1990 文档编号:74486557 上传时间:2019-01-28 格式:PPT 页数:29 大小:723KB
返回 下载 相关 举报
设计资料的程序处理_第1页
第1页 / 共29页
设计资料的程序处理_第2页
第2页 / 共29页
设计资料的程序处理_第3页
第3页 / 共29页
设计资料的程序处理_第4页
第4页 / 共29页
设计资料的程序处理_第5页
第5页 / 共29页
点击查看更多>>
资源描述

《设计资料的程序处理》由会员分享,可在线阅读,更多相关《设计资料的程序处理(29页珍藏版)》请在金锄头文库上搜索。

1、第5章 设计资料的程序处理,两种设计资料的处理方法 将设计资料转变成程序,即程序化 利用数据库管理设计资料,5.1数据表格的程序处理,数表的分类: 一维变量表 二维变量表 多维变量表 数表的来源: 数据表格本来就有精确的理论计算公式,仅仅是为了便于手工计算才把这些公式以数表的形式给出。 数表中的数据,彼此之间不存在一定的函数关系或是由实验获得的。,5.1.1一维数表,Float kw6=0.39e-3,1.03e-3, 2.65e-3, 7.50e-3, 26.6e-3, 49.8e-3; 在已知三角带型号type的情况下 直接调用 kwtype即可。,一般用一维数组直接在程序中实现。例如:,

2、平键公称尺寸及键槽尺寸,如下图所示,其特别之处在于变量轴径d有一定范围。解决方法是把该表分成5个一维表进行处理,5.1.2 二维数表,二位数表有两个变量。一般情况下是将数表用 二维数组表示。例如:,齿轮传动工况系数,5.1.3 多维数表,变量个数大于2的数表,工程手册多为三维数表,一般情况下用三维数组表示。 对于下图所示的齿形公差,可以按以下方法程序化: float dd4; 表示齿轮直径分类的上限 float mn6; 表示齿轮模数的分类上限 float ff4612; 表示齿形公差的三维数组,d,mn,精 度 等 级,齿形公差,5.2 线图的程序化,(1)线图所表示的各个参数之间本来就有计

3、算公式,只是由于计算公式复杂,为方便手工计算将公式绘成线图,以供设计时套用 解决方法:直接应用原来的公式 例如:螺旋角系数Z 该线图是根据 Z2=cos 绘制的,(2)线图所表示的各参数之间没有或找不到计算公式,结点选取的基本原则是相邻两结点之函数差较为均匀,渐开线齿形系数,解决方法:把线图离散化成数表,然后按照数表的程序化处理,(3)用曲线拟合的方法求线图的经验公式,再将 公式编入程序,见5.4节,根据传递功率P和主动带轮的转速N,选择三角带的号K,(4)复杂线图程序化,根据具体情况进行处理,int find_type(double N,double P) double A64=4900,3

4、.8,490,0.8,3400,10.5,100,1,2400,22.5,100,2.7, 1500,36,100,5.9,1200,85,100,17.5,700,170,100,44; int i; double c; for(i=0; i=Ai0) return i; c=log10(Ai2)+(log10(Ai0)-log10(Ai2)* (log10(P)-log10(Ai3)/(log10(Ai1)-log10(Ai3); if(N=pow(10.0,c) return i; return 6; ,即,故,5.3 程序插值,函数插值的基本思想: 构造某个简单函数g(x)作为列表函数

5、f(x)的近似表达式,然后计算g(x)值近似代替f(x)值。,5.3.1 一元函数插值,1. 线性插值 (1) 从表格中选取两个相邻的自变量xi,xi+1,满足 xixxi+1 (2) 过(xi,yi) (xi+1,yi+1)两点连直线g(x)代替f(x),则x的函数值为 写成通式:,线性插值函数,int find_liner(double *xx,double *yy,int n,double x,double *y) double x1,y1,x2,y2; int i=0; if(xxxn-1) return 0; while(xxxi) i+; i-; x1=xxi; y1=yyi; x

6、2=xxi+1; y2=yyi+1; *y=y1+(x-x1)*(y2-y1)/(x2-x1); return 1; ,2.抛物线插值,过三点(xi-1,yi-1)(xi,yi)(xi+1,yi+1)做抛物线方程 (1)从已知函数表格中选取二点xi及xi+1,满足 xixxi+1 (2)当x靠近xi时,取xi-1 ,xi ,xi+1。 否则取xi ,xi+1 ,xi+2 (3)当x靠近表头时,取x1 ,x2 ,x3。 (4)当x靠近表尾时,取xn-2 ,xn-1 ,xn。,/一元函数抛物线插值 /xx,yy-节点数据,n-节点个数 int find_quadric(double *xx,dou

7、ble *yy,int n,double x,double *y) double x1,y1,x2,y2,x3,y3; int i=0; if(xxxn-1) return 0; while(xxxi) i+; i-; if(x-xxi)n-3) i=n-3; x1=xxi; y1=yyi; x2=xxi+1; y2=yyi+1; x3=xxi+2; y3=yyi+2; *y=0; *y+=y1*(x-x2)*(x-x3)/(x1-x2)/(x1-x3); *y+=y2*(x-x1)*(x-x3)/(x2-x1)/(x2-x3); *y+=y3*(x-x1)*(x-x2)/(x3-x1)/(x

8、3-x2); return 1; ,5.3.2 二元函数插值,对于具有两个自变量的二元函数的插值,从几何意义上讲是在三维空间内,选定几个点,通过这些点构造一块曲面g(x,y),用它近似地表示在这区间内原有函数f(x,y)。设二元函数以表格形式表示,曲面被分成了许多小块,每一个小块四个角的值可以从表格中查出。为了能得到小块曲面上任一点的函数值,设法构造一个二元函数g(x,y),它能近似地代替原曲面的f(x,y)。因此二元函数插值的实质是如何来构造g(x,y)。g(x,y)取抛物线形式。,二元函数抛物线插值步骤:,根据k点的坐标(xk,yk)找出周围4个点a,b,c,d。再根据抛物线插值中的取点方

9、法取点方法增加e,f,r,s,t 5个点,这样共得9个点。 取点方法:设xixxi+1, 比较(x-xi)和(xi+1-x)的值,取其值小者作为取点延伸方向。 当(x-xi)(xi+1-x),取xi-1,xi,xi+1三个点;否则取xi,xi+1,xi+2三个点。 找出对应上述9个点的a,b,c,d,e,f,r,s,t点,分别求取三条抛曲线导线及其插值点,过abe用抛物线插值求得u点(对应u),再过cdf用抛物线插值得v点(对应v),过rst用抛物线插值求得w点(对应w)。 过uvw用抛物线插值求得k点(对应k),即为所求。,/二元函数插值 x,y-x,y方向位置数组 z-每个位置的函数值 /

10、n,m-x,y方向位置个数 /xk,yk-插入点位置 zk-插入点函数值 /ii-插值方法选择 1-直线-直线 2-抛物线-直线 3-抛物线-抛物线 Void lar(double *x,double *y,double *z,int m,int n,double xk,double yk,double *zk,int ii) int i,ix,iy,j,k,ia,ib,ki; double t,zx3; i=ix=iy=j=k=ia=ib=ki=0; n-; m-; ix=-1; iy=-1; if(xk=xm) ix=m; if(yk=yn) iy=n; if(xkxm | ykyn) i

11、f(ix0) for(i=1; i=m; i+) if(xk=xi) ix=i; break; if(iy0) for(i=1; i=n; i+) if(yk=yi) iy=i; break; *zk=ziyix; return ; ,ix=0; iy=0; switch (ii) case 1: ia=2; ib=1; break; case 2: ia=3; ib=2; if(xix+1-xk)(xk-xix) ix-; break; case 3: ia=3; ib=3; if(xix+1-xk)(xk-xix) ix-; if(yiy+1-yk)(yk-yiy) iy-; break;

12、 if(ix=m-1) ix=m-2; if(iy=n-1) iy=n-2;,for(ki=0; kiib; ki+) zxki=0; /抛物线插值公式 for(k=ix; kix+ia; k+) t=1; for(j=ix; jix+ia; j+) if(j!=k) t*=(xk-xj)/(xk-xj); zxki+=t*ziy+kik; *zk=0; ki=0; for(k=iy; kiy+ib; k+,ki+) t=1; for(j=iy; jiy+ib; j+) if(j!=k) t*=(yk-yj)/(yk-yj); *zk+=t*zxki; /程序结束,5.4 求经验公式,求经验公

13、式就是设法确定一个能近似地表示表格 函数或曲线函数关系的公式。这种建立经验公式的过程也称为曲线拟合。 最小二乘法是最常用的一种曲线拟合方法。,5.4.1 最小二乘法拟合的基本原理,设由线图或实验所得的n个点(xi,yi)(i=1,2,m) 构造拟合公式 y=f(x) 残差为: ei =f(xi)-yi (i=1,2,m) 残差的平方和为: 要求所构造的拟合公式y=f(x)保证残差的平方和为最小,这就是最小二乘法的曲线拟合。,5.4.2 最小二乘法求线性方程,残差平方和:,则:,由此二式联立,可解出:,5.4.3 用最小二乘法求多项式,设方程的形式是: 已知m个点的值:(xi,yi) (i=1,

14、2,m) 保证mn 残差: ei =f(xi)-yi (i=1,2,m) 残差的平方和为:,令F(ai) , i=0,1,2,n对各自变量的偏导数等于零 即 整理后得: 求解这个方程组得到多项式的各系数,5.4.4 高斯消去法求解线性方程组,对于方程组 AX=B 首先把列矩阵B添加到方阵A的最后一列,把Anxn变成增广矩阵Anx(n+1) 然后进行消元处理把A变成上三角矩阵,且主对角线上各元素皆为1。回代公式为 增广矩阵的最后一列即为方程组的解,反算线性方程组 /Matrix-线性方程组系数的增广矩阵 /M-线性方程组的维数 void Gauss(double *Matrix,int M) /求解 double d,e=1e-15,t; int i,j,k; for(i=0;id) k=j;d=fabs(Matrixji); if(k!=i) for(j=0;j=0;k-) for(j=k+1;jM;j+) MatrixkM-=Matrixkj*MatrixjM; ,5.5 有关数据的处理,恒等比较 对于实数的比较要有一个控制误差: fabs(x-y)e 圆整: 圆整到小于C的最大整数: c=(int)(c) 按照四舍五入的原则圆整:c=(int)(c+0.5) 取标准值 把标准数值用列成表格,按照大值取标准数。例如三角胶带轮的标准直径选取和齿轮模数的选取。,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号