# 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 ]