Skip to content

T3CO Scenario File

Below is an example of a scenario file contents, in columnar format for readability. Usually the input CSV is in row form. Scenario selections become a selection object in T3CO. Scenario files are one of two fundamental units of T3CO. The other is the FASTSim Vehicle. To put it in plain English, if FASTSim Vehicles are the peanut butter, Scenarios are the jelly. These two objects literally flow through the code in a pair, in tandem. Most methods in T3CO have arguments for a Vehicle object and its accompanying Scenario object. If using row-based sources for vehicles and scenarios, the selection value in the scenario file should correspond with the selection value in the FASTSim input file. The Vehicle of selection should correspond with Scenario of selection 21 and they should flow through the code together. This is how we pair a vehicle with operating and economic conditions from the scenario to create total cost of ownership and performance results; as well as optimization targets and constraints.

column name description example value type/bounds
selection < > 110 NA
scenario_name < > Class 8 Sleeper cab mid roof (PHEV, 2050, no program) NA
drive_cycle < > [("EPA_Ph2_rural_interstate_65mph.csv", .86), ("EPA_Ph2_urban_highway_55mph.csv", .09), ("EPA_Ph2_transient.csv", .05)] Strings are drive cycle names or full paths to drive cycle. If using only one drive cycle,can be a single string. If using a composite set of cycles, must be a list of tuples. First tuple element is drive cycle string, second element is a float between 0 and 1:string or [(string,float),...]
vmt_reduct_per_yr < > nan [0, inf]
vmt < > [108010,117983,114998,104732] Should have a vmt entry in the list for every year the vehicle is operational based on vehicle_life_yr: [int,...]
constant_trip_distance_mi < > 0 int
vehicle_life_yr < > 4 int
discount_rate_pct_per_yr < > 0.03 float [0,1]
ess_cost_dol_per_kw < > 0 float
ess_cost_dol_per_kwh < > 85 float
ess_base_cost_dol < > 0 float
ess_cost_reduction_dol_per_yr < > 0 float
ess_salvage_value_dol < > 0 float
pe_mc_cost_dol_per_kw < > 11 float
pe_mc_base_cost_dol < > 350 float
fc_ice_cost_dol_per_kw < > 50 float
fc_ice_base_cost_dol < > 6250 float
fc_fuelcell_cost_dol_per_kw < > 85 float
fs_cost_dol_per_kwh < > 0.07 float
fs_h2_cost_dol_per_kwh < > 9.5 float
plug_base_cost_dol < > 500 float
markup_pct < > 1.2 float
tax_rate_pct < > 0.035 float
fc_cng_ice_cost_dol_per_kw < > 55 float
fs_cng_cost_dol_per_kwh < > 7.467735503 float
vehicle_glider_cost_dol < > 112759 float
segment_name < > HDTC8 string
gvwr_kg < > 36287.43275 float
gvwr_credit_kg < > 0 amount [kg] vehicle can exceed GVWR[kg], applies during component sizing during optimization int
fuel < > ["cd_electricity", "cd_diesel", "cs_diesel"] multiple fuel types are permissible, or a single type can be input. For PHEVs, there must be specified two Charge Depleting and on Charge Sustaining as shownstring or [string,...]
maint_oper_cost_dol_per_mi < > [0.15,0.16,...0.19] float list
vocation < > Long haul string
model_year < > 2050 int
region < > FY21NoProgram string
target_range_mi < > 500 float Note: for PHEVs, T3CO will meet this requirement in CD mode
min_speed_at_6pct_grade_in_5min_mph < > 30 float
min_speed_at_1p25pct_grade_in_5min_mph < > 65 float
max_time_0_to_60mph_at_gvwr_s < > 80 float
max_time_0_to_30mph_at_gvwr_s < > 20 float
lw_imp_curve_sel < > MDHD_noprogram_2050 string Optimization "knob" handling. For certain knobs, there are curves that apply. This value references a column in the light-weighting curves file. Example: light weighting curves. Referenced in sweep.py here
eng_eff_imp_curve_sel < > MDHD_large_noprogram_2050 string Optimization "knob" handling. For certain knobs, there are curves that apply. This value references a column in the engine efficiency improvement curves file. Example: engine efficiency curves. Referenced in sweep.py here
aero_drag_imp_curve_sel < > SleeperTractorMidRoof_noprogram_2050 string Optimization "knob" handling. For certain knobs, there are curves that apply. This value references a column in the drag coefficient improvement curves file. Example: drag coefficient curves. Referenced in sweep.py here
skip_opt < > True Important column! Though it's a bit buried, this column will designate whether this scenario and vehicle combination should be optimized or not. If True, then optimization is skipped.True or False
knob_min_ess_kwh < > 300 nan or float Optimization settings If this "knob" has a min and max value input from user, it implies that this opimization parameter should be used.
knob_max_ess_kwh < > 1500 nan or float Optimization settings If this "knob" has a min and max value input from user, it implies that this opimization parameter should be used.
knob_min_motor_kw < > 200 nan or float Optimization settings If this "knob" has a min and max value input from user, it implies that this opimization parameter should be used.
knob_max_motor_kw < > 400 nan or float Optimization settings If this "knob" has a min and max value input from user, it implies that this opimization parameter should be used.
knob_min_fc_kw < > 100 nan or float Optimization settings If this "knob" has a min and max value input from user, it implies that this opimization parameter should be used.
knob_max_fc_kw < > 300 nan or float Optimization settings If this "knob" has a min and max value input from user, it implies that this opimization parameter should be used.
knob_min_fs_kwh < > 100 nan or float Optimization settings If this "knob" has a min and max value input from user, it implies that this opimization parameter should be used.
knob_max_fs_kwh < > 600 nan or float Optimization settings If this "knob" has a min and max value input from user, it implies that this opimization parameter should be used.
constraint_range < > nan True or False Optimization setting. If True, then the constraint is applied and tests for range must be met or exceeded. Test threshold designated by value in target_range_mi
constraint_accel < > nan True or False Optimization setting. If True, then the constraint is applied and tests for acceleratiion. must be met or exceeded Test threshold designated by value in max_time_0_to_60mph_at_gvwr_s and max_time_0_to_30mph_at_gvwr_s
constraint_grade < > nan True or False Optimization setting. If True, then the constraint is applied and tests for grade must be met or exceeded Test threshold designated by value in min_speed_at_6pct_grade_in_5min_mph and min_speed_at_1p25pct_grade_in_5min_mph
objective_tco < > nan True or False Optimization setting. If True, then the objective to minimize Total Cost of Ownership is applied.
constraint_c_rate < > True True or False Optimization setting. If True, then the constraint for c rate is applied
shifts_per_year < > 260 PHEVs only! See PHEV Docs
phev_utility_factor_override < > .6 PHEVs only! See PHEV Docs
soc_norm_init_for_grade_pct < > .8 PHEVs only! See PHEV Docs
soc_norm_init_for_accel_pct < > .85 PHEVs only! See PHEV Docs
motor_power_override_kw_fc_demand_on_pct < > .95 PHEV specific inputs. See PHEV Docs
ess_init_soc_grade < > .8 [0,1] For BEV or HEV, during grade test, if initial SOC override is desired, rather than using the FASTSim + T3CO intial SOC regime
ess_init_soc_accel < > .85 [0,1] For BEV or HEV, during grade test, if initial SOC override is desired, rather than using the FASTSim + T3CO intial SOC regime