x-dynamics xdynamics是hse和se區(qū)別

這個廣義動力學(xué)分析方程里每個字母代表什么及字母外的括號和字母上兩點是什么意思?

x—系統(tǒng)的廣義坐標(biāo)列陣

創(chuàng)新互聯(lián)公司專注于企業(yè)全網(wǎng)營銷推廣、網(wǎng)站重做改版、江源網(wǎng)站定制設(shè)計、自適應(yīng)品牌網(wǎng)站建設(shè)、成都h5網(wǎng)站建設(shè)、商城網(wǎng)站開發(fā)、集團公司官網(wǎng)建設(shè)、外貿(mào)營銷網(wǎng)站建設(shè)、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁設(shè)計等建站業(yè)務(wù),價格優(yōu)惠性價比高,為江源等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。

M—系統(tǒng)的質(zhì)量矩陣

K—系統(tǒng)的剛度矩陣

C—系統(tǒng)的阻尼矩陣

F—系統(tǒng)的廣義力列陣

字母外的括號是表示:括號里的參數(shù)是矩陣或者列陣的形式。

x上面1個點,表示對x求一次導(dǎo)數(shù),位移求一次導(dǎo),是速度。

x上面2個點,表示對x求兩次導(dǎo),位移求兩次導(dǎo),是加速度。

第五講:彈性體模擬-數(shù)值方法

這一講是緊接著上一講的內(nèi)容,開始討論如何通過數(shù)值方法來完成對彈性體形變的模擬,另外,順帶提一句,這部分內(nèi)容跟游戲開發(fā)中的物理引擎具有較高關(guān)聯(lián)。

上一講降到,我們的彈性勢能可以表示為:

值得澄清的是,這里是省略了高階項之后的彈性勢能,即這個公式是在線性形變的情況下成立的,如果要考慮更為復(fù)雜的形變,后面還要加上更多的高階項。

下面來介紹,我們在計算機中要如何計算出彈性體形變之后產(chǎn)生的internal force,大致思路是先計算出形變梯度矩陣(Deformation Gradient),之后根據(jù)這個矩陣算出Green Strain Tensor,之后再算出勢能表達式,最后對勢能求導(dǎo),就得到了對應(yīng)的conservative force。

首先來看下,我們要如何計算形變梯度矩陣,這里先考慮3D軟體的情況,2D軟體的情況如布料等在后面再考慮。

首先,要想在計算機中進行模擬,就需要將3D軟體離散化,2D表面離散化是通過將之拆解成三角形來完成,而3D Volume的離散則是將之拆分成一個個的四面體。

形變發(fā)生后,單個四面體就會從material space映射到deformed space,即四面體本身發(fā)生了形變,如下圖所示:

緊接著給出兩個假設(shè):

由于四面體足夠小,因此 滿足微分中的一個極小的局部變化的要求,可以采用泰勒展開:

在線性形變的情況下,我們可以省略高階項,我們可以得到:

上述公式中的 我們是知道的(最開始的時候, ,所以自然是知道的,之后,經(jīng)過一個timestep迭代,最新的位置經(jīng)過后續(xù)的計算,自然也是知道的),而形變前的數(shù)據(jù) 我們也知道,因此就可以計算出F,另外,我們前面也說過,F(xiàn)是一個與位置有關(guān)的變量,要精確考慮的話,四面體上的每一點對應(yīng)的F都應(yīng)該是不同的,不過這里我們可以假設(shè):

在上述假設(shè)下,我們可以有更多的等式:

將前面的三組公式放在一起,我們就得到了下面的矩陣乘法形式,從而推導(dǎo)出F:

簡化一下:

跟 都是一個3x3的矩陣,根據(jù)上面公式可以推導(dǎo)出:

這里是其中一個四面體的F,其他四面體也會有對應(yīng)的F,根據(jù)F我們就可以計算Green Strain Tensor,這也是每個四面體一份的:

以及勢能 ,對勢能進行求導(dǎo)(具體來說,consititutive model有公式的話,可以手動推導(dǎo)其彈性力的表達式),我們就能得到internal force(彈性力):

這里,勢能是物體共有的一個參數(shù),是一個標(biāo)量,而 則是物體上所有四面體的頂點組成的一個向量 ,那么經(jīng)過求導(dǎo)后得到的彈性力也自然是一個n維的向量,每一維代表的是每個頂點的受力。

上面是內(nèi)部的力,外面來自于重力或者碰撞的力,我們用外力 表示。

其中的質(zhì)量m是一個很大的vector,在上面的公式下,我們就可以用之前說過的implicit euler或者explicit euler完成時間步長積分,從而算出更新的位置向量。

上面這種用離散的四面體來模擬軟體的彈性形變的方法叫做Finite Element Method(FEM),這種方法可以通過不斷提高分辨率(縮小四面體的尺寸)來保證準(zhǔn)確性,不過同時也會導(dǎo)致計算復(fù)雜度增加,所以游戲或者很多電影特效模擬不是用的這種方法,而是基于優(yōu)化的方法,Optimization-Based Methods,這種方法可以實現(xiàn)快速模擬。

先來回顧一下隱式歐拉方法,速度跟位置向量的演變可以用下面公式來表達:

這里的兩個向量都是包含了多個四面體的相關(guān)數(shù)據(jù)的,是一個3xn的矩陣。

前面說過隱式歐拉最終會變成一個高維方程,很難求解,這里考慮將之轉(zhuǎn)換成一個優(yōu)化問題。

首先,internal force是勢能的導(dǎo)數(shù)給出如下:

根據(jù)上面的公式,我們有:

這邊希望構(gòu)造出一個函數(shù) ,并且使得這個函數(shù)的極值:

達成的條件跟前面的公式相一致,也就是說,希望這個函數(shù)的極值對應(yīng)的解 就正好是上面一個等式的解,而這個函數(shù)可以給出為(比較容易推導(dǎo)?):

其中

從而我們可以知道:

前面說到,這個函數(shù)提出的目的是為了求得前面implicit timestep等式的等價解,這里的一個疑惑就是,同樣是解方程,前面implicit方程不好解,這里的方程同樣也不好解,那么這種變化的意義在哪里呢?

這里的作用在于公式中的后面部分 ,這個部分表示的是系統(tǒng)的勢能,前面說過彈性形變的勢能公式 是通過一系列的物理推導(dǎo)得出的,是精確解,這種求解起來會比較麻煩,但是在游戲中,我們可以使用非精確解,只要保證模擬的結(jié)果看起來真實就好,這樣一來,我們就能夠選擇一些能夠讓這個求解過程變得容易的公式代入這里的勢能項中,從而達到簡化問題的目的。

那么這個勢能公式要怎么來設(shè)計呢?我們知道,彈性形變導(dǎo)致的勢能總體來說,可以分成兩種,分別是體積變化導(dǎo)致的形變(如從體積為1變成體積為2),或者是扭曲導(dǎo)致的形變,如一個cube變成平行六面體等。

前者勢能可以表示為:

det是矩陣的行列式,這個公式的意義在于,當(dāng)沒有形變的時候,矩陣就是單位矩陣,這個勢能的結(jié)果就是0

后者勢能可以表示為:

tr(trace)是矩陣的跡,一個n×n矩陣A的主對角線(從左上方至右下方的對角線)上各個元素的總和被稱矩陣A的跡(也就等于所有特征值的和)。同樣,當(dāng)沒有形變時,這個F就是單位矩陣,所以跡就是3,那么勢能依然為0。

總結(jié)可以看出,我們需要的勢能公式其實就是一個約束條件,這個約束條件或者說約束函數(shù)在無形變的時候輸出為0,在有形變的時候輸出的是一個正值(或者說在無形變的時候取得極小值0),比如其形式為:

在這個條件下,我們就可以定義勢能為:

上式中的A是一個對角陣,C(q)是一個向量,對于其中的每個元素:

這里希望有:

這里的i用來指示四面體的序號,這里翻譯一下,就是說我們希望每個四面體的形變梯度矩陣的行列式為1,也就是說每個四面體都是體積不變的。

下面來介紹一下Position-based Dynamics方法,回到前面的公式:

這里,我們將勢能用脈沖函數(shù)(實際上是脈沖函數(shù)取反,不過為了描述方便,這里用脈沖函數(shù)來表示)來表示:

其中脈沖函數(shù):

之所以這樣設(shè)計,就是為了滿足前面說過的,我們希望函數(shù)J取得最小值,那么就需要保證 ,這里的i依然是四面體的序號。

繼續(xù)下去,Position-based Dynamics方法會采用Gauss-Siedel Iteration(假設(shè)1)進行求解,即對于后面的眾多四面體而言,我們會先只考慮一個四面體作用下的求解,并將結(jié)果代入原公式之后考慮第二個四面體作用下的求解,循環(huán)往復(fù)。如果只考慮單個四面體作用,原公式就變成了:

再定義:

公式就變成:

將公式轉(zhuǎn)換一下,我們想要求解J的最小值,就等價于在條件:

下求解

的最小值。

之后,再假設(shè) 足夠?。僭O(shè)2),那么前面的條件就可以做泰勒展開為:

而這個就可以用上一講的拉格朗日乘子來求解,也就是說,在上面條件下的最小值求解就變成了:

而Gauss-siedel Iteration的問題是,需要進行多次迭代才能收斂,從而導(dǎo)致計算比較慢,性能較差,這也是Position-based Dynamics(PBD)的缺點,如果Iteration數(shù)目不夠就會導(dǎo)致一些模擬效果質(zhì)量較低,比如布料會看起來像彈簧一樣生硬。

我們來回顧下之前的內(nèi)容:

那么很自然的問題就是,是否有一種方法是居于兩者之間的,一方面我們不需要求解一個十分復(fù)雜的方程,而是只需要求解一個簡單的方程,且這個方程可以通過少數(shù)的迭代就能輸出結(jié)果的。

這個方法就是物理界常用的Projective Dynamics,實際上這種方法跟PBD是處于同一框架下得,不同的是PBD這里的internel energy函數(shù)是一個脈沖函數(shù)之和,而Projective Dynamics方法的internal energy函數(shù)則是:

這個式子中一共引入了兩個新的符號,一個是變量p,這個變量代表的是某個粒子(如前面的四面體)的一個目標(biāo)狀態(tài)(比如,我們可以選擇四面體不發(fā)生形變時的狀態(tài)為一個目標(biāo)狀態(tài),當(dāng)然我們也可以選擇其他狀態(tài)作為目標(biāo)狀態(tài),具體如何選,后面再說),而d則是表達p跟q差異性的函數(shù),可以是一個非常簡單的函數(shù),比如就取兩者的距離作為函數(shù)。

整個函數(shù)是什么意思呢,我們這里來舉個例子說明一下,假如我們選擇某個函數(shù)(simple distance measure)作為上面的函數(shù)d:

這里的F跟前面一樣,還是deformation gradient, 是一個沒有形變,但是經(jīng)過一個旋轉(zhuǎn)的狀態(tài),兩者都是3x3的矩陣,其中 可以通過一個叫做Shape Matching的算法求得。

另外一項 是一個脈沖函數(shù),這個脈沖函數(shù)的取值受到約束條件c的影響,當(dāng) 的時候,取值為0,否則取值為無窮大,而由于這個函數(shù)的存在,要想使得整體的internal energy最小,就必須得滿足這里的約束條件,從而使得脈沖函數(shù)取值為0。

在這個例子中,我們選取了p為經(jīng)過某個旋轉(zhuǎn) 后的狀態(tài),而在這個狀態(tài)下,可以滿足上面的脈沖函數(shù)結(jié)果為0,那么最終的internal energy的計算就變成了一個非常簡單的矩陣的線性計算。

這里,我們還可以選擇其他的p,比如:

這里的 也是一個deformation gradient,表示的是最接近于當(dāng)前形變狀態(tài)的deformation gradient,但是在這個gradient的作用下,形變后的四面體的體積跟原始四面體保持一致(這種對于動物形體的模擬比較有用,比如肚子在受擊之后體積保持不變), 的計算同樣可以通過脈沖函數(shù)求得,比如只需要找到體積不變的形變的約束條件,就能得到對應(yīng)的deformation gradient。

在這種internal energy的作用下,最優(yōu)解的求解就變成了如下的函數(shù)形式:

可以看到,p只出現(xiàn)在后兩項,q則只出現(xiàn)在前兩項,從而我們可以通過有限的迭代來求解這個最優(yōu)化問題。

而由于脈沖函數(shù)的存在,p的求解只需要保證脈沖函數(shù)為0即可,因此整個問題可以快速變成q變量下的最優(yōu)解,這個過程叫做local projection,即找到限制條件c(constraint)來保證脈沖函數(shù)為0,從而將問題從兩個變量降維成一個變量。

在求得p之后,就可以來求解q以獲得整個函數(shù)的最優(yōu)解:

而由于上面的函數(shù)實際上都是q的一個二次函數(shù),而其導(dǎo)數(shù)則是q的一次函數(shù),從而只需要將導(dǎo)數(shù)等于0,就能得到最終的解,這一步叫做global solve。

前面說過,projective Dynamics是一個迭代的過程,上面展示的local projection跟global solve就是這個過程中的僅有兩個步驟,這兩個步驟需要循環(huán)往復(fù)的去執(zhí)行(因為p是local projection的,也就是一個局部解,這個解并不一定就對應(yīng)著最優(yōu)解,而是需要不斷調(diào)整q來逼近最優(yōu)解)。

這個方法的迭代數(shù)目比PBD會少很多,目前UE、Houndini等軟件使用的是X-PBD方案,是在PBD方案上的一種更新方案,但是其迭代次數(shù)依然比Projective Dynamics方法要多,之所以不用Projective Dynamics方法,是因為線性系統(tǒng)的求解在維數(shù)很大(比如q是一個很大的向量)的時候會存在比較大的困難。

動力學(xué)的三大基本公式是什么?

1、動量矩定理

動力學(xué)普遍定理之一,它給出質(zhì)點系的動量矩與質(zhì)點系受機械作用的沖量矩之間的關(guān)系。

2、動能定理

動能具有瞬時性,是指力在一個過程中對物體所做的功等于在這個過程中動能的變化。動能是狀態(tài)量,無負值。

合外力(物體所受的外力的總和,根據(jù)方向以及受力大小通過正交法能計算出物體最終的合力方向及大小) 對物體所做的功等于物體動能的變化,即末動能減初動能。

動能定理一般只涉及物體運動的始末狀態(tài),通過運動過程中做功時能的轉(zhuǎn)化求出始末狀態(tài)的改變量。但是總的能是遵循能量守恒定律的,能的轉(zhuǎn)化包括動能、勢能、熱能、光能(高中不涉及)等能的變化。

3、動量定理

如果一個系統(tǒng)不受外力或所受外力的矢量和為零,那么這個系統(tǒng)的總動量保持不變,這個結(jié)論叫做動量守恒定律。

F指合外力,如果為變力,可以使用平均值;=既表示數(shù)值一致,又表示方向一致;矢量求和,可以使用正交分解法;只適用于慣性參考系,若對于非慣性參考系,必須加上慣性力的沖量。且v?,v?必須相對于同一慣性系。

擴展資料:

質(zhì)點動力學(xué)有兩類基本問題:

1、已知質(zhì)點的運動,求作用于質(zhì)點上的力。

2、已知作用于質(zhì)點上的力,求質(zhì)點的運動。

求解第一類問題時只要對質(zhì)點的運動方程取二階導(dǎo)數(shù),得到質(zhì)點的加速度,代入牛頓第二定律,即可求得力;求解第二類問題時需要求解質(zhì)點運動微分方程或求積分。

參考資料來源:百度百科-動量矩定理

參考資料來源:百度百科-動能定理

參考資料來源:百度百科-動量定理

參考資料來源:百度百科-動力學(xué)

網(wǎng)頁名稱:x-dynamics xdynamics是hse和se區(qū)別
網(wǎng)站地址:http://muchs.cn/article46/doecdeg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App設(shè)計用戶體驗、企業(yè)網(wǎng)站制作、定制網(wǎng)站、網(wǎng)站制作、服務(wù)器托管

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

小程序開發(fā)