一种基于简化隐式Euler数值积分的布料仿真算法

文档序号:8487984阅读:486来源:国知局
一种基于简化隐式Euler数值积分的布料仿真算法
【技术领域】
[0001] 本发明属于布料仿真领域,具体涉及一种基于简化隐式Euler数值积分的布料仿 真算法。
【背景技术】
[0002] 现实生活中的很多行为都可以用微积分加以描述,织物仿真也是如此。该过程一 般是先建立微分方程,然后通过积分法来求解进而实现布料的仿真。
[0003] 在布料仿真中,常用的积分方法主要有:显式Euler数值积分方法和隐式Euler数 值积分方法。显式积分注重的是仿真结果的真实性,其仿真所需的时间不长,工作量较少, 但也因此增加了迭代的次数。隐式积分与显性积分相反,其迭代次数比显性积分少,确保了 稳定性,能够产生很好的仿真效果。然而,隐式积分同样也存在缺点:由于计算的复杂度较 高,导致该算法的计算规模及计算工作量被提升,并且隐式积分对硬件的性能要求较高。混 合方法在综合了以上两种方法的优点之后,其性能得到了提升,不过,其能够应用的范围非 常有限,仅限于能够将微分方程分成线性和非线性的系统。
[0004] 显式的积分算法有很多种,比如欧拉法、中点法、四阶龙格-库塔法。其中,显式 Euler数值积分方法是最简单的积分方法,它有着较低的求解精度,且该方法拥有良好的并 行性和较快的速度,该方法计算量小且易于实现。但是该方法会产生很大的误差,这也是显 式Euler算法没有被广泛采用的重要原因之一。
[0005] 隐式积分算法是在微分方程离散化时,用向后差商代替导数的一种积分方法。隐 式积分方法具有无条件的稳定性,最常用的隐式方法就是隐式Euler数值积分方法。隐式 积分在保持系统稳定性的同时,能快速的收敛于平衡状态,但这样的隐式方法在质点数较 大时,也就是当布料模型大的时候,其计算的复杂程度相当大。要想用隐式积分的方法达到 实时的效果,需要较高的计算机硬件需求。
[0006] 显式欧拉积分方法是一种简单并且快速的积分方法。但是,在该方法中,如果要想 取得较好的稳定性,则所选的时间步长必须非常的小。隐式积分一般用于解决方程的刚度 问题。它避开了仿真计算中较大的时间步长的情况,同时,它克服了稳定性的问题,但是该 方法也存在效率低下等问题。
[0007]纯粹的显式Euler数值积分方法或者隐式Euler数值积分方法并不能满足现实的 需求。原因在于:显式Euler数值积分方法只能在小步长的前提下才能保证快速计算的稳 定性。而隐式Euler积分方法尽管避开了大步长的计算,克服了稳定性问题,但其仍然存在 计算效率低的问题。

【发明内容】

[0008] 针对传统布料仿真方法存在的问题,本发明提出一种基于简化隐式Euler数值积 分的布料仿真算法,通过求解各个质点下一个时间步长的速度和相应的位置,最后对质点 的位置进行动态更新,从而实现布料的仿真,解决算法稳定性以及显式欧拉积分中小时间 片的问题,同时也避免隐式积分中复杂的计算。
[0009] 为实现上述目的,本发明具体技术方案如下:一种基于简化隐式Euler数值积分 的布料仿真算法,包括如下步骤:
[0010]1)受力分析:对t时刻布料中每个质点进行受力分析,受力包括弹簧力C、阻尼 力K、重力和风力;其中,所述弹簧力< 计算公式如下:
【主权项】
1. 一种基于简化隐式Euler数值积分的布料仿真算法,其特征在于包括如下步骤: 1) 受力分析:对t时刻布料中每个质点进行受力分析,受力包括弹簧力€?、阻尼力 圮、重力g和风力G;其中,所述弹簧力K计算公式如下:
K为t时刻质点i所受来自质点j的弹簧力,ku是质点i与质点j之间的弹簧系数, 乂1与h分别代表质点i与质点j的位置,1u为质点i与质点j之间弹簧的初始长度; 所述阻尼力计算公式如下: 尸u
扎是质点i与质点j之间的弹性系数,v1与是质点i与质点j相对应的速度; 所述重力^^计算公式如下:
mi为质点i的质量,g是重力加速度; 所述风力
计算公式如下: kw为风力系数,vw为风速,vi为质点i的速度; 2) 计算质点所受合力:根据质点的受力情况计算质点所受的合力,合力f计算公式如 下:
3) 计算目标质点速度差值:利用简化隐式Euler数值积分算法计算质点的速度差值, 质点i在t时刻和t+h时刻的速度差值Av广的计算公式如下:
h表示相邻状态的时间差值,ndPnj分别表示与质点i和质点j相连接的质点个数; 4) 计算目标质点位置差异:根据质点的速度差值来计算质点的位置差值,质点i在t 时刻和t+h时刻的位置差值Axt+h计算公式如下: Axt+h= (v'+Av^h vt表示质点在t时刻的速度,Avt+h为t与t+h时速度的差值; 5) 更新每个质点的速度和位置:根据速度差值和位置差值对布料中所有质点速度和 位置进行实时更新,完成布料的运动仿真。
【专利摘要】本发明涉及一种基于简化隐式Euler数值积分的布料仿真算法;算法通过对布料中各个质点进行受力分析并计算每个质点所受合力,利用简化隐式Euler数值积分算法计算目标质点的速度和位置并进行实时更新,从而实现布料的仿真。本发明解决了传统算法的稳定性以及显式欧拉积分中小时间片的问题,同时也避免了隐式积分中复杂的计算。
【IPC分类】G06F17-50
【公开号】CN104809319
【申请号】CN201510271008
【发明人】宋雪桦, 万根顺, 王维, 于宗洁, 化瑞, 刘委, 卜晓晓
【申请人】江苏大学
【公开日】2015年7月29日
【申请日】2015年5月25日
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1