Пример #1
0
    def __init__(self, grid: MultiCircuit, options: OptimalPowerFlowOptions, start_=0, end_=None):
        """
        PowerFlow class constructor
        @param grid: MultiCircuit Object
        @param options: OPF options
        """
        QThread.__init__(self)

        # Grid to run a power flow in
        self.grid = grid

        self.numerical_circuit = self.grid.compile()

        # Options to use
        self.options = options

        # OPF results
        self.results = OptimalPowerFlowTimeSeriesResults(n=len(self.grid.buses),
                                                         m=len(self.grid.branches),
                                                         nt=len(self.grid.time_profile),
                                                         ngen=len(self.grid.get_generators()),
                                                         nbat=len(self.grid.get_batteries()),
                                                         nload=len(self.grid.get_loads()),
                                                         time=self.grid.time_profile)

        self.start_ = start_

        self.end_ = end_

        self.logger = list()

        # set cancel state
        self.__cancel__ = False

        self.all_solved = True
Пример #2
0
    def __init__(self, grid: MultiCircuit, options: LinearAnalysisOptions, start_=0, end_=None):
        """
        TimeSeries constructor
        @param grid: MultiCircuit instance
        @param options: LinearAnalysisOptions instance
        """
        QThread.__init__(self)

        # reference the grid directly
        self.grid = grid

        self.options = options

        self.results = PtdfTimeSeriesResults(n=0,
                                             m=0,
                                             time_array=[],
                                             bus_names=[],
                                             bus_types=[],
                                             branch_names=[])

        self.ptdf_driver = LinearAnalysis(grid=self.grid, distributed_slack=self.options.distribute_slack)

        self.start_ = start_

        self.end_ = end_

        self.indices = pd.to_datetime(self.grid.time_profile)

        self.elapsed = 0

        self.logger = Logger()

        self.__cancel__ = False
Пример #3
0
    def __init__(self,
                 grid: MultiCircuit,
                 options: PowerFlowOptions,
                 opf_results: OptimalPowerFlowResults = None):
        """
        PowerFlowDriver class constructor
        :param grid: MultiCircuit instance
        :param options: PowerFlowOptions instance
        :param opf_results: OptimalPowerFlowResults instance
        """

        QThread.__init__(self)

        # Grid to run a power flow in
        self.grid = grid

        # Options to use
        self.options = options

        self.opf_results = opf_results

        self.results = PowerFlowResults()

        self.logger = Logger()

        self.convergence_reports = list()

        self.__cancel__ = False
Пример #4
0
    def __init__(self, experiment: Experiment):
        """
        Initialization of background worker.
        
        :param experiment: Work on that experiment.
        :type experiment: Experiment
        """
        QThread.__init__(self)

        self._experiment = copy.copy(experiment)
        # remove thinks that are no longer useful
        self._experiment.clearObservers()

        saveObservers = None
        saveObserversOrig = None
        if self._experiment.dataStats is not None:
            saveObservers = self._experiment.dataStats.observers
            self._experiment.dataStats.clearObservers()

        if self._experiment.origDataStats is not None:
            saveObserversOrig = self._experiment.origDataStats.observers
            self._experiment.origDataStats.clearObservers()

        # no we can make deep copy
        self._experiment = copy.deepcopy(self._experiment)

        # return original observers
        if saveObservers is not None:
            experiment.dataStats.observers = saveObservers

        if saveObserversOrig is not None:
            experiment.origDataStats.observers = saveObserversOrig
Пример #5
0
    def __init__(self):
        QWidget.__init__(self)
        QThread.__init__(self)
        self._running = True
        self._instance = None
        self.lconnected = QLabel('')
        self.lFlyState = QLabel('')
        self.bTakeoff = QPushButton('')
        self.bTakeoff.setDisabled(True)
        self.bCircle = QPushButton('')
        self.bCircle.setDisabled(True)
        self.bRTH = QPushButton('')
        self.bRTH.setDisabled(True)
        self.layout = QVBoxLayout()
        self.layout.addWidget(self.lconnected)
        self.layout.addWidget(self.lFlyState)
        self.layout.addWidget(self.bTakeoff)
        self.layout.addWidget(self.bCircle)
        self.layout.addWidget(self.bRTH)
        self.setLayout(self.layout)
        self.bTakeoff.clicked.connect(self.takeoff)
        self.bCircle.clicked.connect(self.circle)
        self.bRTH.clicked.connect(self.rth)

        self.start()
Пример #6
0
    def __init__(self, grid: MultiCircuit, options: PowerFlowOptions, triggering_idx=None, max_additional_islands=1,
                 cascade_type_: CascadeType = CascadeType.LatinHypercube, n_lhs_samples_=1000):
        """
        Constructor
        Args:
            grid: MultiCircuit instance to cascade
            options: Power flow Options
            triggering_idx: branch indices to trigger first
            max_additional_islands: number of islands that shall be formed to consider a blackout
            cascade_type_: Cascade simulation kind
            n_lhs_samples_: number of latin hypercube samples if using LHS cascade
        """

        QThread.__init__(self)

        self.grid = grid

        self.options = options

        self.triggering_idx = triggering_idx

        self.__cancel__ = False

        self.current_step = 0

        self.max_additional_islands = max_additional_islands

        self.cascade_type = cascade_type_

        self.n_lhs_samples = n_lhs_samples_

        self.results = CascadingResults(self.cascade_type)
Пример #7
0
    def __init__(self, grid: MultiCircuit, sigmas=0.5, min_group_size=2, ptdf_results: LinearAnalysisResults = None):
        """
        Electric distance clustering
        :param grid: MultiCircuit instance
        :param sigmas: number of standard deviations to consider
        """
        QThread.__init__(self)

        self.grid = grid

        self.sigmas = sigmas

        self.min_group_size = min_group_size

        n = len(grid.buses)

        self.use_ptdf = True

        self.ptdf_results = ptdf_results

        # results
        self.X_train = np.zeros((n, n))
        self.sigma = 1.0
        self.groups_by_name = list()
        self.groups_by_index = list()

        self.__cancel__ = False
Пример #8
0
    def __init__(self, grid: MultiCircuit, options: NMinusKOptions, pf_options: PowerFlowOptions):
        """
        N - k class constructor
        @param grid: MultiCircuit Object
        @param options: N-k options
        @:param pf_options: power flow options
        """
        QThread.__init__(self)

        # Grid to run
        self.grid = grid

        # Options to use
        self.options = options

        # power flow options
        self.pf_options = pf_options

        # OPF results
        self.results = NMinusKResults(0, 0, 0)

        # set cancel state
        self.__cancel__ = False

        self.all_solved = True

        self.logger = Logger()

        self.elapsed = 0.0

        self.branch_names = list()
Пример #9
0
    def __init__(self,
                 circuit: MultiCircuit,
                 file_name,
                 simulation_drivers=list(),
                 sessions=list()):
        """
        Constructor
        :param circuit: MultiCircuit instance
        :param file_name: name of the file where to save
        :param simulation_drivers: List of Simulation Drivers
        """
        QThread.__init__(self)

        self.circuit = circuit

        self.file_name = file_name

        self.valid = False

        self.simulation_drivers = simulation_drivers

        self.sessions = sessions

        self.logger = Logger()

        self.error_msg = ''

        self.__cancel__ = False
Пример #10
0
    def __init__(self, circuit: MultiCircuit, file_name, sleep_time):
        """

        :param circuit: current circuit
        :param file_name: name of the file to sync
        :param sleep_time: seconds between executions
        """
        QThread.__init__(self)

        self.circuit = circuit

        self.file_name = file_name

        self.sleep_time = sleep_time

        self.issues = list()

        self.version_conflict = False

        self.highest_version = 0

        self.logger = Logger()

        self.error_msg = ''

        self.__cancel__ = False

        self.__pause__ = False
Пример #11
0
    def __init__(self, parent):  # Initialise with serial port details
        QThread.__init__(self)

        self.parent = parent
        self.ser = self.parent.ser_port
        self.txq = Queue.Queue()
        self.running = True
Пример #12
0
    def __init__(self, processID: int, backend: str = "uia"):
        """
		Constructs an Observer. The target application must already be started before constructing the Observer.
		
		:raises: NoSuchProcess
		:raises: AccessDenied
		:param processID: The ID of the process to watch.
		:type processID: int
		:return: None
		:rtype: NoneType
		"""
        QThread.__init__(self)
        self._pid = processID
        self._process = psutil.Process(processID)
        self._backend = backend
        self._childMapping = {
            None: []
        }  # maps each super token to its list of children.

        # maps each super token to the last iteration it was matched on.
        self._lastSuperTokenIterations = {}
        self._iteration = 0

        self._playing = False
        self._playingLock = Lock()
Пример #13
0
    def __init__(self, circuit: MultiCircuit,
                 options: ContinuationPowerFlowOptions,
                 inputs: ContinuationPowerFlowInput,
                 pf_options: PowerFlowOptions,
                 opf_results=None, t=0):
        """
        ContinuationPowerFlowDriver constructor
        :param circuit: NumericalCircuit instance
        :param options: ContinuationPowerFlowOptions instance
        :param inputs: ContinuationPowerFlowInput instance
        :param pf_options: PowerFlowOptions instance
        :param opf_results:
        """

        QThread.__init__(self)

        # MultiCircuit instance
        self.circuit = circuit

        # voltage stability options
        self.options = options

        self.inputs = inputs

        self.pf_options = pf_options

        self.opf_results = opf_results

        self.t = t

        self.results = None

        self.__cancel__ = False
Пример #14
0
    def __init__(self, grid: MultiCircuit, options: PowerFlowOptions, opf_results: OptimalPowerFlowResults = None):
        """
        PowerFlowDriver class constructor
        :param grid: MultiCircuit instance
        :param options: PowerFlowOptions instance
        :param opf_results: OptimalPowerFlowResults instance
        """

        QThread.__init__(self)

        # Grid to run a power flow in
        self.grid = grid

        # Options to use
        self.options = options

        self.opf_results = opf_results

        self.results = PowerFlowResults(n=0, m=0, n_tr=0, n_hvdc=0,
                                        bus_names=(), branch_names=(), transformer_names=(),
                                        hvdc_names=(), bus_types=())

        self.logger = Logger()

        self.convergence_reports = list()

        self.__cancel__ = False
Пример #15
0
    def __init__(self, wit_manager: WitManager, clean_iso_path: Path, output_folder: Path):
        QThread.__init__(self)

        self.wit_manager = wit_manager
        self.clean_iso_path = clean_iso_path
        self.output_folder = output_folder
        self.steps = 0
Пример #16
0
    def __init__(self,
                 circuit: MultiCircuit,
                 options: PowerFlowOptions,
                 max_iter=1000):
        """
        Constructor
        Args:
            circuit: Grid to cascade
            options: Power flow Options
            max_iter: max iterations
        """

        QThread.__init__(self)

        self.circuit = circuit

        self.options = options

        self.max_iter = max_iter

        self.__cancel__ = False

        self.problem = None

        self.solution = None

        self.optimization_values = None
Пример #17
0
    def __init__(self,
                 grid: MultiCircuit,
                 pf_options: PowerFlowOptions,
                 start_=0,
                 end_=None,
                 power_delta=10):
        """
        TimeSeries constructor
        @param grid: MultiCircuit instance
        @param pf_options: PowerFlowOptions instance
        """
        QThread.__init__(self)

        # reference the grid directly
        self.grid = grid

        self.pf_options = pf_options

        self.results = None

        self.ptdf_driver = None

        self.start_ = start_

        self.end_ = end_

        self.power_delta = power_delta

        self.elapsed = 0

        self.logger = Logger()

        self.__cancel__ = False
Пример #18
0
    def __init__(self, randomizer: Randomizer, wit_manager: WitManager, output_folder):
        QThread.__init__(self)

        self.randomizer = randomizer
        self.wit_manager = wit_manager
        self.output_folder = output_folder
        self.steps = 0
 def __init__(self, config, acs_control_widget, recorder_widget, parent=None):
     QThread.__init__(self, parent)
     self.config = config
     self.acs_control_widget = acs_control_widget
     self.recorder_widget = recorder_widget
     self.recordingStopped = Event()
     self.recordingStartedEvent = Event()
Пример #20
0
    def __init__(self,
                 grid: MultiCircuit,
                 options: PowerFlowOptions,
                 sampling_points=1000,
                 opf_time_series_results=None):
        """
        Latin Hypercube constructor
        Args:
            grid: MultiCircuit instance
            options: Power flow options
            sampling_points: number of sampling points
        """
        QThread.__init__(self)

        self.circuit = grid

        self.options = options

        self.sampling_points = sampling_points

        self.opf_time_series_results = opf_time_series_results

        self.results = None

        self.logger = Logger()

        self.pool = None

        self.returned_results = list()

        self.__cancel__ = False
Пример #21
0
    def __init__(self,
                 grid: MultiCircuit,
                 options: PTDFOptions,
                 pf_options: PowerFlowOptions,
                 opf_results=None):
        """
        Power Transfer Distribution Factors class constructor
        @param grid: MultiCircuit Object
        @param options: OPF options
        """
        QThread.__init__(self)

        # Grid to run
        self.grid = grid

        # Options to use
        self.options = options

        # power flow options
        self.pf_options = pf_options

        self.opf_results = opf_results

        # OPF results
        self.results = None

        # set cancel state
        self.__cancel__ = False

        self.all_solved = True

        self.elapsed = 0.0

        self.logger = Logger()
Пример #22
0
    def __init__(self, grid: MultiCircuit, options: PowerFlowOptions, opf_time_series_results=None,
                 start_=0, end_=None):
        """
        TimeSeries constructor
        @param grid: MultiCircuit instance
        @param options: PowerFlowOptions instance
        """
        QThread.__init__(self)

        # reference the grid directly
        self.grid = grid

        self.options = options

        self.opf_time_series_results = opf_time_series_results

        self.results = None

        self.start_ = start_

        self.end_ = end_

        self.elapsed = 0

        self.logger = Logger()

        self.returned_results = list()

        self.pool = multiprocessing.Pool()

        self.__cancel__ = False
Пример #23
0
    def __init__(self,
                 grid: MultiCircuit,
                 options: PowerFlowOptions,
                 use_opf_vals=False,
                 opf_time_series_results=None,
                 start_=0,
                 end_=None):
        """
        TimeSeries constructor
        @param grid: MultiCircuit instance
        @param options: PowerFlowOptions instance
        """
        QThread.__init__(self)

        # reference the grid directly
        self.grid = grid

        self.options = options

        self.use_opf_vals = use_opf_vals

        self.opf_time_series_results = opf_time_series_results

        self.results = None

        self.start_ = start_

        self.end_ = end_

        self.__cancel__ = False
    def __init__(self,
                 circuit: MultiCircuit,
                 options: VoltageCollapseOptions,
                 inputs: VoltageCollapseInput,
                 pf_options: PowerFlowOptions,
                 opf_results=None):
        """
        VoltageCollapse constructor
        @param circuit: NumericalCircuit instance
        @param options:
        """
        QThread.__init__(self)

        # MultiCircuit instance
        self.circuit = circuit

        # voltage stability options
        self.options = options

        self.inputs = inputs

        self.pf_options = pf_options

        self.opf_results = opf_results

        self.results = list()

        self.__cancel__ = False
Пример #25
0
    def __init__(self, grid: MultiCircuit, options: PowerFlowOptions, mc_tol=1e-3, batch_size=100, max_mc_iter=10000):
        """
        Monte Carlo simulation constructor
        :param grid: MultiGrid instance
        :param options: Power flow options
        :param mc_tol: monte carlo std.dev tolerance
        :param batch_size: size of the batch
        :param max_mc_iter: maximum monte carlo iterations in case of not reach the precission
        """
        QThread.__init__(self)

        self.circuit = grid

        self.options = options

        self.mc_tol = mc_tol

        self.batch_size = batch_size
        self.max_mc_iter = max_mc_iter

        n = len(self.circuit.buses)
        m = self.circuit.get_branch_number()

        self.results = MonteCarloResults(n, m, name='Monte Carlo')

        self.logger = Logger()

        self.pool = None

        self.returned_results = list()

        self.__cancel__ = False
Пример #26
0
    def __init__(self, grid: MultiCircuit, options: NMinusKOptions):
        """
        N - k class constructor
        @param grid: MultiCircuit Object
        @param options: N-k options
        @:param pf_options: power flow options
        """
        QThread.__init__(self)

        # Grid to run
        self.grid = grid

        # Options to use
        self.options = options

        # N-K results
        self.results = NMinusKResults(n=0,
                                      m=0,
                                      bus_names=(),
                                      branch_names=(),
                                      bus_types=())

        self.numerical_circuit = None

        # set cancel state
        self.__cancel__ = False

        self.logger = Logger()

        self.elapsed = 0.0

        self.branch_names = list()
Пример #27
0
    def __init__(self,
                 grid: MultiCircuit,
                 options: PowerFlowOptions,
                 opf_time_series_results=None,
                 number_of_steps=10):
        """
        TimeSeries constructor
        @param grid: MultiCircuit instance
        @param options: PowerFlowOptions instance
        """
        QThread.__init__(self)

        # reference the grid directly
        self.grid = grid

        self.options = options

        self.opf_time_series_results = opf_time_series_results

        self.results = None

        self.number_of_steps = number_of_steps

        self.elapsed = 0

        self.logger = Logger()

        self.returned_results = list()

        self.pool = None

        self.steps = self.sample_steps()

        self.__cancel__ = False
Пример #28
0
    def __init__(self, grid: MultiCircuit, options: OptimalPowerFlowOptions):
        """
        PowerFlowDriver class constructor
        @param grid: MultiCircuit Object
        @param options: OPF options
        """
        QThread.__init__(self)

        # Grid to run a power flow in
        self.grid = grid

        # Options to use
        self.options = options

        # OPF results
        self.results = None

        # set cancel state
        self.__cancel__ = False

        self.all_solved = True

        self.elapsed = 0.0

        self.logger = Logger()
Пример #29
0
    def __init__(self, grid: MultiCircuit, options: LinearAnalysisOptions):
        """
        Power Transfer Distribution Factors class constructor
        @param grid: MultiCircuit Object
        @param options: OPF options
        """
        QThread.__init__(self)

        # Grid to run
        self.grid = grid

        # Options to use
        self.options = options

        # OPF results
        self.results = LinearAnalysisResults(n_br=0,
                                             n_bus=0,
                                             br_names=[],
                                             bus_names=[],
                                             bus_types=[])

        # set cancel state
        self.__cancel__ = False

        self.all_solved = True

        self.elapsed = 0.0

        self.logger = Logger()
Пример #30
0
 def __init__(self, port, controller_service):
     QThread.__init__(self)
     logging.info("Starting trigger thread")
     self.run_thread = True
     self.ardunio = Ardunio(port)
     self.controller_service = controller_service
     self.current_led_state = [False, False, False, False]
Пример #31
0
 def __init__(self, source, *args):
     QThread.__init__(self, *args)
     self.source = source
     self.target = Target()
Пример #32
0
 def __init__(self):
     QThread.__init__(self)
Пример #33
0
 def __init__(self,device='ME', tag='TAG', environment=ENV):
     QThread.__init__(self)
     SkelDataRec.__init__(self, device=device, tag=tag, environment=environment)