結構化程式設計與工程應用

工程應用      電腦輔助程序設計      生產程序自動化      程序自動化電腦系統      電腦輔助流程計算      程式規劃及設計   結構化程式設計

在科幻小說、影片及卡通中,時常將電子計算機(電腦)塑造成一種具有超人類智慧的「機器」,它們能流利的與人類溝通交談,能瞬間提供任何所需要的資訊、影像,更能獨立進行思考判斷、解決人類難以解決的複雜問題。這是人類的夢想,但也許是一個在我們有生之年就可以逐步看到它實現的夢想。雖然,到目前為止,電腦離具有高度人工智慧,仍然有相當遠的距離,但是它的高速、精確、可信賴的特性,卻給現代社會帶來相當大的衝擊。尤其近年來網際網路的急速發展,已經完全顛覆傳統人際溝通與資訊取得的管道。電子郵件、資訊共享、網路分工計算已成為主流趨勢,這種改變對工業及社會都將造成深遠的變革。

著名社會學家艾文托佛勒(Alvin Toffler)認為歷史上有三次震撼人心的大波動:第一波是「農業革命」,第二波是「工業革命」,第三波就是「資訊革命」。根據統計,已開發國家就業人口中約有百分之六十以上的人從事資訊相關的工作,亦即從事於「創造、處理或使用資訊來做事」的工作,其餘百分之三十從事於製造業,百分之十從事農業生產,可見資訊革命對現代社會影響是相當深遠的。最近幾年來,產業發展正面臨極重大的變革﹔傳統工業將快速凋零,資訊產業、電子工業及服務業快速崛起,電腦及軟體應用也就愈顯得重要。

工程應用

現代社會中,電腦的應用正愈來愈廣泛,舉凡通訊、文書處理、即時資訊管理、輔助教學、農漁牧工商業的資料管理分析、醫療診斷、遊樂、運動各方面都可以看到電腦的蹤跡與貢獻。

由於電子計算機系統及微電腦控制設備的急速發展,亦使工業界受到相當大的衝擊,將電腦設備大量應用於工程分析、模擬、設計及程序控制已成為工程師的基本素養。利用電腦高速、精確、可信賴的特性,提高生產效率及產品品質,節省能源、原料及人力,降低成本,提高競爭力,已成為產業界努力的目標與基本策略。

要成為現代化的工程師,電腦應用的素養,尤其是軟體開發、設計及使用的能力是絕不可或缺的。本書的目的即在於提供電腦在工程上應用的最基本知識及工具,使讀者快速的具備使用電腦及設計程式解決問題的能力。本書編寫方式是希望以提出問題,藉著問題的解決方案,以系統化的方式讓讀者逐一了解各種數值方法極程式設計方法,並且能馬上利用書中所提供的完整程式,以極短的時間實際地去執行、去體驗這種數值方法在解決工程問題上的用法。進而了解程式的修改、用法及特性,以提高學習效率。

作者一直認為學習軟體應用應該就像學習駕駛汽車一般,除非必要,否則只要學會如何在一定的交通規則下,妥善的使用及駕駛汽車即可,而不需要為了學習駕駛汽車,而先去學會如何打造一部汽車。同理,學習電腦應用軟體的方法,絕非讓自己花費相當長的時間焦頭爛額的坐在電腦前,為設計一個基本程式而傷腦筋,而是應該了解與善用已有的軟體作適當修改,以相同或更短的時間,很快地精通各種數值方法程式的用法,才能收事半功倍之效。例如,我們在利用Microsoft Office時,根本不需要了解程式是如何寫出來的,更重要的是學會如何了解他的用法與特性,善用它為我們解決問題、提供協助。

電腦輔助程序設計

 

工程科學是一門隨著時代需要而演進的科學,因此,由於近代科學的發達,使得工程科學的涵蓋面漸趨廣泛,也使得工程師們需要接受更深更廣的訓練與經驗。近年來,由於能源及環保相關問題的產生,更加重了工程師們的責任,必須發展設計更好的工藝程序及更有效的操作方法。所幸由於電子計算機的高速發展與廣泛應用,使得工程師們繁複的計算與設計,能利用計算機作有效的處理而獲得圓滿的結果。

基本上,電腦輔助程序設計可分成兩大類,一為複雜完整的程序模擬,通常需要強有力的計算工具及龐大的記憶體,其次為經常性的質能平衡計算、設備設計及一般工程計算,如管線壓力降計算等,通常為利用「程式型計算器」或「個人電腦」即可完成。

完整的程序模擬程式能同時執行熱量及質量平衡計算,作初步的裝置設計,製作準確且詳細的流程圖(Flow-Sheets)。但在計劃進行前所作的初步計算,利用完整的程序模擬並不恰當,此時,以採用簡單的質量平衡程式,快捷且經濟的製作初步的流程圖為較可行的策略。

除了流程的質能平衡計算以外,工程師們也常需作經常性的簡單設計問題計算,或最適條件計算,例如選擇控制閥大小,計算流體在管線中的壓力降,或計算熱交換器的LMTD等。本書將在各章節的例題中提出許多這類的計算程式。

生產程序自動化

 

就企業眼光而言,電腦除了在管理資訊自動化以外,在工業界最重要的應用可能是生產程序的自動化。近年來,由於世界性經濟持續不景氣,提高生產力,維持競爭優勢,已成為企業界最關注的問題。尤其處在目前高價能源和高漲工資的年代,要想維持產品在市場上的高競爭力,就必須設法全力降低生產成本。推行自動化正是達成降低成本的必要途徑。

生產程序自動化的四個主要目的

(一) 提高產能及生產力:

由於設備自動化,生產過程中可使用各級電腦作即時的靜態(Static)及動態(Dynamic)線上分析及控制。縮短製程時間,減少人為操作錯誤,使不合格產品或廢料減至最低﹔使生產製程更為順利,降低設備故障造成意外停機損失之機會。因此,可提高製程的產能及生產力。

(二) 穩定及提高產品品質:

在製造過程中及製造後,可利用電腦化設備自動分析、鑑定產品的各種化學成分及物理性質,適時調整製程之操作,使產品品質更為標準化及高級化,降低剔退率,減少成本,並提高產品之市場形象,維持高優勢競爭力。

(三) 降低成本、精簡人員:

利用電腦系統管制原料的利用,可降低原料及半成品的安全庫存量,提高製程的運轉效率,節約能源,並且能機動因應市場需要,安排較高利潤的產品組合,製造更多的利潤。此外,由於採用自動化作業,可取代相當數量的作業人力,達到精簡人員的目的,紓解工資高漲對企業經營所增加的負擔。

(四) 確保人員及設備安全:

利用電腦化自動化設備對現場作嚴密的監督及管制,減少人員操作錯誤的機會,因此,可改善員工工作環境的安全性,並增強設備運轉的安全性。

生產自動化的實現,最主要需要兩方面的密切配合,一是硬體結構,包括各級電腦、檢測設備及控制系統,其次是適當的軟體系統,用於驅動硬體結構,以達成使命。其中硬體方面由於近年來電腦設備的高速發展,已經不成問題,倒是軟體系統的規劃、設計,卻仍需工程界不斷的投入人力及物力。

程序自動化電腦系統

 

人力成本的提高、產品品質穩定性的要求、及系統安全性的全面監督要求,使得工業建設逐步走上全面性的自動化。邏輯判斷、重複性工作、監督控制與系統調節,都借助於自動化電腦系統進行控制管理。工程界所使用的自動化電腦系統主要是由主電腦、程序控制電腦及大量的分散式控制系統所組成:

(一)主電腦系統:

生產程序所使用的主電腦系統,通常是由一至數部大型電腦所組成。利用分布全工廠的終端機(Terminal)經數據機(Modem)傳遞資訊,來達成全廠的產銷系統、成本、會計、財務、人事、行政、設備維護管理、物料追蹤等的整體資訊管理系統。

(二) 程序控制電腦系統:

由各主要工廠的迷你型程序控制電腦或工業級電腦所組成。主要功能是依據整體資訊管理系統由數據機所傳輸進來的生產訂單(或生產計劃),安排及控制生產設備,生產所需產品,並將生產結果傳輸回整體資訊管理電腦系統,以完成資訊管理網路。其主要功能包括:

現場控制數據收集。

程序控制計算。

生產過程原料追蹤。

整場監督。

編印生產報告。

提供現場工程師操作指引。  

數據傳輸。

(三) 分散式控制系統:

由分散各工廠的微電腦控制設備組成的分散式控制系統,包含以微處理機(microprocessor)為基礎的電子儀器控制設備,操作人員藉此直接控制現場設備的運轉,監視各種製程的變化。

要有效率地使用各級電腦系統,推動工業界的自動化,工程師們應對電腦運用作較深入的了解,培養設計及應用軟體的能力,以達成工廠全面自動化,降低生產成本及提高產品品質的目的。

電腦輔助流程計算

 

程序設計流程計算程式,基本上可分為穩定態程序模擬系統(Steady State Process Simulator),及動態程序(Dynamic Process)模擬系統兩大類,近年來已逐漸發展成為一種瞭解與設計化工程序的有力工具。流程計算程式(或稱為化工程序設計程式)的典型結構,如圖1.1,主要包含:

1. 主執行程式

用於控制流程計算的執行及引導各副程式間的資訊聯絡。

2. 裝置性能副程式集

根據主程式所輸入數據資料,模擬裝置的性能,計算其輸出結果。

3. 物理性質數據資料庫

流程計算程式的完備性及其應用範圍大部分決定於物理性質資料庫是否完備。通常流程計算程式均含有數百種化合物的物理性質資料庫。

4. 熱力學副程式:

用於執行蒸氣─液體間的相平衡計算,即流體流束內焓的計算等熱力學運算。

5. 成本評估副程式及資料庫:

用於估計裝置的投資及操作成本。通常,完整的流程計算系統均可容許設計者考慮各種不同的製程方法,再利用成本評估程式作經濟效益比較,選擇最佳的製程方法。有些系統可能還含有最適化評估程式。

6. 數學方法副程式:

用於提供及執行大部分的數學運算。包括物理性質的內插、質能平衡所得線性或非線性聯立方程式的求解、數據之微分、積分及迴歸分析、微分方程模式之求解等。這也是本書所介紹內容的主要範圍,流程計算程式的其他部分限於篇幅不作介紹。

程式規劃及設計

 

以上各節簡略地說明了電子計算機在工業界的應用範疇,及泛用流程設計及模擬系統的概況。如圖2.1所示,這類程式系統的設計,通常均先作適當規劃,將整個系統分割成數個主要組件(module),再針對各組件所需擔任功能,細分為更小的模組,進行程式設計及測試。

「程式設計是一種團隊精神的發揮」,有許多程式設計者對自己的程式作保護,不許使用者更改及瞭解,這種觀念並不是最正確的。其實,縱使一個程式是正確的,如果不易被人看懂,就不能算是一個好程式。

程式設計就像踢足球一樣,整個團隊間需有良好的合作及配合,才能創造出進步且完美的軟體。這個觀念對工程應用程式更是重要。程式設計過程可分成五個步驟:

1. 分析及確定問題:

所要處理、解決的問題是什麼?

處理此問題的目的為何?值不值得做?

是否可以利用電子計算機來處理?

需要何種數學方法的配合?

人機介面要處理到哪種程度?

2. 尋找及設計解決方法:

這是程式設計過程中最重要的步驟,有妥善的程式結構規劃,才能使程式設計工作容易進行,使設計出的程式性能可靠又易於維護。

在這個步驟中,最重要的就是要找出最適當的解決方法及數學工具,然後利用「結構化程式設計」方法,將問題切割成幾個模組,使每一個模組的工作目標簡單明瞭,以利設計出簡潔有彈性的程式,並利用「流程圖」釐清程式規劃的邏輯步驟,建立明確的程式架構(結構化程式設計讀者可參閱專書或下一節說明)。

3. 編寫程式:

選擇適當的程式語言,例如BASICVISUAL BASICFORTRANPL/1PASCALADACEXCELCOBOL等。然後,再依照已規劃好的程式邏輯及流程圖編寫程式。

4. 上機測試:

修改語法錯誤。利用已知特性的模擬數據,作初步的實際執行,去除「邏輯上的錯誤」。

5. 撰寫說明文件:

程式說明文件應包括設計目的、解決方法、流程圖、程式符號說明、程式列印、測試數據及結果。程式說明文件除了提供使用說明外,更應讓必須修改程式的使用者,能很快地看懂原有程式,而加以修正。

    本書所有程式設計,均係依照上述步驟進行。近年來,由於個人電腦的風行,Visual Basic語言已成為最多人了解的語言之一,此外,Visual Basic語言程式的可讀性高,易於使讀者馬上瞭解及修改程式,因此,本書程式均採用Visual Basic語言撰寫。

本書部分應用也介紹利用Microsoft Excel的使用方法。習慣使用FORTRANC語言或其他高階語言的讀者,由書中所附流程圖及程式結構,亦可輕易地將本書程式改寫成成自己所需的程式。