Dynamic Modelling Flexibility (DSL)
DIgSILENT PowerFactory features unmet flexibility in implementing user-specific modelling needs for stability analysis (RMS & EMT) purposes. The fundamental level of flexibility level is provided by graphical object wiring diagrams called Composite Model Frames. They provide a user-friendly means to configure functional block relations (Slots) using object signal connections.
- Any existing PowerFactory object can be plugged into a Composite Model Frame Slot.
- Frames can be lumped and nested to any degree of complexity.
- Hundreds of objects such as power system components (e.g. busbars, generators, lines, transformers, motors, voltage controllers, prime movers, power system stabilizers, motor driver machines, relays, relay components, CTs, VTs, measurement files, FFT devices, real time clock, RMS signal transducer, parameter identifiers, controllers, power plant control components, A/D converter, RPC links), result files or display objects are at the user’s disposal.
- In cases where additional functions are required which are not included in the built-in model- and macros-library, these can be created using the DSL language.
DIgSILENT Simulation Language (DSL) main features:
- Flexible definition of macros, functions and models, which is not limited to the use of predefined blocks of a block-oriented simulation language (BOSL).
- DSL is a Continuous System Simulation Language (CSSL) featuring a complete syntactical description of continuous linear and nonlinear as well as digital systems. DSL is dedicated to common control and logic diagrams; it is a non-procedural language as the sequence of elements can be chosen arbitrarily.
- DSL syntax elements are algebraic and differential equations as well as intrinsic functions such as signal limiting blocks, tables and curve approximation, delay, interrupt procedures, logical blocks, etc.
- Basic control elements such as PID, PTn or even complete physical subsystems such as HVDC valve groups or excitation systems can be defined as macros or high-level functions.
- Automatic calculation of initial conditions utilizing various iterative procedures for initializing complex, nonlinear equations of coupled systems.
- Provision of various formal procedures for error detection and testing purposes, e.g. algebraic loop detection, reporting of unused and undefined variables and missing initial conditions.
- DSL models are considered by the PowerFactory EMT/RMS simulation. Multi-level modelling is provided for the different steady-state descriptions and transient time domains (short/mid-term, long-term and electromagnetic).
- DSL models can be created by drawing a “block diagram”. Any “block” may contain another DSL model, a macro or any sequence of DSL syntax. The DSL-editor will then generate the DSL description automatically and will also provide direct model testing functions such as eigenvalue analysis or step-response tests of the complete DSL model or of sub-models only.
DSL Implementation
The DIgSILENT Simulation Language (DSL) is fully-integrated into the PowerFactory program kernel via the graphical interface.
- Signals: Specific input- and output signals defined for all PowerFactory objects as well as any variable defined in a DSL model can be accessed in their corresponding read- or write- mode.
- Interrupts: Conditions derived by DSL models can cause interrupts to be sent to the simulation kernel where they are scheduled within the event queue.
- Output and Monitoring: Conditions may trigger an output to be displayed in the output window and stored in the simulation log file.
Advanced Features
- DSL models feature the direct interaction with external processes such as DAQ interfaces, SIMULINK modules or other software systems via time-synchronized communication channels
- Support of OPC Client and shared memory communication
- Procedures written in C++ code can be directly linked via appropriate interface mechanisms
- Encryption of DSL models to conceal confidential data
User-specific C++ Code
The user has two options for combining the PowerFactory DSL modelling approach with externally developed C++ code.
- User-defined intrinsic functions can be linked via external DLL for extending the already broad range of DSL standard intrinsic functions such as: “abs”, “sin”, “cos”, “exp”, etc. and DSL special functions such as “lapprox”, “lim”, “limstate”, “delay”, “picdro”, “time”, “file”, “flipflop”, etc. User defined intrinsic functions are to be linked to PowerFactory via the DLL “digexfun”.
- Complete user-defined models of any modelling level, linked via the DLL “digexdyn” is supported for any discrete system. Typical applications are digital control systems which are executed via clock-synchronized calls, simulation models being implemented via difference equations, or models which incl. their state variables and integration algorithms internally.
