DistributionController
DistributionController#
- class relsad.network.components.DistributionController(name: str, power_network, fail_rate: float = 0, state: relsad.network.components.Controller.ControllerState = ControllerState.OK)[source]#
Common base class for distribution controllers
…
- name#
Name of the controller
- Type
string
- fail_rate#
The failure rate of the distribution system controller
- Type
float
- state#
The state of the distribution system controller
- Type
- check_components#
Flag used to communicate whether the fail status of the system components should be checked during a control loop
- Type
bool
- parent_controller#
The parent controller of the distribution system controller
- Type
- power_network#
The power network the controller is connected to
- Type
- ict_network#
The ICT network the controller belongs to
- Type
- sensors#
List of sensors included in the distribution system
- Type
list
- failed_sections#
List of failed sections in the distribution system
- Type
list
- history#
Dictonary attribute that stores the historic variables
- Type
dict
- monte_carlo_history#
Dictonary containing the history variables from the Monte Carlo simulation
- Type
dict
- check_circuitbreaker(curr_time, dt)[source]#
Checks if the circuitbreaker in the distribution system is open. If sectioning time is finished, disconnect failed sections and close the circuitbreaker.
- check_circuitbreaker_manually(curr_time, dt)[source]#
Checks if the circuitbreaker in the distribution system is open manually. If sectioning time is finished, disconnect failed sections and close the circuitbreaker.
- check_sensors(curr_time, dt)[source]#
Loops through the sections connected to the controller determining which sensors have failed. Performs actions according to the sensor status in the respective section. If a section was disconnected and no longer includes any failed sensor, it is connected. If a section was connected and now includes a failed sensor, it is disconnected. The total sectioning time is summed from each section.
- run_control_loop(curr_time, dt)[source]#
System control check, determines if components have failed and performes the required action
- check_lines_manually(curr_time)[source]#
Loops through the sections connected to the controller determining which lines have failed manually. Performs actions according to the line status in the respective section. If a section was disconnected and no longer includes any failed lines, it is connected. If a section was connected and now includes a failed line, it is disconnected. The total sectioning time is summed from each section.
- run_manual_control_loop(curr_time, dt)[source]#
Manual system control check, determines if components have failed and performes the required action.
- set_sectioning_time(sectioning_time)[source]#
Sets the sectiom time of the distribuiton system based on the max value of the distribution sectioning time and the sectioning time set by the controller
- spread_sectioning_time_to_children()[source]#
Gives the children power networks of the distribution system the same sectioning time
- initialize_history()[source]#
Initializes the history variables
DistributionController.add_random_instance(...)Adds global random seed
DistributionController.check_circuitbreaker(...)Checks if the circuitbreaker in the distribution system is open.
DistributionController.check_circuitbreaker_manually(...)Checks if the circuitbreaker in the distribution system is open manually.
DistributionController.check_lines_manually(...)Loops manually through the sections connected to the controller determining which lines have failed.
DistributionController.check_sensors(...)Loops through the sections connected to the controller determining which sensors have failed.
DistributionController.disconnect_failed_sections()Disconnects the failed sections in the distribution system
DistributionController.get_history(attribute)Returns the history variables of an attribute
DistributionController.initialize_history()Initializes the history variables
DistributionController.print_status()Prints the status
DistributionController.reset_status(save_flag)Resets and sets the status of the class parameters
DistributionController.run_control_loop(...)System control check, determines if components have failed and performes the required action.
DistributionController.run_manual_control_loop(...)Manual system control check, determines if components have failed and performes the required action.
DistributionController.set_sectioning_time(...)Sets the sectioning time of the distribuiton system based on the max value of the distribution sectioning time and the sectioning time set by the controller
DistributionController.spread_sectioning_time_to_children()Returns the children power network of the distribution system the same sectioning time
DistributionController.update_fail_status(dt)Updates the fail status of the controller
DistributionController.update_history(...)Updates the history variables