2. 动子运动学与占位建模
在 XPlanar 系统中,动子(Mover)是承载工件、在定子(Tile)阵列上方自由悬浮运动的执行单元。碰撞检测的第一步,不是去比较两个动子的中心距离,而是把每个动子抽象成一个随时间变化的“占位体”,并在此基础上叠加安全边界。本节要建立的,正是这样一个可计算、可比较、可随状态更新的对象模型。
一、动子的几何与物理参数
XPlanar 动子常见规格包括单磁体、双磁体等不同尺寸,其外形通常为矩形或正方形。建模时至少需要以下参数:
- 本体尺寸:长 L、宽 W,例如某型号动子 L=120 mm、W=120 mm;
- 有效载荷:动子可承载的工件质量 m,以及工件自身的几何外廓;
- 悬浮高度:动子底面与定子表面之间的气隙 h,典型值在 0.5~2 mm 量级;
- 运动自由度:X、Y 平面平移,绕 Z 轴旋转角度 θ,以及绕 X、Y 轴的倾斜(通常用于调平或姿态控制)。
需要特别注意的是,工件往往比动子本体更大或形状不规则。因此占位模型不能只用动子本体尺寸,而应取“动子本体 ∪ 工件外廓”的并集,作为实际占位轮廓。若工件悬出动子边缘,占位区域会显著扩大,直接影响安全间距的取值。
二、坐标系与位姿描述
为统一描述,先约定:以定子阵列平面为 XY 平面,Z 轴垂直向上,动子中心在 XY 平面的投影为 (x, y),旋转角 θ 为动子本体长边与 X 轴正方向的夹角,逆时针为正。于是动子的位姿可写为:
P(t) = [ x(t), y(t), θ(t), h(t) ]
其中 h(t) 为悬浮高度。在正常悬浮工况下 h 基本恒定,但在起浮、降落或异常跌落时 h 会快速变化,此时占位体在 Z 方向上的投影也会改变,碰撞判断需要引入高度维度。
三、占位区域的数学描述
若动子本体为矩形,其局部坐标下的四个角点为 (±L/2, ±W/2)。经过旋转 θ 和平移 (x, y) 后,世界坐标下的角点可表示为:
x_i = x + (L/2)·cosθ·s_i - (W/2)·sinθ·t_i
y_i = y + (L/2)·sinθ·s_i + (W/2)·cosθ·t_i
其中 (s_i, t_i) ∈ {(+1,+1), (+1,-1), (-1,+1), (-1,-1)}
由四个角点即可构成一个旋转矩形,这就是动子的占位区域(Occupancy Region)。若工件外廓更复杂,可用凸多边形或包围盒近似,再统一变换到世界坐标。
四、安全边界与膨胀模型
仅有占位区域还不够。实际调度中必须预留安全边界,用于吸收定位误差、通信延迟、控制超调和测量噪声。常用做法是对占位区域做“膨胀”(Minkowski 和):
SafeRegion = OccupancyRegion ⊕ Disk(r_safe)
r_safe = r_pos + r_comm + r_ctrl + r_margin
其中 r_pos 为定位误差,r_comm 为通信周期内动子可能移动的距离,r_ctrl 为控制超调量,r_margin 为工程余量。例如:定位误差 0.2 mm、通信周期 1 ms 内最大速度 1 m/s 对应 1 mm、控制超调 0.5 mm、余量 0.3 mm,则 r_safe ≈ 2.0 mm。这个数值直接决定了两个动子中心距离的最小允许值。
五、运动自由度与占位体的动态更新
动子在运动过程中,占位区域不是静态的。每经过一个控制周期,位姿 P(t) 都会更新,占位区域的四个角点随之重新计算。若动子同时旋转,其外接圆半径会变化,安全边界也需按当前姿态重新膨胀。工程上常用两种简化:
- 外接圆近似:用动子外接圆半径 R = √((L/2)² + (W/2)²) 作为占位半径,计算简单但偏保守;
- 旋转矩形精确计算:用分离轴定理(SAT)判断两个旋转矩形是否相交,精度高但计算量略大。
对于实时调度,通常先用外接圆做快速粗筛,再用 SAT 做精确复核,兼顾速度与准确性。
六、建模成果与参数示例
下表给出一个可直接用于碰撞检测的动子对象模型示例,参数为教学假设值,实际工程需以设备手册和现场标定为准。
| 字段 | 符号 | 示例值 | 说明 |
|---|---|---|---|
| 本体长度 | L | 120 mm | 动子长边尺寸 |
| 本体宽度 | W | 120 mm | 动子短边尺寸 |
| 有效载荷 | m | 0.5 kg | 含工件质量 |
| 悬浮高度 | h | 1.0 mm | 正常悬浮气隙 |
| 旋转角 | θ | -180°~+180° | 绕 Z 轴,逆时针为正 |
| 定位误差 | r_pos | 0.2 mm | 位置控制残差 |
| 通信位移 | r_comm | 1.0 mm | 1 ms 周期内最大位移 |
| 控制超调 | r_ctrl | 0.5 mm | 动态响应过冲 |
| 工程余量 | r_margin | 0.3 mm | 安全裕度 |
| 安全半径 | r_safe | 2.0 mm | 四项之和 |
完成上述建模后,每个动子就拥有了一个随时间更新的占位体:由位姿 P(t) 驱动,由几何参数决定形状,由安全半径决定膨胀量。后续的碰撞检测、路径规划和调度决策,都将基于这个统一的对象模型展开。