MIME-VER-132 — Misalignment-Induced Field Tilt at the UMR#
Date: 2026-04-30
Producer under test: mime.nodes.actuation.permanent_magnet.PermanentMagnetNode
Algorithm ID: MIME-NODE-101
Benchmark type: Mode 2 (Analytical)
Test file: tests/verification/test_actuation_chain_equivalence.py::test_ver132_misalignment_field_tilt
Acceptance: field-tilt angle at the UMR position grows strictly monotonically with the magnet’s lateral offset over a 0–6 mm sweep; on-axis tilt < 1°
Goal#
Verify the upstream cause of the misalignment-induced step-out
reduction described in the approved plan
(/home/nick/.claude/plans/hi-familiarize-yourself-with-giggly-toucan.md).
The user’s stated phenomenon:
Slight misalignment with the actuator (i.e. not directly above) causes the UMR propulsion vector to be slightly non-parallel with the vessel. This effect increases as the offset increases.
This benchmark isolates the field-side cause — the dipole field at the UMR location tilts off the vessel-perpendicular plane as the magnet moves laterally. Downstream, that tilt drives the UMR axis to follow it (via $T = m \times B$), which produces the wobble and the lateral wall pressure that ultimately reduces step-out.
A direct benchmark of step-out reduction requires a calibrated
ContactFrictionNode, which is out of scope for this plan (per
plan §”Out of Scope”). The plan therefore declares MIME-VER-132’s
quantitative tolerance on UMR-axis tilt deferred until that
calibration lands; here we assert the upstream cause’s monotonicity,
which is a falsifiable claim about the dipole field formula.
Configuration#
Parameter |
Value |
|---|---|
Magnet standoff $z$ |
0.05 m |
Magnet rotation rate |
10 Hz about $+\hat z$ |
Magnet geometry |
$R = 1$ mm, $L = 2$ mm |
Field model |
|
Lateral offsets swept |
0, 1, 2, 4, 6 mm (in $+\hat x$) |
Target |
UMR at origin |
$\Delta t$ |
$10^{-4}$ s |
Procedure#
For each offset:
Spin the motor up to its commanded $\omega = 2\pi \cdot 10$ Hz at the standoff with the lateral offset applied to its parent pose.
Sample the magnet’s instantaneous $B$-field at the UMR (origin) over one full rotation period.
Take a sample after spin-up and compute the tilt angle of $B$ off the xy plane: $\arcsin(|B_z| / |B|)$.
Assert:
The list of tilt angles is strictly monotonically increasing with offset.
The on-axis (offset = 0) tilt is below 1°.
Result#
PASS when both checks hold.
The on-axis tilt is small (not exactly zero because the motor is in a brief PI-startup transient when the snapshot is taken, and the dipole formula evaluated at one instant is not exactly co-planar with the xy plane unless the dipole vector is also in the xy plane at that instant).
Scope and Limitations#
This benchmark validates the field-side chain only (i.e., the output of
PermanentMagnetNode). Whether the UMR’s axis tilts as predicted by $T = m \times B$ requires a coupled simulation, which is the subject of follow-on work onceContactFrictionNodeis calibrated.The dipole-only formula is valid here because the standoff is in the far-field regime ($z \approx 50 R_{\text{magnet}}$). At smaller standoffs the bench would need to switch to
current_looporcoulombian_poles.
Reproducibility#
JAX precision: x64.
Run:
JAX_PLATFORMS=cpu .venv/bin/python -m pytest tests/verification/test_actuation_chain_equivalence.py::test_ver132_misalignment_field_tilt -x -q.