我目前正在为学校项目的模拟软件上实现隐式Euler的研究,而我很难把质量弹簧系统的隐式Euler公式,更具体地说,雅可比矩阵计算和最终公式都花在我身上这需要解决。
由于我是堆栈溢出的新手,所以如果在错误的地方张贴此错误或有任何错误,我会深表歉意。
到目前为止,我实现的结果产生了奇怪的结果(不切实际的模拟,爆炸等)。 因此,如果你们能指出我没有做对的事情,我将非常感激。
这是我认为我了解的内容:
有两个雅可比矩阵,一个用于弹簧拉伸力,一个用于弹簧阻尼,都遵循https://imgur.com/a/Aydgd3n结构(系统中的粒子数为N)
< / li>每个粒子Jacobian的计算公式如下:
δfi/δxj = ks⋅uij⋅uTij
uTij
是向量uij
的转置(很抱歉,如果公式不太易读)
(这实际上不是来源中找到的完整公式,但是我的老师告诉我,我可以首先实现这个公式)
δfi/δxj=kd⋅uij⋅uTij
kd
和ks
分别是弹簧的阻尼和刚度。
确定弹簧两个粒子之间的向量。
δfi/δxi=∑jδfiδxj
,但我对此确实不确定。
连接的粒子具有δfi/δxj=−δfj/δxi
这是我谈论的怪异爆炸的一个例子: https://imgur.com/a/gk1MkGJ
以下是我阅读的资料(如果有帮助的话):http://blog.mmacklin.com/2012/05/04/implicitsprings/ http://hugi.scene.org/online/hugi28/hugi%2028%20-%20coding%20corner%20uttumuttu%20implementing%20the%20implicit%20euler%20method%20for%20mass-spring%20systems.htm
谢谢您的时间!