Source code for py_dss_interface.models.Generators.Generators

# -*- encoding: utf-8 -*-
"""
 Created by eniocc at 11/10/2020
"""
from typing import List

from py_dss_interface.models.Generators.GeneratorsF import GeneratorsF
from py_dss_interface.models.Generators.GeneratorsI import GeneratorsI
from py_dss_interface.models.Generators.GeneratorsS import GeneratorsS
from py_dss_interface.models.Generators.GeneratorsV import GeneratorsV


[docs]class Generators(GeneratorsI, GeneratorsF, GeneratorsS, GeneratorsV): """ This interface implements the Generators (IGenerators) interface of OpenDSS by declaring 4 procedures for accessing the different properties included in this interface: GeneratorsI, GeneratorsF, GeneratorsS, GeneratorsV. """ def __init__(self, dss_obj): super().__init__(dss_obj) @property def count(self) -> int: """Returns the number of generators Objects in Active Circuit.""" return GeneratorsI._count(self)
[docs] def first(self) -> int: """Sets first generator to be active. Returns 0 if None.""" return GeneratorsI._first(self)
@property def forced_on(self) -> int: """Returns 1 if the generator is forced ON regardless of other dispatch criteria; otherwise, returns 0. Allows to force ON regardless of other dispatch criteria. To force ON put 1 in the argument, otherwise put 0. """ return GeneratorsI._forced_on(self) @forced_on.setter def forced_on(self, value: int): GeneratorsI._forced_on_write(self, value) @property def idx(self) -> int: """Gets the active generator by Index into generators list. 1..Count. Sets the active generator (argument) by Index into generators list. 1..Count.""" return GeneratorsI._idx(self) @idx.setter def idx(self, value: int): GeneratorsI._idx_write(self, value) @property def kv(self) -> float: """Gets the voltage base for the active generator, kV. Sets the voltage base for the active generator, kV.""" return GeneratorsF._kv(self) @kv.setter def kv(self, value: float): GeneratorsF._kv_write(self, value) @property def kva(self) -> float: """Gets the KVA rating of the generator. Sets the KVA rating of the generator.""" return GeneratorsF._kva_rated(self) @kva.setter def kva(self, value: float): GeneratorsF._kva_rated_write(self, value) @property def kvar(self) -> float: """Gets the kvar output for the active generator, kW is updated for current power factor. Sets the kvar output for the active generator, kW is updated for current power factor.""" return GeneratorsF._kvar(self) @kvar.setter def kvar(self, value: float): GeneratorsF._kvar_write(self, value) @property def kw(self) -> float: """Gets the kW output for the active generator, kvar is updated for current power factor. Sets the kW output for the active generator, kvar is updated for current power factor.""" return GeneratorsF._kw(self) @kw.setter def kw(self, value: float): GeneratorsF._kw_write(self, value) @property def model(self) -> int: """Gets the active generator Model (see Manual for details). 1:Generator injects a constant kW at specified power factor. 2:Generator is modeled as a constant admittance. 3:Const kW, constant kV. Somewhat like a conventional transmission power flow P-V generator. 4:Const kW, Fixed Q (Q never varies) 5:Const kW, Fixed Q(as a constant reactance) 6:Compute load injection from User-written Model.(see usage of Xd, Xdp) 7:Constant kW, kvar, but current-limited below Vminpu. Approximates a simple inverter. See also Balanced. Sets the active generator Model (see Manual for details). 1:Generator injects a constant kW at specified power factor. 2:Generator is modeled as a constant admittance. 3:Const kW, constant kV. Somewhat like a conventional transmission power flow P-V generator. 4:Const kW, Fixed Q (Q never varies) 5:Const kW, Fixed Q(as a constant reactance) 6:Compute load injection from User-written Model.(see usage of Xd, Xdp) 7:Constant kW, kvar, but current-limited below Vminpu. Approximates a simple inverter. See also Balanced. """ return GeneratorsI._model(self) @model.setter def model(self, value: int): GeneratorsI._model_write(self, value) @property def name(self) -> str: """Gets the name of the active Generator. Sets the name of the active Generator.""" return GeneratorsS._name(self) @name.setter def name(self, value: str): GeneratorsS._name_write(self, value) @property def names(self) -> List[str]: """Gets the array of names of all Generator objects.""" return GeneratorsV._names(self)
[docs] def next(self) -> int: """Sets next generator to be active. Returns 0 if None.""" return GeneratorsI._next(self)
@property def pf(self) -> float: """Gets the power factor (pos. = producing vars). Updates kvar based on present kW value. Sets the power factor (pos. = producing vars). Updates kvar based on present kW value.""" return GeneratorsF._pf(self) @pf.setter def pf(self, value: float): GeneratorsF._pf_write(self, value) @property def phases(self) -> int: return GeneratorsI._phases(self) @phases.setter def phases(self, value: int): """Returns the number of phases of the active generator. Sets the number of phases (argument) of the active generator.""" GeneratorsI._phases_write(self, value) @property def register_names(self) -> List[str]: """Gets the array of names of all generator Energy Meter registers.""" return GeneratorsV._register_names(self) @property def register_values(self) -> List[float]: """Gets the array of values in generator Energy Meter registers.""" return GeneratorsV._register_values(self) @property def vmax_pu(self) -> float: """Gets the Vmaxpu for Generator Model. Sets the Vmaxpu for Generator Model.""" return GeneratorsF._vmax_pu(self) @vmax_pu.setter def vmax_pu(self, value: float): GeneratorsF._vmax_pu_write(self, value) @property def vmin_pu(self) -> float: """Gets the Vminpu for Generator Model. Sets the Vminpu for Generator Model.""" return GeneratorsF._vmin_pu(self) @vmin_pu.setter def vmin_pu(self, value: float): GeneratorsF._vmin_pu_write(self, value)