sweepTorqueArtifact

Sweep driver for the velocity-regime round-off artifact of scenarioCompareTorque.

Two sweeps, both storing JSON next to the other comparison metrics:

  1. Velocity sweep: propagate the torqued body with no gravity but a nonzero inertial drift velocity. A force-free translation cannot torque the body about its own center of mass, so the attitude change relative to the zero-velocity run is a direct measure of each engine’s velocity-dependent error, with gravity removed as a confound.

  2. dt sweep: repeat the scenario’s orbiting-vs-rest discriminator over a range of integrator steps, to test whether the artifact converges away with the step size (truncation error would; round-off does not).

Results are written to results/sweepTorqueArtifact.json.

sweepTorqueArtifact.dtSweep(dts, tf, recordDt, mu)[source]

Repeat the scenario’s orbiting-vs-rest discriminator per integrator step.

sweepTorqueArtifact.run(speeds=(0.0, 750.0, 2500.0, 7500.0), dts=(0.4, 0.2, 0.1, 0.05, 0.025, 0.0125), tf=600.0, recordDt=1.0, velocitySweepDt=0.1, saveJson=True, resultsDir=None)[source]

Run both torque-artifact sweeps and return the generated metrics.

sweepTorqueArtifact.runBSMDrift(speed, dt, tf, recordDt)[source]

Torqued body, no gravity, constant inertial drift velocity speed [m/s].

sweepTorqueArtifact.runMujocoDrift(speed, dt, tf, recordDt)[source]

Same drift case with the MJScene engine.

sweepTorqueArtifact.velocitySweep(speeds, dt, tf, recordDt)[source]

Max attitude deviation vs the zero-velocity run, per engine, per speed.