ANSYS模型的Model Order Reduction(提高瞬態計算速度數百倍)
瀏覽:156047 評論:2
最近在做一些Fast simulation的工作,用到了Model Order Reduction (MOR),覺得十分有用,在這里推薦給大家,并且附上ANSYS 和Matlab的source code.現在最流行的MOR主要基于Krylov subspace projection method, 基本原理如下:
假設原來的linear system model的node數是N (NxN的矩陣), N ~ 100000, 我們可以創建一個N x r 的矩陣,把原來NxN的矩陣project到 r x r的矩陣上去 (r<<N),這樣求解過程可以在這個小矩陣上完成,然后再把結果project回到原來的NxN的矩陣空間上去。
以下是源程序介紹:
(1) Example.mac: ANSYS mac file 用來建立一個三維的熱傳導模型,并加上載荷。用戶必需設置文件里的SOLVE_OPTION變量。
取0時,輸出模型的heat capacitance 和 heat conductance 矩陣(用HBMAT commands),分別保存到C_File.dat和K_file.dat(Thermal load 也保存到K_File.dat)。
取1和2時分別做steady-state和transient simulation。
(2) MOR_ODE.m: matlab 程序,讀取K_File.dat和C_file.dat進行MOR,并且和ANSYS 結果(ansys.dat,在Example.mac里SOLVE_OPTION=2)的對比。用戶必需設置Solver_Option = 1調用matlab的lu分解函數。(Solver_Option = 0 是使用external 的 MOR_MUMPS.exe程序做matrix factorization,速度可提高數倍。MOR_MUMPS.exe是自己寫的C語言程序,用到了GNU MUMPS linear solver library和BLAS library, 需用GNU fortran 和 gcc 編譯).
ANSYS模型的MOR步驟:
(1): 在ANSYS里建模,mesh,以及加載 (不必求解)。
(2): 用HBMAT命令輸出system matrice文件(Example.mac里有對應的code).
(3): 在Matlab里讀入system matrice文件進行MOR(code在MOR_ODE.m里).
(4): 在Matlab里用ODE solver求解并project solution back 得到原模型上的解。
限制: 模型必需是linear system response model.
ansys.dat 中包含了用ANSYS得到的MX和MN點的溫度變化曲線, 用來和MOR結果做比較。
下圖顯示了用matlab/MOR求解ANSYS模型結果和直接用ANSYS simulation的結果的比較,可以看出結果完全一樣,求解速度提高400倍!
假設原來的linear system model的node數是N (NxN的矩陣), N ~ 100000, 我們可以創建一個N x r 的矩陣,把原來NxN的矩陣project到 r x r的矩陣上去 (r<<N),這樣求解過程可以在這個小矩陣上完成,然后再把結果project回到原來的NxN的矩陣空間上去。
以下是源程序介紹:
(1) Example.mac: ANSYS mac file 用來建立一個三維的熱傳導模型,并加上載荷。用戶必需設置文件里的SOLVE_OPTION變量。
取0時,輸出模型的heat capacitance 和 heat conductance 矩陣(用HBMAT commands),分別保存到C_File.dat和K_file.dat(Thermal load 也保存到K_File.dat)。
取1和2時分別做steady-state和transient simulation。
(2) MOR_ODE.m: matlab 程序,讀取K_File.dat和C_file.dat進行MOR,并且和ANSYS 結果(ansys.dat,在Example.mac里SOLVE_OPTION=2)的對比。用戶必需設置Solver_Option = 1調用matlab的lu分解函數。(Solver_Option = 0 是使用external 的 MOR_MUMPS.exe程序做matrix factorization,速度可提高數倍。MOR_MUMPS.exe是自己寫的C語言程序,用到了GNU MUMPS linear solver library和BLAS library, 需用GNU fortran 和 gcc 編譯).
ANSYS模型的MOR步驟:
(1): 在ANSYS里建模,mesh,以及加載 (不必求解)。
(2): 用HBMAT命令輸出system matrice文件(Example.mac里有對應的code).
(3): 在Matlab里讀入system matrice文件進行MOR(code在MOR_ODE.m里).
(4): 在Matlab里用ODE solver求解并project solution back 得到原模型上的解。
限制: 模型必需是linear system response model.
ansys.dat 中包含了用ANSYS得到的MX和MN點的溫度變化曲線, 用來和MOR結果做比較。
下圖顯示了用matlab/MOR求解ANSYS模型結果和直接用ANSYS simulation的結果的比較,可以看出結果完全一樣,求解速度提高400倍!
技術鄰APP
工程師必備
工程師必備
- 項目客服
- 培訓客服
- 平臺客服
TOP
2




















