【技术实现步骤摘要】
实时可交互的高精度绳缆仿真方法及系统
[0001]本专利技术涉及的是一种材料科学领域的技术,具体是一种实时可交互且平均误差低于百分 之三的绳缆仿真方法及系统。
技术介绍
[0002]绳缆是生活中最常见的设备之一。使用计算机模拟绳缆运动状态一直颇受人们关注。相 关技术中,对绳缆具有较高物理精度的仿真算法和技术已取得一系列进展,例如商业软件 Abaqus采用有限元法(FEM)等。这类经典算法的共有特征是基于力推导出运动方程,并采用有 限元法(FEM)或有限差分法(FDM)求解这些非线性的偏微分方程,通常能获得物理准确的结果。 但这类基于力的方法主要缺点在于求解刚性微分方程的计算效率很低,无法达到实时。
[0003]一些注重图形领域实时互动应用的研究,为降低计算开销,提出一些牺牲物理精度以换 去更高性能的快速模拟方法,例如基于位置的动力学方法(PBD)。该类方法常用于游戏等实时 图形应用中模拟绳缆,具有较高的计算效率,但缺点在于参数物理意义不明确,物理精度有待 提高。因此在算力资源较少的PC设备上,进行高物理精度的实时绳缆物理仿真,仍具有一定 的挑战。
技术实现思路
[0004]本专利技术针对现有实时图形应用中绳缆仿真物理精度不够高的问题,提出一种实时可交互 的高精度绳缆仿真方法及系统,基于改进投影力学算法,将朝向和角速度加入原有投影力学框 架,并利用矩阵分解和缓存加速,能够实时模拟各种材料的绳缆受力、碰撞后的运行状态,且 能够保证达到与商用有限元软件离线模拟相近的精度,提高在实时可交互应用中模拟绳 ...
【技术保护点】
【技术特征摘要】
1.一种实时可交互的高精度绳缆仿真方法,其特征在于,包括初始化阶段和仿真阶段,其中:初始化阶段根据待仿真绳缆的初始状态,将连续的绳缆离散处理并存储后设定仿真参数;仿真阶段采用改进后的投影力学算法,根据基于Cosserat绳杆模型推导出的运动约束,使用矩阵分解和缓存加速,在实时性的基础上输出绳缆每个逻辑帧的运动状态,实现绳缆仿真的物理精度增强。2.根据权利要求1所述的实时可交互的高精度绳缆仿真方法,其特征是,所述的初始化阶段具体包括:第一步,获取用户输入的用于定义绳缆中心线的控制点:用户输入控制点;获取上述在三维空间中的控制点后,选用具有C1连续性,经过所有控制点的Catmull
‑
Rom样条曲线作为绳缆的中心线;第二步,获取用户输入的采样频率N:根据Cosserat理论模型的定义,记长度为L的绳缆的中心线为在中心线上根据弧坐标s均匀的采样N个点:r(0),r(L/N
‑
1),r(2L/N
‑
1)
…
r(L),则绳缆被分为N
‑
1段,每段由两个顶点{x
i
,x
i+1
}和一个代表旋转的四元素u
i
定义;采用u
i
旋转世界坐标系后即得到Cosserat绳杆模型中的局部坐标系,则N个顶点为粒子,绳缆被分为的N
‑
1段为离散绳段,作为存储在计算机里的数据结构;第三步,用户输入绳缆的几何参数和材料参数:根据用户输入的横截面半径,在每个粒子处绘制对应半径的圆面,该圆面的法线方向为中心线在该点的切向方向;依次连接这些圆面上的点组成三角网格,从而还原出绳缆的几何模型;第四步,接受用户输入的仿真参数,包括:仿真所需模拟运动的整体时长,仿真绳缆运动状态每次变化的时间步长,每次状态变化计算的迭代次数;第五步,存储绳缆的几何参数、材料参数,以及粒子和离散绳段的信息。3.根据权利要求2所述的实时可交互的高精度绳缆仿真方法,其特征是,所述的粒子具有质量、位置、速度属性,初始位置设置为采样点处,初始速度为0,质量为绳缆密度乘以相邻离散绳段长度平均值;所述的离散绳段具有朝向、角速度、几何惯性矩、初始长度属性,初始朝向设置为绳缆中心线在该离散绳段的起始粒子处的切线方向,初始角速度为0,初始长度为离散绳段对应两个顶点间的距离,几何惯性矩根据横截面半径算出;所述的几何参数,包括初始长度、横截面半径;所述的材料参数,包括密度、杨氏模量、泊松率。4.根据权利要求1所述的实时可交互的高精度绳缆仿真方法,其特征是,所述的仿真阶段具体步骤:步骤1)将模拟绳缆运动的整体过程,根据设定划分为若干待计算的逻辑帧;步骤2)在每个逻辑帧内,输入绳缆上一帧的运动状态,使用改进的投影力学算法计算绳缆这一帧的运动状态,具体包括:2.1)预测绳缆位置和朝向:根据粒子上一帧的速度和位置,以及这一帧所受的合外力,预测粒子这一帧的位置,具体为:其中:为这一帧预测的所有粒子的位置,x
(t)
为上一帧所有粒子的位置,h为设定的时间步长,v
(t)
为上一帧所有粒子的速度,M为所有粒子质量组成的对角矩阵,f
ext
为粒子所受的合外力;2.2)根据离散绳段上一帧的角速度和朝向以及这一帧所受的合外力矩,预测离散绳段
这一帧的朝向,具体为:其中:为离散绳段这一帧的朝向,u
(t)
为离散绳段这一帧的朝向,ω
(t)
为离散绳段的角速度,由上一帧运动状态得到,τ为合外力矩,由用户输入、碰撞处理或动画设计得到;对角矩阵阵代表中心线上绳段的几何惯性矩,由于在线性求解的过程中将四元数视为四维向量,结合四元数定义可知J
n
=l
n
ρdiag(0,J1,J2,J3),其中l
n
为该绳段初始长度;当整条绳缆是均匀的,因此各处采用同样的密度ρ;J1,J2,J3为横截面的几何惯性矩,当横截面为圆形时可由算出;2.3)初始化约束:约束包括由Cosserat模型推导出的势能约束,以及为增强物理表现真实性和互动性而额外添加的碰撞约束和动画驱动的约束,其中势能约束在绳缆参数确定后不再变化,仅需在修改绳缆参数时初始化;碰撞约束和动画驱动的约束随着绳缆的运动和用户的交互而发生改变,需要在每一帧重新初始化,具体包括:i)初始化由Cosserat模型拉伸、剪切势能推导出的约束为ii)初始化由Cosserat模型弯曲、扭转势能推导出的约束为iii)初始化碰撞约束为iii)初始化碰撞约束为以及iv)初始化动画约束为其中:W
SEi
(q,p
i
)为当前粒子p
i
处状态和目标状态的拉伸、剪切势能差,min代表该约束为最小化该势能差;Γ
n
为衡量拉伸、剪切程度的应变,等于该粒子在中心线切线上的方向向量,减去以该粒子为起始粒子的离散绳段的朝向方向向量;2.4)使用基于位置的动力学方法(PBD)求解动画约束:确定动画关键帧时间、关键帧的状态信息和插值方式,计算出每个逻辑帧所在时间点的状态信息;所述的状态信息包括:由动画控制的粒子的位置、离散绳段的朝向,其求解方法与Macklin在拓展的位置动力学方法(XPBD)中求解固定点约束相似,只不过目标固定点位置设置为状态信息中由动画控制的粒子的位置;2.5)对所有由势能推导出来的约束,求解该约束的投影位置,即满足约束i,且与当前运动状态q的广义距离最小处,具体为:求解使得当前运动状态q与约束i下某位置p
i
的广义距离取到最小值p
i
即该约束的投影位置,其中:A、B和S为根据约束构造的常数矩阵,w
i
为约束对应的非负权重,δ
C
为指示函数,当且仅当投影位置p
i
满足约束状态时为0,不满足状态时为无限大;2.6)基于由势能推导得到的约束,求得当前帧运动状态,即代表运动状态的向量q,使其实现步骤2.5中的投影位置最小,具体为:其中:q为所求的当前帧运动状态,包含所有粒子的位置和所有离散绳段的朝向,即q=[x1,
…
,x
N
,u1,
…
,u
N
‑1],对角矩阵M,对角线上元素为为所有粒子...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。