generated from rl-institut/rli_template
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'dev' into feature/sensitivity_analysis
# Conflicts: # ebus_toolbox/__main__.py
- Loading branch information
Showing
2 changed files
with
102 additions
and
4 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,6 +1,104 @@ | ||
|
||
import argparse | ||
from ebus_toolbox import simulate, util | ||
|
||
if __name__ == '__main__': | ||
args = util.read_arguments() | ||
parser = argparse.ArgumentParser( | ||
description='Ebus Toolbox - \ | ||
Simulation Program for Ebus Fleets.') | ||
parser.add_argument('--input_schedule', nargs='?', | ||
help='Path to CSV file containing all trips of schdedule to be analyzed.') | ||
parser.add_argument('--output_directory', default='data/sim_outputs', nargs='?', | ||
help='Location where all simulation outputs are stored') | ||
parser.add_argument('--preferred_charging_type', '-pct', default='depot', | ||
choices=['depot', 'opp'], help="Preferred charging type. Choose one\ | ||
from <depb> and <oppb>. opp stands for opportunity.") | ||
parser.add_argument('--vehicle-types', default="./data/examples/vehicle_types.json", | ||
help='location of vehicle type definitions') | ||
parser.add_argument('--min_recharge_deps_oppb', default=1, | ||
help='Minimum fraction of capacity for recharge when leaving the depot.') | ||
parser.add_argument('--min_recharge_deps_depb', default=1, | ||
help='Minimum fraction of capacity for recharge when leaving the depot.') | ||
parser.add_argument('--days', metavar='N', type=int, default=None, | ||
help='set duration of scenario as number of days') | ||
parser.add_argument('--interval', metavar='MIN', type=int, default=15, | ||
help='set number of minutes for each timestep (Δt)') | ||
parser.add_argument('--desired-soc', metavar='SOC', type=float, default=0.8, | ||
help='set minimum desired SOC (0 - 1) for each charging process') | ||
parser.add_argument('--gc_power_opps', metavar='POPP', type=float, default=1500, | ||
help='max power of grid connector at opp stations') | ||
parser.add_argument('--gc_power_deps', metavar='PDEP', type=float, default=1500, | ||
help='max power of grid connector at depot stations') | ||
parser.add_argument('--cs_power_opps', metavar='CSPOPP', type=float, default=150, | ||
help='max power of charging station at opp stations') | ||
parser.add_argument('--cs_power_deps_depb', metavar='CSPDEPDEP', type=float, default=150, | ||
help='max power of charging station at depot stations for depot busses') | ||
parser.add_argument('--cs_power_deps_oppb', metavar='CSPDEPOPP', type=float, default=150, | ||
help='max power of charging station at depot stations for opp busses') | ||
parser.add_argument('--battery', '-b', default=[], nargs=2, type=float, action='append', | ||
help='add battery with specified capacity in kWh and C-rate \ | ||
(-1 for variable capacity, second argument is fixed power))') | ||
parser.add_argument('--seed', default=None, type=int, help='set random seed') | ||
parser.add_argument('--iterations', default=1, type=int, help='iterations for optimization') | ||
parser.add_argument('--include-ext-load-csv', | ||
help='include CSV for external load. \ | ||
You may define custom options with --include-ext-csv-option') | ||
parser.add_argument('--include-ext-csv-option', '-eo', metavar=('KEY', 'VALUE'), | ||
nargs=2, action='append', | ||
help='append additional argument to external load') | ||
parser.add_argument('--include-feed-in-csv', | ||
help='include CSV for energy feed-in, e.g., local PV. \ | ||
You may define custom options with --include-feed-in-csv-option') | ||
parser.add_argument('--include-feed-in-csv-option', '-fo', metavar=('KEY', 'VALUE'), | ||
nargs=2, action='append', help='append additional argument to feed-in load') | ||
parser.add_argument('--include-price-csv', | ||
help='include CSV for energy price. \ | ||
You may define custom options with --include-price-csv-option') | ||
parser.add_argument('--include-price-csv-option', '-po', metavar=('KEY', 'VALUE'), | ||
nargs=2, default=[], action='append', | ||
help='append additional argument to price signals') | ||
parser.add_argument('--start_date', default='2018-01-02', | ||
help='Provide start date of simulation in format YYYY-MM-DD.E.g. ' | ||
'2018-01-31') | ||
parser.add_argument('--electrified_stations', help='include electrified_stations json', | ||
default='data/examples/electrified_stations.json') | ||
parser.add_argument('--vehicle_types', help='include vehicle_types json', | ||
default='examples/vehicle_types.json') | ||
parser.add_argument('--min_charging_time_opps', help='define minimum time of charging at opps', | ||
default=2) | ||
parser.add_argument('--default_buffer_time_opps', help='time to subtract off of standing time ' | ||
'at opp station to simulate docking procedure.', default=1) | ||
parser.add_argument('--signal_time_dif', help='time difference between signal time and actual ' | ||
'start time of a vehicle event im min.', | ||
default=10) | ||
parser.add_argument('--visual', '-v', action='store_true', help='Show plots of the results') | ||
parser.add_argument('--desired_soc', default=1, help='desired_soc of vehicles') | ||
parser.add_argument('--eta', action='store_true', | ||
help='Show estimated time to finish simulation after each step, \ | ||
instead of progress bar. Not recommended for fast computations.') | ||
parser.add_argument('--save-timeseries', help='Write timesteps to file') | ||
parser.add_argument('--save-results', help='Write general info to file') | ||
parser.add_argument('--save-soc', help='Write SOC info to file') | ||
parser.add_argument('--strategy', '-s', default='greedy', | ||
help='Specify the charging strategy. One of {}. You may define \ | ||
custom options with --strategy-option.'.format('greedy, balanced')) | ||
parser.add_argument('--margin', '-m', metavar='X', type=float, default=0.05, | ||
help=('Add margin for desired SOC [0.0 - 1.0].\ | ||
margin=0.05 means the simulation will not abort if vehicles \ | ||
reach at least 95%% of the desired SOC before leaving. \ | ||
margin=1 -> the simulation continues with every positive SOC value.')) | ||
parser.add_argument('--strategy-option', '-so', metavar=('KEY', 'VALUE'), | ||
nargs=2, action='append', | ||
help='Append additional options to the charging strategy.') | ||
parser.add_argument('--config', help='Use config file to set arguments') | ||
args = parser.parse_args() | ||
|
||
util.set_options_from_config(args, check=True, verbose=False) | ||
|
||
if args.input_schedule is None: | ||
raise SystemExit("The following argument is required: input_schedule") | ||
|
||
# arguments relevant to SpiceEV, setting automatically to reduce clutter in config | ||
args.ALLOW_NEGATIVE_SOC = True | ||
args.attach_vehicle_soc = True | ||
|
||
simulate.simulate(args) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters