Source code for relsad.network.systems.Transmission
from relsad.network.components import Bus, Line
from .PowerNetwork import PowerNetwork
[docs]class Transmission(PowerNetwork):
"""Class defining a transmission network type
...
Attributes
----------
name : str
Name of the transmission system
parent_network : PowerSystem
The parent network of the transmission network
child_network_list : list
Lists of child networks
trafo_bus : Bus
Bus with tranformer connected to distribution network
buses : list
List with the buses in the transmission network
sections : list
List with the sections in the transmission network
ev_parks : list
List with the EV parks in the transmission network
p_energy_shed : float
The active power energy.shed in the transmission network
acc_p_energy_shed : float
The accumulated active power energy.shedding in the transmission network
q_energy_shed : float
The reactive power energy.shed in the transmission network
acc_q_energy_shed : float
The accumulated reactive power energy.shedding in the transmission network
history : dict
Dictionary containing the history variables of the transmission network
monte_carlo_history : dict
Dictionary containing the history variables from the monte carlo simulation
Methods
----------
get_trafo_bus()
Returns the bus connecting to the overlying network (transmission network)
reset_slack_bus()
Resets the slack bus of the transmission network
add_chil_network(network)
Adds child network
get_lines()
Returns the lines in the transmission network
get_monte_carlo_history(attribute)
Returns the specified history variable from the Monte Carlo simulation
get_history(attribute)
Returns the specified history variable
get_system_load()
Returns the system load at the current time in MW and MVar
reset_energy_shed_variables()
Resets the energy.shed variables
"""
## Visual attributes
color = "steelblue"
## Counter
counter = 0
def __init__(self, parent_network, trafo_bus: Bus):
Transmission.counter += 1
self.name = "trans_network{:d}".format(Transmission.counter)
self.parent_network = parent_network
parent_network.add_child_network(self)
self.child_network_list = list()
self.trafo_bus = trafo_bus
self.buses = [trafo_bus]
self.sections = list()
self.ev_parks = list()
trafo_bus.handle.color = self.color
trafo_bus.color = self.color
self.parent_network.add_bus(trafo_bus)
trafo_bus.set_slack()
parent_network.slack = trafo_bus
# Load shedding
self.p_energy_shed = 0
self.acc_p_energy_shed = 0
self.q_energy_shed = 0
self.acc_q_energy_shed = 0
## History
self.history: dict = {}
self.monte_carlo_history: dict = {}
def __str__(self):
return self.name
def __repr__(self):
return f"Transmission(name={self.name})"
def __eq__(self, other):
if hasattr(other, "name"):
return self.name == other.name
else:
return False
def __hash__(self):
return hash(self.name)
[docs] def get_trafo_bus(self):
"""
Returns the bus connecting to the overlying network (transmission network)
Parameters
----------
None
Returns
----------
bus : Bus
The bus connecting the overlying network
"""
return self.trafo_bus
[docs] def reset_slack_bus(self):
"""
Resets the slack bus of the transmission network
Parameters
----------
None
Returns
----------
None
"""
self.trafo_bus.set_slack()
def add_child_network(self, network):
"""
Adds child network
Parameters
----------
network : PowerNetwork
A network
Returns
----------
None
"""
self.child_network_list.append(network)
self.parent_network.add_child_network(network)
def add_bus(self, bus: Bus):
pass
def add_buses(self, buses: list):
pass
def add_line(self, line: Line):
pass
def add_lines(self, lines: list):
pass
[docs] def get_lines(self):
"""
Returns the lines in the transmission network
Parameters
----------
None
Returns
----------
None
"""
return None
[docs] def get_monte_carlo_history(self, attribute):
"""
Returns the specified history variable
Parameters
----------
attribute : str
System attribute
Returns
----------
monte_carlo_history[attribute] : dict
Returns the history variables of an attribute from the Monte Carlo simulation
"""
return self.monte_carlo_history[attribute]
[docs] def get_history(self, attribute):
"""
Returns the specified history variable
Parameters
----------
attribute : str
System attribute
Returns
----------
history[attribute] : dict
Returns the history variables of an attribute
"""
return self.history[attribute]
[docs] def get_system_load(self):
"""
Returns the system load at the current time in MW and MVar
Parameters
----------
None
Returns
----------
pload : float
The active power load in the transmission system
qload : float
The reactive power load in the tranmission system
"""
pload, qload = 0, 0
for bus in self.buses:
p, q = bus.get_load()
pload += p
qload += q
return pload, qload
[docs] def reset_energy_shed_variables(self):
"""
Resets the energy.shed variables
Parameters
----------
None
Returns
----------
None
"""
self.p_energy_shed = 0
self.acc_p_energy_shed = 0
self.q_energy_shed = 0
self.acc_q_energy_shed = 0