Chapter 2: Literature review
2.9 Simulation tools
The simulation models of the wind turbine system used in this project are developed in the dedicated power system analyses tool DIgital SImuLator for Electrical NeTwork (DigSILENT) and Matlab/Simulink. These simulation tools can support simulations with full electromagnetic transient models (EMT), providing instantaneous values of voltages and currents in the grid, combined with the ability to build dynamic models for movers.
2.9.1 DigSILENT
To build models for wind turbine systems, DigSILENT has a library dedicated for use in electrical power systems, but it consists typically of basic generic components. To implement the wind turbine system a user defined DigSILENT model is built using the programming language Dynamic Simulation Language (DSL), which is a combination of graphics and open source code.
DigSILENT has found application in the wind turbine industry [61, 35], as it combines models for electromagnetic transient simulations of instantaneous values with models for electromechanical simulations of RMS values. This makes the models useful for studies of grid faults (transient), power quality and control issues (longer-term) [61].
The RMS simulations are more appropriate for long simulation periods without transients, which is ideal for most studies of power quality and control issues. On the other hand, detailed models of instantaneous EMT values are required for reliable simulations of behaviour during grid faults. DIgSILENT provides both a comprehensive library of models for electrical components of power systems and a dynamic simulation language DSL. There are thus two types of models in DIgSILENT:
38
Built-in models of electrical component models already existing in the DIgSILENT library, including models for generators, motors, controllers, power electronics, dynamic loads and various passive components.
User defined models, which are created by the user.
DigSILENT is a powerful proprietary power system simulator, with the ability to either simulate with a fixed time step or a variable time step. It does, however, have drawbacks in building user defined generator models, other than the generic models already designed in its library.
2.9.2 Matlab/Simulink
The Matrix Laboratory (MATLAB) is a high-performance language for technical computing purposes. It uses a user-friendly environment that integrates computation, visualization, and programming with results to all computations expressed in familiar mathematical notation [62]. Its uses include the following: math and computation; algorithm development; data acquisition; modelling, simulation, and prototyping; data analysis, exploration, and visualization; scientific and engineering graphics; and application development, including graphical user interface building. The MATLAB system consists of the following five main parts [62]:
Development environment: Which are set of tools and facilities that help to access all the MATLAB functions and files. Most of the tools are graphical user interfaces. The development environment includes the MATLAB desktop and Command Window, a command history, an editor and debugger, and browsers for viewing help, the workspace, files, and the search path [63]. MATLAB Mathematical function library: This is a vast collection of computational algorithms
ranging from elementary functions like sum, sine, cosine, and complex arithmetic, to more sophisticated functions like matrix inverse, matrix eigenvalues, Bessel functions, and fast Fourier transforms [63].
MATLAB Language: This is a high-level matrix/array language with control flow statements, functions, data structures, input/output, and object-oriented programming features. It allows both "programming in the small" to rapidly create quick and dirty throw-away programs, and "programming in the large" to create complete large and complex application programs [63]. Graphics: MATLAB has extensive facilities for displaying vectors and matrices as graphs, as
well as annotating and printing these graphs. It includes high-level functions for two-dimensional and three-dimensional data visualization, image processing, animation, and presentation graphics. It also includes low-level functions that allow the user to fully customize the appearance of
39
graphics as well as to build complete graphical user interfaces on your MATLAB applications [63].
MATLAB Application Program Interface (API). This is a library that allows writing of C and Fortran programs that interact with MATLAB. It includes facilities for calling routines from MATLAB (dynamic linking), calling MATLAB as a computational engine, and for reading and writing MAT-files [63].
In the last few years, Simulink has become the most widely used software package in academia and industry for modelling and simulating dynamic systems [62]. Simulink is a graphical software package for modelling, simulating, and analysing dynamic systems and it is based on Matlab. It supports linear and nonlinear systems, modelled in continuous time, sampled time, or a hybrid of the two. Systems can also be multi-rate, which in tells that they have different parts that are sampled or updated at different rates.
Simulink provides a Graphical User Interface (GUI) for building models as block diagrams, using click-and-drag mouse operations. With this interface, the desired dynamic systems can be easily built. Simulink includes a comprehensive Simscape Power System block library which contains sinks, sources, linear and nonlinear components, and connectors. Using S-Functions, it is also possible to customize and create user-defined blocks.
Models are hierarchical, so the models can be built using both top-down and bottom-up approaches. The system can be viewed at a high level, and by double-clicking blocks the view can go down through the levels to see increasing levels of model detail. This approach provides insight into how a model is organized and how its parts interact. After defining a model, it can be simulated, using a choice of integration methods, either from the Simulink menus or by entering commands in the MATLAB Command Window. The menus are particularly convenient for interactive work, while the command-line approach is very useful for running a batch of simulations.
Using scopes and other display blocks, the simulation results can be analysed while the simulation is running. In addition, the parameters can be changed during the simulation for "what if" exploration. The simulation results can be put in the MATLAB workspace for post processing and visualization. Model analysis tools include linearization and trimming tools, which can be accessed from the MATLAB command line, plus the many tools in MATLAB and its application toolboxes. Since MATLAB and Simulink are integrated, the models can be simulated, analysed, and revisited in either environment at any point.
40
Simulink software is tightly integrated with the MATLAB environment. It requires MATLAB to run, depending on it to define and evaluate model and block parameters. Simulink can also utilize many MATLAB features. For example, Simulink can use the MATLAB environment for the following: Define model inputs.
Store model outputs for analysis and visualization.
41