标签:
弹簧质点模型的求解方法包括显式欧拉积分和隐式欧拉积分等方法,其中显式欧拉积分求解快速,但积分步长小,两个可视帧之间需要多次积分,而隐式欧拉积分则需要求解线性方程组,但其稳定性好,能够取较大的积分步长。[Liu et al. 2007]文章提出了一种弹簧质点模型的求解方法,它将隐式欧拉积分方法转变为求解最优化问题,并采用迭代分步优化的方法来达到最优解。相比隐式欧拉积分,该方法计算快速,并且精度在可接受范围内。
弹簧质点模型的隐式表达方式如下:
(1)
(2)
其中:qn和vn分别代表tn时刻质点的位置和速度,f(qn)为tn时刻质点所受到的力,M为质点的质量,h为步长。
利用式(1)我们可以得到:
(3)
(4)
将式(3)减式(4)并与式(2)结合得到:
(5)
记x = qn+1,y = 2qn – qn-1,式(5)可以变化为:
(6)
式(6)的解其实对应于如下函数的临界点:
(7)
于是弹簧质点模型问题可以变化为最优化问题minx g(x),即最小化函数g(x)。
函数E(x)中最重要的部分是弹簧势能,根据Hooke定律,可以推导得到两个质点间弹簧的势能为:
(8)
其中:k为弹簧的弹性系数,r为弹簧的自然长度。
因此弹簧质点模型中弹簧的整体势能也可以变化为最优化问题,即最小化如下函数:
(9)
其中:L = A·K·AT,J = A·K,式中A∈Rs×m(s为弹簧数量,m为质点数量),并且Ai,i1=1,Ai,i2= -1,K∈Rm×m为对角矩阵,Ki,i = ki。
如果考虑其他外力(如重力等),那么函数E(x)的表达式为:
(10)
其中:是所有弹簧为自然长度时的方向。
将函数E(x)的表达式(10)代入式(7),整理后得到最终的优化表达式:
(11)
对于上述优化问题,可以分两步进行,将前一时刻的质点位置作为初始值x,首先固定x优化d,然后固定d优化x,然后重复上述迭代步骤直到满足设定的迭代步数。
本文为原创,转载请注明出处:http://www.cnblogs.com/shushen。
相关:
弹簧质点系统(Euler Integration):http://www.cnblogs.com/shushen/p/5473264.html
弹簧质点系统(Verlet Integration):http://www.cnblogs.com/shushen/p/5394431.html
参考文献:
[1] Tiantian Liu, Adam W. Bargteil, James F. O‘Brien, and Ladislav Kavan. 2013. Fast simulation of mass-spring systems. ACM Trans. Graph. 32, 6, Article 214 (November 2013), 7 pages.
网格弹簧质点系统模拟(Spring-Mass System by Fast Method)
标签:
原文地址:http://www.cnblogs.com/shushen/p/5522498.html