第三章 DRAIN-2DX/CALREL 偶合程式之驗算及測試
第二節 CALREL 程式之 FORTRAN90 版
由前言知,因為本年度適逢千禧年之過渡期,電腦硬體及所使用之 軟體皆需進行部份調整以通過 Y2K 考驗。考慮現所使用之個人電腦皆在 WINDOW98 以上之視窗環境下操作,因此原始於純 DOS 環境執行之軟體 皆無法順利運行,而原來 FORTRAN 77 編譯後之程式碼大部僅能於純 DOS 環境下執行。為克服此難題,本計畫所選用之兩程式皆需使用新一
MOIS 891016-4 Final Report 3-2
級之編譯程式 (即 FORTRAN 90),以便能於視窗環境下順利計算。本計畫 將選用 LEHEY 90 編譯程式,而此編譯器之部份語法及內建副式與 FORTRAN 77 並非相同,所以上述兩程式之部份可能需進行改寫。本計 畫迄今已完成 CALREL 程式之 FORTRAN90 化,至於 DRAIN-2DX 程式經初 步測試顯示並無編譯上問題。本節以下將敘述可靠度或破壞機率之定義 及求法、CALREL 原版程式之簡介及測試及 FORTRAN90 版之修改過程。
3.2.1 可靠度或破壞機率之定義及求法
任一物理量有其時空之本身散漫性,加上量測數量及技術之瑕疵,
其值永遠存有不確定性,而一般自然界問題之不確定性可用可靠度 (reliability, Ps) 來衡量。可靠度顧名思義即為某一物理問題之量化安全程 度 (quantified safety),與其互補者為破壞機率 Pf,此二者之定義如下:
Pf = ∫F fX~(~) ~x dx Ps = −1 Pf
(3-1)
其中 fX~(~)x 為所牽涉變數 X~ 之聯合機率密度函數,而 F 代表破壞狀態 域 (如下所示):
破壞狀態 (failure state):F≡{ g x ti(~,~ ≤
) }
U I 0 (3-2) (3-2) 式中之 gi(X~,~t) 稱為該物理問題之狀態函數 (state function),UI代表 交聯集,而 X~ 為所牽涉之變數向量,為 ~t 為函數參數向量 (常數項)。
另外由算得之 Pf 值可求得可靠度指數
β
(reliability index) 如下:β = Φ-1(1− Pf) (3-3)
其中Φ(⋅) 為標準常態分佈之累積分佈函數 (CDF)。通常一物理問題求得 之 Pf 值愈小或
β
值愈高代表其安全愈高。MOIS 891016-4 Final Report 3-3
一般求取某一物理問題之可靠度或破壞機率大致可分為兩種方 法:精確法 (exact methods) 及近似法 (approximate methods)。精確法乃以 (3-1) 式「直接」計算 P,又可分為解析f (analytical)、數值積分 (numerical integration) 及統計模擬 (statistical simulation) 法;近似法則是利用低階彎矩或座標轉 換而間接近似求得 Pf,又可為統計彎矩 (statistical moment) 及常態座標轉 換及設計點 (normal space transformation & design point) 法。表 3-1 摘錄了這 幾種方法於單元及系統問題處理上之優缺點,詳細比較請參照文獻 [20]。
表 3-1. 幾種可靠度分析方法之優缺點比較
優缺點
單元問題 系統問題
解析法 ; 理論封閉解
: 僅適用於簡單問題 (狀態函數、變 數數目及機率分佈)
; 理論封閉解
: 僅適用於簡單問題 (狀態函數、變數 數目及機率分佈)
精確法 數值積分法 ; 數值精確解
: 僅適用於簡單問題 (狀態函數、變 數數目及機率分佈)
; 數值精確解
: 僅適用於簡單問題 (狀態函數、變數 數目及機率分佈)
統計模擬法 ; 運算步驟簡單
: 所需模擬次數正比於單元問題之 複雜性 (狀態函數、變數數目及機 率分佈) 及 Pf 倒數值
; 運算步驟簡單
: 所需模擬次數正比於系統問題之複 雜性 (狀態函數、變數數目及機率分 佈) 及 Pf 倒數值
近似法
統計彎矩法 ; 僅需各變數之初階統計彎矩及變 數間之相關係數
: 需假設狀態函數之機率分佈 : 計算難度正比於單元問題之複雜
性 (狀態函數、變數數目)
: 同質異形之狀態函數將得不同之 Pf 值
; 僅需各變數之初階統計彎矩及變數 間之相關係數
: 需假設狀態函數之機率分佈及其他 描述系統問題者
: 計算難度正比於系統問題之複雜性 (狀態函數、變數數目)
: 同質異形之狀態函數將得不同之 Pf
值 常 態 座 標 轉
換 及 設 計 點 法
; 同質異形之狀態函數將得到相同 之 Pf 值
; 可求得各變數及函數參數對於 Pf
值之敏感性因子
; 使用變數完整之機率分佈資料 : 計算量正比於單元問題之複雜性
(狀態函數、變數數目)
; 同質異形之狀態函數將得到相同之 Pf 值
; 可求得各變數及函數參數對於 Pf 值 之敏感性因子
; 使用變數完整之機率分佈資料 : 計算量正比於系統問題之複雜性
(狀態函數、變數數目) 註:; 優點; : 缺點。
3.2.2 CALREL 原版程式之簡介及測試
MOIS 891016-4 Final Report 3-4
CALREL (CAL-RELiability) 程式係由加州大學柏克萊分校土木工程學 系結構組 Der Kiureghian 教授小組 [21-24] 所發展之多功能可靠度分析程 式。其主要功能 [24] 為計算一般單元或系統可信度問題之破壞機率 Pf (如 (3-1) 式所定義者),以及變數及函數參數對於 Pf 值之敏感性因子。其 所用之主要計算方法及原理和適用問題摘錄於表 3-2 中,而其程式架構 則顯示於圖 3-1。圖中可見使用者所需定義之副程式 (USER.FOR) 包括 UGFUN、UGDX 及 UDD 等,分別用於定義狀態函數、狀態函數對變數之 一階微分及變數之自定機率密度函數 (程式內定者有常態、對數常態、
迦瑪、指數、雷諾、均佈、貝他、極限最大/小值等分佈),這些使用者 定義之副程式必須編譯後且與主程式連結 (link) 成執行檔方可進行運算。
表 3-2. CALREL 程式之主要計算方法
計算方法 原理 適用問題
FORM 以切過轉換常態空間設計點之平
面取代原極限狀態曲面
單元、序列系統 (配合 Bound Analysis)
SORM 以切過轉換常態空間設計點之二
次曲面取代原極限狀態曲面
單元、序列系統 (配合 Bound Analysis) Directional
simulation
以近似或正確曲面進行統計模擬 單元、一般系統 (配合 FORM 及 SORM) Monte Carlo
simulation
以 Monte Carlo 法則進行統計模擬 單元、一般系統 Bound Analysis 以 FORM, SORM 求得之結果進行
上下界分析
序列系統 (配合 FORM 及 SORM )
MOIS 891016-4 Final Report 3-5 Program
control
CALREL
Analysis routines FORM SORM DIRS MONT
SENS BOUN
PNET Problem definition
User-defined routines
UGFUN UDGX
UDD Interface
圖 3-1. CALREL 程式之架構圖
CALREL 程式之輸入資料由使用者製作之輸入檔所提供,包括下列 五項:問題敘述、問題種類及解法、變數之統計資料、函數參數值及切 割集資料 (對於系統問題者) 等,其中使用許多巨集指令 (macro-command) 以簡化過程,表 3-3 摘錄了其內建之巨集指令集及功能。CALREL 程式針 對不同之巨集指令有不同之輸出,輸出資料主要包含各狀態函數之設計 點、迭代次數、一階破壞機率及其他機率等。
表 3-3. CALREL 程式輸入檔所用之巨集指令集
巨集指令 主要功能
CALRel 定義一問題大小 RESTart 接力計算先前一問題
DATA 讀取輸入資料
END 結束輸入資料 FORM 進行 FORM 分析
BOUNd 計算序列系統之一階上下界
MOIS 891016-4 Final Report 3-6
PNET* 以 PNET 近似法處理序列系統 SENSitivity 計算一階機率之敏感性因子 SORM 進行 SORM 分析
DIRS 進行 Directional simulation MONT 進行 Monte Carlo simulation
EXIT 終止計算
I: 1,2,4,5 yielding II: 2,3,4 yielding III: 1,3,4,5 yielding
θ
θ
θ θ
a
plastic hinge
V
MOIS 891016-4 Final Report 3-7
對應之改寫。然而,前一年度所購得之 CALREL 程式未附主程式之原始 程式檔,以致無從改起;所幸期間另得途徑順利取得,終於解決此問題。
CALREL 主程式以模組 (module) 型式及 FORTRAN 77 寫成,包含近兩百條 之副程式,為整理其內所有之副程式及確認其功能以便進行所需要之修 改,表 3-4 摘錄了其主要功能群及相關之副程式名稱。本計畫迄今完成 所有副程式針對 FORTRAN 90 編譯器有關動態存取之修改,刪除部份老 舊無用之副程式,並以 LEHEY 90 內建函數改寫輸出電腦 CPU 計算時間 之副程式,最後將所有修改後之副程式聚合成一主程式 CALREL0.FOR,
且將其編譯成一圖庫檔 CALREL0.LIB,以便其後與編譯之 USER.FOR 連結 成執行檔來進行運算。此修改完成之 CALREL 程式已順利於 PentiumIII-500 個人電腦之 WINDOW98 視窗環境下執行,並進行過第一年度所作之兩驗 算例,運算結果完全與其相同,證明此程式修改成功。
MOIS 891016-4 Final Report 3-8
表 3-4. CALREL 程式之主要功能群及其相關之副程式名稱
巨集指令/功能 相關副程式名稱
CALRe/主程式 MAIN, COPFIL, CEXECT, CINPU, COMPAR, INPUT,
RESTart CREST, PREST
DATA/ END COMPAR, CPARAM, CPARVL, INFREE, INLINE, INPMC, INPMR, INPRO, ISEP
FORM CFORM, CFORMOLD, DROOT, FCHECK, FCHEKN, FCOSINE, FCOSINE1, FCOSINE2, FDIRCT, FLINSC, FNEW1N, FNEW3N, FNEWY1, FNEWY2, FNEWY3, FNEWY4, FNEWY5, FORM, FORMOLD, ITRARO, ITRO, MDGAM, MERFCI, MERFI, NEWDROOT
BOUNd BOUNDS, BPFIJ, BSORT, CBOUN, CBOUN1, CBOUN2, CBOUND, GDFIJD, GDFIJP, GPFIJ, GRBIMO, GUNIMO
PNET* CPNET, PNET
SENSitivity CSENC, CSENS, CSENT, GSENC, GSENS, FGAM, GDADP0, GDADTP, GDAPAR, GDGYP, GDGYP1, GDIFF, GDXZP, GOUTC, GOUTP, GRBIMO, GUNIMO*
SORM CSOCF, CSOPF, CSORM, DSOLV0, DSOLV1, DSOLV2, EISOCF, EISOPF, FCURVAT, PSORM, CHARFFUN, WOFZ, PSORMNEW, PSORMOLD, SGSOCF, SOCF, SOPF, SPTVEE, SPTVEE1, SPTVES, SCURVT, SDIFF, SECANT, SEIGEN, SFEE, SFEE1, SGS, SHBREI, SNEWG, SNEWG0, SNEWG1, SNEWGS, SNEWS0, SOPERA, SPHBRE
DIRS CDIR0, CDIR1, CDIR2, CDIRS, DIRS0, DIRS1, DIRS2, DPF, DSCUM, DSCUM0, PROJECT, PROJECT1, PROJECT2
MONT CMONT, CMONTOLD, NMONT, NSUMPT
EXIT CSTOP , PSTOP
聯立方程求解 CBSOLX, DGESV,
座標轉換 CXTOY, CXTOZ, CYTOX, CYTOZ, CYTOZ1, CZTOX, CZTOXU, CRTOX, CINVER
微分計算 CDGX, CDXPAR, CDXZ, CDYX, CDYXU, CDYZ, CDZPAR
內建機率函數/亂
數 DBETA, DBETAI, DCHIS, DCHISI, CALERF, DERF, DERFC, DGAMA, DLGAMA, DNORM, DNORMI, GGUW, GSEED, UERTST
相關列印 BSYSPR, CERROR, CMPRIN, FOUTPUT, TITLE
CPU 運算時間* LOCALTIME, TOTALTIME
其他功能 CDEFLT, CDOT, CHGDIM, CLEAR, DEFIN, DEFINE, DEFINI, DELETE, DPOTRF, DQF4, FINIM, FREEI, FREER, FREETM, FSAVE, FSENVD, FSTART, FSTART1, FSTART2, GCOM1, GINP, ICDECP, ICON, IFIND, LOCATE, LODEFH, LODEFI, LODEFR, PSAVX, QF4, RDDATA, SAVX, SUDECP, SYMSOL, UPPER
* 增加之副程式
MOIS 891016-4 Final Report 3-9