工程数据的计算机处理.ppt_第1页
工程数据的计算机处理.ppt_第2页
工程数据的计算机处理.ppt_第3页
工程数据的计算机处理.ppt_第4页
工程数据的计算机处理.ppt_第5页
已阅读5页,还剩58页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第二章 计算机数据处理,引言 在机械产品的设计过程中,经常需要引用一系列标准、规范、计算公式及大量的数据资料,如数据列表、实验曲线等,在传统的设计过程中,设计人员通过查阅相关的设计手册来获得;在设计手册中,这些资料多以数表和线图的形式给出,故在进行计算机辅助设计过程中,需将数表及线图转换成计算机能够处理的形式,以方便在使用过程中通过应用程序进行调用和检索查询,这就涉及到工程数据的计算机处理。 教学目的 本章让学生在学习了几种工程数据计算机处理方法后,可以比较和分析各种工程数据计算机处理方法的特点,并自己动手利用高级语言编制相关程序。,常用设计数据或资料的计算机处理 主要包括三种方法,数组化: 将数表中的数据或将线图离散化成数表的数据编入程序,存入一维、二维或多维数组。 文件化: 数据量较大时,将数表中的数据或将线图离散化成数表的数据,存入数据文件或数据库。数据独立于应用程序 公式化:将数表或线图转化为公式编入程序。,工程数据的计算机处理主要包括三种方法,工程数据程序化 将工程数据直接编写在应用程序中,在应用程序内部对数据进行查询、处理和计算,它包括数表程序化和线图程序化 建立数据文件 将数据建立成一个独立的数据文件,并单独存储,使它与应用程序分开,需要时,通过应用程序来打开、调用和关闭数据文件,并进行相关处理 建立数据库 将工程数据存放在数据库中,根据需要通过应用程序来打开、调用和关闭数据库文件,并进行相关处理,2.1 数表的计算机处理技术,对于数据量小的数表,可用计算机算法语言对一维、二维或多维数组进行赋值的方法分别对一维、二维或多维数组进行程序化处理。 对于数据量大的数表,可存入数据文件或数据库中。 对于列表函数,还可进行公式化处理。,2.1.1 数表的数组化,1、一维数组 2、二维数组 直接查找与插值法 3、多维数组,2.1.2 数表的文件化,对于数据量大的数表或数图很多,需要将数表进行文件化处理。,2.1 数表程序化,在计算机辅助设计过程中,数表程序化是指将数表中的数据以数组、数据文件、拟合公式和插值公式的形式给出,并利用应用程序来处理、调用和检索查询 在工程设计手册中,标准与规范多是以数表的形式给出,例如下面表格就是工程设计手册中V带传动设计中带轮包角系数表,通过带轮包角即可查到包角系数,带轮包角系数表,数组程序化方法,用数组的形式程序化数表 插值 数表拟合公式化,1.用数组的形式程序化数表,设计手册中的数表可以用数组的形式将其程序化。对于一维数表,其数据在程序化时可用一维数组来标识,例如对下面带轮包角系数表,用数组的形式进行程序化,其程序代码见下页:,带轮包角系数表,用数组的形式程序化数表,C语言程序代码如下: float fastserach(a,ai,ki) int i,n=10; float a, ai12,ki12; kin+1=0; ain+1=a; for (i=1;in+1;i+) if ( a = aii ) ,说明:n 为记录数;ain+1、kin+1为增设的欲检索关键字和对应的空记录,2.插值,数表函数:在工程设计手册数表中的数据之间多数存在一定的函数关系,将其称为数表函数,它们有些是精确公式,有些是经验公式。为了便于设计人员查询,在手册中多将其以数表的形式表示 插值方法:所谓插值方法,即在插值点附近选取几个合适的节点,过这些选取的节点构造一个函数y=p(x)作为列表函数f(x)的近似表达式,然后计算p(x)的值以求得f(x)的值,常用插值方法,线性插值 抛物线插值 拉格朗日一元n次插值,1)线性插值,线性插值是利用通过两节点(x1,y1)和(x2,y2)的直线方程p(x)来代替原来的列表函数f(x)。设插值点为(x,y),其线性插值公式为:,线性插值存在一定的误差,当两点间隔较小、精度要求不高时,可以采用此种方法。,线性插值原理图,2)抛物线插值,抛物线插值是利用通过三个节点(x1,y1)、(x2,y2) 和(x3,y3)的抛物线方程p(x)来代替原来的数表函数f(x),其抛物线插值公式为:,抛物线插值比线性插值精度高,抛物线插值原理图,程序举例:,float parabola (n,x,xi,yi) int n; float x,xi,yi; int i,j,k; float y,m; k=0; for (i=0;i=n-1;i+) if (x-xii)*(x-xii+1)=0) k=i;break; if (k=i) k=i; else if (fabs(x-xi0)fabs(x-xin) k=0; else k=n-1; if (k=n-1) | (k != 0) ,y=0; for (i=k;i=k+2;i+) m=1.0; for (j=k;j=k+2;j+) if (j!=i) m=m*(x-xij)/(xii-xij); y=y+m*yii; return(y); m=1.0; for (j=k;j=k+2;j+) if (j!=i) m=m*(x-xij)/(xii-xij); y=y+m*yii; return(y); ,接上页,说明:n 为插值结点数减1;xi,yi为为插值结点和对应的函数值,3)拉格朗日一元n次插值,设有n+1个互不相等的一元函数节点(xi,yi),(i=0,1,2,n),xi为插值节点,yi为对应的函数值,即插值结果,现存在一个阶次不超过n次的代数多项式p(x)为,它满足插值条件,则称p(x)为在n+1个互不相等节点(xi,yi)上的拉格朗日n次插值公式。,程序举例:,float lagrange(n,x,xi,yi) int n; float x,xi,yi; int i,j; float y,m; y=0; for (i=0;in;i+) m=1; for (j=0;jn;j+) if ( j != i ) m=m*(x-xj)/(xi-xj); y=y+m*yi; return(y); ,说明:n 为插值节点数减1;xi,yi为为插值节点和对应的函数值,4)二维数表插值,工程设计手册中,许多数据是以二维数表的形式存在,也可以用插值的方法来求得。首先给出互不相等的二元函数插值节点值xi(i=1,2,n),yj(j=1,2,m),其对应的函数值zij (i=1,2,n;j=1,2,m),用二元三点插值多项式可以求出插值自变量(x,y)所对应的函数值z,即插值结果,其表达式如下:,程序举例:,float lagrange2(n,m,x,y,z,xz,yz) int n,m; float x,y,z,xz,yz; float zz,ml; int i,j,k,l,p,q; p=-1; q=-1; zz=0; for (i=0;i=n-1;i+) if (xz-xi)*(xz-xi+1)=0) p=i;break; if (p=i) p=i; else if (fabs(xz-x0)fabs(xz-xn) p=0; else p=n-1;,for (j=0;j=m-1;j+) if (yz-yj)*(yz-j+1)=0) q=j;break; if ( q=j ) q=j; else if (fabs(yz-y0)fabs(yz-ym) q=0; else q=m-1; if ( p=n-1 ) | ( p!=0 ) i+) ,接上页,for (j=q;j=q+2;j+) ml=zi*m+j; for (l=q;l=q+2;l+) if (l!=j) ml=ml*(yz-yl)/(yj-yl); for (k=p;k=p+2;k+) if (k!=i) ml=ml*(xz-xk)/(xi-xk); zz=zz+ml; return(zz); ,接上页,3.数表拟合公式化,对于数据量需求较大的计算程序需要利用数学公式,即拟合公式来表述数表中的数据,其中最常用的是最小二乘法拟合公式,最小二乘法,最小二乘法就是将离散数据(数表中的数据)近似地表示为一连续函数pn(x),通过找出一条平滑的最佳拟合曲线来代替离散的数表数据,其具体算法如下 设最小二乘多项式为pn(x),令,或,同时有互不相等的一元函数节点(xi,yi),(i=1,2,m),xi为自变量,yi为对应的函数值,则在每一节点处的偏差为,所有节点偏差的平方和为,最小二乘法多项式拟合公式就是使节点偏差的平方和ss为最小,其推导过程如下,令ss的偏导数为零,可以得到下列方程组,求解联立方程组,即可解出 a0,a1,a2, an,2.2 线图计算机处理技术,在设计手册中,有些函数关系是以线图的形式表示的,它的特点是直观、感性,可以观察出函数和数据的变化趋势。线图的形式包括直线、折线和曲线。在传统的设计过程中,以手工查找对应数据获得工程数据,通常有一定的误差。在计算机辅助设计中,由于在计算机中直接存储和处理线图的程序相当复杂,所以通常采用下面三种方法来处理线图。 获取线图的原始公式,将其编入程序 将线图转换成数表,然后利用前面介绍的数表程序化的方法进行程序化处理 用曲线拟合的方法求出线图的近似公式,再将近似公式编入程序,工程设计手册中附有许多线图,为查询方便,也可以将其转为数表。所谓线图数表化处理就是将线图离散化,转换成数表的格式。下图为小带轮的包角系数曲线图,为将该曲线离散为数表,可以在曲线上取若干个节点,并将节点的坐标值列成数表,如下所示,即完成线图数表化的处理,然后利用前面介绍的数表程序化的方法进行程序化处理,包角系数曲线图,包角系数表,线图数表化,2.3 数据文件,对于数据量较小的数表,可以利用数组的形式将其程序化,但数表的容量较大时,常需建立数据文件,并将数据文件与应用程序分开。数据文件可以存储在外存设备上,如软盘、硬盘、光盘等,只有当需要的时候,利用应用程序通过操作语句将数据文件打开并调用。,数据文件,顺序文件 :顺序文件中的各个纪录是按照其输入的先后顺序存放的,其存取文件需从头至尾按顺序读写,故效率不高 随机文件 :随机文件是指在写入一个数据时,还给此数据登记一个编号(纪录号),以后可按照此纪录号进行查找,所以随机文件的存取速度比顺序文件的要高,C语言常用数据文件操作语句,创建和打开数据文件 在C语言的标准输入输出函数库中定义了一个名为fopen()的函数,用于实现数据文件的创建或打开,其调用格式如下: FILE *fp; fp=fopen(“name,”,“type”) 其中,FILE *fp为用FILE来定义文件类型的指针变量;name为用户想要打开的已有数据文件的文件名或需要创建的新数据文件的名字;type为对该文件进行的操作方式,即是从数据文件中读取数据还是向数据文件中写入数据。,关闭数据文件 对所调用的数据文件进行完读写操作后应及时关闭以释放内存并防止数据丢失,关闭数据文件函数的调用格式为: fclose(文件指针) 有关读文件的操作 数据文件被打开后,就可以对它进行读取数据的操作。 字符读函数fgetc 该函数的作用是从指定的文件中读取一个字符,此文件必须是以读或读写的方式打开。其调用格式为: ch=fgetc(fp) 其中,ch为字符型变量,存放从数据文件读取的字符;fp为指向该文件的文件指针,数据块读函数fread 该函数的作用是指从指定的数据文件中读取一个数据块,其调用格式为: fread(buffer,size,count,fp); buffer为一个指针,用于读入数据的存放起始地址;size为读取的字节数;count表示要读多少个大小为size字节的数据块;fp指向文件的指针。,格式化读函数fscanf() 该函数的作用是指从文件指针指向的文件中,按格式字符串读取相应数据,然后赋给输入列表中的对应变量地址中,其调用格式为: fscanf(文件指针,格式字符串,输入列表) 字符串读函数fgets() 该函数的作用是指从指定的文件中读取一定长度的字符串,并将其存放在指定的字符数组中,其调用格式为: fgets(str,n,fp) 该语句指从fp指定的文件中读取长度不超过n-1个字符的字符串,并将其存放于字符数组str中。,有关写文件的操作 字符写函数fputc() 该函数的作用是指将一个字符写入指定的文件中,其调用格式为: ch=fputc(ch,fp) 其中,ch为要输出的字符,fp为指向该文件的文件指针 数据块写fwrite 该函数的作用是指向指定的文件中写入一个数据块,其调用格式为: fwrite(buffer,size,count,fp),格式化写函数fprintf 该函数的作用是指将输出列表中数据按照格式字符串说明的格式写入文件指针指向的文件中, 其调用格式为: fprintf(文件指针,格式字符串,输出列表) 字符串写函数fputs 该函数的作用是指向指定的文件中写入一个字符串,其调用格式为: fputs(str,fp); str为字符串常量或字符数组名,还可以是字符型指针;fp指向将要被写入的文件的文件指针。,程序举例:,#include “stdio.h“ main() FILE *inf,*outf; int data=0; if (inf=fopen(“a1.dat“,“r“)=NULL) printf (“nCannot open the input file.“); exit (0); if (outf=fopen(“a2.dat“,“w“)=NULL) printf (“nCannot open the output file.“); exit (0); ,while (fscanf(inf,“%d“,data)!=EOF) fprintf(outf,“%dn“,data); fclose(inf); fclose(outf); ,接上页,2.3 数据库的基本原理与应用,通过数据库技术可有效管理产品设计和制造的数据信息,实现数据共享,保存程序与数据的独立性,保证数据的完整性和安全性。,2.3.1 数据库的基本原理,1、数据管理的三种模式 (1)数据的人工管理 数据与程序相互依赖,存在大量重复数据 (2)数据的文件管理 数据与程序相对独立,但不完全独立,文件之间彼此孤立 (3)数据库管理,(3)数据库管理,数据库管理的主要特点 数据模型复杂 即在描述数据同时,也描述数据之间的联系,即数据结构化。 数据共享性好、冗余度低(简单说:就是相同数据多次重复) 数据具有独立性 数据具有安全性、完整性,2数据库管理系统,(1)数据库系统构成 数据库系统由相应的硬件、软件和专职管理人员及数据构成。 1)专职管理员职责 a决定数据库的信息内容与存储结构数据库数据。 b监督和控制对数据库的使用和运行完整性。 c定义用户权限。 d维护、改进数据库。,2)数据库,数据库 是由DBMs建立、运用、管理及维护的通用化的、综合性的数据集合,通常存储在磁盘介质上。,(2)数据库管理系统的功能,数据库管理系统是一组专门处理、访问数据库的程序。它具有数据库的定义管理、建立、维护、通信以及设备控制等功能,是数据库系统的核心。,(2)数据库管理系统的功能,1)数据库定义功能:实现全局逻辑结构、局部逻辑结构、物理结构的定义及权限定义等。 2)数据库管理功能:提供对数据进行各种应用操作,如检索、排序、统计人、输出、添加、插入、删除、修改等功能。 3)数据库的建立和维护功能:即建立、更新、再组织、恢复数据库结构等维护功能。 4)通信功能:具备与操作系统的联机处理、分时系统及远程作业输入的相应接口。 5)其他功能:如应用程序的开发、文件管理、存储变量、设备控制等。,(3) DBMS通常由3部分组成。,1)数据描述语言(Data Description language,简称DDL)及其翻译程序。用于描述数据之间的联系,实现数据库定义功能。 2)数据操纵语言(Data Manipulation language ,简称DMI)及其编译程序。 用于存储、检索、编辑数据库数据的工具。 3)数据库管理例行程序(Data Base Management Routines,简称DBMR)。 一般包括系统运行控制程序、语言翻译程序和DBMS的公用程序。,(4)数据库管理系统的抽象层次,1)外模型。是用户使用的数据视图,这是一种局部的逻辑数据视图,它表示了用户理解的实体、实体屑性和实体间联系。外模型有多个,处于系统的外层。 2)概念模型。是数据库系统的全局逻辑视图。它代表了整个系统的抽象的实体、实体属性和实体间联系。概念模型只有一个,属于系统的概念层。 3)内模型。是物理数据存储的模型,亦只宙一个,处于系统的内层,也是最底层。,用DBMs中的DDL精确地定义3个相应的模式。,1)外模式(子模式) 2)概念模式(模式) 3)内模式(物理模式)。,DBMS各层模式的关系,子模式模式变换。它定义了各子模式和模式之间的映射关系。当整个系统要求改变模式时,可以只改变此映射关系而保持子模式不变。这种用户数据独立于全局逻辑数据的特性称为逻辑数据独立性。 模式物理模式变换。它定义了各模式与物理模式的映射关系。当需要时, 可以改变物理模式,同时改变模式物理模式映射关系而保持模式和子模式不变。这种全局逻辑数据独立于物理数据的特性称为物理数据独立性。 无论哪一层模式都只能是处理数据的一个框架,而按这些框架填入的数据才是数据库的内容。,所以模型、模式、数据是3个不同的概念。以子模式为框架的数据库是用户数据库;以模式为框架的数据库是概念数据库;以物理模式为框架的数据库是物理数据库。用户数据库是概念数据库的部分抽取;概念数据库是物理数据库的抽象表示;物理数据库是概念数据库的具体实现。 只有物理数据库才真正存在,它是存放在外存中的实际数据,而其他2个数据库在外存中是不存在的,但DBMs能够从相应的物理数据库构造出概念数据库和用户数据库。数据库设计者主要考虑整个数据库的轮廓框架,即概念模式,而数据库用户关心的是数据库的内容。模式是相对稳定的,而内容可以经常变化。,3数据库的数据模型,数据库系统的一个核心问题就是研究如何表示和处理实体间的联系。表示实体及实体间联系的模型称为数据模型。常用的数据模型有3种。 实体:我们把客观存在并且可以相互区别的事物称为实体。实体可以是实际事物,也可以是抽象事件。如一个职工、一场比赛等。,分类,(1)层次模型 一对多 (2)网状模互 多对多 (

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论