Files
FluidSimCpp/engines/twin.toml

304 lines
6.1 KiB
TOML

# Engine definition. Dimensional keys state their units.
schema_version = 2
id = "twin"
name = "600 cc parallel twin"
category = "Twins / parallel"
description = "EFI motorcycle baseline"
order = 0
cycle = "four_stroke"
[simulation]
cells_per_meter = 50.0
[engine]
bank_angle_deg = 56.0
cylinders = 2
initial_rpm = 2000.0
initialize_phased_charge = false
layout = "inline"
maximum_load_torque_nm = 30.0
minimum_substeps = 1
phase_degrees = [0.0, 180.0]
pipe_damping = 1.0
starter_torque_nm = 18.0
throttle_diameter_mm = 26.0
topology = "collector"
[cylinder]
afr = 14.7
ambient_temperature_k = 300.0
bore_mm = 75.0
burn_duration_deg = 60.0
burn_start_deg = 5.0
compression = 11.5
energy_variation = 0.05
exhaust_valve_count = 1
exhaust_valve_diameter_mm = 26.0
fuel_lhv_j_per_kg = 4.4e+07
heat_transfer = 100.0
intake_valve_count = 1
intake_valve_diameter_mm = 30.0
misfire_probability = 0.0
rod_mm = 112.0
stroke_mm = 68.0
wall_area = 0.02
wiebe_a = 5.0
wiebe_m = 2.0
[crankshaft]
friction_constant_nm = 5.0
friction_quadratic_nm_s2 = 0.0
friction_viscous_nm_s = 0.003
inertia_kg_m2 = 0.04
[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 = 1800.0
idle_spark_gain = 0.0
ignition_map = [[0.0, 10.0], [15000.0, 40.0]]
overrun_cut_rpm = 3500.0
overrun_fuel_cut_enabled = true
overrun_ignition_cut_enabled = false
overrun_resume_rpm = 2400.0
power_afr = 12.8
rev_limit_enabled = true
rev_limit_fuel_cut_enabled = true
rev_limit_rpm = 10000.0
rev_resume_rpm = 9750.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 = 80.0
clutch_engagement_rate = 8.0
drag_coefficient = 0.7
final_drive_ratio = 2.7
frontal_area = 0.65
gear_ratios = [4.1, 2.7, 2.0, 1.55, 1.25, 0.98]
gravity = 9.80665
mass_kg = 160.0
primary_reduction = 1.8
rolling_resistance = 0.015
rotational_inertia_kg_m2 = 1.2
wheel_radius_mm = 320.0
[fuel]
system = "injection"
[[pipes]]
id = "intake"
diameter_mm = 27.5
[[pipes]]
id = "runners"
count = 2
diameter_mm = 27.5
[[pipes]]
id = "primaries"
count = 2
diameter_mm = 28.0
[[pipes]]
id = "tailpipe"
diameter_mm = 28.0
[cam.intake]
points = [
[0.000, 0.000000],
[340.000, 0.000000],
[345.000, 0.145408],
[350.000, 0.548864],
[355.000, 1.161216],
[360.000, 1.933312],
[365.000, 2.816000],
[370.000, 3.760128],
[375.000, 4.716544],
[380.000, 5.636096],
[385.000, 6.469632],
[390.000, 7.168000],
[395.000, 7.682048],
[400.000, 7.962624],
[402.500, 8.000000],
[527.500, 8.000000],
[532.500, 7.854592],
[537.500, 7.451136],
[542.500, 6.838784],
[547.500, 6.066688],
[552.500, 5.184000],
[557.500, 4.239872],
[562.500, 3.283456],
[567.500, 2.363904],
[572.500, 1.530368],
[577.500, 0.832000],
[582.500, 0.317952],
[587.500, 0.037376],
[590.000, 0.000000],
[720.000, 0.000000]
]
[cam.exhaust]
points = [
[0.000, 0.000000],
[130.000, 0.000000],
[135.000, 0.126309],
[140.000, 0.477924],
[145.000, 1.013883],
[150.000, 1.693218],
[155.000, 2.474966],
[160.000, 3.318161],
[165.000, 4.181839],
[170.000, 5.025034],
[175.000, 5.806782],
[180.000, 6.486117],
[185.000, 7.022076],
[190.000, 7.373691],
[195.000, 7.500000],
[325.000, 7.500000],
[330.000, 7.373691],
[335.000, 7.022076],
[340.000, 6.486117],
[345.000, 5.806782],
[350.000, 5.025034],
[355.000, 4.181839],
[360.000, 3.318161],
[365.000, 2.474966],
[370.000, 1.693218],
[375.000, 1.013883],
[380.000, 0.477924],
[385.000, 0.126309],
[390.000, 0.000000],
[720.000, 0.000000]
]
[valves.intake]
mass_g = 35.0
spring_rate_n_per_mm = 38.0
damping_n_s_per_m = 24.0
seat_force_n = 75.0
maximum_lift_mm = 15.0
seat_restitution = 0.005
cam_restitution = 0.01
stop_restitution = 0.01
[valves.exhaust]
mass_g = 35.0
spring_rate_n_per_mm = 38.0
damping_n_s_per_m = 24.0
seat_force_n = 75.0
maximum_lift_mm = 15.0
seat_restitution = 0.005
cam_restitution = 0.01
stop_restitution = 0.01
[valve_sound]
mode_hz = 3600.0
effective_mass_g = 180.0
radiation_area_cm2 = 10.0
damping_ratio = 0.9
[[geometry.cylinders]]
origin_mm = [ -46.5, 0, 0 ]
tilt_deg = 0.0
[[geometry.cylinders]]
origin_mm = [ 46.5, 0, 0 ]
tilt_deg = 0.0
# intake
[[geometry.pipes]]
index = 0
points_mm = [
[ -153, 144.4762, -217.5 ],
[ -93, 144.4762, -217.5 ]
]
# runners 1
[[geometry.pipes]]
index = 1
points_mm = [
[ -46.5, 144.4762, -150 ],
[ -46.5, 144.4762, -30 ]
]
# runners 2
[[geometry.pipes]]
index = 2
points_mm = [
[ 46.5, 144.4762, -150 ],
[ 46.5, 144.4762, -30 ]
]
# primaries 1
[[geometry.pipes]]
index = 3
points_mm = [
[ -46.5, 144.4762, 37.5 ],
[ -45.0739, 141.4466, 51.4126 ],
[ -41.0434, 136.9192, 63.2857 ],
[ -34.7808, 130.9928, 73.2768 ],
[ -26.658, 123.7661, 81.5435 ],
[ -17.047, 115.3378, 88.2433 ],
[ -6.3199, 105.8067, 93.5338 ],
[ 5.1513, 95.2715, 97.5727 ],
[ 16.9945, 83.831, 100.5174 ],
[ 28.8377, 71.584, 102.5255 ],
[ 40.3089, 58.6292, 103.7547 ],
[ 51.036, 45.0653, 104.3624 ],
[ 60.6469, 30.9911, 104.5063 ],
[ 68.7698, 16.5054, 104.344 ],
[ 75.0324, 1.7069, 104.0329 ],
[ 79.0628, -13.3057, 103.7307 ],
[ 80.489, -28.4335, 103.5949 ]
]
# primaries 2
[[geometry.pipes]]
index = 4
points_mm = [
[ 46.5, 144.4762, 37.5 ],
[ 47.0208, 141.6097, 49.4384 ],
[ 48.4927, 136.9383, 59.8461 ],
[ 50.7797, 130.622, 68.8281 ],
[ 53.7461, 122.8206, 76.4893 ],
[ 57.2559, 113.6941, 82.9347 ],
[ 61.1733, 103.4022, 88.2691 ],
[ 65.3624, 92.1049, 92.5975 ],
[ 69.6874, 79.9621, 96.0248 ],
[ 74.0124, 67.1336, 98.6559 ],
[ 78.2015, 53.7794, 100.5958 ],
[ 82.1189, 40.0593, 101.9494 ],
[ 85.6288, 26.1331, 102.8216 ],
[ 88.5951, 12.1609, 103.3173 ],
[ 90.8821, -1.6975, 103.5415 ],
[ 92.354, -15.2823, 103.5991 ],
[ 92.8748, -28.4335, 103.5949 ]
]
# tailpipe
[[geometry.pipes]]
index = 5
points_mm = [
[ 126.5665, -55, 113.75 ],
[ 526.5663, -55, 113.75 ]
]
[[geometry.volumes]]
id = "intake_plenum"
center_mm = [ 0, 144.4762, -217.5 ]
size_mm = [ 186, 39.8248, 135 ]
[[geometry.volumes]]
id = "exhaust_collector"
center_mm = [ 100, -55, 113.75 ]
size_mm = [ 53.1329, 53.1329, 53.1329 ]