Migrate 32 engine definitions into validated startup-loaded TOML files and separate configuration and snapshots from scenario assembly. Add camera-based stereo propagation from shared pipe geometry, preserve exhaust character, tune carburetor mixtures and idle, use ignition cuts for carb engines, and support returning to the scenario menu. Validation: full Windows build and all 14 CTest checks passed.
3.6 KiB
Carburetor calibration
The catalog contains seven carbureted two-strokes and two carbureted four-strokes. The 450 cc four-stroke is now carbureted; the 650 cc stays EFI. The 125 variants use a 3% fixed slide stop plus closed-throttle ignition trim; the 50/500 singles use 4.5%. The big-block uses 7%.
Measurement
The fluidsim_carb_calibration tool imposes crankshaft RPM with an external
motoring/absorbing dyno, runs 1 s to settle, and averages the following 0.25 s.
Each operating point starts from a fresh warm scenario. At idle, the dyno is then
removed for a further 3 s to check that the engine continues running without
starter assistance or artificial sustaining torque.
| Family | Idle RPM | Low RPM | Mid RPM | Full-throttle RPM |
|---|---|---|---|---|
| Two-strokes | 3000 | 4000 | 6500 | 9000 |
| 450 single | 1400 | 2500 | 4000 | 6000 |
| Big-block | 800 | 1800 | 3000 | 5000 |
Low points use 5%, 10%, 15% and 25% pedal; mid points use 50% and 75%. The mechanical stop remains in force if pedal demand is lower than it. AFR acceptance is 11.5?15.5, narrowed to 11.5?14.5 at full throttle. Free-idle AFR must also stay within 11.5?15.5, with positive running RPM (300?10000). The fixed slide sets idle airflow. Closed-throttle ignition timing trims speed toward 3,000 RPM on the 125s, 3,000 RPM on the 50, and 3,000 RPM on the 500. Four-stroke targets are 1,400 RPM for the 450 and 800 RPM for the big-block.
Settled idle and carb-outlet AFR
| Scenario | Stop | Unloaded idle RPM | Idle AFR | 15% AFR | 50% AFR | Full AFR |
|---|---|---|---|---|---|---|
| Racing 125 | 3% | 3603 | 13.49 | 14.56 | 13.56 | 13.27 |
| Straight 125 | 3% | 3754 | 13.48 | 14.70 | 13.32 | 13.27 |
| Long chamber 125 | 3% | 3598 | 13.37 | 14.64 | 13.42 | 13.21 |
| Short chamber 125 | 3% | 3657 | 13.61 | 14.58 | 13.66 | 13.26 |
| Wide chamber 125 | 3% | 3679 | 13.44 | 14.37 | 13.58 | 13.27 |
| 50 two-stroke | 4.5% | 3591 | 14.46 | 14.71 | 13.64 | 12.92 |
| 500 two-stroke | 4.5% | 3128 | 13.63 | 13.23 | 13.85 | 13.26 |
| 450 four-stroke | 4.5% | 1362 | 13.54 | 14.10 | 13.67 | 13.07 |
| Big-block | 7% | 763 | 13.52 | 14.68 | 13.12 | 13.17 |
The previous 125 calibration measured approximately 7.6 at idle, 22.6 at low pedal and 20.2 at full pedal. The previous big-block reached approximately 28.7 at full pedal. Independent pilot and main jet dimensions plus a continuous, monotone needle annulus profile correct the off-idle and upper-throttle gaps. These are effective flow calibrations, not measured commercial jet sizes.
The tool reports charge_afr separately: crankcase air/fuel for two-strokes,
intake-plenum air/fuel for four-strokes. Reverse flow, residual oxygen depletion,
wet-wall transients and transported unburned fuel make that differ from fresh
carb-outlet AFR. It is diagnostic rather than the calibration target. Combustion
still consumes only the oxygen and fuel actually present; AFR is not clamped to
hide a bad mixture and no feedback loop forces the target values.
Reproduction
cmake --build --preset windows
ctest --preset windows -R carb_calibration --output-on-failure
./out/build/windows-gcc/fluidsim_carb_calibration.exe --sweep yz-racing
The calibration sweep includes all eight throttle positions for every carb scenario, target idle RPM and AFR, zero pipe positivity repairs, the catalog slide-stop settings, and transported fueling on the 450. Catalog and two-stroke regressions also exercise throttle changes, coast-down, clutch/gear operation and finite audio.
Four-point AFR, charge, and idle measurements include charge AFR, actual idle opening, free-running idle RPM and pipe repair counts.