Source code for relsad.network.systems.ICTNetwork

from relsad.network.components import ICTLine, ICTNode
from relsad.utils import unique

from .PowerSystem import PowerSystem


[docs]class ICTNetwork: """ Class defining a ICT network type ... Attributes ---------- name : str Name of the ICT network nodes : list List containing the nodes connected to the ICT network lines : list List containing the lines connected to the ICT network comp_list : list List containing the components in the ICT network comp_dict : dict Dictionary containing the components in the ICT network power_system : Network Connects the ICT network to the power system failed_line : Bool Flag stating if the ICT network contains a failed line history : dict Dictionary containing the history variables of the network monte_carlo_history : dict Dictionary containing the history variables from the monte carlo simulation Methods ---------- add_node(node) Adding a node to the ICT network add_nodes(nodes) Adding nodes to the ICT network add_line(line) Adding a line to the ICT network add_lines(lines) Adding lines to the ICT network get_lines() Returns the lines in the ICT network get_monte_carlo_history(attribute) Returns the specified history variable from the Monte Carlo simulation get_history(attribute) Returns the specified history variable """ ## Visual attributes color = "steelblue" ## Counter counter = 0 def __init__(self, power_system: PowerSystem): ICTNetwork.counter += 1 self.name = "ict_network{:d}".format(ICTNetwork.counter) # Components self.nodes = list() self.lines = list() self.comp_list = list() self.comp_dict = dict() # Network connections self.power_system = power_system self.failed_line = False ## History self.history: dict = {} self.monte_carlo_history: dict = {} def __str__(self): return self.name def __repr__(self): return f"ICTNetwork(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 add_node(self, node: ICTNode): """ Adding a node to the ICT network Parameters ---------- node : ICTNode A ICT node element Returns ---------- None """ # Add bus to distribution network self.comp_dict[node.name] = node node.handle.color = self.color node.color = self.color node.parent_network = self self.nodes.append(node) self.nodes = unique(self.nodes) # Add bus to the power system self.power_system.add_ict_node(node)
[docs] def add_nodes(self, nodes: list): """ Adding buses to the ICT network node list Parameters ---------- nodes : list A list of ICT node elements in the ICT network Returns ---------- None """ for node in nodes: self.add_node(node)
[docs] def add_line(self, line: ICTLine): """ Adding a line to the ICT network Parameters ---------- line : ICTLine A ICTLine element Returns ---------- None """ # Add line to the ICT network line.handle.color = self.color line.color = self.color line.parent_network = self self.comp_dict[line.name] = line self.lines.append(line) self.lines = unique(self.lines) # Add line to power system self.power_system.add_ict_line(line)
[docs] def add_lines(self, lines: list): """ Adding lines to ICT network line list Parameters ---------- lines : list A list of ICTLine elements in the ICT network Returns ---------- None """ for line in lines: self.add_line(line)
[docs] def get_lines(self): """ Returns the lines in the ICT network Parameters ---------- None Returns ---------- lines : list List of ICTLine elements """ return self.lines
[docs] def get_monte_carlo_history(self, attribute): """ Returns the specified history variable from the Monte Carlo simulation Parameters ---------- attribute : str ICT network 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 ICT network attribute Returns ---------- history[attribute] : dict Returns the history variables of an attribute """ return self.history[attribute]