Files
FluidSimCpp/verification/TURBO_VZ21.md
2026-10-23 03:00:20 +02:00

6.3 KiB

VZ21-size turbo prototype

Linux Release, 2026-10-23. Core is ready for an early interactive test. Further map fitting, acoustic work and performance tuning are deferred at the user's request so testing can start. No blade-passing whistle has been implemented yet.

Model

Four finite 0-D gas volumes connect compressor inlet/outlet and turbine inlet/outlet to existing BoundarySystem pipe orifices. Register the turbo once with Solver; do not separately register its internal volumes. Internal flows are bidirectional and choked where appropriate. Donor budgets preserve positive mass/energy. Compensated 0-D volume accumulation prevents sub-ulp mass drift.

The compressor's estimated Euler head is psi*(omega*R)^2. Efficiency maps this to a virtual stagnation pressure; a compressible restriction determines actual flow against the downstream pressure. The turbine flow follows an effective nozzle. Its torque uses a mean-line speed-ratio efficiency parabola, with finite starting torque. Reverse flow is passive; deep surge/reverse-wheel aerodynamics are not validated. These correlations are not a measured compressor/turbine map.

A rigid shaft obeys I*domega/dt = turbine torque - compressor torque - bearing and windage torque. Implicit midpoint work balances the exact change in rotor kinetic energy, including starting from rest. Adaptive shaft steps prevent large timesteps from reversing the rotor numerically. Turbine work is removed from gas enthalpy; compressor work is added to charge enthalpy. Bearing loss is tracked as heat outside the gas circuits. No shaft-speed or boost clamp is used.

Estimated default parameters: inertia 4e-6 kg m^2, compressor effective radius 18 mm, turbine mean effective radius 13.5 mm, efficiencies .65, compressor head coefficient .6, effective compressor/turbine flow areas 110/100 mm^2. Housing volumes are 20/30/30/20 cc. Connection bores are 24/24/25/26 mm. Viscous bearing coefficient is 1e-7 Nm/(rad/s), windage coefficient 2e-11 Nm/(rad/s)^2.

The estimated wastegate has an 800 mm^2 pressure diaphragm, 40 N preload, 6000 N/m spring, 120 Ns/m overdamped linkage, 14 mm valve and 4 mm maximum lift. Compressor delivery gauge pressure drives its opening. Bypass gas transfers enthalpy without delivering turbine shaft work. The actuator is an idealized external pressure-control linkage; its mechanical/thermal energy is outside the audited gas/rotor system. There is no intercooler, blow-off valve, oil-temperature model, knock model or thermal/wheel failure model.

Reference basis

Ecotrons VZ21 specification provides rough applications and casing dimensions; its performance illustrations explicitly refer to a similar IHI family rather than measured VZ21 maps. Those figures cannot validate the coefficients used here. A supplier's VZ21 listing lists 24.2/37.1 mm compressor and 35/26.7 mm turbine inducer/exducer diameters. The model's effective radii remain estimates. NASA compressor/turbine work relations provide the ideal-gas thermodynamic basis. Conservation checks establish numerical consistency, not predictive accuracy for a real VZ21.

Verification

All nine CTest suites passed after the changes. New checks cover stationary equilibrium, startup, closed mass/energy balance, a pre-spun rotor, large shaft timestep passivity, reverse flow, choking, subcritical backpressure response, wastegate bypass, hot pulsing pipe coupling and twin throttle/limiter/release.

Closed 10 ms runs: measured mass drift zero; energy error -0.16 microjoule from rest and -0.71 microjoule with an initially 120000 RPM shaft. Energy totals include all gas, rotor and bearing heat. A hot 80 Hz pulsing pipe bench reached 189122 RPM, delivered .03067 kg/s charge at 376 K, and retained turbine power pulses of 1189..4022 W. No internal transfer limiting or pipe repairs occurred.

The seven-second twin transient reached 236218 RPM, peak charge pressure 181.46 kPa absolute, peak instantaneous turbine-inlet pressure 674.10 kPa and 2.78 mm gate lift. It coasted down to 151755 RPM after release. Audio peak was .02933 full scale, with no clipping; accumulated turbo energy residual was -8.8 microjoules. High shaft speeds are model output, not validated operating limits or evidence that a real VZ21 would survive them.

Same-engine-speed dyno comparison, .7 pedal, averaging the last half-second of each two-second run:

RPM Turbo MAP kPa Exhaust collector kPa Shaft kW Charge K Shaft turbo RPM
4000 no 93.30 110.00 23.54 — —
4000 yes 151.31 172.99 24.01 387.58 194130
7000 no 84.56 115.02 40.64 — —
7000 yes 147.13 226.09 39.69 397.86 214361

Pressure and temperature costs are retained: boost does not guarantee more shaft power. There is no forced power gain. Effective area/efficiency, gas properties and the base engine's approximate combustion/overlap affect these numbers strongly. They are prototype comparisons, not real engine predictions.

The original benchmark used four solver substeps per output frame. The turbo cost .81 CPU seconds per simulated second at 4000 RPM and 1.28 at 7000 RPM, versus .53 for the unboosted twin. Sustained high-load real-time playback is an open issue; monitor underruns. The mixed transient cost .84 wall seconds per simulated second. The subsequent optimization audit resolves the subnormal-tracer slowdown and measures about .65 seconds per simulated second in its 7,000-RPM workload. Tests run headlessly; latest Windows runtime is unverified.

Run

cmake --build build-desktop --target fluidsim_desktop -j 4
./build-desktop/fluidsim_desktop --scenario twin --turbo vz21 --scene field
cmake --build build-audit --target fluidsim_turbo_benchmark -j 4
./build-audit/fluidsim_turbo_benchmark

The startup menu also offers the turbo twin. WAV capture accepts --scenario twin --turbo vz21. Blade-passing acoustics are the next requested part: they must follow rotor geometry/loading and be filtered before 44.1 kHz sampling, rather than adding an arbitrary sound or aliased pressure ripple.