本發明屬于計算機圖形學領域,具體涉及一種基于投影近場動力學的仿射多體系統實時仿真方法。
背景技術:
1、在多體動力學仿真模擬中,基于隱式歐拉的方法能夠提供較為穩定準確的仿真結果。在其求解過程中,要先對各種非線性約束建立海森矩陣,將問題轉化為非線性優化問題,并往往使用牛頓法求解矩陣。然而,由于在模擬過程中接觸經常發生變化,因此需要頻繁耗時地更新全局海森矩陣。而且,由于接觸變化對非零非對角線元素值的影響,海森矩陣的存儲方式將無法統一。這意味著使用牛頓法的隱式歐拉求解方法難以高效地在gpu上實現。
技術實現思路
1、本發明的目的是針對傳統基于隱式歐拉的約束多體動力學求解方法不易并行化的問題,使用投影近場動力學框架重新對問題建模,來實現高效并行化的多體動力學模擬。
2、本發明實現其目的所采用的技術方案如下:
3、一種基于投影近場動力學的仿射多體系統實時仿真方法,包括以下步驟:
4、(1)針對多體系統中的碰撞物體對構建對偶形式約束,其中對對偶作用點間的約束勢能、碰撞、摩擦以及關節構建約束關系;
5、(2)針對構建的所有約束關系建模全局能量方程,使用半隱式連續迭代法對該方程中的非線性約束進行全局求解,通過迭代更新計算每個作用點的位置;
6、(3)使用牛頓法進行局部求解,計算物體的仿射矩陣和位置坐標并更新;
7、(4)重復全局求解和局部求解過程,直到相對誤差收斂到預設值或達到最大迭代步數;
8、(5)更新物體的位置、旋轉狀態、線速度和角速度。
9、進一步地,步驟(1)中對對偶作用點間的約束勢能構建能量約束關系:
10、
11、其中ψ表示約束勢能,y表示作用點的矢量位置,l表示對偶作用點間的距離,∈表示約束強度,c表示關于y,l的一次函數;該能量約束關系的隱式連續迭代的迭代式為:
12、
13、其中i,j表示兩碰撞物體,y表示物體的位置,ξ表示約束,k表示第k次迭代,表示第k次迭代對偶作用點間的距離。
14、進一步地,步驟(1)中使用log-barrier函數對對偶作用點間的碰撞和摩擦構建約束關系:
15、
16、其中bn指n階多項式barrier函數,d表示對偶作用點間的距離,表示能量約束的對偶作用點間的最大距離。
17、進一步地,步驟(1)中針對關節構建三種關節約束:
18、構建球形關節約束:球形關節在三維空間中的旋轉通過在關節坐標系的三個軸上施加三個距離約束來固定旋轉角度,每個軸向的距離約束計算物體上兩個作用點的坐標,通過關節錨點的旋轉矩陣來確保物體的旋轉符合球形關節的約束;
19、構建鉸鏈關節約束:鉸鏈關節使用兩個點間的距離約束來固定旋轉軸的方向,在兩物體間設定位置額外施加一個距離約束來控制鉸鏈的開合角度;
20、構建滑動關節約束:滑動關節通過兩個距離約束來限制物體沿滑動軸的相對平移;對于扭轉,對兩物體間設定位置施加額外的距離約束來固定旋轉軸。
21、進一步地,步驟(2)中建模的全局能量方程為:
22、
23、其中y表示所有作用點的坐標,是y隨時間的導數,e表示與y有關的動量勢能,ψ表示約束勢能,ai表示物體i的仿射矩陣,riξ表示物體i上約束ξ的作用點的局部坐標,pi表示物體i中心坐標,yiξ表示物體i上約束ξ的作用點全局坐標。
24、進一步地,步驟(2)中使用半隱式連續迭代法對該方程中的非線性約束進行全局求解時,第k次迭代的迭代式為:
25、
26、其中ψξ表示約束ξ的約束勢能,表示ψ的導數,表示的符號正項,表示的符號負項,dξ表示對偶作用點間的距離。
27、進一步地,步驟(2)中將第k次迭代的迭代式代入全局能量方程進行全局求解的結果為:
28、
29、其中表示約束ξ中物體i在第k次迭代時的坐標,為常量,表達式如下:
30、
31、其中h是仿真時間步長,mi是物體i的質量。
32、進一步地,步驟(3)的具體步驟包括:
33、將物體的所有作用點坐標根據當前物體的旋轉矩陣進行逆變換,將物體旋轉回初始狀態;
34、利用牛頓法對物體的局部剛性約束進行優化求解,優化目標是最大化物體的剛度同時最小化物體上的所有作用點之間的距離誤差,求解出更新后的仿射矩陣;
35、采用兩步策略進行更新,包括:第一步更新仿射矩陣,調整物體的旋轉狀態;第二步保持仿射矩陣不變,根據全局求解中的對偶作用點,使用牛頓法迭代更新物體的中心位置。
36、進一步地,局部求解的優化目標函數為:
37、
38、其中‖·‖f表示frobenius范數,qi表示物體i的更新前位置坐標,pi表示物體i的中心位置,ωiξ表示對偶作用點位置勢能項權重,riξ表示物體i上約束ξ的作用點的局部坐標,δ表示懲罰系數,ai表示仿射矩陣,i是三階單位矩陣。
39、進一步地,步驟(4)中相對誤差為:
40、
41、其中εk表示第k次迭代的相對誤差,ψ(x0)表示初始位置x0的勢能,ψ(xk)表示第k次迭代位置xk的勢能,ψ(xn)表示第n次迭代位置xn的勢能即最終收斂后的勢能。
42、與現有技術相比,本發明具有如下的優點:
43、(1)本發明使用投影近場動力學框架,在全局求解中使用半隱式連續迭代法,每一個迭代步都具有高度并行性,無需組裝全局海森矩陣,因而適用于現有gpu架構,可以利用硬件加速對大規模復雜多體物理仿真情形,在運行速度上有很大提升,可以實現實時模擬。
44、(2)本發明使用仿射體對剛體進行建模,在局部求解中保證物體剛性,與使用剛體建模的傳統方法相比,在碰撞、摩擦等勢能的計算中更簡單、更快。
45、(3)本方法在局部求解中使用兩步策略,極大提高了局部物體仿射矩陣和位置計算的收斂性和準確性。
46、(4)本發明針對對偶形式重新設計了關節約束,比起傳統限制自由度的約束實現形式更加直觀簡潔,而且可以實現不同關節的自由度組合。
1.一種基于投影近場動力學的仿射多體系統實時仿真方法,包括以下步驟:
2.如權利要求1所述的方法,其特征在于,步驟(1)中對對偶作用點問的約束勢能構建能量約束關系:
3.如權利要求1所述的方法,其特征在于,步驟(1)中使用log-barrier函數對對偶作用點間的碰撞和摩擦構建約束關系:
4.如權利要求1所述的方法,其特征在于,步驟(1)中針對關節構建三種關節約束:
5.如權利要求2所述的方法,其特征在于,步驟(2)中建模的全局能量方程為:
6.如權利要求5所述的方法,其特征在于,步驟(2)中使用半隱式連續迭代法對該方程中的非線性約束進行全局求解時,第k次迭代的迭代式為:
7.如權利要求6所述的方法,其特征在于,步驟(2)中將第k次迭代的迭代式代入全局能量方程進行全局求解的結果為:
8.如權利要求1所述的方法,其特征在于,步驟(3)的具體步驟包括:
9.如權利要求1所述的方法,其特征在于,局部求解的優化目標函數為:
10.如權利要求2所述的方法,其特征在于,步驟(4)中相對誤差為: