# -*- coding: utf-8 -*- """ Created on Sat Jul 19 15:48:09 2025 @author: Franklin """ #vinculacion con pf import os os.environ["PATH"]=r"C:\Users\Franklin\Documents\Power factory\DIgSILENT\PowerFactory 2021 SP2"+os.environ["PATH"] import sys sys.path.append(r"C:\Users\Franklin\Documents\Power factory\DIgSILENT\PowerFactory 2021 SP2\Python\3.8") #importar aplicacion import powerfactory as pf app=pf.GetApplication() #Abrir pf en modo engine app.Show() #Activar proyectos user=app.GetCurrentUser() project= app.ActivateProject('Two Area Kundur') prj=app.GetActiveProject() #Acceso a Objetos #Creacion de diccionarios para acceder a cualquier objeto #Diccionario para generadores Gen_dict={} Gener=app.GetCalcRelevantObjects('*.ElmSym') for i in Gener: Gen_dict[i.loc_name]=i #Diccionario de energia Fotovoltaica Pv_dict={} Pvs=app.GetCalcRelevantObjects('*.ElmPvsys') for i in Pvs: Pv_dict[i.loc_name]=i Pv_dict['Large-scale PV Plant'].SetAttribute('ngnum',1) para=Pv_dict['Large-scale PV Plant'].GetAttribute('ngnum') print(para) Pv_dict['Large-scale PV Plant'].SetAttribute('pgini', 40000) pot=Pv_dict['Large-scale PV Plant'].GetAttribute('pgini') print(pot) """ Diccionario para acceder a los modelos dsl que vienen dentro de la ER incluido la observacion de las variables que estan en los modelos se colocara tambien la linea de codigo para poder cambiar un valor especifico de la celda de dicho modelo dsl. """ dsl_dict={} dsls=app.GetCalcRelevantObjects('*.ElmDsl') for i in dsls: dsl_dict[i.loc_name]=i dsl_dict['REEC_B Electrical Control Model'].SetAttribute('params:Kvi',0.7) dsl_dict['REEC_B Electrical Control Model'].SetAttribute('params:Kvp',1) dsl_dict['REEC_B Electrical Control Model'].SetAttribute('params:Trv',0.01) uno=dsl_dict['REEC_B Electrical Control Model'].GetAttribute('params') print(uno) dsl_dict['REEC_A Electrical Control Model'].SetAttribute('params:Kvi',0.7) dsl_dict['REEC_A Electrical Control Model'].SetAttribute('params:Kvp',1) dsl_dict['REEC_A Electrical Control Model'].SetAttribute('params:Trv',0.01) dos=dsl_dict['REEC_A Electrical Control Model'].GetAttribute('params') print(dos) #Diccionario de energia Eolica Wt_dict={} Wts=app.GetCalcRelevantObjects('*.ElmGenstat') for i in Wts: Wt_dict[i.loc_name]=i Wt_dict['WT Type 3'].SetAttribute('ngnum', 20) paralelo=Wt_dict['WT Type 3'].GetAttribute('ngnum') print(paralelo) #Ejecutar analisis modal modal=app.GetFromStudyCase('ComMod') modal.iopt_met=0 modal.Execute() #Mostrar resultados del analisis resul=app.GetFromStudyCase('ComModres') resul.iopt_val=0 resul.Execute() """Exportar archivos a un excel"""