MDC椭球

MDC椭球体是一个MATLAB®代码,用于计算非共形接触情况下两个椭球面之间的最小距离。所实现的方法是专门为刚性接触检测而设计的,在这种情况下,表面处于凸-凸相互作用中,并且在接触时不会变形或改变局部几何特性。因此,在刚性接触中,表面可以共享一个共同的几何轨迹,即表面可以重叠。最小距离的计算是通过数值求解一个非线性方程组,用牛顿-拉斐逊方法和解析雅可比进行的。非线性方程组对应于一组必要的(虽然不是充分的)几何约束,其解由具有共同法线方向的一对点组成。为了将解空间限制在唯一的一对点上,考虑了不同类型的约束:共线约束(向量叉积);正交约束(向量内积);以及轨迹约束(点属于曲面)。为了保证唯一性,考虑了一个附加的不相等条件,即所有候选解的距离。所有的约束都有一个定义良好的解析表达式,该表达式涉及普通法向概念中包含的几何实体,即法向量、切线向量、双法线向量和距离向量,这些向量只能通过隐式曲面泛函来推导。接触检测是通过简单地计算表面之间最小距离的符号来执行的。接触检测的三种状态是:(i)无接触(表面接触)最小距离大于零);(ii)外部接触(单点接触最小距离等于零);和(iii)接触(表面重叠最小距离小于零)。给出了法向量的解析表达式,通过向量演算得到隐式函数的梯度,证明了Householder变换在推导切向量和双正规向量时是有用的。Householder变换用于提供三个正交向量的基,其中一个向量与曲面法线共线。近似查询也被实现来测试粗糙(使用传统的边界球)和窄(有单独条件)的接触检测。请注意,邻近性查询不计算椭球体之间的最小距离。应用MDC椭球体程序最初开发用于多体系统接触分析的计算模拟。然而,该方法在计算物理中的分子模拟、地质力学中的不连续力学系统建模(离散元法)、生物力学中的仿人设计、虚拟现实仿真和计算机动画等应用科学领域也有重要的应用。