Exemplo n.º 1
0
    def __init__(self, params):
        """ Generates the objective function, finds and creates constraints.

          Args:
            params (Dict): input parameters

        """

        # generate the generic service object
        ValueStream.__init__(self, 'Resource Adequacy', params)

        # add RA specific attributes
        self.days = params['days']  # number of peak events
        self.length = params['length']  # discharge duration
        self.idmode = params['idmode'].lower()  # peak selection mode
        self.dispmode = params['dispmode']  # dispatch mode
        self.capacity_rate = params[
            'value']  # monthly RA capacity rate (length = 12)
        if 'active hours' in self.idmode:
            self.active = params[
                'active'] == 1  # active RA timesteps (length = 8760/dt) must be boolean, not int
        self.system_load = params[
            'system_load']  # system load profile (length = 8760/dt)

        # initialize the following atrributes to be set later
        self.peak_intervals = []
        self.event_intervals = None
        self.event_start_times = None
        self.charge_max_constraint = None
        self.discharge_min_constraint = None
        self.energy_min_constraint = None
        self.qc = 0
Exemplo n.º 2
0
    def __init__(self, params):
        """ Generates the objective function, finds and creates constraints.

          Args:
            params (Dict): input parameters
        """

        # generate the generic service object
        ValueStream.__init__(self, 'Deferral', params)

        # add Deferral specific attributes
        self.max_import = params['planned_load_limit']  # positive
        self.max_export = params['reverse_power_flow_limit']  # negative
        self.last_year = params['last_year'].year
        self.year_failed = params['last_year'].year + 1
        self.min_years = params.get('min_year_objective', 0)
        self.load = params['load']  # deferral load
        self.growth = params['growth']  # Growth Rate of deferral load (%/yr)
        self.price = params['price']  # $/yr

        self.p_min = 0
        self.e_min = 0
        self.deferral_df = None
        self.e_walk = pd.Series()
        self.power_requirement = pd.Series()
Exemplo n.º 3
0
    def __init__(self, params):
        """ Generates the objective function, finds and creates constraints.

        Args:
            params (Dict): input parameters
        """
        ValueStream.__init__(self, 'DA', params)
        self.price = params['price']
        self.growth = params['growth']  # growth rate of energy prices (%/yr)
Exemplo n.º 4
0
    def __init__(self, params):
        """ Generates the objective function, finds and creates constraints.

          Args:
            params (Dict): input parameters
        """

        # generate the generic service object
        ValueStream.__init__(self, 'Backup', params)
        self.energy_req = params['daily_energy']
        self.monthly_energy = params[
            'monthly_energy']  # raw input form of energy requirement
        self.price = params['monthly_price']
Exemplo n.º 5
0
    def __init__(self, params):
        """ Generates the objective function, finds and creates constraints.

        Args:
            params (Dict): input parameters
        """
        ValueStream.__init__(self, 'retailETS', params)
        self.price = params['price']
        self.tariff = params['tariff']
        self.growth = params['growth'] / 100

        self.billing_period_bill = pd.DataFrame()
        self.monthly_bill = pd.DataFrame()
Exemplo n.º 6
0
    def __init__(self, params):
        """ Generates the objective function, finds and creates constraints.

          Args:
            params (Dict): input parameters
        """

        # generate the generic service object
        ValueStream.__init__(self, 'Volt Var', params)

        # add voltage support specific attributes
        self.vars_percent = params['percent'] / 100
        self.price = params['price']

        self.vars_reservation = 0
Exemplo n.º 7
0
    def __init__(self, name, full_name, params):
        """ Generates the objective function, finds and creates constraints.

        Args:
            name (str): abbreviated name
            full_name (str): the expanded name of the service
            params (Dict): input parameters
        """
        ValueStream.__init__(self, name, params)
        self.price = params['price']
        self.growth = params[
            'growth']  # growth rate of spinning reserve price (%/yr)
        self.duration = params['duration']
        self.full_name = full_name
        self.variable_names = {'ch_less', 'dis_more'}
        self.variables_df = pd.DataFrame(columns=self.variable_names)
Exemplo n.º 8
0
    def __init__(self, params):
        """ Generates the objective function, finds and creates constraints.

          Args:
            params (Dict): input parameters

        """

        # generate the generic service object
        ValueStream.__init__(self, 'Demand Response', params)

        # add dr specific attributes to object
        self.days = params['days']
        self.length = params.get('length')  # length of an event
        self.weekend = params['weekend']
        self.start_hour = params['program_start_hour']
        self.end_hour = params.get(
            'program_end_hour')  # last hour of the program
        self.day_ahead = params[
            'day_ahead']  # indicates whether event is scheduled in real-time or day ahead

        # handle length and end_hour attributes here
        self.fill_dr_event_details()

        # timeseries data
        self.system_load = params['system_load']
        self.months = params['dr_months'] == 1
        self.cap_commitment = params[
            'dr_cap']  # this is the max capacity a user is willing to provide

        # monthly data
        self.cap_monthly = params['cap_monthly']
        self.cap_price = params['cap_price']
        self.ene_price = params['ene_price']

        # the following attributes will be used to save values during analysis
        self.qc = None
        self.qe = None
        self.charge_max_constraint = pd.Series()
        self.discharge_min_constraint = pd.Series()
        self.energy_min_constraint = pd.Series()
        self.possible_event_times = None
Exemplo n.º 9
0
    def __init__(self, params):
        """ Generates the objective function, finds and creates constraints.

        Acceptable constraint names are: 'Power Max (kW)', 'Power Min (kW)', 'Energy Max (kWh)', 'Energy Min (kWh)'

          Args:
            params (Dict): input parameters
        """
        # generate the generic service object
        ValueStream.__init__(self, 'User Constraints', params)

        self.user_power = params['power']
        self.user_energy = params['energy']
        self.price = params['price']  # $/yr
        self.charge_min_constraint = None
        self.charge_max_constraint = None
        self.discharge_min_constraint = None
        self.discharge_max_constraint = None
        self.soe_min_constraint = None
        self.soe_max_constraint = None
Exemplo n.º 10
0
    def __init__(self, name, full_name, params):
        """ Generates the objective function, finds and creates constraints.

        Args:
            name (str): abbreviated name
            full_name (str): the expanded name of the service
            params (Dict): input parameters
        """
        ValueStream.__init__(self, name, params)
        self.full_name = full_name
        self.combined_market = params['CombinedMarket']
        self.duration = params['duration']
        self.energy_growth = params['energyprice_growth'] / 100
        self.eod_avg = params['eod']
        self.eou_avg = params['eou']
        self.growth = params['growth'] / 100
        self.price_down = params['regd_price']
        self.price_up = params['regu_price']
        self.price_energy = params['energy_price']
        self.variable_names = {'up_ch', 'up_dis', 'down_ch', 'down_dis'}
        self.variables_df = pd.DataFrame(columns=self.variable_names)