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

112 lines
6.3 KiB
Markdown

# 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](https://ecotrons.com/files/ECOTRONS%20Turbo%20VZ21%20technical%20specl.pdf)
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](https://www.maxpeedingrods.nl/en/products/rhb31-vz21-turbocharger-junta-100ps-for-motor-pequeno-rhino-motocicleta-at-vz21-npvl)
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](https://www.grc.nasa.gov/WWW/K-12/BGP/ctmatch.html)
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](OPTIMIZATION.md) 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
```sh
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.