default_params_file="Model_Parameters_2v1-0-2_default_EA.csv", shortname="EA+DCM on", description="test run", Scenario_n="month", Scenario_time_series_filename="/Applications/storagevet2v101/StorageVET-master-git/Data/hourly_timeseries_2019.csv", DCM_active='yes', retailTimeShift_active='yes', DA_active='no', SR_active='no' ) DCM_baseline.run_storagevet() # DCM constraints DCMconstraint = ConstraintObject(SVet_absolute_path="/Applications/storagevet2v101/StorageVET-master-git/", shortname=DCM_baseline.shortname, baseline_runID=DCM_baseline.runID, app_hours=[0, 23], regulation_scenario=3, constraint_init=True) DCMconstraint.set_DCM_user_constraints() # DCM priority run based on baseline DCMpriority = SvetObject(SVet_absolute_path="/Applications/storagevet2v101/StorageVET-master-git/", default_params_file="Model_Parameters_2v1-0-2_default_EA.csv", shortname=DCMconstraint.new_shortname, description="DCM priority run using retail rates", Scenario_n="month", Scenario_time_series_filename=DCMconstraint.new_hourly_timeseries_path, User_active="yes", User_price=DCMconstraint.values, DCM_active='no', retailTimeShift_active='yes', SR_active='yes', NSR_active='yes', DA_active='no', RA_active='no', RA_dispmode=0,
# unrestricted, RAdisp0 baseline = SvetObject(SVet_absolute_path="/Applications/storagevet2v101/StorageVET-master-git/", shortname="baseline run", description="first run with SR + NSR + DA active", Scenario_time_series_filename="/Applications/storagevet2v101/StorageVET-master-git/Data/hourly_timeseries_nsr133_rs3_14-20.csv", SR_active='yes', NSR_active='yes', DA_active='yes', RA_active='yes', RA_dispmode=0, FR_active='yes') #SR Only sronly = SvetObject(SVet_absolute_path="/Applications/storagevet2v101/StorageVET-master-git/", shortname="sr only", description="SR only", Scenario_time_series_filename="/Applications/storagevet2v101/StorageVET-master-git/Data/hourly_timeseries_2019.csv", SR_active='yes', NSR_active='no', DA_active='yes', RA_active='no', RA_dispmode=0, FR_active='no') # SR priority 24h # Then, create user constraints (SR) and obtain params necessary for a second run old_svrun_params, new_svrun_params, new_shortname, new_hourly_timeseries_path, values = \ ConstraintObject(SvetObject=sronly, app_hours=[0, 23], regulation_scenario=3).set_SR_user_constraints() # Lastly, use the new params to do a new SV run new_svrun_params["NSR_active"]='yes' new_svrun_params["FR_active"] = 'yes' second_run = SvetObject(SVet_absolute_path="/Applications/storagevet2v101/StorageVET-master-git/", shortname=new_shortname, description="SR priority - with all other resoures (except RA) active this time", Scenario_time_series_filename=new_hourly_timeseries_path, User_active="yes", User_price=values, **new_svrun_params) # FR priority 24h old_svrun_params, new_svrun_params, new_shortname, new_hourly_timeseries_path, values = ConstraintObject(SvetObject=baseline, app_hours=[0, 23], regulation_scenario=3).set_FR_user_constraints() new_svrun_params["RA_active"]='no' FR_run = SvetObject(SVet_absolute_path="/Applications/storagevet2v101/StorageVET-master-git/", shortname=new_shortname, description="FR priority - shortname should denote all useful info",
############## Spinning Reserves ################## # SR_only run SRonly = SvetObject(SVet_absolute_path=path, shortname="SR only", description="first run with SR only", Scenario_time_series_filename=ts, SR_active='yes') SRonly.run_storagevet() # SR_only constraints SRconstraint = ConstraintObject( SVet_absolute_path="/Applications/storagevet2v101/StorageVET-master-git/", shortname=SRonly.shortname, baseline_runID=SRonly.runID, app_hours=[0, 23], regulation_scenario=3, constraint_init=True) SRconstraint.set_SR_user_constraints() # SR priority run based on SR_only SRpriority = SvetObject( SVet_absolute_path="/Applications/storagevet2v101/StorageVET-master-git/", shortname=SRconstraint.new_shortname, description="SR priority run based on SR only run", Scenario_time_series_filename=SRconstraint.new_hourly_timeseries_path, User_active="yes", User_price=SRconstraint.values, SR_active='no', NSR_active='yes',
Scenario_time_series_filename=Scenario_time_series_filename, Finance_customer_tariff_filename=Finance_customer_tariff_filename, DCM_active='yes', retailTimeShift_active='yes', DA_active='no', SR_active='no', NSR_active='no', FR_active="no", FR_CombinedMarket="1") caiso_baseline.run_storagevet() # DCM constraints DCMconstraint = ConstraintObject( SVet_absolute_path="/Applications/storagevet2v101/StorageVET-master-git/", shortname=caiso_baseline.shortname, baseline_runID=caiso_baseline.runID, app_hours=[0, 23], regulation_scenario=1, constraint_init=True) DCMconstraint.set_DCM_user_constraints() # determine sr constraints caiso_all_w_dcm = SvetObject( SVet_absolute_path="/Applications/storagevet2v101/StorageVET-master-git/", default_params_file="Model_Parameters_2v1-0-2_default_03-2021.csv", shortname=DCMconstraint.new_shortname, description=iso_name, Scenario_n="36", Scenario_time_series_filename=DCMconstraint.new_hourly_timeseries_path, Finance_customer_tariff_filename=Finance_customer_tariff_filename, User_active="yes",
Scenario_time_series_filename= "/Applications/storagevet2v101/StorageVET-master-git/Data/hourly_timeseries_2019.csv", SR_active='yes', NSR_active='yes', DA_active='yes', RA_active='yes', RA_dispmode=0, FR_active="yes", FR_CombinedMarket="0") baseline.run_storagevet() # Then, create NSR constraint by passing baseline shortname and runID constraint = ConstraintObject( SVet_absolute_path="/Applications/storagevet2v101/StorageVET-master-git/", shortname=baseline.shortname, baseline_runID=baseline.runID, app_hours=[14, 20], regulation_scenario=1, constraint_init=True) constraint.set_NSR_user_constraints() print(" ", constraint.new_shortname, constraint.new_hourly_timeseries_path, constraint.values) # Lastly, use the new params to do a new SV run second_run = SvetObject( SVet_absolute_path="/Applications/storagevet2v101/StorageVET-master-git/", shortname=constraint.new_shortname, description="second run - shortname should denote all useful info", Scenario_time_series_filename=constraint.new_hourly_timeseries_path, User_active="yes", User_price=constraint.values,
description="NSR + DA active", Scenario_time_series_filename= "/Applications/storagevet2v101/StorageVET-master-git/Data/hourly_timeseries_2019.csv", SR_active='no', NSR_active='yes', DA_active='yes', RA_active='no', RA_dispmode=0, FR_active="no", FR_CombinedMarket="0") Patricia_133.run_storagevet() # VERIFIED ~636 nsr1 = ConstraintObject( SVet_absolute_path="/Applications/storagevet2v101/StorageVET-master-git/", shortname=Patricia_133.shortname, baseline_runID=Patricia_133.runID, app_hours=[14, 20], regulation_scenario=1, constraint_init=True) nsr1.set_NSR_user_constraints() print(" ", nsr1.new_shortname, nsr1.new_hourly_timeseries_path, nsr1.values) # VERIFIED ~289 nsr3 = ConstraintObject( SVet_absolute_path="/Applications/storagevet2v101/StorageVET-master-git/", shortname=Patricia_133.shortname, baseline_runID=Patricia_133.runID, app_hours=[14, 20], regulation_scenario=3, constraint_init=True) nsr3.set_NSR_user_constraints() print(" ", nsr3.new_shortname, nsr3.new_hourly_timeseries_path, nsr3.values)