Exemplo n.º 1
0
    def run_OpenDSS(dss_debug, solverFlag):
        # SET SOURCEBUS
        # VsourceClass.sourcebus = vsourceobj.id[1]
        dssObj = win32com.client.Dispatch(
            'OpenDSSEngine.DSS')  # OPENDSS COMPORT

        dssObj.AllowForms = False
        dssText = dssObj.Text
        dssCkt = dssObj.ActiveCircuit
        dssSolution = dssCkt.Solution
        dssActvElem = dssCkt.ActiveCktElement
        dssActvBus = dssCkt.ActiveBus

        dssText.Command = 'Clear'

        dssText.Command = 'Set DataPath=\'C:\\Users\\' + os_username + '\\Documents\\OpenDSS'
        dssText.Command = 'Set DefaultBaseFrequency=60'

        for object in object_list:
            object.createAllDSS(dssText, {}, dss_debug)

        set_voltagebase = set()
        for object in object_list:
            set_voltagebase = set_voltagebase | object.voltagesToSets()

        dssText.Command = 'Set VoltageBases={}'.format(list(set_voltagebase))
        dssText.Command = 'CalcVoltageBases'
        dssText.Command = 'Solve BaseFrequency=60 MaxIter=300'

        variant_buses = automation.VARIANT()
        variant_voltages_mag = automation.VARIANT()
        variant_voltages_pu = automation.VARIANT()
        variant_currents = automation.VARIANT()
        variant_powers = automation.VARIANT()

        for object in object_list:
            object.readAllDSSOutputs(dssCkt, dssActvElem, dssActvBus,
                                     variant_buses, variant_voltages_mag,
                                     variant_voltages_pu, variant_currents,
                                     variant_powers)

        if solverFlag == False:
            dssText.Command = 'Save Circuit'
            dssText.Command = 'Export Summary (summary.csv)'
            dssText.Command = 'Export Currents (currents.csv)'
            dssText.Command = 'Export Voltages (voltages.csv)'
            dssText.Command = 'Export Overloads (overloads.csv)'
            dssText.Command = 'Export Powers kVA (powers.csv)'

        losses = dssCkt.Losses
        return float(losses[0]) * 0.001, float(losses[1]) * 0.001  # kW, kVar
Exemplo n.º 2
0
Arquivo: ui.py Projeto: FDX-VQ/nvda
def browseableMessage(message, title=None, isHtml=False):
    """Present a message to the user that can be read in browse mode.
	The message will be presented in an HTML document.
	@param message: The message in either html or text.
	@type message: str
	@param title: The title for the message.
	@type title: str
	@param isHtml: Whether the message is html
	@type isHtml: boolean
	"""
    htmlFileName = os.path.join(globalVars.appDir, 'message.html')
    if not os.path.isfile(htmlFileName):
        raise LookupError(htmlFileName)
    moniker = POINTER(IUnknown)()
    windll.urlmon.CreateURLMonikerEx(0, htmlFileName, byref(moniker),
                                     URL_MK_UNIFORM)
    if not title:
        # Translators: The title for the dialog used to present general NVDA messages in browse mode.
        title = _("NVDA Message")
    isHtmlArgument = "true" if isHtml else "false"
    dialogString = u"{isHtml};{title};{message}".format(isHtml=isHtmlArgument,
                                                        title=title,
                                                        message=message)
    dialogArguements = automation.VARIANT(dialogString)
    gui.mainFrame.prePopup()
    windll.mshtml.ShowHTMLDialogEx(gui.mainFrame.Handle,
                                   moniker, HTMLDLG_MODELESS,
                                   addressof(dialogArguements), DIALOG_OPTIONS,
                                   None)
    gui.mainFrame.postPopup()
Exemplo n.º 3
0
 def Get_Circuit_AllBusVmagPu(self):
     """ Método que retorna uma lista com as tensões nodais em pu de todos os nós do circuito"""
     # Declarando um ponteiro para uma variável do tipo "variant"
     variant_pointer = ctypes.pointer(automation.VARIANT())
     self.dssObj.CircuitV(ctypes.c_int(9), variant_pointer,
                          ctypes.c_int32(0))
     return variant_pointer.contents.value
Exemplo n.º 4
0
 def Get_Circuit_AllNodeNames(self):
     """ Método que retorna uma lista com os nomes de todas os nós do circuito"""
     # Declarando um ponteiro para uma variável do tipo "variant"
     variant_pointer = ctypes.pointer(automation.VARIANT())
     self.dssObj.CircuitV(ctypes.c_int(10), variant_pointer,
                          ctypes.c_int32(0))
     return variant_pointer.contents.value
Exemplo n.º 5
0
 def get_Circuit_AllBusNames(self):
     """ Método que get os nomes das barras"""
     variant_pointer = ctypes.pointer(automation.VARIANT())
     self.dssObj.CircuitV(ctypes.c_int32(7), variant_pointer,
                          ctypes.c_int32(0))
     return variant_pointer.contents.value
Exemplo n.º 6
0
 def get_Circuit_AllBusVMagPu(self):
     """ Método que retorna as tensões das barras em pu"""
     variant_pointer = ctypes.pointer(automation.VARIANT())
     self.dssObj.CircuitV(ctypes.c_int32(9), variant_pointer,
                          ctypes.c_int32(0))
     return variant_pointer.contents.value
Exemplo n.º 7
0
 def get_Transformer_AllNames(self):
     """ Método que retorna os nomes dos transformeres"""
     variant_pointer = ctypes.pointer(automation.VARIANT())
     self.dssObj.TransformersV(ctypes.c_int(0), variant_pointer)
     return variant_pointer.contents.value
Exemplo n.º 8
0
 def get_CktElement_BusNames(self):
     """ Método que retorna os nomes das barras do elemento ativo"""
     variant_pointer = ctypes.pointer(automation.VARIANT())
     self.dssObj.CktElementV(ctypes.c_int32(0), variant_pointer)
     return variant_pointer.contents.value
Exemplo n.º 9
0
 def get_Load_AllNames(self):
     """ Método que retorna o nome de todas as cargas"""
     variant_pointer = ctypes.pointer(automation.VARIANT())
     self.dssObj.DSSLoadsV(ctypes.c_int32(0), variant_pointer)
     return variant_pointer.contents.value
Exemplo n.º 10
0
 def get_VSource_AllNames(self):
     """ Método que retorna o nome de todas as fontes"""
     variant_pointer = ctypes.pointer(automation.VARIANT())
     self.dssObj.VsourcesV(ctypes.c_int32(0), variant_pointer)
     return variant_pointer.contents.value
Exemplo n.º 11
0
 def Get_Transformer_AllNames(self):
     """ Método que retorna uma lista com os nomes de todos os Transformadores"""
     # Declarando um ponteiro para uma variável do tipo "variant"
     variant_pointer = ctypes.pointer(automation.VARIANT())
     self.dssObj.TransformersV(ctypes.c_int(0), variant_pointer)
     return variant_pointer.contents.value
Exemplo n.º 12
0
 def Get_CktElement_BusNames(self):
     """ Método que retorna uma lista com o nome das barras à qual o elemento ativo se conecta"""
     # Declarando um ponteiro para uma variável do tipo "variant"
     variant_pointer = ctypes.pointer(automation.VARIANT())
     self.dssObj.CktElementV(ctypes.c_int(0), variant_pointer)
     return variant_pointer.contents.value
Exemplo n.º 13
0
 def Get_Loads_AllNames(self):
     """ Método que retorna uma lista com os nomes de todas as cargas do circuito"""
     # Declarando um ponteiro para uma variável do tipo "variant"
     variant_pointer = ctypes.pointer(automation.VARIANT())
     self.dssObj.DSSLoadsV(ctypes.c_int(0), variant_pointer)
     return variant_pointer.contents.value
Exemplo n.º 14
0
 def Get_Meters_RegisterValues(self):
     """ Método que retorna uma lista com os valores do registros do medidor ativo"""
     # Declarando um ponteiro para uma variável do tipo "variant"
     variant_pointer = ctypes.pointer(automation.VARIANT())
     self.dssObj.MetersV(ctypes.c_int(2), variant_pointer)
     return variant_pointer.contents.value
Exemplo n.º 15
0
 def Get_Meters_AllNames(self):
     """ Método que retorna uma lista com o nome de todos os medidores do circuito"""
     # Declarando um ponteiro para uma variável do tipo "variant"
     variant_pointer = ctypes.pointer(automation.VARIANT())
     self.dssObj.MetersV(ctypes.c_int(0), variant_pointer)
     return variant_pointer.contents.value
Exemplo n.º 16
0
    def run_OpenDSS(dss_debug, solverFlag):
        # SET SOURCEBUS
        # VsourceClass.sourcebus = vsourceobj.id[1]
        dssObj = win32com.client.Dispatch(
            'OpenDSSEngine.DSS')  # OPENDSS COMPORT

        dssObj.AllowForms = False
        dssText = dssObj.Text
        dssCkt = dssObj.ActiveCircuit
        dssSolution = dssCkt.Solution
        dssActvElem = dssCkt.ActiveCktElement
        dssActvBus = dssCkt.ActiveBus

        dssText.Command = 'Clear'

        dssText.Command = 'Set DataPath=\'C:\\Users\\' + os_username + '\\Documents\\OpenDSS'
        dssText.Command = 'Set DefaultBaseFrequency=60'

        for object in object_list:
            object.createAllDSS(dssText, interconn_dict, dss_debug)

        set_voltagebase = set()
        for object in object_list:
            set_voltagebase = set_voltagebase | object.voltagesToSets()

        dssText.Command = 'Set VoltageBases={}'.format(list(set_voltagebase))
        dssText.Command = 'CalcVoltageBases'
        dssText.Command = 'Solve BaseFrequency=60 MaxIter=300'

        variant_buses = automation.VARIANT()
        variant_voltages_mag = automation.VARIANT()
        variant_voltages_pu = automation.VARIANT()
        variant_currents = automation.VARIANT()
        variant_powers = automation.VARIANT()

        for object in object_list:
            object.readAllDSSOutputs(dssCkt, dssActvElem, dssActvBus,
                                     variant_buses, variant_voltages_mag,
                                     variant_voltages_pu, variant_currents,
                                     variant_powers)

        if solverFlag == False:
            # dssText.Command = 'Save Circuit'
            # dssText.Command = 'Export Summary (summary.csv)'
            # dssText.Command = 'Export Currents (currents.csv)'
            # dssText.Command = 'Export Voltages (voltages.csv)'
            # dssText.Command = 'Export Overloads (overloads.csv)'
            # dssText.Command = 'Export Powers kVA (powers.csv)'

            input_list_continuous = []
            input_list_categorical = []
            input_tensor_continuous = np.empty([0, 0],
                                               dtype=np.float64).flatten()
            input_tensor_categorical = np.empty([0, 0],
                                                dtype=np.float64).flatten()
            for object in object_list:
                list_continuous, list_categorical, tensor_continuous, tensor_categorical = object.convertToInputTensor(
                )
                input_list_continuous = input_list_continuous + list_continuous
                input_list_categorical = input_list_categorical + list_categorical
                input_tensor_continuous = np.concatenate(
                    (input_tensor_continuous, tensor_continuous), axis=0)
                input_tensor_categorical = np.concatenate(
                    (input_tensor_categorical, tensor_categorical), axis=0)

            output_list = []
            output_tensor = np.empty([0, 0], dtype=np.float64).flatten()
            for object in object_list:
                o_list, o_tensor = object.convertToOutputTensor()
                output_list = output_list + o_list
                output_tensor = np.concatenate((output_tensor, o_tensor),
                                               axis=0)

            return input_list_continuous, input_list_categorical, output_list, input_tensor_continuous, input_tensor_categorical, output_tensor
        else:
            losses = dssCkt.Losses
            return float(losses[0]) * 0.001  # kW