PROM v5.0 Validation Report
PROM v5.0 runs the same model on a new native compute engine, the code that solves the model's equations. Every equation and coefficient still comes from the PROM v4.3 model. The same is true of every validated behaviour in this report. We checked it by running the entire validation dataset through the new engine: 75 propellers against wind-tunnel data and 98 motors against dynamometer data. The v5.0 results reproduce the v4.3 campaign to every published digit.
The engine changed; the model did not
We checked agreement between the two engines in two independent ways.
First, before v5.0 became the default, we compared every reported result from both engines on a grid of representative configurations. The grid covered single- and multi-rotor configurations at different throttle settings. It also varied battery state and thermal mode. Every result for every configuration had to agree within one part in a million. This release passed all 24 configurations with both battery thermal models. The largest difference in any reported result was 4.3 parts in a hundred million.
Second, the v4.3 report used the previous engine. We regenerated this report from scratch on v5.0 with the same dataset and statistics. One engine build produced every figure. All 61 published statistics match the v4.3 campaign at the four significant figures we publish. The model is unchanged.
Two things do change with the engine:
- First-result latency. The previous engine compiled its numerical kernels on first use. Those kernels are the calculation code used by the model. A fresh worker therefore paused for a long, one-time compilation before its first simulation. The native engine avoids that delay, so a first result and a hundredth result now cost the same.
- One engine, no fallback. Earlier previews of v5.0 used a fallback for configurations the native engine did not yet cover. That fallback sent coaxial stacks and oblique inflow to the previous engine. It also sent sweeps there. The native engine now runs those cases itself, and every result records the engine build that produced it.
Validated envelope
| Scope | Family | Count | Diameter (in) | RPM | Advance ratio | Pitch/diameter |
|---|---|---|---|---|---|---|
| Propeller | APC Slow Flyer | 11 | 8.0–11.0 | 1,666–7,018 | 0.00–1.07 | 0.35–0.83 |
| Propeller | APC Sport | 30 | 7.0–14.0 | 1,374–7,082 | 0.00–1.55 | 0.27–1.29 |
| Propeller | APC Thin Electric | 34 | 8.0–21.0 | 960–7,547 | 0.00–1.23 | 0.44–1.00 |
| Motor | T-Motor bench | 95 | — | 687–20,690 | — | — |
Benchmark results
Propeller
| Scope | Channel | Partition | Configuration | Family | n | MAE | RMSE | Bias | R² |
|---|---|---|---|---|---|---|---|---|---|
| Propeller | CT | UIUC wind tunnel | Production configuration | APC Slow Flyer | 461 | 0.01201 | 0.01475 | -0.007404 | 0.9221 |
| Propeller | CP | UIUC wind tunnel | Production configuration | APC Slow Flyer | 461 | 0.006890 | 0.009808 | -0.004242 | 0.8782 |
| Propeller | CT | UIUC wind tunnel | Physics-only configuration | APC Slow Flyer | 461 | 0.01341 | 0.01664 | 0.0008219 | 0.9008 |
| Propeller | CP | UIUC wind tunnel | Physics-only configuration | APC Slow Flyer | 461 | 0.006890 | 0.009808 | -0.004242 | 0.8782 |
| Propeller | CT | UIUC wind tunnel | Production configuration | APC Sport | 1,219 | 0.006223 | 0.007312 | -0.002589 | 0.9611 |
| Propeller | CP | UIUC wind tunnel | Production configuration | APC Sport | 1,219 | 0.009092 | 0.01048 | -0.008773 | 0.8648 |
| Propeller | CT | UIUC wind tunnel | Physics-only configuration | APC Sport | 1,219 | 0.007764 | 0.008951 | -0.002271 | 0.9417 |
| Propeller | CP | UIUC wind tunnel | Physics-only configuration | APC Sport | 1,219 | 0.009092 | 0.01048 | -0.008773 | 0.8648 |
| Propeller | CT | UIUC wind tunnel | Production configuration | All | 1,680 | 0.007811 | 0.009923 | -0.003911 | 0.9446 |
| Propeller | CP | UIUC wind tunnel | Production configuration | All | 1,680 | 0.008488 | 0.01030 | -0.007530 | 0.8685 |
| Propeller | CT | UIUC wind tunnel | Physics-only configuration | All | 1,680 | 0.009314 | 0.01158 | -0.001422 | 0.9246 |
| Propeller | CP | UIUC wind tunnel | Physics-only configuration | All | 1,680 | 0.008488 | 0.01030 | -0.007530 | 0.8685 |
Motor
| Scope | Channel | Partition | Configuration | Family | n | MAE | RMSE | Bias | R² |
|---|---|---|---|---|---|---|---|---|---|
| Motor | bus current (%) | bench dyno | Production configuration | 30-60% throttle | 877 | 9.198 | 12.36 | -5.139 | 0.9742 |
| Motor | efficiency (pts) | bench dyno | Production configuration | 30-60% throttle | 877 | 7.262 | 9.678 | 3.994 | 0.04622 |
| Motor | bus current (%) | bench dyno | Production configuration | 60-99% throttle | 1,157 | 6.035 | 8.642 | -0.6678 | 0.9870 |
| Motor | efficiency (pts) | bench dyno | Production configuration | 60-99% throttle | 1,157 | 4.847 | 6.995 | 0.5331 | 0.1055 |
| Motor | bus current (%) | bench dyno | Production configuration | All | 2,209 | 7.221 | 10.15 | -2.221 | 0.9900 |
| Motor | WOT speed (%) | bench dyno | Production configuration | All | 175 | 6.102 | 7.837 | -0.9998 | 0.9194 |
| Motor | efficiency (pts) | bench dyno | Production configuration | All | 2,209 | 5.740 | 8.056 | 1.734 | 0.1300 |
| Motor | bus current (%) | bench dyno | Production configuration | full throttle | 175 | 5.151 | 6.513 | 2.132 | 0.9767 |
| Motor | WOT speed (%) | bench dyno | Production configuration | full throttle | 175 | 6.102 | 7.837 | -0.9998 | 0.9194 |
| Motor | efficiency (pts) | bench dyno | Production configuration | full throttle | 175 | 4.018 | 5.131 | -1.653 | 0.2606 |
Per-case tables
| Case | Family | Partition | n | In-box | CP | CT | ||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Bias | MAE | R² | RMSE | Bias | MAE | R² | RMSE | |||||
| 10x10 (Propeller) | APC Sport | UIUC wind tunnel | 121 | 100% | -0.01064 | 0.01175 | 0.6726 | 0.01444 | 0.003243 | 0.004963 | 0.9782 | 0.005762 |
| 10x3 (Propeller) | APC Sport | UIUC wind tunnel | 77 | 100% | -0.005497 | 0.005497 | -0.1981 | 0.005594 | -0.003661 | 0.003734 | 0.9536 | 0.004611 |
| 10x4 (Propeller) | APC Sport | bench dyno (extended) | 101 | 100% | -0.008154 | 0.008154 | 0.04330 | 0.008282 | -0.005755 | 0.005755 | 0.9556 | 0.006276 |
| 10x4.7SF (Propeller) | APC Slow Flyer | bench dyno (extended) | 129 | 100% | -0.005185 | 0.005664 | 0.6341 | 0.007201 | -0.008978 | 0.01071 | 0.9023 | 0.01398 |
| 10x5 (Propeller) | APC Sport | bench dyno (extended) | 115 | 100% | -0.008235 | 0.008235 | 0.2717 | 0.008467 | -0.006160 | 0.006160 | 0.9556 | 0.006670 |
| 10x5E (Propeller) | APC Thin Electric | bench dyno (extended) | 120 | 100% | -0.004912 | 0.004912 | 0.7056 | 0.005521 | -0.002908 | 0.004623 | 0.9638 | 0.006165 |
| 10x6 (Propeller) | APC Sport | bench dyno (extended) | 135 | 100% | -0.009373 | 0.009373 | 0.4705 | 0.009554 | -0.007055 | 0.007055 | 0.9556 | 0.007509 |
| 10x7 (Propeller) | APC Sport | bench dyno (extended) | 118 | 100% | -0.004410 | 0.004971 | 0.8221 | 0.005894 | 0.001432 | 0.002623 | 0.9917 | 0.003217 |
| 10x7E (Propeller) | APC Thin Electric | bench dyno (extended) | 140 | 100% | -0.0001213 | 0.002165 | 0.9543 | 0.002940 | 0.005681 | 0.005811 | 0.9668 | 0.006409 |
| 10x7SF (Propeller) | APC Slow Flyer | bench dyno (extended) | 134 | 100% | 0.003615 | 0.008124 | 0.7851 | 0.009410 | -0.0009316 | 0.007354 | 0.9722 | 0.008854 |
| 10x8 (Propeller) | APC Sport | UIUC wind tunnel | 132 | 100% | -0.005716 | 0.006186 | 0.8192 | 0.007220 | -0.001052 | 0.003412 | 0.9881 | 0.004020 |
| 10x9 (Propeller) | APC Sport | bench dyno (extended) | 143 | 100% | -0.008683 | 0.009199 | 0.7362 | 0.01104 | 0.00001433 | 0.003902 | 0.9873 | 0.004395 |
| 11x10E (Propeller) | APC Thin Electric | bench dyno | 156 | 100% | -0.001047 | 0.006734 | 0.8014 | 0.008760 | 0.006404 | 0.006447 | 0.9563 | 0.007358 |
| 11x3 (Propeller) | APC Sport | bench dyno (extended) | 85 | 100% | -0.006455 | 0.006455 | -0.8654 | 0.006540 | -0.002618 | 0.003638 | 0.9607 | 0.004323 |
| 11x3.8SF (Propeller) | APC Slow Flyer | bench dyno (extended) | 109 | 100% | -0.001683 | 0.003544 | 0.6686 | 0.004246 | 0.0002616 | 0.008152 | 0.9552 | 0.009395 |
| 11x4 (Propeller) | APC Sport | bench dyno (extended) | 94 | 100% | -0.007081 | 0.007081 | 0.1133 | 0.007249 | -0.002244 | 0.003544 | 0.9772 | 0.004180 |
| 11x4.7SF (Propeller) | APC Slow Flyer | bench dyno (extended) | 119 | 100% | -0.005702 | 0.005974 | 0.6040 | 0.007160 | -0.01023 | 0.01076 | 0.9197 | 0.01368 |
| 11x5 (Propeller) | APC Sport | UIUC wind tunnel | 105 | 100% | -0.009694 | 0.009694 | 0.05832 | 0.009829 | -0.008251 | 0.008251 | 0.9307 | 0.008524 |
| 11x5.5E (Propeller) | APC Thin Electric | bench dyno | 98 | 100% | 0.0008001 | 0.001575 | 0.9451 | 0.001927 | 0.007481 | 0.007754 | 0.9087 | 0.008729 |
| 11x6 (Propeller) | APC Sport | UIUC wind tunnel | 123 | 100% | -0.01235 | 0.01235 | 0.04297 | 0.01250 | -0.01049 | 0.01049 | 0.9118 | 0.01072 |
| 11x7 (Propeller) | APC Sport | UIUC wind tunnel | 135 | 100% | -0.01232 | 0.01232 | 0.2788 | 0.01257 | -0.009336 | 0.009336 | 0.9358 | 0.009575 |
| 11x7E (Propeller) | APC Thin Electric | bench dyno | 125 | 100% | -0.002250 | 0.002692 | 0.9293 | 0.003317 | 0.0008174 | 0.003247 | 0.9877 | 0.003893 |
| 11x7SF (Propeller) | APC Slow Flyer | bench dyno (extended) | 126 | 100% | -0.008182 | 0.008542 | 0.7210 | 0.01098 | -0.01494 | 0.01495 | 0.9024 | 0.01733 |
| 11x8 (Propeller) | APC Sport | UIUC wind tunnel | 141 | 100% | -0.009715 | 0.009715 | 0.5794 | 0.01012 | -0.006000 | 0.006000 | 0.9705 | 0.006547 |
| 11x8.5E (Propeller) | APC Thin Electric | bench dyno (extended) | 141 | 100% | 0.001261 | 0.003783 | 0.9072 | 0.004549 | 0.008026 | 0.008064 | 0.9392 | 0.008593 |
| 11x8E (Propeller) | APC Thin Electric | bench dyno (extended) | 131 | 100% | 0.0008307 | 0.002762 | 0.9318 | 0.003482 | 0.005406 | 0.005424 | 0.9707 | 0.005909 |
| 11x9 (Propeller) | APC Sport | bench dyno (extended) | 146 | 100% | -0.01158 | 0.01158 | 0.4780 | 0.01225 | -0.006474 | 0.006476 | 0.9579 | 0.007345 |
| 14x12E (Propeller) | APC Thin Electric | bench dyno (extended) | 107 | 100% | 0.001202 | 0.006134 | 0.7548 | 0.007545 | 0.008255 | 0.008255 | 0.9157 | 0.009047 |
| 14x13 (Propeller) | APC Sport | UIUC wind tunnel | 118 | 100% | -0.007758 | 0.008247 | 0.6559 | 0.01085 | -0.001199 | 0.003704 | 0.9857 | 0.004312 |
| 17x12E (Propeller) | APC Thin Electric | bench dyno (extended) | 117 | 100% | -0.006093 | 0.006093 | 0.6449 | 0.007633 | -0.0001853 | 0.004102 | 0.9673 | 0.005385 |
| 19x12E (Propeller) | APC Thin Electric | bench dyno (extended) | 94 | 100% | -0.003777 | 0.003972 | 0.7988 | 0.004593 | 0.0001426 | 0.002662 | 0.9887 | 0.003215 |
| 7x6 (Propeller) | APC Sport | UIUC wind tunnel | 117 | 100% | -0.006944 | 0.006944 | 0.7555 | 0.008364 | 0.006071 | 0.007874 | 0.9164 | 0.008962 |
| 7x9 (Propeller) | APC Sport | UIUC wind tunnel | 150 | 100% | -0.006204 | 0.007102 | 0.8661 | 0.009026 | 0.003774 | 0.004178 | 0.9664 | 0.006125 |
| 8x10 (Propeller) | APC Sport | bench dyno (extended) | 150 | 99% | -0.02951 | 0.02951 | -0.03531 | 0.03127 | -0.002992 | 0.004522 | 0.9798 | 0.005526 |
| 8x3.8SF (Propeller) | APC Slow Flyer | UIUC wind tunnel | 97 | 100% | -0.001904 | 0.005681 | 0.5560 | 0.007098 | -0.001218 | 0.01187 | 0.8959 | 0.01355 |
| 8x4 (Propeller) | APC Sport | bench dyno (extended) | 87 | 100% | -0.005591 | 0.005591 | 0.5884 | 0.005985 | 0.0003326 | 0.003842 | 0.9683 | 0.004791 |
| 8x4E (Propeller) | APC Thin Electric | bench dyno (extended) | 92 | 100% | -0.003320 | 0.003738 | 0.6587 | 0.006032 | -0.0005556 | 0.008491 | 0.9036 | 0.009980 |
| 8x5 (Propeller) | APC Sport | bench dyno (extended) | 108 | 100% | -0.007958 | 0.007958 | 0.5153 | 0.008474 | 0.001493 | 0.004055 | 0.9765 | 0.004638 |
| 8x6 (Propeller) | APC Sport | bench dyno (extended) | 132 | 100% | -0.01241 | 0.01241 | 0.3666 | 0.01293 | -0.001241 | 0.002868 | 0.9860 | 0.004122 |
| 8x6E (Propeller) | APC Thin Electric | bench dyno | 131 | 100% | -0.009171 | 0.009171 | 0.5440 | 0.01199 | -0.003333 | 0.008740 | 0.9241 | 0.01038 |
| 8x6SF (Propeller) | APC Slow Flyer | bench dyno (extended) | 133 | 100% | -0.002381 | 0.007749 | 0.6968 | 0.01119 | -0.006986 | 0.008864 | 0.9167 | 0.01371 |
| 8x7 (Propeller) | APC Sport | bench dyno (extended) | 135 | 100% | -0.006913 | 0.007022 | 0.8018 | 0.007786 | 0.002461 | 0.003828 | 0.9835 | 0.004541 |
| 8x8 (Propeller) | APC Sport | bench dyno (extended) | 148 | 100% | -0.01812 | 0.01812 | 0.1535 | 0.01860 | -0.001901 | 0.003465 | 0.9870 | 0.003915 |
| 8x8E (Propeller) | APC Thin Electric | bench dyno (extended) | 160 | 100% | -0.01031 | 0.01067 | 0.6702 | 0.01477 | -0.002220 | 0.004260 | 0.9808 | 0.005701 |
| 8x9 (Propeller) | APC Sport | bench dyno (extended) | 160 | 100% | -0.02595 | 0.02595 | -0.6978 | 0.02655 | -0.0001893 | 0.004257 | 0.9723 | 0.005228 |
| 9x10 (Propeller) | APC Sport | bench dyno (extended) | 145 | 100% | -0.004229 | 0.005306 | 0.8780 | 0.007082 | 0.003139 | 0.006597 | 0.9605 | 0.007255 |
| 9x3.8SF (Propeller) | APC Slow Flyer | UIUC wind tunnel | 96 | 100% | -0.0004266 | 0.004009 | 0.6770 | 0.004869 | 0.001959 | 0.008811 | 0.9386 | 0.01003 |
| 9x4.5E (Propeller) | APC Thin Electric | bench dyno (extended) | 93 | 100% | -0.0008837 | 0.001477 | 0.9393 | 0.002373 | 0.003674 | 0.005961 | 0.9566 | 0.006521 |
| 9x4.7SF (Propeller) | APC Slow Flyer | bench dyno (extended) | 111 | 100% | 0.003675 | 0.006533 | 0.6206 | 0.007129 | 0.008093 | 0.01036 | 0.9299 | 0.01202 |
| 9x6 (Propeller) | APC Sport | bench dyno (extended) | 130 | 100% | -0.01083 | 0.01083 | 0.4244 | 0.01113 | -0.006748 | 0.006748 | 0.9616 | 0.007088 |
| 9x6E (Propeller) | APC Thin Electric | bench dyno | 128 | 100% | 0.002091 | 0.003316 | 0.9264 | 0.003928 | 0.005950 | 0.006874 | 0.9605 | 0.007567 |
| 9x6SF (Propeller) | APC Slow Flyer | UIUC wind tunnel | 141 | 100% | -0.007072 | 0.008254 | 0.6752 | 0.01143 | -0.01306 | 0.01345 | 0.8776 | 0.01747 |
| 9x7 (Propeller) | APC Sport | bench dyno (extended) | 136 | 100% | -0.005833 | 0.006010 | 0.8014 | 0.006766 | -0.001157 | 0.002412 | 0.9928 | 0.002993 |
| 9x7.5E (Propeller) | APC Thin Electric | bench dyno (extended) | 127 | 100% | -0.004250 | 0.005742 | 0.8293 | 0.008312 | -0.00006000 | 0.002624 | 0.9927 | 0.003508 |
| 9x7.5SF (Propeller) | APC Slow Flyer | UIUC wind tunnel | 127 | 100% | -0.005769 | 0.008476 | 0.7434 | 0.01215 | -0.01293 | 0.01294 | 0.9104 | 0.01531 |
| 9x8 (Propeller) | APC Sport | bench dyno (extended) | 132 | 100% | -0.009273 | 0.009413 | 0.7072 | 0.01091 | 0.001658 | 0.003278 | 0.9886 | 0.004008 |
| 9x9 (Propeller) | APC Sport | bench dyno (extended) | 141 | 100% | -0.01348 | 0.01348 | 0.4824 | 0.01576 | 0.004045 | 0.004528 | 0.9730 | 0.005595 |
| 9x9E (Propeller) | APC Thin Electric | bench dyno (extended) | 141 | 100% | -0.001622 | 0.008006 | 0.8502 | 0.009534 | 0.001026 | 0.004252 | 0.9843 | 0.005320 |
| 12x10E (Propeller) | APC Thin Electric | bench dyno | 174 | 99% | -0.0007468 | 0.003321 | 0.9510 | 0.004529 | -0.0006579 | 0.005580 | 0.9828 | 0.006252 |
| 12x6E (Propeller) | APC Thin Electric | bench dyno (extended) | 128 | 100% | -0.002434 | 0.002891 | 0.9001 | 0.003480 | -0.002181 | 0.003985 | 0.9797 | 0.005512 |
| 12x8E (Propeller) | APC Thin Electric | bench dyno (extended) | 151 | 100% | -0.001586 | 0.002993 | 0.9429 | 0.003671 | -0.002281 | 0.005961 | 0.9749 | 0.007045 |
| 13x10E (Propeller) | APC Thin Electric | bench dyno (extended) | 212 | 100% | 0.0005276 | 0.003544 | 0.9346 | 0.004222 | 0.002839 | 0.005153 | 0.9778 | 0.006426 |
| 13x6.5E (Propeller) | APC Thin Electric | bench dyno (extended) | 188 | 100% | -0.002853 | 0.002915 | 0.9042 | 0.003387 | -0.0002389 | 0.002858 | 0.9901 | 0.003661 |
| 13x8E (Propeller) | APC Thin Electric | bench dyno (extended) | 187 | 100% | -0.0005190 | 0.002357 | 0.9519 | 0.002697 | 0.003044 | 0.004403 | 0.9817 | 0.005183 |
| 14x10E (Propeller) | APC Thin Electric | bench dyno | 169 | 100% | 0.002057 | 0.003086 | 0.9258 | 0.003866 | 0.004346 | 0.005245 | 0.9769 | 0.006024 |
| 14x7E (Propeller) | APC Thin Electric | bench dyno | 149 | 100% | -0.001025 | 0.001777 | 0.9469 | 0.002294 | 0.002566 | 0.004365 | 0.9807 | 0.004882 |
| 14x8.5E (Propeller) | APC Thin Electric | bench dyno (extended) | 147 | 100% | -0.002761 | 0.003154 | 0.9050 | 0.003705 | -0.0006382 | 0.004662 | 0.9791 | 0.005543 |
| 16x10E (Propeller) | APC Thin Electric | bench dyno (extended) | 165 | 100% | -0.004227 | 0.004417 | 0.8422 | 0.005104 | -0.003042 | 0.003988 | 0.9819 | 0.005107 |
| 16x12E (Propeller) | APC Thin Electric | bench dyno (extended) | 138 | 100% | -0.0009757 | 0.003672 | 0.9295 | 0.004088 | -0.001488 | 0.005019 | 0.9794 | 0.005706 |
| 16x8E (Propeller) | APC Thin Electric | bench dyno | 146 | 99% | -0.001419 | 0.002148 | 0.9183 | 0.002521 | 0.001960 | 0.002710 | 0.9883 | 0.003462 |
| 18x10E (Propeller) | APC Thin Electric | bench dyno | 140 | 100% | -0.003897 | 0.004016 | 0.8365 | 0.004584 | -0.003880 | 0.004258 | 0.9780 | 0.005407 |
| 18x12E (Propeller) | APC Thin Electric | bench dyno (extended) | 138 | 100% | -0.001920 | 0.002607 | 0.9406 | 0.002917 | -0.001005 | 0.003227 | 0.9881 | 0.003906 |
| 18x8E (Propeller) | APC Thin Electric | bench dyno (extended) | 177 | 100% | -0.002920 | 0.002957 | 0.8368 | 0.003405 | -0.001245 | 0.002399 | 0.9913 | 0.002915 |
| 20x10E (Propeller) | APC Thin Electric | bench dyno (extended) | 124 | 100% | -0.005716 | 0.005716 | 0.6194 | 0.006065 | -0.007028 | 0.007032 | 0.9387 | 0.008194 |
| 21x13E (Propeller) | APC Thin Electric | bench dyno | 126 | 100% | -0.002318 | 0.002866 | 0.9373 | 0.003189 | -0.002417 | 0.004229 | 0.9816 | 0.005000 |
Known limitations
Every model has limits. This section explains each known PROM v5.0 error. It gives the direction and size so you can decide whether to trust a prediction. PROM v5.0 runs the v4.3 model on a new engine, so it has the same v4.3 limitations. The measurements above confirm that those limits carried over unchanged. A future model change will alter them and will include a new measured report.
Shaft speed is the weak channel, and PROM over-predicts it
PROM predicts motor current more accurately than motor speed. At wide-open throttle, it predicts more shaft speed than the motor can achieve. 54 of the 95 motors tested on the bench still fall outside a ±5% band after the v4.3 improvement. This error is often the first one a user sees because the predicted RPM sets the predicted thrust.
On the bench corpus, mean absolute speed error is 6.10%, and 49% of rows are inside ±5%.
The model structure causes this error. A simple adjustment cannot remove it. Motor phase inductance measures how strongly a motor winding resists changes in current. The speed and current results need different phase-inductance values, and one value cannot satisfy both. Optimising for speed leaves 8.2% current error. Optimising for current leaves 7.1% speed error. The best shared value still leaves 1.9% and 3.4%. PROM uses a value closer to the current optimum because current drives runtime and thermal predictions. That choice leaves the speed error in place.
Below 30% throttle the motor model is weak
Motor current has roughly 21% mean absolute error below 30% throttle. Only about a quarter of rows fall within ±10%.
The model performs best in the 60–99% throttle band, where most hover and cruise operation sits.
Efficiency is not a second opinion
Motor efficiency error is roughly 5 percentage points. This does not provide a separate check of the current result because it expresses the same current error another way. Predicted motor efficiency also stops rising near 84%, so PROM cannot reproduce measured efficiencies above that.
Motor magnetic saturation is not modelled
PROM treats the motor torque constant as fixed at every current. In real surface-permanent-magnet motors, the torque constant falls as armature current rises. PROM therefore tends to under-predict current draw for a heavily loaded motor. The error grows with load and is largest on high-pitch propellers at high cell counts. The model includes a term for this effect, but it ships disabled because we do not yet have the measurements needed to set it.
About one motor in six sits at an inductance bound
PROM estimates phase inductance from published motor specifications and limits the estimate to the range supported by bench data. 357 of 1,984 catalogue motors (18.0%) sit at the upper limit. The pole-count term also stops changing outside 14–42 poles, which affects another 120 catalogue entries. For these motors, the inductance sits at a limit instead of being interpolated between measured values. Their predictions are less certain. The limits prevent the physically impossible results produced by extending the estimate past the measured range.
Propeller torque is under-predicted at low advance ratio
The propeller model calculates the wake separately at each blade station, or position along the blade. It does not capture interactions between stations across the spiral-shaped wake. This causes systematic under-prediction of thrust at heavy loading and low advance ratio. A low advance ratio means little forward motion relative to propeller rotation, close to static thrust, where a multirotor spends most of its life. The per-family tables above show the size of this effect for the propellers we measured.
The effect is strongest for short-pitch, large-diameter propellers. Expect the widest error when simulating a large-diameter, low-pitch propeller near static thrust.
We implemented several possible changes to this wake calculation and tested them against the measured set. None improved overall accuracy, and some made it worse. The shipped model also omits the standard measurement-based correction for very high disk loading. The measured results did not support either type of change.
Edgewise flight: modelled, but the in-plane force is a lower bound
PROM calculates both parts of the airflow a rotor sees. Axial airflow travels along the rotor's spin axis. Edgewise airflow travels across the rotor disc. The calculation includes each rotor's mounting tilt and reports thrust in the rotor frame and the ground frame. Tilted and forward-flight operation use their own modelled conditions.
The model has two limits here:
- The in-plane (edgewise) force is a deliberate lower bound. It is computed as a first-order estimate from the blade state averaged over a full revolution. It does not calculate each position around the rotor disc. When compared with a higher-fidelity calculation that does resolve those positions, it recovers roughly 58%, 64% and 81% of the in-plane force at advance ratios of 0.06, 0.13 and 0.25 respectively. The result is most conservative at low advance ratio, where multirotors spend most of their time. Treat in-plane force as a lower limit.
- Per-revolution effects are not represented. Because the disk is not calculated at each position around the circle, the model does not include once-per-revolution changes in blade loading. It also omits the resulting pitch and yaw moments at the hub.
Rotor-to-rotor interaction: modelled, but not measured against
Rotors stacked in each other's wake affect one another. PROM applies the upstream rotor's changes in axial and swirling airflow to the downstream disc. It does this in steady-state solutions, which represent a stable operating point, and transient solutions, which change over time. The transient solution includes the travel time before an upstream change reaches the rotor below.
Vortex-tube theory represents the rotor wake as a tube of moving, swirling air. PROM derives this calculation from that theory and uses no constants fitted to measurements. We checked it against limiting cases with exact mathematical solutions. Steady-state stacked-rotor results use the part of the model covered by validation. Transient stacked-rotor results do not. The wake travel delay in a transient solution has not been checked against measurements because the dataset contains no such measurement. Treat coaxial results in dynamic runs as provisional. All stacked-rotor results are based on theory without measurement support. None of the error bars in this report were measured on a stacked configuration.
Steep descent
During a fast, steep descent, a rotor can pull its own wake back through the disc. PROM detects and flags operating points in this condition. It still returns a result, but that result is an approximation. Everything else in the same run is unaffected.
Not attempted at all
- No acoustic prediction. PROM reports aerodynamic forces only. It does not report tonal or broadband noise.
- Propeller geometry uncertainty dominates. For propellers whose geometry must be reconstructed because the manufacturer does not supply it, blade chord is the largest single source of uncertainty. Blade chord is the width of the blade at a given position. See the user-supplied geometry section below.
Out-of-envelope behaviour
PROM still runs outside the measured envelope above, and it gives no warning when you leave it. It will return a number for a propeller half the size of anything we have measured. Use this section to judge how much confidence to place in that number.
Propellers outside the measured set
The envelope above covers propellers we have compared with wind-tunnel measurements. Outside it, the limits depend on how the propeller differs from the measured set:
- Smaller propellers. Below roughly 12 inches, blade Reynolds numbers drop. A Reynolds number describes the airflow over a blade for its size and speed. At these lower values, drag on each blade section rises sharply and becomes less predictable. Expect efficiency to be optimistic.
- Higher advance ratios. Above the advance-ratio range in the envelope table, we have no measurements for comparison.
- Other manufacturers and blade families. Our measured set is dominated by one manufacturer's electric series. The same model represents geometry from other families. This report does not establish its accuracy for those families.
Flight condition, not just propeller
Flight conditions can also leave the envelope. Every measurement behind this report was taken with the airflow arriving along the rotor's spin axis. PROM models edgewise and tilted operation as described above, but this report has no wind-tunnel data with airflow arriving at an angle to the disc. It also has no measurements for stacked rotors or steep descent.
The tables above measure the model's accuracy in axial flight. They do not establish the same accuracy for a forward-flight multirotor or a tilt-rotor. They also do not establish it for a coaxial stack. Those configurations use additional parts of the model whose errors this report has not measured. Use the reported in-plane force as a known lower bound.
The propeller model takes only measured blade geometry as input and applies no fitted correction. Wind-tunnel measurements can never leak into a prediction.
The tables show one difference between the reported quantities. For the power coefficient, the production and physics-only configurations report the same numbers. PROM applies no measurement-based adjustment to power. Both configurations use the model's own power prediction. Any difference between the two columns comes from thrust.
User-supplied and custom components
Every number in this report comes from catalogue components whose geometry we control. Components you supply yourself are outside the validated envelope. This situation is common because every tier allows custom components.
We have not measured user-supplied components. Every figure in this report compares a prediction with a wind-tunnel or dynamometer measurement of a specific known component. A component you define has no matching measurement, so the error bars above do not apply. This report cannot say whether its error is better or worse.
Geometry has the largest effect here. Blade chord and pitch directly scale thrust and power, so small errors in a reconstructed blade shape carry into the result. If you supply geometry, its accuracy is the main source of uncertainty. Only you can check it.
The interface marks results computed with user-supplied components. The error bars in this report do not apply to those results.
What to do about it
Out-of-envelope predictions remain useful for comparing designs because the errors described here are largely systematic and move similar configurations in the same direction. They are much weaker as absolute predictions. Measure any absolute value outside the envelope that you plan to rely on, such as a flight time you will commit to or a current a component must survive.
Changes from previous version
The model has not changed since the PROM v4.3 report, so its measured accuracy has not changed. This release changes the compute engine described at the top of the report. The parity gate limits differences between engines to one part in a million. We also reran the entire dataset on the new engine, and every published statistic reproduces the v4.3 campaign at the four significant figures we publish. The underlying wind-tunnel and dynamometer measurements are the same. The engine that produced these tables also runs your simulations.
Data sources
- UIUC Propeller Data Site, Volume 1 — APC Thin Electric / Slow Flyer / Sport — Brandt, J. B. and Selig, M. S., 'Propeller Performance Data at Low Reynolds Numbers', AIAA 2011-1255, January 2011; Brandt 2005 UIUC M.S. thesis. (revision: e60b6ff97f78)
- UIUC Propeller Data Site, Volume 4 — APC Thin Electric — Dantsker, O. D., Caccamo, M., Deters, R. W. and Selig, M. S., 'Performance Testing of APC Electric Fixed-Blade UAV Propellers', AIAA 2022-4020, June 2022. (revision: e4c6b24c399e)