Skip to content
Snippets Groups Projects
Commit eee0aa9e authored by Christian Doh Dinga's avatar Christian Doh Dinga
Browse files

build consumer agent's optimization problem

parent 53add548
No related branches found
No related tags found
No related merge requests found
import pyomo.environ as pyo
def build_consumer_agent(model: pyo.AbstractModel) -> pyo.AbstractModel:
# Declare optimization variables
model.var_g = pyo.Var(model.time, name='demand', domain=pyo.Reals, initialize=0) # positive if consumer feeds power to the system
# Declare objective function
def consumption_cost_rule(model):
return (
-1 * sum(model.λ_EOM[t] * model.var_g[t] for t in model.time) +
sum(model.ρ_EOM / 2 * (model.var_g[t] - model.g_bar[t])**2 for t in model.time)
)
model.objective_function = pyo.Objective(rule=consumption_cost_rule, sense=pyo.minimize)
# Declare energy balance constraint
def energy_balance_rule(model, t):
return (model.var_g[t] <= model.pv_profile[t] - model.demand_profile[t])
model.energy_balance = pyo.Constraint(model.time, rule=energy_balance_rule)
return model
# # Example usage
# import yaml
# import pandas as pd
# from define_common_parameters import define_common_parameters
# from define_consumer_parameters import define_consumer_parameters
# def read_config(config_file):
# with open(config_file, 'r') as file:
# config = yaml.safe_load(file)
# return config
# data = read_config('config.yaml')
# ts = pd.read_csv('timeseries.csv', delimiter=';')
# consumer_agents = [id for id in data['Consumers'].keys()]
# mdict = {m: define_common_parameters(m, data) for m in consumer_agents}
# for agent, model in mdict.items():
# model = define_consumer_parameters(agent, model, data, ts)
# model = build_consumer_agent(model)
# model_instance = model.create_instance()
# print(model_instance.name)
# print()
# model_instance.pprint()
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment