seek-4 verification harness (BT_FORCE_SEEK) + the full supercharge/overheat

arc measured live

BT_FORCE_SEEK=<idx> pins the seek gear in MyomersSimulation (env-gated
bench; the eng-page toggle stays the authentic path) -- the supercharge
loop was unreachable on a headless rig.

Measured (Black Hawk, WALLTEST, full autodrive at gear 4):
- cold: drive=1.42843 (exactly 0.9999/0.7), demand 87.85, actual run
  speed 53.7 u/s = 193 kph -- SUPERCHARGE (Oracle's pod figure: 182 for
  a 75-tonner; the 60t Black Hawk runs faster);
- heat at ratio^2 = 2.04: myomer T 531 -> 1765 (deep past the 1000
  degradation line);
- heatFactor governor: drive 1.43 -> 1.10 -> 0.62 (the supercharged mech
  slows BELOW normal while cooked), coolant pulls T back (1765 -> 740),
  drive recovers to ~0.77, oscillates -- the mech self-settles into a
  thermally-limited cruise: 'top speed for less than a minute' exactly;
- the hard freeze (drive -> 0: demand AND turn zeroed) is the same code
  path past failure temp, reachable when the coolant loop is compromised.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019Zh7PTkFy4KwTzVighLR9J
This commit is contained in:
Joe DiPrima
2026-07-31 11:00:31 -05:00
co-authored by Claude Fable 5
parent 905a4a86c0
commit 62fc8409b6
+15
View File
@@ -516,6 +516,21 @@ void Myomers::MyomersSimulation(Scalar time_slice)
// so the resulting state is identical to the binary's once-at-assembly.
RegisterMaxOutput(); // @004b8ef0
// BENCH (BT_FORCE_SEEK=<idx 0..max>): pin the seek gear without the eng-page
// button -- the seek-4 supercharge/overheat loop is otherwise unreachable
// on a headless rig. Env-gated, off by default; the toggle handler stays
// the authentic path.
{
static int s_forceSeek = -2;
if (s_forceSeek == -2)
{
const char *e = getenv("BT_FORCE_SEEK");
s_forceSeek = (e != 0 && *e != '\0') ? atoi(e) : -1;
}
if (s_forceSeek >= 0 && s_forceSeek <= maxSeekVoltageIndex)
currentSeekVoltageIndex = s_forceSeek;
}
// 1. @004b8bab -- the base electrical state machine. MUST come first, and
// must precede any heat-model gate: OwnerAdvancedDamage() is off below
// veteran, so gating ahead of this denied the machine to most pilots.