組合坦克模型的程序?qū)崿F(xiàn)_第1頁
組合坦克模型的程序?qū)崿F(xiàn)_第2頁
組合坦克模型的程序?qū)崿F(xiàn)_第3頁
組合坦克模型的程序?qū)崿F(xiàn)_第4頁
組合坦克模型的程序?qū)崿F(xiàn)_第5頁
已閱讀5頁,還剩4頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

組合坦克模型的程序?qū)崿F(xiàn)摘要:坦克模型是水文預(yù)報的常用模型之一,用程序?qū)崿F(xiàn)可以通用的組合坦克模型后,可以避免重復(fù)的計算工作,將工作重點放與改進(jìn)參數(shù)以提高精度上去。關(guān)鍵字:組合坦克模型程序一、初步規(guī)劃:首先用DELPHI語言寫成通用坦克計算過程的的DLL,然后用VB調(diào)用和拓展程序功能。DLL的流程如下:開始—讀流域參數(shù)文件—讀模型參數(shù)文件—讀洪號文件—計算初始水深—模型計算和寫輸出文件—結(jié)束。在DLL中使用一個可輸出的函數(shù)tank,其參數(shù)為一個全路徑文件名(lujing:string),返回值為布爾型。代碼:functiontank(lujing:string):boolean;stdcall;export;//聲明DLL函數(shù)。Lujing文件的內(nèi)容是所有輸入文件的全路徑名稱,包括流域參數(shù)文件、模型參數(shù)文件、洪號文件、洪水雨量文件、洪水過程文件。其內(nèi)容如下:流域參數(shù)文件(liuyu.ses)內(nèi)容包括水箱組數(shù)目、流域面積、各水箱組權(quán)重和傳播時間。模型參數(shù)文件(hhao.txt)內(nèi)容包括各個水箱的孔口系數(shù)A和孔口高H。洪號文件(hhao.txt)的首行為洪水場次,下面為各次洪水雨量文件的全路徑名稱。洪水雨量文件(洪號.int)內(nèi)容包括洪水的初始流量、基流、各上層水箱初始水深,雨量記錄數(shù),記錄數(shù)應(yīng)包括預(yù)見期在內(nèi)。最后是雨量記錄,間隔一小時,依次為時間、1組雨量、2組雨量…洪水過程文件(洪號.guo)為便于方案的檢驗,對應(yīng)于洪水雨量文件。程序運(yùn)行后生成輸出文件(洪號.out)也保存在同目錄下。二、程序?qū)崿F(xiàn):1、水箱組的數(shù)量及各自傳播時間和權(quán)重取決于流域的特性,為提高程序的通用性,設(shè)置成不確定變量,分別保存在tanknum、quan[1..tanknum]和time[1..tanknum]。2、模型參數(shù)的命名應(yīng)利于計算,每組15個參數(shù),名稱canshu[315]其中3代表第三組水箱,15是第15個參數(shù),讀取代碼:assignfile(f,fname[2]);reset(f);fori:=1totanknumdobeginx:=100*i;forn:=1to15dobeginread(f,canshu[x+n]);ifcanshu[x+n]<=0thenshowmessage('發(fā)現(xiàn)錯誤參數(shù),在'+inttostr(x+n)+'個!');readln(f);end;end;closefile(f);3、初始水深的分析:坦克模型所謂的基流是第三層水箱的出流量,存在一個極限上值。當(dāng)起漲前流域干旱時,初始流量大部是基流,是第三層水箱出流,即深層地下徑流,據(jù)以計算其初始水深Hx,初始流量和基流之差為第二層水箱出流,即地下徑流,據(jù)以計算其初始水深Hz,第一層水箱的初始水深Hs低于其下孔高;起漲前流域濕潤,初始流量較大,表示有壤中流;Hs與前期的降雨量和雨量的時間分布關(guān)系密切,雨量越大、時間越接近起漲,Hs就越大。Hx和Hz計算代碼如下:form:=1totanknumdobeginqep:=jiliu*quan[m]*3.6/mianji*quan[m];hx[m]:=(qep+canshu[100*m+12]*canshu[100*m+11]+canshu[100*m+14]*canshu[100*m+13])/(canshu[100*m+11]+canshu[100*m+13]);Ifhx[m]<canshu[100*m+12]Thenhx[m]:=(qep+canshu[100*m+14]*canshu[100*m+13])/canshu[100*m+13];hx[m]:=hx[m]-qep-canshu[100*m+15]*hx[m];//showmessage('qep'+floattostr(qep));qcp:=(chuliu-jiliu)*quan[m]*3.6/mianji*quan[m];hz[m]:=(qcp+canshu[100*m+6]*canshu[100*m+7]+canshu[100*m+8]*canshu[100*m+9])/(canshu[100*m+6]+canshu[100*m+8]);Ifhz[m]<canshu[100*m+7]Thenhz[m]:=(qcp+canshu[100*m+8]*canshu[100*m+9])/canshu[100*m+8];hz[m]:=hz[m]-qcp-canshu[100*m+10]*hz[m];//showmessage('qcp'+floattostr(qcp));end;//計算HZ和HX4、模型計算:模型計算時讀入不同水箱組的參數(shù)及其雨量,按雨量數(shù)值的多少和水箱組的多少循環(huán)計算,代碼如下:proceduretanking;//計算過程vari,m:integer;rs,rx,rz,r1,r2,r3,r:single;beginfori:=1totanknumdo//水箱組循環(huán)計算beginform:=1torainnumdo//雨量循環(huán)計算beginhs[i]:=hs[i]+rainval[i,m];//加入雨量rs:=0;Ifhs[i]>canshu[100*i+2]Thenrs:=(hs[i]-canshu[100*i+2])*canshu[100*i+1];//上孔出流rx:=0;Ifhs[i]>canshu[100*i+4]Thenrx:=(hs[i]-canshu[100*i+4])*canshu[100*i+3];//下孔出流rz:=hs[i]*canshu[100*i+5];//底孔滲流r1:=rs+rx;//第一層水箱出流hs[i]:=hs[i]-r1-rz;//計算后水深hz[i]:=hz[i]+rz;rs:=0;Ifhz[i]>canshu[100*i+7]Thenrs:=(hz[i]-canshu[100*i+7])*canshu[100*i+6];rx:=0;Ifhz[i]>canshu[100*i+9]Thenrx:=(hz[i]-canshu[100*i+9])*canshu[100*i+8];rz:=hz[i]*canshu[100*i+10];r2:=rs+rx;{第二層水箱出流}hz[i]:=hz[i]-r2-rz;hx[i]:=hx[i]+rz;rs:=0;Ifhx[i]>canshu[100*i+12]Thenrs:=(hx[i]-canshu[100*i+12])*canshu[100*i+11];rx:=0;Ifhx[i]>canshu[100*i+14]Thenrx:=(hx[i]-canshu[100*i+14])*canshu[100*i+13];rz:=hx[i]*canshu[100*i+15];r3:=rs+rx;{第三層水箱出流}hx[i]:=hx[i]-r3-rz;r:=r1+r2+r3;//總出流outq[m+time[i]]:=outq[m+time[i]]+r*mianji*quan[i]/3.6;//流量迭加end;{雨量循環(huán)}end;{模型組循環(huán)}end;//坦克計算過程5、寫輸出文件此過程相對簡單,因為文件要用VB讀取,所以在數(shù)據(jù)中間加入分割符號“,”代碼如下://以下寫輸出文件hhao[i]:=leftstr(hhao[i],length(hhao[i])-4)+'.out';//輸出文件的名稱assignfile(f,hhao[i]);//關(guān)聯(lián)文件rewrite(f);forj:=1torainnumdobeginifoutq[j]<chuliuthenoutq[j]:=chuliu;writeln(f,inttostr(no[j]),',',floattostr(int(outq[j])));//時間,流量end;//writeclosefile(f);6、VB調(diào)用和功能拓展聲明DLL:PrivateDeclareFunctiontankLib"tank

溫馨提示

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

評論

0/150

提交評論