System Architecture

Hybrid Throttle Control
for Energy-Constrained Autonomy

WHACO separates directional planning from energy management. The planner sets heading. Our system modulates force — adapting to wind, fuel state, and mission geometry in real time.

01 — Control Architecture

Two-Stage Hybrid Pipeline

WHACO operates downstream of any existing route planner. It receives a unit direction vector and replaces only the magnitude decision. No modification to the planner is required.

┌────────────────────┐ ┌────────────────────┐ ┌──────────────┐ │ │ unit direction d │ │ thrust vector d×m │ │ │ ROUTE PLANNER │ ──────────────────────→ │ WHACO THROTTLE │ ──────────────────────→ │ ACTUATOR │ │ (MPC / Any) │ │ MODE SELECTOR │ │ │ │ │ │ │ │ │ └────────────────────┘ └────────────────────┘ └──────────────┘ ▲ │ ┌────────┴────────┐ │ SENSOR FUSION │ │ │ │ • local wind │ │ • fuel state │ │ • distance │ │ • look-ahead │ └─────────────────┘
Bolt-on architecture: WHACO requires no access to the planner's objective function, no retraining, and no modification to the navigation stack. It inserts at the thrust output layer.
02 — Mode-Switching Policy

Eight Discrete Thrust Modes

WHACO selects thrust magnitude from eight discrete modes based on real-time environmental sensing. Mode selection is stateless — no history buffer, no learned weights, no hidden state.

ModeThrustTrigger ConditionPurpose
RIDE20%Strong tailwind (alignment > 3.0)Harvest favorable conditions
CONSERVE30%High fuel pressure (fuel_ratio < 0.5)Extend range under depletion
BRAKE40%Look-ahead: headwind increasingReduce burn before adverse zone
CRUISE55%Default — neutral conditionsBaseline efficient transit
RECOVER55%Post-anomaly stabilizationSmooth re-entry after override
BOOST75%Look-ahead: tailwind increasingAccelerate into favorable zone
SPRINT85%Strong headwind + surplus fuelPush through adverse conditions
PUNCH100%Terminal approach or stall overridePrevent terminal spiraling / stall recovery

Mode Transition Logic

// Evaluated every control step (~15μs) if distance_to_goal < 15 and headwind_at_goal > 2.0: mode = PUNCH // terminal override — highest priority elif fuel_ratio < 0.5: mode = CONSERVE // fuel preservation elif wind_alignment > 3.0 and fuel_ratio > 0.8: mode = RIDE // harvest tailwind elif wind_alignment > 1.0 and fuel_ratio > 1.2: mode = SPRINT // exploit surplus elif lookahead_delta > 0.5: mode = BOOST // conditions improving ahead elif lookahead_delta < -0.5: mode = BRAKE // conditions worsening ahead else: mode = CRUISE // default transit
Terminal awareness is the critical mechanism. Within 15 units of target, WHACO probes wind conditions at the goal position. If headwind exceeds threshold, full thrust prevents the terminal spiraling failure mode that defeats low-thrust approaches.
03 — Quadratic Fuel Dynamics

The Non-Linear Tradeoff

Fuel consumption follows a quadratic cost model. This creates the asymmetry that WHACO exploits: small reductions in thrust yield disproportionate fuel savings.

// Fuel cost is quadratic in thrust magnitude fuel_consumed = k × |thrust|² × dt // Consequence: 2× thrust = 4× fuel burn // RIDE (20%) burns 16× less fuel than PUNCH (100%) // CRUISE (55%) burns 3.3× less fuel than PUNCH (100%)

Fuel Pressure Estimation

WHACO continuously estimates whether remaining fuel is sufficient for mission completion at moderate thrust:

fuel_ratio = current_fuel / estimated_fuel_needed estimated_fuel_needed = f(distance, cruise_thrust_55%, wind_assisted_speed) // fuel_ratio > 1.0 → surplus → enable SPRINT/RIDE // fuel_ratio < 0.5 → pressure → switch to CONSERVE // fuel_ratio < 0.3 → critical → evaluate rescue protocol
ModeRelative Fuel BurnRelative SpeedScenario
RIDE (20%)0.04×LowStrong tailwind does the work
CONSERVE (30%)0.09×LowFuel critical — extend range
CRUISE (55%)0.30×MediumEfficient steady-state
SPRINT (85%)0.72×HighTime-optimal in favorable conditions
PUNCH (100%)1.00×MaximumTerminal approach — mission-critical
04 — Compute Overhead

Negligible Pipeline Cost

WHACO's mode selection logic is computationally trivial — a series of scalar comparisons with no matrix operations, no optimization loops, and no memory allocation.

15.1µs
WHACO per call
836.9µs
MPC per call
1.8%
Pipeline overhead
~2KB
Code footprint
PropertyValue
Compute per call15.1 microseconds
Memory allocationZero heap — stack only
State dependenciesNone — stateless evaluation
Floating-point operations~20 comparisons + 3 divisions
Suitable forBare-metal MCU, RTOS, Linux companion, FPGA
Control loop compatibility50Hz (20ms budget) → 0.075% utilization
Deployment implication: WHACO can run on the same microcontroller as the autopilot firmware. No companion computer required. No GPU. No RTOS dependency.
05 — Integration Specification

Drop-In Interface

WHACO exposes a single function call with minimal input requirements. All inputs are already available in standard autopilot telemetry streams.

// INTERFACE INPUT: planned_heading : unit vector (2D/3D) — from existing planner local_wind : vector (2D/3D) — from onboard sensing / EKF fuel_remaining : scalar — battery SOC or fuel gauge distance_to_goal : scalar — from navigation state noise_estimate : scalar (optional) — sensor diagnostics OUTPUT: throttle_magnitude : scalar in [0, max_thrust] // GATING RULE ENABLE when fuel_budget >= 4.0 AND noise_sigma < 4.0 DISABLE and revert to planner native throttle otherwise

PX4 Integration VALIDATED

ComponentSpecificationStatus
AutopilotPX4 v1.14.3 (SITL + jMAVSim)7/7 pass
Insertion pointOFFBOARD velocity commands, thrust scaled by WHACO modeValidated
Wind sensingGroundspeed-based proxy (EKF2 fallback) + stall detectionValidated
Energy statePX4 SYS_STATUS battery → fuel model mappingValidated
Control rate50Hz companion loop, 10Hz telemetry captureValidated
TelemetryMAVLink: mode transitions, fuel_pressure, wind_alignment, battery, posValidated