Files
FluidSimCpp/engines/f20.toml

452 lines
9.7 KiB
TOML

# Engine definition. Dimensional keys state their units.
schema_version = 2
id = "f20"
name = "F20C-inspired / 2.0 high-rev four"
category = "Inline four / specials"
description = "Unequal primaries / small junctions / staged collectors / EFI"
order = 22
cycle = "four_stroke"
[simulation]
cells_per_meter = 20.0
[engine]
bank_angle_deg = 60.0
cylinders = 4
initial_rpm = 1400.0
initialize_phased_charge = true
layout = "inline"
maximum_load_torque_nm = 30.0
minimum_substeps = 1
phase_degrees = [0.0, 180.0, 540.0, 360.0]
pipe_damping = 0.0
starter_torque_nm = 49.9353
throttle_diameter_mm = 65.0
topology = "staged"
[cylinder]
afr = 14.7
ambient_temperature_k = 300.0
bore_mm = 87.0
burn_duration_deg = 60.0
burn_start_deg = 5.0
compression = 10.0
energy_variation = 0.05
exhaust_valve_count = 1
exhaust_valve_diameter_mm = 27.84
fuel_lhv_j_per_kg = 4.4e+07
heat_transfer = 100.0
intake_valve_count = 1
intake_valve_diameter_mm = 33.06
misfire_probability = 0.0
rod_mm = 151.2
stroke_mm = 84.0
wall_area = 0.02
wiebe_a = 5.0
wiebe_m = 2.0
[crankshaft]
friction_constant_nm = 7.989648
friction_quadratic_nm_s2 = 0.0
friction_viscous_nm_s = 0.007989648
inertia_kg_m2 = 0.2396894
[ecu]
idle_base_opening = 0.05
idle_control = "feedback"
idle_ki = 4e-05
idle_kp = 0.0001
idle_max_opening = 0.25
idle_minimum_advance_deg = -5.0
idle_rpm = 1000.0
idle_spark_gain = 0.02
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 = 9000.0
rev_resume_rpm = 8750.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 = 439.4306
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 = 1400.0
primary_reduction = 1.8
rolling_resistance = 0.015
rotational_inertia_kg_m2 = 1.2
wheel_radius_mm = 320.0
[fuel]
system = "injection"
[junctions]
h_pipe = true
[[pipes]]
id = "intake"
diameter_mm = 75.0
[[pipes]]
id = "runners"
count = 4
diameter_mm = 35.0
[[pipes]]
id = "primary_1"
diameter_mm = 38.0
[[pipes]]
id = "primary_2"
diameter_mm = 38.0
[[pipes]]
id = "primary_3"
diameter_mm = 38.0
[[pipes]]
id = "primary_4"
diameter_mm = 38.0
[[pipes]]
id = "tailpipe_9"
diameter_mm = 60.0
[[pipes]]
id = "secondary_10"
diameter_mm = 48.0
[[pipes]]
id = "secondary_11"
diameter_mm = 48.0
[cam.intake]
points = [
[0.000, 0.000000],
[340.000, 0.000000],
[345.000, 0.158131],
[350.000, 0.596890],
[355.000, 1.262822],
[360.000, 2.102477],
[365.000, 3.062400],
[370.000, 4.089139],
[375.000, 5.129242],
[380.000, 6.129254],
[385.000, 7.035725],
[390.000, 7.795200],
[395.000, 8.354227],
[400.000, 8.659354],
[402.500, 8.700000],
[527.500, 8.700000],
[532.500, 8.541869],
[537.500, 8.103110],
[542.500, 7.437178],
[547.500, 6.597523],
[552.500, 5.637600],
[557.500, 4.610861],
[562.500, 3.570758],
[567.500, 2.570746],
[572.500, 1.664275],
[577.500, 0.904800],
[582.500, 0.345773],
[587.500, 0.040646],
[590.000, 0.000000],
[720.000, 0.000000]
]
[cam.exhaust]
points = [
[0.000, 0.000000],
[130.000, 0.000000],
[135.000, 0.131866],
[140.000, 0.498953],
[145.000, 1.058493],
[150.000, 1.767720],
[155.000, 2.583864],
[160.000, 3.464160],
[165.000, 4.365840],
[170.000, 5.246136],
[175.000, 6.062280],
[180.000, 6.771507],
[185.000, 7.331047],
[190.000, 7.698134],
[195.000, 7.830000],
[325.000, 7.830000],
[330.000, 7.698134],
[335.000, 7.331047],
[340.000, 6.771507],
[345.000, 6.062280],
[350.000, 5.246136],
[355.000, 4.365840],
[360.000, 3.464160],
[365.000, 2.583864],
[370.000, 1.767720],
[375.000, 1.058493],
[380.000, 0.498953],
[385.000, 0.131866],
[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 = [ -157.5, 0, 0 ]
tilt_deg = 0.0
[[geometry.cylinders]]
origin_mm = [ -52.5, 0, 0 ]
tilt_deg = 0.0
[[geometry.cylinders]]
origin_mm = [ 52.5, 0, 0 ]
tilt_deg = 0.0
[[geometry.cylinders]]
origin_mm = [ 157.5, 0, 0 ]
tilt_deg = 0.0
# intake
[[geometry.pipes]]
index = 0
points_mm = [
[ -410, 194.5333, -363.1 ],
[ -210, 194.5333, -363.1 ]
]
# runners 1
[[geometry.pipes]]
index = 1
points_mm = [
[ -157.5, 194.5333, -284.8 ],
[ -157.5, 194.5333, -34.8 ]
]
# runners 2
[[geometry.pipes]]
index = 2
points_mm = [
[ -52.5, 194.5333, -284.8 ],
[ -52.5, 194.5333, -34.8 ]
]
# runners 3
[[geometry.pipes]]
index = 3
points_mm = [
[ 52.5, 194.5333, -284.8 ],
[ 52.5, 194.5333, -34.8 ]
]
# runners 4
[[geometry.pipes]]
index = 4
points_mm = [
[ 157.5, 194.5333, -284.8 ],
[ 157.5, 194.5333, -34.8 ]
]
# primary_1
[[geometry.pipes]]
index = 5
points_mm = [
[ -157.5, 194.5333, 43.5 ],
[ -156.9599, 191.2299, 56.8381 ],
[ -155.4334, 185.7695, 68.1689 ],
[ -153.0615, 178.3497, 77.6508 ],
[ -149.9852, 169.1678, 85.4419 ],
[ -146.3452, 158.4214, 91.7006 ],
[ -142.2825, 146.3079, 96.5849 ],
[ -137.9379, 133.0247, 100.2531 ],
[ -133.4525, 118.7693, 102.8634 ],
[ -128.9671, 103.7391, 104.5741 ],
[ -124.6226, 88.1316, 105.5434 ],
[ -120.5599, 72.1442, 105.9294 ],
[ -116.9199, 55.9744, 105.8905 ],
[ -113.8435, 39.8197, 105.5848 ],
[ -111.4716, 23.8774, 105.1705 ],
[ -109.9452, 8.3451, 104.806 ],
[ -109.4051, -6.5798, 104.6493 ]
]
# primary_2
[[geometry.pipes]]
index = 6
points_mm = [
[ -52.5, 194.5333, 43.5 ],
[ -53.0401, 191.2299, 56.8381 ],
[ -54.5666, 185.7695, 68.1689 ],
[ -56.9385, 178.3497, 77.6508 ],
[ -60.0148, 169.1678, 85.4419 ],
[ -63.6548, 158.4214, 91.7006 ],
[ -67.7175, 146.3079, 96.5849 ],
[ -72.062, 133.0247, 100.2531 ],
[ -76.5475, 118.7693, 102.8634 ],
[ -81.0329, 103.7391, 104.5741 ],
[ -85.3774, 88.1316, 105.5434 ],
[ -89.4401, 72.1442, 105.9294 ],
[ -93.0801, 55.9744, 105.8905 ],
[ -96.1565, 39.8197, 105.5848 ],
[ -98.5284, 23.8774, 105.1705 ],
[ -100.0548, 8.3451, 104.806 ],
[ -100.5949, -6.5798, 104.6493 ]
]
# primary_3
[[geometry.pipes]]
index = 7
points_mm = [
[ 52.5, 194.5333, 43.5 ],
[ 53.0401, 191.1567, 58.187 ],
[ 54.5666, 185.761, 71.4839 ],
[ 56.9385, 178.5161, 83.4517 ],
[ 60.0148, 169.5922, 94.1515 ],
[ 63.6548, 159.1591, 103.6443 ],
[ 67.7175, 147.387, 111.9912 ],
[ 72.062, 134.4458, 119.2533 ],
[ 76.5475, 120.5056, 125.4917 ],
[ 81.0329, 105.7364, 130.7675 ],
[ 85.3774, 90.3081, 135.1416 ],
[ 89.4401, 74.3909, 138.6753 ],
[ 93.0801, 58.1546, 141.4295 ],
[ 96.1565, 41.7694, 143.4654 ],
[ 98.5284, 25.4053, 144.8439 ],
[ 100.0548, 9.2322, 145.6263 ],
[ 100.5949, -6.5798, 145.8735 ]
]
# primary_4
[[geometry.pipes]]
index = 8
points_mm = [
[ 157.5, 194.5333, 43.5 ],
[ 156.9599, 191.1567, 58.187 ],
[ 155.4334, 185.761, 71.4839 ],
[ 153.0615, 178.5161, 83.4517 ],
[ 149.9852, 169.5922, 94.1515 ],
[ 146.3452, 159.1591, 103.6443 ],
[ 142.2825, 147.387, 111.9912 ],
[ 137.9379, 134.4458, 119.2533 ],
[ 133.4525, 120.5056, 125.4917 ],
[ 128.9671, 105.7364, 130.7675 ],
[ 124.6226, 90.3081, 135.1416 ],
[ 120.5599, 74.3909, 138.6753 ],
[ 116.9199, 58.1546, 141.4295 ],
[ 113.8435, 41.7694, 143.4654 ],
[ 111.4716, 25.4053, 144.8439 ],
[ 109.9452, 9.2322, 145.6263 ],
[ 109.4051, -6.5798, 145.8735 ]
]
# tailpipe_9
[[geometry.pipes]]
index = 9
points_mm = [
[ 218.4202, -70, 170.25 ],
[ 1718.4201, -70, 170.25 ]
]
# secondary_10
[[geometry.pipes]]
index = 10
points_mm = [
[ -86.5798, -27.7177, 113.8736 ],
[ -68.2776, -28.1621, 114.4661 ],
[ -50.5923, -29.4178, 116.1404 ],
[ -33.4358, -31.3689, 118.7419 ],
[ -16.7199, -33.8997, 122.1162 ],
[ -0.3565, -36.8941, 126.1088 ],
[ 15.7426, -40.2362, 130.5649 ],
[ 31.6653, -43.8101, 135.3302 ],
[ 47.5, -47.5, 140.25 ],
[ 63.3347, -51.1899, 145.1698 ],
[ 79.2574, -54.7638, 149.9351 ],
[ 95.3565, -58.1059, 154.3912 ],
[ 111.7199, -61.1003, 158.3838 ],
[ 128.4358, -63.6311, 161.7581 ],
[ 145.5923, -65.5822, 164.3596 ],
[ 163.2777, -66.838, 166.0339 ],
[ 181.5798, -67.2823, 166.6264 ]
]
# secondary_11
[[geometry.pipes]]
index = 11
points_mm = [
[ 123.4202, -33.7253, 158.1585 ],
[ 127.6728, -34.0347, 158.2616 ],
[ 131.6784, -34.9091, 158.553 ],
[ 135.4722, -36.2677, 159.0059 ],
[ 139.0895, -38.0299, 159.5933 ],
[ 142.5657, -40.115, 160.2883 ],
[ 145.9359, -42.4421, 161.064 ],
[ 149.2356, -44.9307, 161.8936 ],
[ 152.5, -47.5, 162.75 ],
[ 155.7644, -50.0693, 163.6064 ],
[ 159.0641, -52.5579, 164.436 ],
[ 162.4343, -54.8851, 165.2117 ],
[ 165.9105, -56.9701, 165.9067 ],
[ 169.5278, -58.7323, 166.4941 ],
[ 173.3216, -60.0909, 166.947 ],
[ 177.3272, -60.9653, 167.2384 ],
[ 181.5798, -61.2747, 167.3415 ]
]
[[geometry.volumes]]
id = "intake_plenum"
center_mm = [ 0, 194.5333, -363.1 ]
size_mm = [ 420, 60.8162, 156.6 ]
[[geometry.volumes]]
id = "junction_0"
center_mm = [ -105, -25, 110.25 ]
size_mm = [ 36.8403, 36.8403, 36.8403 ]
[[geometry.volumes]]
id = "junction_1"
center_mm = [ 105, -25, 155.25 ]
size_mm = [ 36.8403, 36.8403, 36.8403 ]
[[geometry.volumes]]
id = "junction_2"
center_mm = [ 200, -70, 170.25 ]
size_mm = [ 36.8403, 36.8403, 36.8403 ]