← All projects
PRJ-004 in progress

OpenPropulsionMatch (propcalc)

A propulsion optimiser for SAE Aero Design Micro Class. It tries every legal motor × prop × ESC × battery combination, simulates the mission and ranks the results.

Domain
Aerospace · Software
Period
2026-09 → ongoing
Stack
Python · NumPy · Matplotlib · XFLR5 · Cloudflare Pages
Tags
aerospacesoftwarepython
Links
Pipeline diagram: component data, bench calibration and an XFLR5 polar feed an operating-point solver, a speed sweep and a mission simulation, which produce a ranked list of propulsion combinations and graphs.
FIG. 1 — How propcalc gets from datasheets to a ranked propulsion set.

Context

In September 2026 I joined Chicken Wings BUT, the Brno University of Technology team competing in SAE Aero Design, Micro Class. Picking the propulsion system (motor, propeller, ESC and battery) is one of the biggest levers on how much payload the plane can carry. With hundreds of possible parts, it’s far too many combinations to compare by hand.

So I wrote a tool that does it.

What it does

propcalc tries every legal motor × prop × ESC × battery combination from its data files, filters out anything that breaks the competition rules or a component rating, and ranks the rest. It also draws the graphs the team needs: thrust and current vs. airspeed, payload vs. current, and thrust available vs. drag.

The same calculator runs in the browser, and it redeploys automatically to Cloudflare Pages on every merge.

How it works

For each combination and airspeed, it finds the RPM where motor torque equals propeller torque:

  • The propeller is modelled from APC’s published coefficient tables: thrust T = Ct·ρ·n²·D⁴ and power P = Cp·ρ·n³·D⁵.
  • The motor is modelled from Kv, winding resistance and no-load current. The ESC and battery add their own resistances, so battery voltage sag under load is included.
  • The prop data is calibrated against real bench tests, scaled by blade tip speed so a measurement on one prop size carries over to similar ones.

With a plane defined (wing area, drag polar, masses), it then simulates the mission: takeoff within 50 ft, climb, cruise and approach. It ranks combinations by the competition’s flight score instead of raw thrust. The aerodynamic model can be imported straight from an XFLR5 export.