當前位置:文思屋>學習教育>畢業論文>

支援產品設計的滑動軸承網路計算程式的研究

文思屋 人氣:2.52W

摘要:分析瞭如何將原有大量由Fortran編寫的科學計算程式轉換為能夠在網路上提供計算服務的網路應用程式的問題。提出了將Fortran程式改編為動態連結庫,並進一步包裝為標準的COM元件的方法,在網頁中呼叫元件進行計算,從而能夠較好地實現在瀏覽ll/Jl~.務器結構下通過計算程式資源的遠端呼叫來支援產品的設計過程。

支援產品設計的滑動軸承網路計算程式的研究

關鍵詞:產品設計;瀏覽伺服器;動態連結庫;滑動軸承

l、引 言

產品設計是製造業的靈魂。雖然產品設計階段的投入只佔產品總成本的約5%,而設計過程所做的決策幾乎決定了產品全部成本的約70%。產品的結構、效能、質量(全面滿足使用者要求)、成本(全成本)、交貨時間(含新產品開發時間)以及可製造性、可維修性(含產品升級)以及人、機、環境關係等,原則上都是在產品的設計階段確定的“。 。

隨著通訊Web技術的發展,由於HTTP (HyperTextTransfer Protocol,超文字傳輸協議)協議為所有的應用提供了統一的基礎,解決層的問題,出現了所謂瀏覽器/伺服器(Browser/Server)結構。將計算程式資源釋出在網路上,使其他使用者在產品設計階段就可以通過網路來使用計算程式,從而支援產品設計,這已經成為一種趨勢。

但是目前在基於網路的瀏覽器/伺服器架構的遠端程式呼叫實踐中仍然有一些問題。某些原有的科學計算程式資源是由Fortran 語言編寫而成,無法直接從網路遠端呼叫使用,限制了其使用方式。目前很多單位為了能夠在網路上提供遠端程式呼叫服務,花費大量精力用目前流行的程式語言重新編寫程式演算法和核心,這樣增加了原有科學計算程式向Web應用轉化的複雜度,同時可能在重新編寫的過程中帶來新的問題。本文提出瞭如何應用瀏覽器/伺服器架構來實現將原有的Fortran程式改造為可以網路遠端呼叫的WEB應用程式的一種新的方法。

 2、瀏覽器/,伺服器(Browser/Server)結構在基於Web的客戶/伺服器框架下,第l層為表示層,一般為基於HTML(HyperText Markup Language,超文字標記語言)的瀏覽器,同時可以使用一些客戶端控制元件或指令碼技術來豐富使用者介面。它將使用者的輸入資訊以HTrP請求的方式傳送到Web伺服器上,並接收Web伺服器返回的資料,將資料顯示在Web瀏覽器上。

第2層為功能層,功能層接收來自網路客戶的請求,根據請求中包含的使用者引數,執行以元件形式存在的應用邏輯(包括資料庫操作和遠端程式呼叫等服務),與資料庫伺服器通訊,執行資料庫訪問操作或執行計算程式,並將處理結果傳送回客戶端。由於這些規則要通過網路傳輸,會帶來安全性的問題,採用SSL(Secure Sockets Layers,安全套接層)可以減少安全風險。在某些情況下,為增加安全性或當瀏覽器不具有處理這些規則的能力,功能層則可以位於伺服器端。

第3層為資料層,負責管理對資料庫資料的操作,維護資料庫的各種約束條件,位於資料庫伺服器端。該層接收wleb伺服器對資料庫訪問的請求,實現對資料庫查詢、修改、更新等功能,把執行結果返回給Web伺服器。

因此,在B/S結構下,第l層位於瀏覽器端,第3層位於伺服器端,第2層即功能層可以位於瀏覽器端,也可以位於伺服器端,一般來說功能層位於伺服器端比較合適。

基於Web的瀏覽器/伺服器(B/S)結構是由客戶/伺服器(c/s)結構轉化而來的,也可以認為B/S模式是傳統C/S模式的`一個子集。

瀏覽器/伺服器模式的優點在於,由於Web支援底層的TCP/IP協議,使Web與目前使用的幾乎所有區域網都可以做到無縫連線,從而徹底解決了異構系統間的連線問題;由於Web採用了”瘦客戶端“,使系統的開放性得到很大的改善,系統對將要訪問系統的使用者數的限制有所放鬆;系統的相對集中性使得系統的維護和擴充套件變得更加容易。比如,資料庫儲存空間不夠,可再加一個數據庫伺服器;系統要增加功能,可以新增一個應用伺服器來執行新功能;介面統一(全部為瀏覽器方式),操作相對簡單;業務規則和資料捕獲的程式容易分發等。

3、具體實現

3.1 將Fortran計算程式編制為動態連結庫從技術上講,動態連結庫是一個可執行檔案,就其功能而言,它可作為應用程式的庫,多個應用程式可訪問記憶體中單個動態連結庫拷貝中的內容。使用動態連結庫的好處在於可減少系統對記憶體的消耗;如使用共用動態連結庫中的函式,應用程式的可執行檔案將會很小;在不改變函式介面的情況下,可改變動態連結庫中的函式而不必對應用程式重新進行編譯和連線。這樣可很方便地對應用程式進行升級;另外使用動態連結庫可方便地進行混合語言程式設計 。

將Fortran計算程式編制為動態連結庫的過程為如下:

(1)在Fortran PowerStation中新建工程,工程型別為”Windows動態連結庫“(Dynamic.1ink Library)。

(2)分析原有滑動軸承的Fortran計算程式,這些程式包括圓瓦、橢圓瓦、錯位瓦、多油葉和可傾瓦徑向滑動軸承計算程式,以及面推力瓦、可傾瓦推力滑動軸承計算程式。分析這些計算程式的輸入/輸出引數,由此確定動態連結庫匯出函式的輸入/輸出引數。原計算程式的輸入引數將作為匯出函式的輸入引數,原計算程式的輸出引數將全部放在陣列中輸出。

(3)使用微軟擴充套件屬性DLLEXPORT定義動態連結庫與外部程式的介面。動態連結庫中可以有多個子程式和變數,但只有具有DLLEXPORT屬性的子程式和變數可以向動態連結庫外輸出供其它應用程式訪問。使用DLLEXPORT屬性生命輸出子程式和變數可以避免使用模組定義(。def)檔案並且會產生高效的可執行程式碼。舉例如下:

如果需要匯出函式名為PBMCAL的函式,則必須在函式頭中使用!ms$attributes dllexport::PBMCAL,申明該函式為匯出函式。

由於Fortran PowerStation中編譯而得的DLL不是標準的COM元件,不能直接從網路呼叫,所以作者提出用VB的ActiveX DLL工程將該DLL的功能包含,輸入/輸出引數與其一致,所得的標準COM元件可以用於網路呼叫。

3.2 利用Visual Basic將DLL封裝成標準的COM元件ActiveX控制元件是實現VB物件導向特性最有利的工具。

ActiveX控制元件不同於其它物件。控制元件不僅僅是程式碼,它還具有類似窗體的可視部分,但是又與窗體不同,它不能脫離容器而單獨存在” 。另外,控制元件同時被開發者和終端使用者使用,儘管意義不同。

在VB開發環境中建立新工程,其型別為ActiveX DLL工程型別,然後在工程中呼叫Power Fortran編制的DLL檔案,以徑向圓瓦滑動軸承為例,呼叫格式如下:

Public Declare Sub PBM CAL Lib “PBM 2.(u1” Alias“一PBMCAL@52”(eta As Single,omeg As Single,radiu As Single,boverd As Single,weight As Single,psai As Single,kind As Integer,ByRef dt As Single, ByRef xtt As Single, psaiw2 AsSingle,Index As Integer, aett2 As Single,ByRef OResult AsSingle)其中eta為潤滑油的動力粘度,omeg為轉速,radiu為軸承半徑,boverd為寬徑比,weight為工作載荷,psai為間隙比,kind為軸承型別,psaiw2為載荷與鉛垂線的夾角。(度)(順轉向為正),aett2為平均溫度,OResult是陣列格式,其將所有的計算結果置於陣列中而匯出。

在混合語言程式設計中需要注意的一個主要問題是Fortran預設約定的預設引數傳遞方式是引用方式(Reference)。在這種引用方式下,所傳遞的都是引數的地址,如果在子過程中對引數進行了修改,這一修改將帶回到呼叫過程。而在傳值方式下,所傳遞的是引數的當前值,子過程對於引數的修改不會對呼叫過程的引數值產生影響。在VB中,用Declare宣告外部過程,在宣告中將BYVAL關鍵字放在傳值傳遞的引數前,不加說明的或者用BYREF關鍵字宣告的就是引用傳遞。

將該ActiveX DLL工程編譯後即可得到DLL檔案,該DLL檔案是標準的COM元件,可以用於Web網頁的呼叫。

3.3 採用ASP程式在Web網頁呼叫ActiveX控制元件ASP除了可以呼叫內嵌的ActiveX控制元件外,還可以呼叫由使用者編寫的標準的ActiveX控制元件。在使用控制元件前先要進行定義。以徑向圓瓦滑動軸承為例,在ASP程式中主要呼叫部分如下:Set objCalc=teobject(‘'or'’)‘建立圓瓦徑向滑動軸承效能計算元件物件例項nput=Array(eta,omeg,radiu,boverd,weight,psai,kind.,d 1),xtt(1),w2,index2,aett2,OResult(1))’給輸入引數陣列賦值acl‘呼叫計算程式介面函式進行計算該ASP程式呼叫介面如圖2所示。計算完畢,輸出引數可以從0 ult得到,顯示在Web網頁上,供使用者進一步處理。

4、系統執行模型採用UML(UnifiedModeling Language,統一建模語言)對滑動軸承網路計算程式的執行過程進行建模

計算滑動軸承靜動引數是計算程式的主要任務,在系統執行模型中加入資料庫服務的支援,主要目的是儲存每組輸入引數所對應的滑動軸承靜動特性,這樣在有同樣的輸入引數輸入時,在功能層可做出判斷,資料庫中已有相應的靜動特性引數,則直接從資料庫中讀取返回給使用者,這樣既節約了伺服器的計算資源,也提高了對使用者請求的響應速度。

5、結束語

這種將原有的Fortran程式改造為可以網路遠端呼叫的Web應用程式的新方法克服了作者所在研究所原有科學計算程式資源不能在網上執行的缺點,將原來只能在單機上執行的程式,改造成為可以用來在Web上提供服務的標準COM元件,利用ASP程式呼叫標準的COM元件。這樣簡化了原有科學計算程式向Web應用轉化的複雜度,只要對源程式稍加改造,新增介面服務程式,對原有科學計算程式核心程式碼的修改很少,可以充分保持原有科學計算程式的正確性和健壯性,避免了重新編碼可能帶來的新的錯誤,提高了工作效率。

參考文獻:

[1] 謝友柏。現代設計與知識獲取[J】。中國機械工程,1996,7(6):364 1.

[2] JIN Lu rd a better understanding of enginee.-ring design models[M]er Verlag GmbH,。Aachen,。1998.71—86.

[3】 桂良進。Fortran power station~0使用與程式設計[M].北京航空航天大學出版社,1999.258293.

[4] 王清賢,王紅霞,王磊。Visual basic activeX程式設計例項詳解[M】。北京:人民郵電出版社,2000.9—16.