MATLAB Examples

Wind Farm (IG)

This example shows phasor simulation of a 9-MW wind farm using Induction Generators (IG) driven by variable-pitch wind turbines.

Richard Gagnon (Hydro-Quebec)



A wind farm consisting of six 1.5-MW wind turbines is connected to a 25-kV distribution system exports power to a 120-kV grid through a 25-km 25-kV feeder. The 9-MW wind farm is simulated by three pairs of 1.5 MW wind-turbines. Wind turbines use squirrel-cage induction generators (IG). The stator winding is connected directly to the 60 Hz grid and the rotor is driven by a variable-pitch wind turbine. The pitch angle is controlled in order to limit the generator output power at its nominal value for winds exceeding the nominal speed (9 m/s). In order to generate power the IG speed must be slightly above the synchronous speed. Speed varies approximately between 1 pu at no load and 1.005 pu at full load. Each wind turbine has a protection system monitoring voltage, current and machine speed.

Reactive power absorbed by the IGs is partly compensated by capacitor banks connected at each wind turbine low voltage bus (400 kvar for each pair of 1.5 MW turbine). The rest of reactive power required to maintain the 25-kV voltage at bus B25 close to 1 pu is provided by a 3-Mvar STATCOM with a 3% droop setting.

Open the "Wind Farm" block and look at "Wind Turbine 1". Open the turbine menu and look at the two sets of parameters specified for the turbine and the generator. Each wind turbine block represents two 1.5 MW turbines. Open the turbine menu, select "Turbine data" and check "Display wind-turbine power characteristics". The turbine mechanical power as function of turbine speed is displayed for wind speeds ranging from 4 m/s to 10 m/s. The nominal wind speed yielding the nominal mechanical power (1pu=3 MW) is 9 m/s. The wind turbine model and the statcom model (from the FACTS library) are phasor models that allow transient stability type studies with long simulation times. In this example, the system is observed during 20 s.

The wind speed applied to each turbine is controlled by the "Wind 1" to "Wind 3" blocks . Initially, wind speed is set at 8 m/s, then starting at t=2s for "Wind turbine 1", wind speed is rammed to 11 m/s in 3 seconds. The same gust of wind is applied to Turbine 2 and Turbine 3, respectively with 2 seconds and 4 seconds delays. Then, at t=15 s a temporary fault is applied at the low voltage terminals (575 V) of "Wind Turbine 2".


Turbine response to a change in wind speed

Start simulation and observe the signals on the "Wind Turbines" scope monitoring active and reactive power, generator speed, wind speed and pitch angle for each turbine. For each pair of turbine the generated active power starts increasing smoothly (together with the wind speed) to reach its rated value of 3 MW in approximately 8s. Over that time frame the turbine speed will have increased from 1.0028 pu to 1.0047 pu. Initially, the pitch angle of the turbine blades is zero degree. When the output power exceed 3 MW, the pitch angle is increased from 0 deg to 8 deg in order to bring output power back to its nominal value. Observe that the absorbed reactive power increases as the generated active power increases. At nominal power, each pair of wind turbine absorbs 1.47 Mvar. For a 11m/s wind speed, the total exported power measured at the B25 bus is 9 MW and the statcom maintains voltage at 0.984 pu by generating 1.62 Mvar (see "B25 Bus" and "Statcom" scopes).

Operation of protection system

At t=15 s, a phase to phase fault is applied at wind turbine 2 terminals, causing the turbine to trip at t=15.11 s. If you look inside the "Wind Turbine Protections" block you will see that the trip has been initiated by the AC Undervoltage protection. After turbine 2 has tripped, turbines 1 and 3 continue to generate 3 MW each.

Impact of STATCOM

You will now observe the impact of the "STATCOM". First, open the "Three-Phase Fault" block menu and disable the phase to phase fault. Then put the "STATCOM" out of service by double clicking the "Manual Switch" block connected to the "Trip" input of the "STATCOM". Restart simulation. Observe on " B25 Bus" scope that because of the lack of reactive power support, the voltage at bus "B25" now drops to 0.91pu. This low voltage condition results in an overload of the IG of "Wind Turbine 1". "Wind Turbine 1" is tripped at t=13.43 s. If you look inside the "Wind Turbine Protections" block you will see that the trip has been initiated by the AC Overcurrent protection.

Regenerate Initial Conditions

This example is set-up with all states initialized so that the simulation starts in steady-state. The initial conditions have been saved in the "power_wind_ig_xinit.mat" file. When you open this model, the InitFcn callback (in the Model Properties/Callbacks) automatically loads into your workspace the contents of this .mat file ("xInitial" variable).

If you modify this model, or change parameter values of power components, the initial conditions stored in the "xInitial" variable will no longer be valid and Simulink® will issue an error message. To regenerate the initial conditions for your modified model, follow the steps listed below:

  1. In the Simulation/Configuration Parameters/Data Import/Export Parameters menu, uncheck the "Initial state" parameter.
  2. Open the "Wind Farm" subsystem and in the Timer blocks labeled "Wind1" and "Wind2", Wind3" temporarily disable the changes of wind speed by multiplying the "Time(s)" vector by 100.
  3. In the "Wind Farm" subsystem, double click on the "Three-Phase Fault" block and disable the AB to ground fault (deselect "Phase A Fault" and "Phase B Fault").
  4. Start simulation. When Simulation is completed, verify that steady state has been reached by looking at waveforms displayed on the scopes. The final states which have been saved in the "xFinal" array can be used as initial states for future simulations. Executing the next two commands copies these final conditions in "xInitial" and saves this variable in a new file (myModel_init.mat). * >> xInitial=xFinal; * >> save myModel_init xInitial
  5. In the File/Model Properties/Callbacks/InitFcn window, change the name of the initialization file from "power_wind_ig_xinit" to "myModel_init". Next time you open this model, the variable xInitial saved in the myModel_init.mat file will be loaded in your workspace.
  6. In the Simulation/Configuration Parameters menu, check "Initial state".
  7. Start simulation and verify that your model starts in steady-state.
  8. Open the "Wind Farm" subsystem and in the Timer blocks labeled "Wind1", "Wind2" and Wind3" re-enable the changes of wind speed respectively a t=2 s , t=4 s and t=6 s (remove the 100 multiplication factors).
  9. In the "Wind Farm" subsystem, re-enable the AB to ground fault in the "Three-Phase Fault" block (check "Phase A Fault" and "Phase B Fault")
  10. Save your Model.