Files
FluidSimCpp/engines/v8-dual.toml
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

152 lines
3.0 KiB
TOML

# Engine definition. Dimensional keys state their units.
schema_version = 1
id = "v8-dual"
name = "American 5.0 / independent banks"
category = "V8 / American 5.0"
description = "Same 4-2-1 headers with H crossover disconnected"
order = 8
cycle = "four_stroke"
[engine]
bank_angle_deg = 56.0
collector_volume_litres = 1.5
cylinders = 8
initial_rpm = 1000.0
initialize_phased_charge = true
layout = "v"
maximum_load_torque_nm = 300.0
minimum_substeps = 1
phase_degrees = [0.0, 450.0, 270.0, 540.0, 630.0, 360.0, 180.0, 89.99998]
pipe_damping = 1.0
plenum_volume_litres = 4.0
starter_torque_nm = 180.0
throttle_diameter_mm = 65.0
topology = "american_v8"
[cylinder]
afr = 14.7
ambient_temperature_k = 300.0
bore_mm = 101.6
burn_duration_deg = 65.0
burn_start_deg = 5.0
compression = 7.0
energy_variation = 0.05
exhaust_close_deg = 370.0
exhaust_open_deg = 140.0
exhaust_valve_count = 1
exhaust_valve_diameter_mm = 37.0
exhaust_valve_lift_mm = 10.0
fuel_lhv_j_per_kg = 4.4e+07
heat_transfer = 100.0
intake_close_deg = 570.0
intake_open_deg = 350.0
intake_valve_count = 1
intake_valve_diameter_mm = 45.0
intake_valve_lift_mm = 10.0
misfire_probability = 0.0
rod_mm = 129.0
stroke_mm = 76.2
wall_area = 0.02
wiebe_a = 5.0
wiebe_m = 2.0
[crankshaft]
friction_constant_nm = 22.0
friction_quadratic_nm_s2 = 0.0
friction_viscous_nm_s = 0.025
inertia_kg_m2 = 1.1
[ecu]
idle_base_opening = 0.08
idle_control = "feedback"
idle_ki = 4e-05
idle_kp = 0.0001
idle_max_opening = 0.25
idle_minimum_advance_deg = -5.0
idle_rpm = 750.0
idle_spark_gain = 0.02
ignition_map = [[0.0, 10.0], [750.0, 12.0], [2500.0, 28.0], [4000.0, 32.0], [6000.0, 30.0]]
overrun_cut_rpm = 2000.0
overrun_fuel_cut_enabled = true
overrun_ignition_cut_enabled = false
overrun_resume_rpm = 1100.0
power_afr = 12.8
rev_limit_enabled = true
rev_limit_fuel_cut_enabled = true
rev_limit_rpm = 7000.0
rev_resume_rpm = 6750.0
stoichiometric_afr = 14.7
throttle_closing_rate = 0.0
throttle_closing_time_constant_s = 0.0
throttle_rate = 1000.0
throttle_time_constant_s = 0.001
[vehicle]
air_density = 1.225
clutch_capacity = 1100.0
clutch_engagement_rate = 8.0
drag_coefficient = 0.4
final_drive_ratio = 3.623529
frontal_area = 2.0
gear_ratios = [3.35, 1.93, 1.29, 1.0, 0.68]
gravity = 9.80665
mass_kg = 3000.0
primary_reduction = 1.0
rolling_resistance = 0.015
rotational_inertia_kg_m2 = 1.2
wheel_radius_mm = 320.0
[fuel]
system = "injection"
[junctions]
h_pipe = false
junction_volume_cc = 50.0
[[pipes]]
id = "intake"
cells = 3
diameter_mm = 70.0
length_mm = 180.0
[[pipes]]
id = "runners"
count = 8
cells = 2
diameter_mm = 38.0
length_mm = 120.0
[[pipes]]
id = "primaries"
count = 8
cells = 15
diameter_mm = 38.0
length_mm = 750.0
[[pipes]]
id = "secondaries"
count = 4
cells = 8
diameter_mm = 45.0
length_mm = 400.0
[[pipes]]
id = "bank_collectors"
count = 2
cells = 11
diameter_mm = 50.0
length_mm = 550.0
[[pipes]]
id = "tailpipes"
count = 2
cells = 25
diameter_mm = 50.0
length_mm = 1250.0
[[pipes]]
id = "crossover"
cells = 16
diameter_mm = 38.0
length_mm = 780.0