[发明专利]一种基于简化隐式Euler数值积分的布料仿真算法在审

专利信息
申请号: 201510271008.6 申请日: 2015-05-25
公开(公告)号: CN104809319A 公开(公告)日: 2015-07-29
发明(设计)人: 宋雪桦;万根顺;王维;于宗洁;化瑞;刘委;卜晓晓 申请(专利权)人: 江苏大学
主分类号: G06F17/50 分类号: G06F17/50
代理公司: 南京苏高专利商标事务所(普通合伙) 32204 代理人: 罗敏
地址: 212013 *** 国省代码: 江苏;32
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 基于 简化 euler 数值 积分 布料 仿真 算法
【说明书】:

技术领域

发明属于布料仿真领域,具体涉及一种基于简化隐式Euler数值积分的布料仿真算法。

背景技术

现实生活中的很多行为都可以用微积分加以描述,织物仿真也是如此。该过程一般是先建立微分方程,然后通过积分法来求解进而实现布料的仿真。

在布料仿真中,常用的积分方法主要有:显式Euler数值积分方法和隐式Euler数值积分方法。显式积分注重的是仿真结果的真实性,其仿真所需的时间不长,工作量较少,但也因此增加了迭代的次数。隐式积分与显性积分相反,其迭代次数比显性积分少,确保了稳定性,能够产生很好的仿真效果。然而,隐式积分同样也存在缺点:由于计算的复杂度较高,导致该算法的计算规模及计算工作量被提升,并且隐式积分对硬件的性能要求较高。混合方法在综合了以上两种方法的优点之后,其性能得到了提升,不过,其能够应用的范围非常有限,仅限于能够将微分方程分成线性和非线性的系统。

显式的积分算法有很多种,比如欧拉法、中点法、四阶龙格-库塔法。其中,显式Euler数值积分方法是最简单的积分方法,它有着较低的求解精度,且该方法拥有良好的并行性和较快的速度,该方法计算量小且易于实现。但是该方法会产生很大的误差,这也是显式Euler算法没有被广泛采用的重要原因之一。

隐式积分算法是在微分方程离散化时,用向后差商代替导数的一种积分方法。隐式积分方法具有无条件的稳定性,最常用的隐式方法就是隐式Euler数值积分方法。隐式积分在保持系统稳定性的同时,能快速的收敛于平衡状态,但这样的隐式方法在质点数较大时,也就是当布料模型大的时候,其计算的复杂程度相当大。要想用隐式积分的方法达到实时的效果,需要较高的计算机硬件需求。

显式欧拉积分方法是一种简单并且快速的积分方法。但是,在该方法中,如果要想取得较好的稳定性,则所选的时间步长必须非常的小。隐式积分一般用于解决方程的刚度问题。它避开了仿真计算中较大的时间步长的情况,同时,它克服了稳定性的问题,但是该方法也存在效率低下等问题。

纯粹的显式Euler数值积分方法或者隐式Euler数值积分方法并不能满足现实的需求。原因在于:显式Euler数值积分方法只能在小步长的前提下才能保证快速计算的稳定性。而隐式Euler积分方法尽管避开了大步长的计算,克服了稳定性问题,但其仍然存在计算效率低的问题。

发明内容

针对传统布料仿真方法存在的问题,本发明提出一种基于简化隐式Euler数值积分的布料仿真算法,通过求解各个质点下一个时间步长的速度和相应的位置,最后对质点的位置进行动态更新,从而实现布料的仿真,解决算法稳定性以及显式欧拉积分中小时间片的问题,同时也避免隐式积分中复杂的计算。

为实现上述目的,本发明具体技术方案如下:一种基于简化隐式Euler数值积分的布料仿真算法,包括如下步骤:

1)受力分析:对t时刻布料中每个质点进行受力分析,受力包括弹簧力阻尼力重力和风力其中,所述弹簧力计算公式如下:

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于江苏大学,未经江苏大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201510271008.6/2.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top