Solver
Solver Changelog
Every simulation result is stamped server-side with the solver version that produced it — the PROM v{N} chip on the results page links here. The version bumps whenever any simulation model (propeller, motor, battery, or system solver) changes results.
The solver lineage predates ThrustLab by several versions; this public changelog starts at v4.0 — the model-accuracy release — and earlier history is not retro-seeded.
v4.1 — Propeller power accuracy
2026-06-13 · propeller
- Improved the accuracy of predicted propeller power against wind-tunnel data. Reported propeller power rises by about 0.5% across the propeller catalog; thrust is unchanged.
The propeller photo-to-geometry importer was also hardened in the same release window; those changes do not affect simulation results and are not a results-version change on their own.
v4.0 — Model-accuracy release
2026-06-10 · propeller, motor, PROM
This release closes a systemic thrust over-prediction / current under-prediction bias identified against wind-tunnel and manufacturer bench data. Models changed: propeller, motor, and the PROM system solver.
Propeller: high-tip-speed thrust accuracy
Removed thrust over-prediction at high tip speeds — the propeller model no longer extrapolates beyond its validated operating envelope. Results inside the envelope are unchanged. Pitch-to-diameter is now derived from the actual blade geometry instead of the propeller name.
System: ESC losses now drawn on the DC bus
ESC losses are now fully accounted as current on the DC bus, closing an energy-balance leak. Displayed bus current, voltage sag, SOC depletion, flight time, and pack heating rise by the ~3–7% the bus previously under-read.
Motor: realistic electrical resistance
Catalog motor resistance is now interpreted the way manufacturers publish it, and a realistic ESC + wiring series-resistance default replaces the previous zero-resistance assumption, alongside a wire-gauge preset. Full-throttle RPM median error against bench data: +0.4%.
Motor: realistic temperature prediction
Motor temperature prediction now accounts for motor size and cooling airflow, replacing a one-size-fits-all assumption that produced unrealistically high temperatures on large motors. Each rotor group can select its cooling condition: cowled (still air), propeller exit airflow (default), or a custom air velocity / direct thermal resistance. The results page flags any rotor group that reaches the winding (155 °C) or magnet (120 °C) thermal limits.
Motor: part-throttle accuracy
Part-throttle current and RPM for six-step (BLDC) ESCs now match published bench data substantially better (40–70% throttle band current median improved from 0.94 to 0.99); full-throttle results are unchanged. See the throttle-semantics note below.
Results
Results now carry solver_version (this stamp), the per-rotor applied motor cooling air velocity, and thermal-limit flags when the 155 °C / 120 °C caps are hit.
ESC type: API default vs app default
The web app defaults to esc_type="six_step" (the hobby BLDC ESC model), while the public API defaults to esc_type="foc". The two models differ by roughly +4.7% RPM / +9.6% thrust (FOC higher). API and SDK users who want results matching the app should set esc_type="six_step" explicitly.
Throttle semantics
"Throttle %" in ThrustLab means inverter duty %, not transmitter stick %. The throttle you enter is the modulation duty command the ESC applies to the DC bus — it is not a radio/transmitter percentage, which real ESCs remap through their own endpoint and minimum-throttle calibration.
For six-step (BLDC) ESCs, ThrustLab additionally applies a small bench-derived endpoint adjustment: real hobby ESC "throttle %" corresponds to a slightly higher effective duty than the commanded fraction, and the adjustment absorbs that convention so part-throttle current and RPM match published bench data. At 100% throttle the adjustment vanishes — full-throttle results are unchanged. FOC ESCs are untouched (duty = throttle exactly).