How do I automate powerfactory tasks?

Automatiser PowerFactory med Python-Værktøjer

28/02/2008

Rating: 3.93 (9763 votes)

Som ingeniør eller forsker inden for elsystemer kender du sandsynligvis behovet for at automatisere netværksberegninger, især når det kommer til variationer i use cases eller behovet for reproducerbare beregninger. Det er her, PowerFactory-Tools kommer ind i billedet. Dette open source-bibliotek skrevet i Python er udviklet til at lette styringen af DIgSILENT PowerFactory. Ved at bruge Python til at styre PowerFactory kan du opnå en markant forbedring af din produktivitet, reducere manuelle fejl og udføre komplekse analyser, der ville være næsten umulige at gennemføre manuelt. Denne artikel fungerer som en omfattende guide til, hvordan du kan udnytte kraften i Python og PowerFactory-Tools til at tage dine elsystemanalyser til det næste niveau.

Does DIgSILENT powerfactory have a Python API?
Luckily, DIgSILENT PowerFactory comes with an API interface for Python to do precisely that. This post gives a short overview of the Python API for DIgSILENT and provides the basic Python code to jump-start your DIgSILENT PowerFactory automatization. Before we continue… For the demonstration, I use a standard nine-bus system as shown below.
Indholdsfortegnelse

Hvad er PowerFactory-Tools?

PowerFactory-Tools er et specialiseret Python-bibliotek, der fungerer som et mellemlag mellem dit Python-script og DIgSILENT PowerFactorys API (Application Programming Interface). Dets primære formål er at forenkle og standardisere interaktionen med PowerFactory, så ingeniører og udviklere kan fokusere mere på selve analysen og mindre på den komplekse kode, der kræves for at kommunikere med softwaren. Biblioteket er bygget oven på PowerFactorys indbyggede Python-funktionalitet, men tilføjer en række forbedringer og bekvemmeligheder, der gør automatiseringsprocessen hurtigere, mere robust og lettere at vedligeholde. Det giver dig mulighed for at køre PowerFactory i 'engine mode', hvilket betyder, at softwaren kører i baggrunden uden den grafiske brugergrænseflade (GUI), hvilket er ideelt for automatiserede scripts og store batch-kørsler.

De Vigtigste Fordele ved at Bruge PowerFactory-Tools

At integrere PowerFactory-Tools i din arbejdsgang giver en lang række fordele, der kan transformere den måde, du arbejder med elsystemsimuleringer på. Her er nogle af de mest markante fordele:

  • Effektiviseret Udvikling: Med funktioner som type hints og auto-fuldførelse i moderne IDE'er (Integrated Development Environments) som VS Code eller PyCharm, bliver udviklingen markant hurtigere. Du behøver ikke længere at gætte dig til funktionsnavne eller argumenttyper.
  • Standardiseret Interface: Biblioteket tilbyder en standardiseret og intuitiv grænseflade til mange af PowerFactorys mest almindelige funktioner. Dette gør koden mere læsbar og lettere for nye teammedlemmer at forstå.
  • Sikker Enhedshåndtering: En af de største udfordringer ved automatisering er at håndtere forskellige enheder (kV, MW, MVA, etc.) korrekt. PowerFactory-Tools løser dette ved midlertidigt at konvertere alle enheder til et standardiseret sæt under kørslen (f.eks. MVA, kV, kA, km). Dette sikrer, at dine scripts opfører sig forudsigeligt uafhængigt af de specifikke projektindstillinger.
  • Øget Reproducerbarhed: Ved at bruge et testet og veldokumenteret bibliotek sikrer du, at dine beregninger er mere pålidelige og reproducerbare. Dette er afgørende for både forskning og kommercielle projekter, hvor nøjagtighed er altafgørende.
  • Debugging: Når du kalder PowerFactory fra et eksternt Python-script, er det meget lettere at tilknytte en debugger. Dette gør det muligt at gennemgå din kode linje for linje, inspicere variabler og hurtigt finde og rette fejl, en proces der er langt mere besværlig med interne DPL-scripts.

Kom Godt i Gang: Grundlæggende Opsætning

Før du kan begynde at automatisere, skal dit system være korrekt konfigureret. Processen er ligetil.

Først og fremmest skal du have Python installeret. Hvis du ikke allerede har det, anbefales det stærkt at installere en distribution som Anaconda. Anaconda inkluderer ikke kun Python, men også en lang række essentielle datavidenskabelige pakker og værktøjer som Spyder, en brugervenlig editor.

Det næste og mest kritiske skridt er at sikre, at dit Python-script kan finde din PowerFactory-installation. Dette gøres ved at tilføje stien til PowerFactorys Python-bibliotek til dit scripts systemsti. Sørg for, at PowerFactory-applikationen er lukket, før du kører scriptet, da det ikke er muligt at køre et script, mens en manuel instans af PowerFactory er åben.

What are the powerfactory-tools?
That’s where the PowerFactory-Tools come in. This open-source repository written in Python is developed to facilitate the control of DIgSILENT PowerFactory. For a quick and very basic introduction to controlling PowerFactory via a Python script, rather than going into depth with this article, check out this brief introduction from 2022.
import sys # VIGTIGT: Erstat stien med stien til Python-mappen i DIN PowerFactory-installation sys.path.append(r'C:\Program Files\DIgSILENT\PowerFactory 2024\Python\3.8') import powerfactory as pf if __name__ == "__main__": try: app = pf.GetApplication() if app is None: raise Exception('Kunne ikke hente PowerFactory-applikationen') print('Successfully connected to PowerFactory') except Exception as e: print(f'Fejl: {e}') 

Praktisk Anvendelse: Automatiser en Lastflowanalyse

Lad os se på et konkret eksempel: at køre en simpel lastflowanalyse. Dette er en af de mest grundlæggende og hyppige opgaver for en elsystemingeniør. Med et script kan du køre denne analyse for hundredvis af forskellige scenarier på få minutter.

Først skal vi aktivere det korrekte projekt og studietilfælde. Derefter henter vi lastflow-beregningsobjektet og udfører det.

# Definer projektnavn og studietilfælde projName = '_TSI_Nine-bus System' study_case = '01_Study_Case.IntCase' # Aktiver projektet app.ActivateProject(projName) # Hent studietilfældemappen og aktiver det specifikke tilfælde oFolder_studycase = app.GetProjectFolder('study') oCase = oFolder_studycase.GetContents(study_case)[0] oCase.Activate() # Hent lastflow-objektet og udfør beregningen oLoadflow = app.GetFromStudyCase('ComLdf') oLoadflow.Execute() print('Lastflowanalyse udført.') 

En analyse er dog kun nyttig, hvis vi kan få adgang til resultaterne. Nedenstående kode viser, hvordan du kan udtrække og printe resultater for generatorer, linjer og samleskinner.

# Hent alle relevante generatorer (ElmSym) Generators = app.GetCalcRelevantObjects('*.ElmSym') print('\n--- Generator Resultater ---') for gen in Generators: navn = gen.loc_name aktiv_effekt = gen.GetAttribute('c:p') reaktiv_effekt = gen.GetAttribute('c:q') belastning = gen.GetAttribute('c:loading') print(f'{navn}: P = {aktiv_effekt:.2f} MW, Q = {reaktiv_effekt:.2f} MVAr, Belastning = {belastning:.0f} %') # Hent alle relevante linjer (ElmLne) Lines = app.GetCalcRelevantObjects('*.ElmLne') print('\n--- Linjebelastning Resultater ---') for line in Lines: navn = line.loc_name belastning = line.GetAttribute('c:loading') print(f'Belastning af linje {navn} = {belastning:.2f} %') 

Sammenligning af Automatiseringsmetoder

Selvom Python er et utroligt kraftfuldt værktøj, er det ikke den eneste måde at automatisere PowerFactory på. DIgSILENT tilbyder også sit eget scriptsprog, DPL (DIgSILENT Programming Language), og en C++ API for mere højtydende applikationer. Her er en sammenligningstabel:

FunktionPython APIDPLC++ API
BrugervenlighedHøj (let at lære, stort økosystem)Medium (specifikt for PowerFactory)Lav (kræver avanceret viden)
FleksibilitetMeget Høj (adgang til alle Python-biblioteker)Medium (begrænset til PowerFactorys funktioner)Høj (fuld systemkontrol)
YdeevneGodMeget God (tæt integreret)Fremragende (bedst til realtidsapplikationer)
Ekstern IntegrationFremragende (f.eks. med dataanalyse, machine learning)BegrænsetMeget God (kan integreres med andre C++ systemer)

Ofte Stillede Spørgsmål (FAQ)

Skal jeg have PowerFactory åben for at køre et Python-script?

Nej, tværtimod. Dit script starter PowerFactorys motor i baggrunden. Du skal sikre dig, at den grafiske brugergrænseflade er lukket, før du eksekverer scriptet for at undgå konflikter.

What programming languages are used in powerfactory?
The guide includes example scripts that demonstrate executing load flow calculations and extracting data from PowerFactory components. Python, which is widely used today, is one of the open-source programming languages. In the Python program, its interface is done through the PyQt5 library.

Hvilken version af Python er kompatibel?

Den krævede Python-version afhænger af din PowerFactory-version. For eksempel bruger PowerFactory 2024 typisk Python 3.8. Det er vigtigt at tjekke den officielle DIgSILENT-dokumentation for din specifikke version for at sikre kompatibilitet.

Er PowerFactory-Tools et officielt produkt fra DIgSILENT?

Nej, PowerFactory-Tools er et uafhængigt open source-projekt udviklet af fællesskabet. Selvom det ikke er officielt understøttet af DIgSILENT, er det bredt anerkendt og bruges af mange fagfolk på grund af dets robusthed og de fordele, det tilbyder.

Kan jeg bruge resultaterne i andre programmer?

Absolut. En af de største fordele ved at bruge Python er muligheden for at integrere med andre værktøjer. Du kan nemt eksportere resultater til pandas DataFrames, gemme dem i CSV-filer, plotte dem med Matplotlib eller bruge dem som input til machine learning-modeller med biblioteker som Scikit-learn eller TensorFlow.

Hvis du vil læse andre artikler, der ligner Automatiser PowerFactory med Python-Værktøjer, kan du besøge kategorien Teknologi.

Go up