3.2 KiB
Carburetor work in progress
Resumed on 2026-10-23 to fix throttle-release crashes and remove scheduled pops. All changes are uncommitted. The historical results below predate that revision.
Current revision: bounded slide aperture to avoid negative roundoff near its seat; removed the hardcoded firing intervals and forced late spark. Exhaust combustion was subsequently removed at the user's request due to lag and limited audible benefit. Fuel remains transported through pipes without reacting. Cylinder combustion consumes air in proportion to burned fuel. Warm-running startup now seeds fuel in the intake, crankcase and cylinder. Pilot effective diameter is .40 mm with .08 base/.3 maximum idle slide opening. The revised transient passes: peak 12954 RPM, idle 2583 RPM, peak audio .0985.
Implemented
- Added
Carburetor, with effective pilot, needle and main jet restrictions. - Jet flow uses simulated air mass flow, air density, venturi dynamic pressure, static pressure drop, fuel density, discharge coefficients and float-bowl supply. It is not a cylinder-side target-AFR calculation.
- Added wall-film deposition and evaporation during throttle transients.
- Added fuel as a conserved transported species to pipe cells, boundaries, 0-D volumes, crankcase, cylinder and turbo internal transfers.
- Carb fuel enters the intake plenum, then moves through the reed, crankcase, transfer pipe and cylinder with the simulated gas flow.
- Cylinder heat release is limited by transported fuel, trapped oxygen and a basic 7:1--24:1 flammability window. Rich excess remains unburned.
- Disabled electronic overrun fuel cut for the two-stroke. A deterministic sparse late-fire cadence overlaps exhaust-port opening to make separated coast-down bangs through the pressure/audio solver; no sound sample is mixed.
- Added fuel conservation and downstream transport tests, carb bounds/cadence checks, transient firing-count checks, benchmark AFR columns and desktop carb labeling.
Last verified state
- Before the final throttle-slide geometry change, the entire 10-test CTest suite passed.
- That transient reached about 15,954 RPM, recovered to about 3,151 RPM, and produced 11 late firings in the first second after release with no clipping or pipe positivity repairs.
- After replacing the old butterfly-area formula with a circular-segment slide
aperture and reducing the idle slide calibration, the project and desktop
rebuilt successfully and
fluidsim_two_stroke_physicspassed.
Current task / next step
The fluidsim_two_stroke_regression run after the slide-area change was stopped
mid-run when work was paused. Run it first, then run full CTest. If idle recovery,
mixture, or overrun firing count moved, tune idle_base_opening,
idle_max_opening, and the effective jet dimensions in Carburetor.hpp.
Re-run fluidsim_two_stroke_benchmark afterward and update the YZ125 verification
numbers if the slide geometry changed them.
The most relevant files are:
include/FluidSim/Carburetor.hppsrc/carburetor.cppsrc/two_stroke_scenario.cppsrc/two_stroke_cylinder.cppinclude/FluidSim/Fluid.hpptests/two_stroke_physics.cpptests/two_stroke_regression.cpp