工程數據處理_第1頁
工程數據處理_第2頁
工程數據處理_第3頁
工程數據處理_第4頁
工程數據處理_第5頁
已閱讀5頁,還剩92頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

工程數據的處理方法

及CAD程序編制CAD/CAM技術基礎在機械設計過程中,常常需要從有關的工程手冊或設計規(guī)范中查找及檢索有關曲線、表格數據,以獲得設計或校核計算時所需要的各種系數、參數等。如何將這種人工查找轉變成在CAD進程中的高效、快速處理,這就涉及工程數據的處理方法及CAD程序編制技術。

目前,在CAD技術中,對工程數據進行處理的方法主要有以下三種:(1)將工程數據轉化為程序存入計算機內存;(2)將工程數據轉化為數據文件存入計算機外存;(3)將工程數據轉化為結構存入數據庫。4.3工程數據的處理方法及CAD程序編制公差配合的查詢

在機械設計中,常用數表形式給出機械零部件的設計參數。設計計算時,需根據給定條件從表格中選取需要的值。在編制機械CAD計算程序的時候,應將數表作程序化處理,以便調用。

機械設計過程中所使用的工程技術數表種類很多。通常,按數表中的數據有無函數關系,可分為:數表簡單數表列表函數表有計算公式的列表函數表無計算公式的列表函數表按數表的維數,又可分為:數表一維數表二維數表n維數表等4.3.1數表的分類及存取

1.數表的分類包角α708090100110120130140Kα0.560.620.680.730.780.820.860.89表4-1包角系數Kα一維數表表4-2V帶長度系數KL

二維數表在CAD作業(yè)中,進行工程數表存取的一般原則如下:

數據存入計算機的形式應考慮到檢索的方便,通常將數據按一定規(guī)則進行排列,然后存入數組。

一維數表采用一維數組進行存儲。

二維數表采用二維數組進行存儲。

■查取數據時用邏輯判斷語句進行比較,檢索出所需要的數據。

(1)一維數表的存取

現以例4-1為例說明一維數表的存取方法。

例4-1一平鍵聯接中的平鍵基本尺寸數據如表4-3所示,試編寫程序根據軸徑d

查取相應的鍵寬b

和鍵高h

。

2.數表的存取表4-3平鍵尺寸與軸徑關系(摘自GB1095-79)

規(guī)格(i)軸徑d(mm)b(mm)h(mm)規(guī)格(i)軸徑d(mm)b(mm)h(mm)0自6~8225>22~30871>8~10336>30~381082>10~12447>38~441283>12~17558>44~501494>17~22669>50~581610

解:根據表中軸徑d

檢索鍵寬b

和鍵高h尺寸時,首先需要判斷軸徑d

所在的范圍。

根據數表的這一特點,在程序中存儲該數表時,

可用兩個一維數組

b[10]和h[10]分別存儲鍵寬和鍵高的值,

再用另一個一維數組

d[11]存儲軸徑的范圍界限值。在CAD作業(yè)中,當需要檢索鍵寬和鍵高時,先用條件語句判斷軸徑d所在的范圍,在此范圍內便可檢索出鍵寬和鍵高的數據值。依據這一思想,實現表4-3的數表存取的程序編寫如下:

/*chp4_01.c*/#include<stdio.h>main(){staticfloatd[11]={6.0,8.0,10.0,12.0,17.0,22.0,30.0,38.0,44.0,50.0,58.0},b[10]={2.0,3.0,4.0,5.0,6.0,8.0,10.0,12.0,14.0,16.0},h[10]={2.0,3.0,4.0,5.0,6.0,7.0,8.0,8.0,9.0,10.0};floatdd,bb,hh;inti;puts("Pleaseinputd=?\n");scanf("%f",&dd);if(dd<d[0]||dd>d[10]){puts("Thedataisoutoftherange!\n");exit(1);}for(i=0;i<10;i++)if(dd<=d[i+1]){bb=b[i];hh=h[i];printf("b=%f,h=%f\n",bb,hh);exit(2);}}

現以例4-2為例說明二維數表的存取方法。

例4-2

表4-2所示為V長度系數KL,如果V帶的截面型號為A型,內周長度為560mm,試編寫程序在該表中查取相應的長度系數KL。

解:對本例二維數表,首先需給資料名稱加注序號,即給數表的行和列加注序號:在行向加注序號

i=0~31(共32種內周長度),在列向加注序號j=0~6(共7種V

帶類型)。然后就可以定義一個二維數組將數表中的數據存入計算機。

在查表時,只要給出其數據的位置序號(i,j),即可檢索到對應的數據值。對于本例,即A型截面所對應的列序號為j=1,內周長為560mm所對應的行序號為

i=2,查取的V帶長度系數KL

的程序如下:(2)二維數表的存取

序號

j

0

123456

i

截面型號

OABCDEF

內周長度(mm)

0

450

0.89

15000.91

2

5600.940.80.

.........

........

2911501.123014001.15

3116001.18表4-2V帶長度系數KL

/*chp4_02.c*/#include<stdio.h>main(){staticfloatkl[32][7]={{0.89,100.0,100.0,100.0,100.0,100.0,100.0},{0.91,100.0,100.0,100.0,100.0,100.0,100.0},{0.94,0.80,100.0,100.0,100.0,100.0,100.0},..................}};inti,j;floatkl1;i=2;j=1;kl1=kl[i][j];if(fabs(kl1-100.0)<1.0e-6)printf("THEDATAOUTOFTHETABLE!");elseprintf("kl=%f",kl1);}

對于數表中出現的空格,應在存入計算機時用一個適當的有別于數表中其它數據的數字來代替,并在程序中使用判斷語句進行檢查。在本例程序中使用數字“100.0”來代替空格,并使用判斷語句:“if(fabs(kl1-100.0)<1.0e-6)……”來檢查是否出現空格。

例1.普通V帶型號及截面尺寸

六個實例inti;floatb[7]={6.0,10.0,13.0,17.0,22.0,32.0,38.0};floath[7]={4.0,6.0,8.0,11.0,14.0,19.0,25.0};floatbp[7]={5.3,8.5,11.0,14.0,19.0,27.0,32.0};用戶給定i=2(即A型),則程序可以立即查出:b[2]=13.0,h[2]=8.0,bp[2]=11.0特點:一個非數值型自變量。所查的值為離散型數據。方法:利用一維數組和一個整型變量。例2.平鍵和鍵槽的剖面尺寸

特點:根據計算結果確定范圍。方法:利用一維數組和判斷語句來編程實現。例3.包角影響系數K2特點:自變量和需要查的值均為連續(xù)值。方法:利用一元插值函數。例4.齒輪傳動工況系數KAfloatKA;inti,j;floatKK[3][3]={{1.0,1.25,1.75},{1.25,1.5,2.0},{1.5,1.75,2.25}};特點:兩個離散型自變量和一個離散型函數值。方法:利用二維數組。

r/dD/d6.03.02.01.501.201.101.051.031.021.010.042.592.402.332.212.092.001.881.801.721.010.101.881.801.731.681.621.591.531.491.441.360.151.641.591.551.521.481.461.421.381.341.260.201.491.461.441.421.391.381.341.311.271.200.251.391.371.351.341.331.311.291.271.221.170.301.321.311.301.291.271.2261.251.231.201.14例5:軸肩圓角處理論應力集中系數特點:兩個自變量是連續(xù)值。方法:利用二元插值函數。

例6.單根V帶的基本額定功率PI特點:三個離散型自變量。方法:利用三維數組。

線圖是函數關系的一種常用表示方法。

線圖的特點是鮮明直觀,并能清楚地表示出函數的變化趨勢及規(guī)律。因此,在工程設計資料中,很多參數間的函數關系是用線圖來表達的。

但在CAD作業(yè)中,目前尚不能直接對線圖進行編程,因此必須對它進行相應的處理,才能實現對參數圖存儲和自動檢索的目的。

1.

線圖的類型根據線圖中數據的來源,線圖可分為兩類:線圖有計算公式的線圖區(qū)域圖無計算公式的線圖直線圖曲線圖4.3.2線圖的分類及處理

為了CAD作業(yè)需要,進行線圖程序化處理的方法有以下幾種:?

線圖數表化處理(將線圖整理成數表);

?線圖公式化處理(建立出線圖的解析式);

?

曲線擬合處理(建立出線圖的近似式)。在線圖的處理方法中,可分如下幾種:

1)有計算公式線圖的處理

2)無計算公式線圖的處理

(1)線圖的數表化處理

(2)線圖的公式化處理

①直角坐標系直線圖的公式化處理;②對數坐標系直線圖

的公式化處理;③區(qū)域圖的處理。2.線圖的處理

有些線圖所表示的各參數之間關系原本就有計算公式,但為了設計人員工作時查取方便,將計算公式繪制成為線圖,如圖4-2。對于這樣的線圖,在CAD作業(yè)時,應在CAD計算程序中可直接使用公式進行計算。

圖4-2螺旋角參數Zβ

1)有計算公式線圖的處理(1)線圖的數表化處理

線圖的數表化處理就是將線圖離散化為數表,然后再用4.3.1節(jié)中所述方法加以處理。以在CAD作業(yè)時,供進行數據檢索。例如,表4-4就是圖4-3離散化后形成的數表。圖4-3蝸輪的齒形系數Y2(變位系數ζ=0,α=20°,ha=1)

2)無計算公式線圖的處理表4-4蝸輪的齒形系數Y2(變位系數ζ=0,α=20°,ha=1)

進行線圖公式化處理,對不同類型的線圖有不同的處理方法:

?

對有計算公式的線圖,可直接將公式編入程序;

?

對直線圖可將其圖形轉化為線性方程,再編入程序。而直線圖通常又分如下三種情況:

●直角坐標直線圖

●對數坐標直線圖

●區(qū)域圖具體處理方法如下:(2)線圖的公式化處理如圖4-4所示是齒輪強度計算時所用到的動載系數Kv

的線圖,

橫坐標為:VZ1

/100,

縱坐標為:Kv

。包括直齒輪和斜齒輪共有16條直線分別代表不同精度等級下的函數關系。①直角坐標系直線圖的公式化處理對于該線圖若用數表化處理,則要轉化為16個一維數表或2個二維數表,不僅數據量很大,而且還要占用較多的計算機內存。

對此,可通過取直線上任意兩點的坐標值來求其斜率,從而寫出直線方程式。若已知直線上任意兩個點

坐標,則該直線方程為:直齒輪

斜齒輪

圖4-4動載荷系數Kv

(4-1)對于Kv

線圖,則可表示成:式中:

為直線上任意兩點的縱坐標值;為該兩點的橫坐標值。

因此,對圖4-4上每一條直線選取其上任意兩點的坐標值,帶入上式,便可列出直線方程,利用該方程便可計算出任意VZ1/100的動載系數Kv值。利用上述方法,圖4-4中的16條直線,可變換為16個直線方程。②

對數坐標系直線圖的公式化處理在機械設計資料中,常會遇到對數坐標直線圖,如圖4-5所示。圖4-5彎曲強度的壽命系數YN

若已知對數坐標系下直線上的任意兩點的坐標:令則(4-2)其對數坐標的直線方程可以表示為:對于圖4-5所示的齒輪彎曲強度壽命系數YN的每一條直線,只要給出其兩任意點的坐標,即可列出它的直線方程式:將圖中某一直線任意兩點的坐標值(N1,YN1),(N2,YN2)及要求取壽命系數YN

的應力值次數

N

帶入上式,并令:令這樣就可用程序語言把YN與

N的關系表達出來。

例如圖4-6所示的齒輪材料的接觸疲勞強度極限應力,因其影響因素很多,因而在國際標準中采用區(qū)域圖的方式表示,供設計者根據材料的質量水平、熱處理工藝水平等條件來選用。工程技術中的許多物理量,往往是一些離散的、隨機的變量。

對于上述區(qū)域圖,具體的處理方法有兩種:

按區(qū)域圖的中線取值;

按區(qū)域圖的位置取值。圖4-6齒輪材料的接觸疲勞強度極限應力

③區(qū)域圖的處理

按區(qū)域圖的中線取值處理

以圖4-6為例,首先必須找出區(qū)域圖中線(圖中點劃線)的表達式,為此在中線上任意選取兩點(HB1,SH1)、(HB2,SH2),由此兩點可以寫出該極限應力中線的表達式:利用上式,就可計算出任意齒面硬度HB

所對應的。(4-3)

按區(qū)域圖的位置取值按前述的處理方法,設計人員在確定齒輪材料的極限應力時只限于取中值,不盡全面。為了使設計者能根據所用材料性能的不同,按實際情況在區(qū)域內取不同的值,為此,可以增加兩個參數:●

一個是極限應力的幅值參數

;●

另一個是極限應力在區(qū)域圖中的位置參數ST。

當ST=1

時,表示取極限應力的上限值;當ST=0

時,表示取極限應力的中值;當ST=-1

時,表示取極限應力的下限值。此時,極限應力的計算公式變?yōu)椋?/p>

這樣,ST

在+1~-1之間取值時,就可以獲得區(qū)域圖中(見圖4-6)任意位置上的極限應力值。(4-4)還有一種區(qū)域圖,如圖4-7所示的V帶選型圖。

這種區(qū)域圖是以直線作為不同型號的V帶膠帶的邊界線。因此,對這樣區(qū)域圖亦可以運用直線方程來確定邊界線的坐標。圖4-7V帶選型圖

圖4-7所示區(qū)域圖為對數坐標圖,故在每條邊界線上任意選取兩點(P1,N1),(P2,N2),由此兩點就可寫出該線的對數坐標直線方程:將其變換成指數方程的形式:式中:(4-5)邊界線計算公式O-AN=677A-BN=100B-CN=24C-DN=7D-EN=1.16E-FN=0.329按照上述方法,圖4-7中6

條邊界線的方程(計算公式)為:式中,P

——為計算功率,kW;

N

——邊界線上相對于計算功率P

的轉速,r/min。根據上述,編寫出的三角膠帶傳動“V帶帶型選擇函數”如下:charv_belt_type(floatp,floatn)/*Selectthetypeofv_belt*/{if(n>=4900.0)return('O');elseif(n>677.0*pow(p,1.454))return('O');elseif(n>=3400.0)return('A');elseif(n>100.0*pow(p,1.486))return('A');elseif(n>=2400.0)return('B');elseif(n>24.0*pow(p,1.47))return('B')elseif(n>=1500.0)return('C');

V帶帶型選擇函數elseif(n>7.0*pow(p,1.488))return('C');elseif(n>=1200.0)return('D');elseif(n>1.16*pow(p,1.545))return('D');elseif(n>=700.0)return('E');elseif(n>0.329*pow(p,1.5))return('E');elsereturn('F');表4-a列表函數xx1x2x3…xi…xnyy1y2y3…yi…yn由于列表函數只能給出結點處的函數值,當自變量為結點的中間值時,就要用插值法求取其函數值。

插值法的基本思想:是在插值點附近選取幾個合適的結點,用這些選取的點構造一個簡單函數

g(x),在此小段上用g(x)代替原來函數

f(x),這樣插值點的函數值就用

g(x)的值來代替。因此,插值的實質問題是如何構造一個既簡單又具有足夠精度的函數g(x)。設有一用數據表格給出的列表函數,如下表所示:4.3.3列表函數表的插值計算

線性插值就是構造一個線性函數

g(x)來代替原先的函數

f(x),如圖4-8所示。

插值步驟如下:圖4-8線性插值①從表格中選取兩個相鄰的自變量

xi

、xi+1,滿足下列條件:

x

i

<x<

x

i+1;②過(x

i,y

i)及(xi+1,yi+1)兩點連直線

g(x)

代替原來的函數f(x),則x的函數值

y

為(4-6)1.一維列表函數表的插值

(1)線性插值

線性插值是一種既簡單又常用的插值算法,在機械CAD計算程序中經常用到,將此算法編寫的一維線性插值函數如下:floatlip(floatx[],floaty[],intn,floatt){inti;for(i=0;i<=n-3;i++)if(t<=x[i+1])gotoa;i=n-2;a:return(y[i]+(y[i+1]-y[i])*(t-x[i])/(x[i+1]-x[i]));}

程序說明

(1)該函數中用一維數組

x[],y[]分別存儲數表中的自變量數據和函數值數據;

(2)n

為數組元素的個數,數組元素的下標從0變化到n-1;

(3)t為插值點的自變量數值。

例4-3已知V帶傳動小帶輪包角α1=125.4°,由表4-1采用線性插值算法查取所對應的包角系數Kα。/*chp4_03.c*/#include<stdio.h>main(){floatlip(floatx[],floaty[],intn,floatt);staticfloatrf[16]={70.0,80.0,90.0,100.0,110.0,120.0,130.0,140.0,150.0,160.0,170.0,180.0,190.0,200.0,210.0,220.0},krf[16]={0.56,0.62,0.68,0.73,0.78,0.82,0.86,0.89,0.92,0.95,0.98,1.0,1.05,1.1,1.15,1.2};floatkrf1;krf1=lip(rf,krf,16,125.4);printf("krf1=%f",krf1);}解:將此數據的檢索過程編寫成計算機程序如下:

在此程序中調用上述一維線性插值函數lip()執(zhí)行一維線性插值運算。程序運行結果如下:

krf1=0.84160000即,根據給定的小帶輪包角α1=125.4°,通過線性插值算法查取所對應的包角系數Kα

=0.84160000

。(2)

拋物線插值

用線性函數

g(x)

來代替f(x)時,僅利用了兩個結點上的信息,因此誤差較大,為了減少誤差可利用三個結點上的信息,采用拋物線插值。

在f(x)上取三點,過此三點作拋物線

g(x),以用來替代

f(x),可以獲得比線性插值精度高的結果,如圖4-9所示。則過三點(xi-1,yi-1)及(xi,yi)、(xi+1,yi+1)的拋物線方程為圖4-9拋物線插值算法示意圖

(4-7)

在拋物線插值中,如何選取合適的三個點是關鍵所在,選取方法歸納如下:

設已知插值點

x

,求對應的函數值y:(1)從已知函數表格中選取二點,它們滿足下列條件

(2)比較的值,取其值小者作為取點延伸方向,從表格中選取第三點作為拋物線方程經過的點。

當時,即三個點;

時,即三個點;(3)若三個點。(4)若三個點。用C語言編制的一維拋物線插值函數的源程序如下:floatqip(floatx[],floaty[],intn,floatt){inti;floatu,v,w;for(i=0;i<=n-4;i++)if(t<=x[i+1])gotoa;i=n-3;a:if(i>0&&(t-x[i])<(x[i+1]-t))i=i-1;u=(t-x[i+1])*(t-x[i+2])/(x[i]-x[i+1])/(x[i]-x[i+2]);v=(t-x[i])*(t-x[i+2])/(x[i+1]-x[i])/(x[i+1]-x[i+2]);w=(t-x[i])*(t-x[i+1])/(x[i+2]-x[i])/(x[i+2]-x[i+1]);return(u*y[i]+v*y[i+1]+w*y[i+2]);}

對于具有兩個自變量的二維列表函數的插值,從幾何意義上講是在三維空間內,選定幾個點,通過這些點構造一塊曲面

g(x,y),用它近似地表示在這區(qū)間內原有的曲面

f(x,y)。

設有一二維列表函數如下表4-b

所示:表4-b二維列表函數和插值點的函數值2.二維列表函數表的插值

曲面

f(x,y)的三維情況,用線框圖表示時,則如圖4-e所示。設有一個曲面f(x,y),被兩組平行

xoz或yoz

的平面相截,因此得到二組曲線,這二組曲線的交點即為x(i),y(j)處的Z(i,j)。也就是表中的函數值。圖4-e二維列表函數表的插值

這二組曲線把曲面分成許多小塊,每一小塊四個角的值可以從表格中查出。至于小塊內曲面上各點的函數值就無法由表格中查取。為能得到小塊內曲面上任一點的函數值,可以類同于一維數表,設法構造一個二元函數

g(x,y),它能近似地代替原曲面的

f(x,y)。因此二維數表插值的實質是如何來構造

g(x,y)。

插值函數

g(x,y)的構造,主要有以下兩種方法:

?

線性插值算法

?

拋物線插值算法

二維列表函數的線性插值算法的原理,如圖4-10所示。

首先:從二維數表中給定的m×n

結點中選取最接近插值點

T(x,y)相鄰的4個結點;

然后:分別用三次一維線性插值方法就可求出相應于插值點

T(x,y)的函數值

Z(x,y)。圖4-10二維列表函數表的線性插值

(1)線性插值圖4-10a二維列表函數表的線性插值

A,B→EC,D→FE,F→T則線性插值算法的工作步驟如下:

(1)

由A、B兩點用一維線性插值方法計算出

E(xi,y)點的插值函數值ZE;

(2)

再用同樣方法,由C、D兩點求出F(xi+1,y)點的插值函數值ZF;

(3)

用同樣的方法,由E、F兩點求得插值點

T(x,y)的插值函數值Z(x,y)。如圖4-10所示:設與插值點

T(x,y)相鄰的4個結點為:A、B、C、D,這4個結點上的函數值z(x,y)均已知。

由上述算法的執(zhí)行過程得到的二維列表函數表的線性插值算法公式為:式中:(4-8)用C語言編制的二維線性插值函數的源程序如下:floattlip(floatx[],floaty[],floatz[][8],intm,intn,floattx,floatty){inti,j;floata,b,f;for(i=0;i<=m-3;i++)if(tx<=x[i+1])gotoc;i=m-2;c:for(j=0;j<=n-3;j++)if(ty<=y[j+1])gotod;j=n-2;d:a=(tx-x[i])/(x[i+1]-x[i]);b=(ty-y[j])/(y[j+1]-y[j]);f=(1-a)*(1-b)*z[i][j]+b*(1-a)*z[i][j+1]+a*(1-b)*z[i+1][j]+a*b*z[i+1][j+1];return(f);}

二維列表函數三點拋物線插值法的思路,基本上與二維線性插值法一致。只是在插值計算時,共4次運用一維拋物線插值算法來替代一維線性插值算法。用該方法可以提高插值精度。

該算法的插值步驟如下:

?

首先,從給定的m×n個結點中,選取最靠近插值點T(x,y)相鄰的9

個結點(見圖4-11);

?

其次,由三個點,按插值點

T(x,y)

在y方向的位置用一維拋物線插值方法求出A點的插值函數值ZA

;圖4-11二維列表函數表的拋物線插值

y0x(2)拋物線插值

?

再用同樣方法,求得B、C兩點的插值函數值ZB、ZC;

?

最后,再用A、B、C三點的插值函數值按插值點

T(x,y)在

x方向的位置用一維拋物線插值算法計算出插值點

T(x,y)

插值函數值Z(x,y)。

由上述算法執(zhí)行過程得到的二維列表函數表的拋物線插值算法公式為:(4-9)式中:∏累乘;表示乘積遍取k從i到i+2(k≠r

除外)的全部數值。floattqip(floatx[],floaty[],floatz[][24],intm,intn,floattx,floatty){inti,j,k,l;floatu[3],v[3],f;for(i=0;i<=m-4;i++)if(tx<=x[i+1])gotoc;i=m-3;c:for(j=0;j<=n-4;j++)if(ty<=y[j+1])gotod;j=n-3;d:if(I>0&&tx-x[i]<x[i+1]-tx)i=i-1;if(j>0&&ty-y[j]<y[j+1]-ty)j=j-1;

用C語言編制的二維拋物線插值函數的源程序如下:u[0]=(tx-x[i+1])*(tx-x[i+2])/(x[i]-x[i+1])/(x[i]-x[i+2]);u[1]=(tx-x[i])*(tx-x[i+2])/(x[i+1]-x[i])/(x[i+1]-x[i+2]);u[2]=(tx-x[i])*(tx-x[i+1])/(x[i+2]-x[i])/(x[i+2]-x[i+1]);v[0]=(ty-y[j+1])*(ty-y[j+2])/(y[j]-y[j+1])/(y[j]-y[j+2]);v[1]=(ty-y[j])*(ty-y[j+2])/(y[j+1]-y[j])/(y[j+1]-y[j+2]);v[2]=(ty-y[j])*(ty-y[j+1])/(y[j+2]-y[j])/(y[j+2]-y[j+1]);f=0.0;for(k=0;k<=2;k++){for(l=0;l<=2;l++){f+=u[k]*v[l]*z[i+k][j+l];}}return(f);}

在實際工程問題中,時常需要用一定的數學方法將一系列測試數據或統(tǒng)計數據擬合成近似的經驗公式,這種建立經驗公式的過程也稱為曲線擬合,或稱數據公式化。

工程應用中,一般采用最小二乘法多項式擬合。所求曲線并不要求嚴格通過所有結點,而是盡可能反映所給數據的趨勢。下面介紹:

曲線擬合,目前一般采用最小二乘法擬合。

擬合公式的類型通??梢赃x取線性方程、代數多項式或一些初等函數。這一工作由編程人員根據線圖或實驗數據分布形態(tài)來決定?!?/p>

最小二乘法的多項式擬合●

最小二乘法的其他函數的擬合4.3.4

數據的公式擬合方法1.最小二乘法的多項式擬合已知:由線圖或實驗所得m

個點的值:圖4-12最小二乘法多項式擬合用一個n

次多項式

y(x)

來擬合,如圖4-12所示,設擬合公式為:(4-10)

而且m>>n

,則每一結點處的偏差為:

為獲得最佳擬合曲線,根據最小二乘法原理,即要求每一結點的偏差Di

的平方和最小,則結點偏差的平方和為:(4-11)這表明偏差平方和是系數

的函數。為使其最小,取對各自變量的偏導數等于零:求各偏導數并經整理得到:(4-12)令得即(4-13)亦可寫成下面的方程組:(4-14)

上式中待求的系數

共有(n+1)

個,

方程也是(n+1)個,因此組成線性聯立方程組,

解此線性聯立方程,即可求得多項式

y(x)

中的各項系數。

在求得多項式y(tǒng)(x)中的各項系數后,

n

次多項式(4-10)便確定:

例4-4有一組實驗數據,如下表

4-c

所示,它有7個點,現要求用二次多項式擬合。表4-c一組實驗數據

點號1234567Xi-3-2-10123Yi4230-1-2-5解:

設經驗公式為:

根據上述實驗數據及經驗公式可知:m=7,n=2,代入式(4-12),得以下三個方程:

j=0時

j=1時

j=2時把Xi,Yi

用上表中的值代入,得求解得:最后得到擬合的經驗公式為

工程中設計資料中的很多經驗公式,就是對實驗獲得的數據數表通過曲線擬合的方法得來的。除代數多項式外,根據情況還可采用:

(1)冪函數

(2)指數函數

(3)對數函數(4-14)(4-15)(4-16)

例如,若已知m

組數據

,i=1,2,…,m,假設所擬合的指數函數曲線形式為:lgy=lga+blgx(4-17)令:(4-19)(4-18)對上式指數函數兩邊取對數,得2.最小二乘法的其他函數的擬合

先將已知數據

代入式(4-19)中,求得相應的值,再代入式得到在對數坐標系中的一個線性方程。與多項式曲線擬合相似,采用最小二乘法就可以得到上式中的系數

v

和b,再由lga=v求得系數

a

。代入上式,得(4-20)

將數據以數組的形式存入計算機內存中,雖然解決了數表和線圖在CAD計算程序中的存儲和檢索問題,但存在下列不足:(1)需要占用大量的內存。

(2)前述數據的存取方法,包括公式化處理,其處理后的數表和線圖與特定的CAD計算程序相聯,使得這些數表和線圖只能在該程序中使用,不能被其他程序共享。因此,前述數據的處理方法一般只適用于使用數表和線圖較少的簡單程序。為了克服這種方法的不足,較為完善的方法是將數據與計算程序分開、單獨建立數據文件。4.3.5數據文件及其應用

文件是信息(數據與字符)的集合。將數表和線圖中的數據按指定的文件名存放在計算機外存儲裝置(磁盤、磁帶等)上,就可建立用戶的數據文件,當CAD計算程序需要使用到某一個數表或線圖中的數據時,只需用適當的程序語句(文件操作語句)將它們從外存中調入計算機內存。

建立數據文件的方法不僅解決了前述方法存儲數據時需要占用大量內存的問題,而且可使數據文件獨立于計算程序,且一個數據文件可供不同的計算程序調用,較好地解決了數據的共享問題。圖4-f數據文件的調用示意圖

數據庫系統(tǒng)是在文件系統(tǒng)的基礎上發(fā)展起來的一門新型數據管理技術。它是一種能夠“管理大量的、持久的、可靠的、共享的數據的工具”。

數據庫技術不僅可以處理CAD系統(tǒng)的大量工程數據,而且大大完善和提高了CAD系統(tǒng)數據處理的效率和可靠性。因此,數據庫已經成為現代CAD系統(tǒng)不可缺少的重要組成部分。4.4機械工程數據庫的創(chuàng)建與應用在現代CAD系統(tǒng)中,為了適應CAD作業(yè)的需要,須把各類工程數據結構和文件組織方式建立起數據庫及其管理系統(tǒng)。下面簡要介紹一下數據庫與數據庫管理系統(tǒng)。

?

數據庫及其特點

?常用的數據庫管理系統(tǒng)4.4.1數據庫與數據庫管理系統(tǒng)

所謂數據庫就是一個存儲著關聯數據的數據集合。它由一系列各種組織形式的數據文件組成。1.

數據庫及其特點圖4-g數據庫與應用程序

數據庫是在文件系統(tǒng)的基礎上發(fā)展起來的。與文件系統(tǒng)不同,數據庫系統(tǒng)的工作模式如下圖4-b所示,即在數據系統(tǒng)中,應用程序并不直接操作數據庫,而是通過數據庫管理系統(tǒng)(DBMS)對數據庫進行操作。

與文件系統(tǒng)相比,數據庫系統(tǒng)具有以下特點:

(1)實現了數據共享,減少了數據冗余。

(2)數據存儲結構化。

(3)增強了數據的獨立性。(4)加強了對數據的保護。

數據庫管理系統(tǒng)是建立、使用、管理和維護數據庫的軟件,實現對數據庫的安全性、完整性和保密性的統(tǒng)一控制。

目前流行的數據庫管理系統(tǒng)很多,諸如:?

dBASE;

?

FOXBASE;

?

FOXPRO;

?

ORACLE等。但它們都屬于事務管理型關系數據庫管理系統(tǒng),更適合于管理科學的應用領域。由于CAD作業(yè)所涉及的數據較為復雜,因而真正面向CAD系統(tǒng)的工程數據庫管理系統(tǒng)(EDBMS)還有待進一步的開發(fā)。2.常用的數據庫管理系統(tǒng)

l.

電子表格處理軟件Excel

在計算機提供的海量表格上填寫內容,進行數據處理和數據分析,內置函數用于求和、求平均值、計算三角函數等操作。

建立數據庫:Excel數據庫是按行和列組織起來的信息集合,每行稱為一個記錄,每列稱為一個字段;對數據庫的記錄進行查詢、排序、匯總等操作。

進行數據分析:只需為每一個分析工具提供必要的數據和參數,該工具就會使用適宜的統(tǒng)計或工程函數,在輸出表格中顯示相應的結果。其中的一些工具在生成輸出表格時還能同時產生圖表??蓮钠渌臄祿欤ˋccess,FoxPro,SQLServer等)引入數據。4.4.2

關系數據庫管理系統(tǒng)應用實例簡介2.

數據庫管理系統(tǒng)Access(1)無須編寫代碼,只要通過直觀的可視化操作,就能完成大部分數據管理工作。(2)能夠與word、Excel等

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論