Files
FluidSimCpp/verification/CARB_CALIBRATION.md
max bf8621ad39 Load engines from TOML and improve scenario audio and carb tuning
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.
2026-10-24 03:24:35 +02:00

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.