• 沒有找到結果。

數值模擬與數位儀表板程式設計

在文檔中 中 華 大 學 碩 士 論 文 (頁 38-54)

4-1 前言

本研究在實驗過程中為了同步量測鋼筋混凝土梁持續變形的實 驗值與模擬其在持續加載之理論變形,將變形量測系統與數值模擬程 式整合成鋼筋混凝土梁數值模擬與變形量測系統。依據此系統軟體之 功能分為鋼筋混凝土梁變形數值模擬以及三點彎矩實驗數位監測儀 表板等兩部份,其中數值模擬部分由C++程式語言撰寫並偵錯無誤後 執行成動態連結程式庫,而實驗監測儀表板則由Lab VIEW 圖控程式 軟體設計,最後在Lab VIEW 程式開發平台下藉由呼叫動態連結程式 庫的元件將數值模擬程式與數位監測儀表板整合在一起。

由於鋼筋混凝土梁為一複合材料,其內力分佈在不同階段之變形 行為下有很複雜的變異,因此在撓曲作用下要準確的模擬鋼筋混凝土 梁力學行為與變形行為之關係實為不易。有鑒於C++程式語言具有功 能強大之編碼系統,以及對高精度數值運算較準確、快速的計算結 果,並且以物件為導向所撰寫的程式碼藉由產生物件具有比傳統程序 導向程式更能表示所模擬物件之真實情況,對開發大型且複雜的程式 有隨時更改程式屬性與增強程式功能等特性,有利於往後對程式更新 維護的便利性。本研究採用 C++程式語言以物件導向之邏輯概念在 Microsoft Visual Studio .Net 2003 的開發平台下模擬鋼筋混凝土梁在 撓曲作用下其力學行為與變形行為之相關性。

有別於一般以函數為單元之程序式程式設計,物件導向程式設計 (Object-Oriented Programming)是以類別物件為主的程式設計,當程式 發展到很複雜時,為防止函式存取不相關的物件資料,則將函式與相 關的資料結合在一起形成獨立的模組,此種模組即稱為類別(Class)。

數稱為資料成員(Data Member)又稱為物件的屬性,存取資料成員的 函式稱為成員函式(Member Function)亦稱為物件的操作。類別可以用 來宣告物件,所產生的物件附帶有該類別固有的屬性,並且包含該類 別特有的操作,意即被產生的物件含有該類別相同的資料成員與成員 函式,由於類別能夠有效的保護它的資料成員不被不相干的函式所使 用,因此在開發較複雜程式時會有較少的錯誤發生,並且易於日後對 程式的維護。

4-2 鋼筋混凝土梁數值模擬類別設計

為了模擬鋼筋混凝土梁受撓曲作用下之理論變形,該理論值計算 程式總共分為混凝土(concrete)、鋼筋(steel)、斷面(section)、撓曲行為 (curve),以及混凝土梁(concrete_beam)等五大類別。

其中,混凝土與鋼筋類別所含有的屬性是材料性質,其模擬的則是材 料的應力-應變關係,混凝土與鋼筋再加上斷面類別特有的斷面性質 則可以組合為一鋼筋混凝土梁斷面,再配合撓曲行為類別將梁頂應變 與中性軸深度之屬性加入,便可模擬受撓曲作用下之鋼筋混凝土梁斷 面,最後將每一撓曲斷面與混凝土梁之特有之跨距屬性結合,即可模 擬在撓曲作用下之鋼筋混凝土梁。為了增加程式的效率,使用類別繼 承的方式來擴充新類別,以減少程式碼的撰寫量,斷面將為繼承混凝 土類別與鋼筋類別的衍生類別,撓曲行為為繼承斷面類別的衍生類 別,混凝土桿件則為繼承撓曲行為的衍生類別。各類別之資料成員與 成員函式以及表示各類別間相互關係的類別圖如圖4.1 所示。

4-2-1 混凝土類別(concrete)與鋼筋類別(steel)

混凝土類別採 2-3 節中 Shah,Fafitis and Arnold[2]發表之混凝土應

力-應變模型塑模混凝土材料的應力-應變關係。資料成員主要模擬的 為混凝土材料與圍束的屬性,成員函式 Fcon( )可接受一個引數,傳 回值型態為 double,其內容主要為模擬混凝土應力-應變關係之方程 式,在接收混凝土應變後依據函式內建的混凝土應力-應變模型傳回 對應之應力值。

鋼筋類別採 2-3 節中鋼筋之應力應變關係為模型,塑模鋼筋產生 應變時所生成的應力。資料成員主要模擬的為鋼筋材料的屬性,成員 函式 Fst( )可接受一個引數,傳回值型態為 double,其內容主要為模 擬鋼筋應力-應變關係之方程式,在接收鋼筋應變後依據函式內建的 鋼筋應力-應變模型傳回相對應之應力值。

4-2-2 斷面性質類別(section)

斷面性質類別在繼承混凝土與鋼筋類別後,其資料成員所模擬的 為斷面尺寸與斷面內力分佈,並可透過成員函式 get_PA( )計算斷面之 軸向力合力與斷面彎矩。成員函式get_PA( )含有兩個傳入引數,傳回 值型態為double,分別接受梁頂應變與中性軸深度,傳回值為斷面軸 向力合力。斷面類別中以數值方法將斷面分割成若干等分(程式內建 為 100 等分),透過傳入之斷面梁頂應變與中性軸深度,依據斷面應 變與中性軸深度呈線性分佈之定理可以得知該斷面自梁頂應變沿梁 深每一等分之應變分佈。函數中宣告STRAIN[],STRESS[],AM[],以及 YM[]等 4 個一維陣列,分別儲存每一等分矩形塊之上下應變,上下 應力,矩形塊受力面積,以及每一矩形塊中點至梁頂距離,依據3.12 至 3.15 式可計算該斷面對應傳入的梁頂應變與中性軸深度所生成之 斷面軸向力合力與斷面彎矩。

4-2-3 撓曲變形類別(curve)

撓曲變形類別之主要資料成員有最小容許軸向力、斷面應變以及 中性軸深度。成員函式get_neutral( )含有一個傳入引數,傳回值型態 為void,其目的在於接收斷面上緣應變,利用試誤法假設中性軸深度 並將梁頂應變與假設的中性軸深度傳入get_PA( )函式,待傳回之斷面 軸向力合力小於資料成員的最小容許軸向力時表示該中性軸深度可 使斷面軸向力平衡,此時之中性軸深度即為該應變對應之真實中性軸 位置。成員函式 get_neutral( )逼近真實中性軸位置的方法將如下說明:

如圖 4.2,AB 為斷面軸向力與中性軸深度之關係曲線,CD 為曲線 AB 之割線, 為中性軸深度初始假設為梁深, 則為以 當作 中性軸深度之初始軸向力合力。

CO

DEL

O CO

DELO >0時;

tanθ

N O

N O

DEL DEL

C C

= − (4.1)

N O

N N O

C DEL

DELN DEL

C C C

C ×

⎟⎟

⎜⎜

− −

= (4.2)

其中, 2.0 CN = CO

DEL

N 為以

C

N 為中性軸深度之軸向力合力;

C

C為最終中性軸深度;

DELO <0時;

tanθ

O N

O N

DEL DEL

C C

= − (4.3)

O O

N O O N

C DEL

DEL DEL

C C C

C ⎟⎟⎠×

⎜⎜ ⎞

− −

= (4.4) 其中,CN =CO×2.0

DEL

N 為以

C

N 為中性軸深度之軸向力合力

C

C為最終中性軸深度

成員函式 get_Neutral( )之動態活動圖如圖 4.3 所示,其中含有一 個條件式判斷初始軸向力 等於零、大於零,或小於零之情況,

當 為零時,表示梁頂應變也為零,此時視為無撓曲作用,中性 軸深度以斷面轉換法計算。 大於零與 小於零之條件式中各 含有兩個迴圈,第一個迴圈重複調整中性軸深度 並計算軸向力合 力 ,當軸向力合力值始出現異號時方得進入第二個迴圏,意即 以軸向力最靠近零的深度逼近中性軸位置。第二個迴圈重複計算最終 軸向力合力 ,當最終軸向力小於最大容許軸向力TOL_P 時終止 迴圈,此時之 為最接近中性軸位置之深度。

DEL

O

DEL

O

DEL

O

DEL

O

C

N

DEL

N

DEL

C

C

C

4-2-4 混凝土梁類別(concrete_beam)

混凝土梁類別為繼承所有類別後所擴充之衍生類別,主要具有梁 跨距之屬性。成員函式 section_property( )目的是當鋼筋混凝土梁斷面 之彎矩-曲率關係與中點所受集中載重為已知時,依據設定之斷面位 置可計算該斷面之彎矩、頂層應變以及曲率。因此呼叫成員函式 section_property( )所需之變數分別是梁中點集中載重,二維陣列的記 憶體位址(宣告為 MEC[3][500])、陣列元素位置,傳回值型態為 void。

其中二維陣列 MEC[3][500]即表示已知的鋼筋混凝土梁斷面之彎矩-曲率關係,依儲存方式將儲存資料分為 3 類,每種資料在陣列中可容 納500 個元素,每種資料代表之意義將如下解釋:

MEC[0][i]儲存斷面應變資料,儲存內容含有 0 至 0.006 間 400 個斷面 應變,意即將斷面上應變等於0 到 0.006 間分成 400 個等分,並將每

MEC[0][i]中。

MEC[1][i]儲存由 MEC[0][i]中之斷面應變所計算得對應之斷面曲率 資料,因此資料個數與MEC[0][i]相等。

MEC[2][i] 儲存由 MEC[0][i]中之斷面應變所計算得對應之斷面彎矩 資料,因此資料個數與MEC[0][i]相等。

而陣列元素位置是定義一併傳入函式之集中載重是位於彎矩-曲率曲 線中遞增之陣列元素間或是遞減之陣列元素間,若集中載重位置在遞 增之陣列元素間表示該載重為鋼筋混凝土梁未達極限載重前之加 載,若集中載重位置在遞減之陣列元素間則表示該載重為鋼筋混凝土 梁超過極限載重後之加載,此一判斷將影響相同載重下所對應較大的 曲率或較小的曲率,將在本節後段再次說明之。

成員函式 section_property( )之動態活動圖中(圖 4.4),呼叫函式之 前須先定義的資料成員為梁跨距 與已知的斷面彎矩-曲率關係 在MEC 陣列中極限彎矩之元素位置,而 Set Position 狀態為定義斷面 在梁上的位置。函式主體含有兩個主要條件式,第一個條件式在於計 算斷面上任一位置受集中載重作用而分配之彎矩,已知受中點集中載 重之簡支梁上的彎矩分配與其在梁上之位置呈線性分佈,斷面彎矩 sec_Mn 依該斷面之位置計算方法如下:

length

0 Position 2

Length

sec_Mn=

2

Position×Load (4.5)

2 Length Position

Length >

sec_Mn=

( )

2

Position Length

Load× (4.6) 其中,Length 為梁垮距

Load 為梁中點集中載重 Position 為斷面位置

第二個條件式主要判斷集中載重造成之彎矩在 MEC 陣列中是否 超過極限強度,已知斷面頂層應變與曲率在彎矩到達最高點前為遞 增,象徵斷面彎矩到達撓曲強度前對應之梁頂應變與斷面曲率依加載 而遞增,待斷面彎矩超過其撓曲強度後便開始遞減,並且伴隨越來越 大的梁頂應變與斷面曲率,此時因為鋼筋混凝土梁強度開始下降,斷 面彎矩則必須重新分配,除了中間點斷面因為產生塑性鉸而使變形持 續增加外,其餘斷面的變形則因為彎矩重新分配而減小。活動圖中第 二個條件式將詳細敘述如下:

當 sec_Mn MEC 陣列中彎矩最大值,表示加載未達其極限強度,即 對 MEC 陣列中遞增範圍曲線作內插,斷面應變

ε

sec_

與斷面曲率 sec_cur 可以下式表示:

MEC[2][b]

1]

MEC[2][b

MEC[2][b]) (sec_Mn

1]

MEC[0][b sec_Mn)

1]

(MEC[2][b MEC[0][b]

sec_ + −

× + +

− +

= ×

ε (4.7)

MEC[2][b]

1]

MEC[2][b

MEC[2][b]) (sec_Mn

1]

MEC[1][b sec_Mn)

1]

(MEC[2][b MEC[1][b]

sec_ + −

× + +

− +

= ×

cur (4.8)

當 sec_Mn>MEC 陣列中彎矩最大值,表示加載超過鋼筋混凝土梁之 極限強度,中點斷面變形因為產生塑性鉸而增加,其餘斷面則因彎矩 重新分配而相對減小,其中:

當 2

Length

Position≠ 時,對MEC 陣列中遞增範圍曲線作內插,則斷面應變

與斷面曲率計算方法與4.7 與 4.8 式相同:

當 2

Length

Position= 時,對MEC 陣列中遞減範圍曲線作內插,斷面應變

sec_

ε與斷面曲率sec_cur 則以下式表示:

1]

MEC[2][b MEC[2][b]

1]) MEC[2][b (sec_Mn

MEC[0][b]

sec_Mn) (MEC[2][b]

1]

MEC[0][b

sec_ − +

+

× +

×

= +

ε (4.9)

1]

MEC[2][b MEC[2][b]

1]) MEC[2][b (sec_Mn

MEC[1][b]

sec_Mn) (MEC[2][b]

1]

MEC[1][b

sec_ − +

+

× +

×

= +

cur (4.10)

4-3 數值模擬程式之邏輯程序

將混凝土、鋼筋、斷面性質、撓曲行為與混凝土桿件等類別寫成 程式標頭檔,主程式中則利用 include( )前置處理指令將代表各類別的 標頭檔插入程式中參考。數值模擬程式活動圖中(圖 4.5)程式初期利 用最大之衍生類別產生一物件 beam1,視同產生一支名稱為 beam1 的鋼筋混凝土梁,並定義該物件之材料參數,斷面參數、梁跨距,以 及分割斷面數,所定義的屬性必須與三點彎矩實驗中的鋼筋混凝土梁 性質相同。主程式中含有兩個主要迴圏分別以3-3-1 節之方法模擬鋼 筋混凝土梁 beam1 之斷面彎矩-曲率關係,以及以 3-3-2 節中之方法 模擬beam1 受集中載重對中點位移之關係。

A.模擬斷面彎矩-曲率關係之邏輯程序

圖 4.5 左半部之迴圏,模擬斷面彎矩-曲率關係採斷面應變控制,

程式預設迴圈中,斷面應變初始值為零,應變增量設為 ,迴 圈執行次數預設為 400,當梁頂應變等於 0.006 時迴圈中止,意即模 擬斷面梁頂應變從0 至 0.006 之彎矩-曲率關係。迴圏中將斷面應變傳 入撓曲行為類別curve 之成員函式 get_neutral()中,該操作會以假設的 中性軸深度配合該斷面應變反覆傳入斷面性質類別 section 的成員函 式get_PA()中並形成一內部迴圈,待傳回之斷面軸向力合力值小於程 式預設之最大容許軸力值TOL_P(程式預設 TOL_P 為 0.001)時,中止 該迴圈。此時屬於撓曲行為類別curve 之資料成員 DNA 與 CUR 即為 該斷面應變下對應之真實中性軸深度與斷面曲率,同時在斷面性質類 別section 中的資料成員 BEN 即是該梁頂應變下所造成之斷面彎矩。

將 梁 頂 應 變 、 斷 面 曲 率 與 斷 面 彎 矩 儲 存 至 先 前 宣 告 的 二 維 陣 列 MC_array 中即完成一次迴圏。待迴圏執行結束後 MC_array 即可模擬 斷面在任一彎矩作用下應變與曲率之關係。

10

-5

1.5×

在文檔中 中 華 大 學 碩 士 論 文 (頁 38-54)

相關文件