CircleLine_Contact -圆和直线接触模型
1) 模型路径
TYContact.PlaneContact.CircleLine_Contact
2) 图标设计
圆和直线接触模型
3) 功能描述
圆直线接触模型是一个基础接触模型,该模型是一个在二维固定平面点接触模型,在该模型仿真前,首先检测两个接触体的质心是否在一个平面内,如果两物体不在一个固定平面,计算结束,输出警告;如果两物体在一个固定平面内,通过该模型可以计算圆形和固定直线在指定平面中的接触问题。
4) 基本假设
接触体和被接触体材质为均质刚体,有各向同性;
接触体积远小于两物体体积,接触时的区域简化为潜在接触点进行分析;
接触穿透深度相对于物体直径/长度是一个小参数(小于1/100);
摩擦力计算采用基于速度的接触摩擦模型,遵守库仑定律;
接触法向力根据赫兹理论简化为基于罚函数的非线性阻尼弹簧计算;
接触体除了刚体的质心点和a、b 端口点外,还利用相关参数和方向向量表示物体的表面信息;
两接触体在指定平面XY、XZ或YZ内运动,只有3个自由度;
5) 模型接口
接口类型 | 接口 | 变量 | 范围/单位 | 数据维度 | 数据类型 | 描述 |
多体接口 | frame_a | r_0 | m | [3] | Real | 位移 |
R | - | [3,3] | -- | 姿态模型 | ||
f | N | [3] | Real | 力向量 | ||
t | Nm | [3] | Real | 力矩向量 | ||
多体接口 | frame_b | r_0 | m | [3] | Real | 位移 |
R | - | [3,3] | -- | 姿态模型 | ||
f | N | [3] | Real | 力向量 | ||
t | Nm | [3] | Real | 力矩向量 | ||
布尔接口 | contact | output | -- | [1] | Boolean | 接触状态 |
6) 模型参数
tab参数 | group参数 | 参数名称 | 默认值 | 单位 | 参数描述 |
常规 | 参数 | planesort | "xy_plane" | / | 指定平面(与物体状态相同) |
animationforce | true | / | =true显示接触力动画 | ||
几何参数 | Points | { {-1, 0, 0}, {1, 0, 0} } | m | 线段两端点相对frame_b的位置矢量 | |
r1 | 0.2 | m | 圆半径 | ||
r2 | 0.05 | m | 线半径(可以设置为0) | ||
接触力 | 法向力 | k | 1e8 | N/m | 用于计算法向力的弹簧(刚度)系数 |
d | 10000 | N.s/m | 用于计算法向力的阻尼系数 | ||
n1 | 1.5 | -- | 刚度指数 | ||
n2 | 0 | -- | 压痕指数 | ||
p_max | 0.0001 | m | 最大侵入深度 | ||
摩擦曲线 | mue_k | 0.03 | 1 | 动摩擦系数 | |
mue_s | 0.04 | 1 | 静摩擦系数 | ||
mue_r | 0 | 1 | 滚动摩擦系数 | ||
k_v | 0 | s2/m | 粘性摩擦的梯度,摩擦力正比于相对速度的系数 | ||
v_e1 | 0.01 | m/s | 静摩擦的极限速度 | ||
v_e2 | 0.1 | m/s | 动摩擦的极限速度 | ||
动画 | 表面动画 | animation1 | true | -- | 为真时,表面1动画显示 |
animation_BCS1 | true | -- | 为真时,表面1坐标系动画显示 | ||
color1 | {255, 128, 0} | -- | 表面1颜色 | ||
animation2 | true | -- | 为真时,表面2动画显示 | ||
animation_BCS2 | true | -- | 为真时,表面2坐标系动画显示 | ||
color2 | {255, 128, 0} | -- | 表面2颜色 | ||
接触点动画 | animation | true | -- | = true表示显示接触点动画 | |
radiusContactPoint | 0.0025 | m | 接触点显示动画的半径 | ||
colorContactPoint1 | {0, 180, 0} | -- | 刚体1上接触点的颜色 | ||
colorContactPoint2 | {255, 0, 255} | -- | 刚体2上接触点的颜色 | ||
圆面几何厚度 | h | 0.001 | m | 圆面几何厚度 |
7) 模型变量
变量类型 | 变量名称 | 单位 | 类型 | 描述 |
中间变量 | Lines | m | Real | 线接触定义 |
Cd | N.s/m | Real | 阻尼系数 | |
p_norm1[3] | m | Real | 接口1相对接口2方向向量 | |
Vp[3] | m/s | Real | 两接触点相对速度矢量 | |
Vv[3] | m/s | Real | 两接触点法向相对速度矢量 | |
vv | m/s | Real | 两接触点法向相对速度幅值 | |
Vh[3] | m/s | Real | 两接触点切向相对速度矢量 | |
vh | m/s | Real | 两接触点切向相对速度幅值 | |
Pin_l | / | Real | 球心是否在线段内 | |
b_l | m | Real | 球心到线段的最短距离 | |
Pv_l | m | Real | 垂足到球心的单位向量 | |
a | / | Real | AP向量(A到球心)投影在线段上的长度 | |
结果变量 | contact | -- | Boolean | 接触状态 |
ds | m | Real | 穿透深度 | |
Fn[3] | N | Real | 接触法向力 | |
Ff[3] | N | Real | 接触摩擦力 | |
F[3] | N | Real | 接触力合力 | |
Ts[3] | N.m | Real | 球线接触力矩 | |
Tf_s[3] | N.m | Real | 球线接触反力矩 |
8) 参数设置
(1). 首先设定两接触体的仿真平面,使接触体和被接触体在指定平面仿真;
(2). 圆面和直线几何参数与物体相同,均为外径参数,需要都为非零参数;
(3). 接触刚度和阻尼、最大侵入深度均为正值,阻尼系数推荐小于刚度系数的1%接触刚度系数通常设置为1~2.2范围内;
(4). 动画设置中,接触面的动画和坐标系显示,设置后可以和外部刚体的动画重合,在验证正确性后,在仿真时推荐在接触模型中设置表面,关闭刚体动画显示;
(5). 触点动画为小直径球体,只显示动画不参与计算,其数值参考表面属性设置,接触点直径要与接触体的直径有明显区别,小于接触体最小边的十分之一;
9) 模型原理
(1). 接触点检测
在平面内,圆和直线的接触检测过程如下:
圆和直线接触检测模型原理
首先,需要判断b的投影点是否在线段上,然后计算投影垂线的方向向量和坐标,利用内置的点线函数计算点的垂线在线段上的状态参数Pin_l、垂足到线段的单位向量Pv_l,AP向量(A到球心)投影在线段上的长度a;
然后利用距离参数判断圆和直线是否接触并计算距离;
ds = max(r1 + r2 - b_l, 0);
Contact = if ds > 0 and Pin_l > 0 then true else false;
(2). 接触力计算
在接触模型中,接触力法向力采用罚函数进行计算,其计算公式和基础函数解如下所示:
其中,
I、J分别为两个物体的名字
x为球心到接触点的距离
x1为球心到球外表面的距离
p_max为最大穿透深度
n1为刚度指数,n2为压痕指数
当 x>x1时,没有穿透发生,接触法向力为 0。
当 x<x1时,穿透发生在 J物体的接触点上,法向力大于 0,穿透距离px1x。
当 p<pmax,穿透阻尼系数使用三次阶跃函数计算。
当 p<pmax,穿透阻尼系数为 dmax 。
(3). 接触摩擦力计算
在该模型中可以选择是否计算接触摩擦力,如果计算接触摩擦力,使用相对简单的基于速度的接触摩擦模型计算接触摩擦力。
摩擦模型计算
图示在此模型中的参数如下所示:
V:接触点的滑动速度
Vs:静摩擦转换速度
Vd:动摩擦转换速度
s:静摩擦系数
d:动摩擦系数
具体摩擦系数参数设置与两接触材料的类型有关。