Main Content

Wind Farm - Doubly-Fed Induction Generator (DFIG) Phasor Model

This example shows phasor simulation of a 9 MW wind farm using Doubly-Fed Induction Generator (DFIG) driven by a wind turbine.

Richard Gagnon, Bernard Saulnier, Alain Forcione (Hydro-Quebec)

Note: This example uses a generic model of a DFIG wind turbine. The model is useful for education and academic works.


A 9-MW wind farm consisting of six 1.5 MW wind turbines connected to a 25-kV distribution system exports power to a 120-kV grid through a 30-km, 25-kV feeder. A 2300V, 2-MVA plant consisting of a motor load (1.68 MW induction motor at 0.93 PF) and of a 200-kW resistive load is connected on the same feeder at bus B25. Both the wind turbine and the motor load have a protection system monitoring voltage, current and machine speed. The DC link voltage of the DFIG is also monitored.

Wind turbines use a doubly-fed induction generator (DFIG) consisting of a wound rotor induction generator and an AC/DC/AC IGBT-based PWM converter. The stator winding is connected directly to the 60 Hz grid while the rotor is fed at variable frequency through the AC/DC/AC converter. The DFIG technology allows extracting maximum energy from the wind for low wind speeds by optimizing the turbine speed, while minimizing mechanical stresses on the turbine during gusts of wind. The optimum turbine speed producing maximum mechanical energy for a given wind speed is proportional to the wind speed. For wind speeds lower than 10 m/s the rotor is running at subsynchronous speed. At high wind speed it is running at hypersynchronous speed. 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 5 m/s to 16.2 m/s. The DFIG is controlled in order to follow the red curve. Turbine speed optimization is obtained between point B and point C on this curve. Another advantage of the DFIG technology is the ability for power electronic converters to generate or absorb reactive power, thus eliminating the need for installing capacitor banks as in the case of squirrel-cage induction generators.

The wind-turbine model is a phasor model that allows transient stability type studies with long simulation times. In this example, the system is observed during 50 s.

Open the wind turbine block menu and look at the four sets of parameters specified for the turbine, the generator and the converters (grid-side and rotor-side). The 6-wind-turbine farm is simulated by a single wind-turbine block by multiplying the following three parameters by six, as follows:

1. The nominal wind turbine mechanical output: 6*1.5e6 watts, specified in the Turbine data menu

2. The generator rated power: 6*1.5/0.9 MVA (6*1.5 MW at 0.9 PF), specified in the Generator data menu

3. The nominal DC bus capacitor: 6*10000 microfarads, specified in the Converters data menu

Also, notice in the Control parameters menu that the "Mode of operation" is set to " Voltage regulation". The terminal voltage will be controlled to a value imposed by the reference voltage (Vref = 1 pu) and the voltage droop (Xs = 0.02 pu).


1. Turbine response to a change in wind speed

Open the "Wind Speed" step block specifying the wind speed. Initially, wind speed is set at 8 m/s, then at t = 5s, wind speed increases suddenly at 14 m/s. Start simulation and observe the signals on the "Wind Turbine" scope monitoring the wind turbine voltage, current, generated active and reactive powers, DC bus voltage and turbine speed. At t = 5 s, the generated active power starts increasing smoothly (together with the turbine speed) to reach its rated value of 9 MW in approximately 15 s. Over that time frame the turbine speed will have increased from 0.8 pu to 1.21 pu. Initially, the pitch angle of the turbine blades is zero degree and the turbine operating point follows the red curve of the turbine power characteristics up to point D. Then the pitch angle is increased from 0 deg to 0.76 deg in order to limit the mechanical power. Observe also the voltage and the generated reactive power. The reactive power is controlled to maintain a 1 pu voltage. At nominal power, the wind turbine absorbs 0.68 Mvar (generated Q = -0.68 Mvar) to control voltage at 1pu. If you change the mode of operation to "Var regulation" with the "Generated reactive power Qref " set to zero, you will observe that voltage increases to 1.021 pu when the wind turbine generates its nominal power at unity power factor.

2. Simulation of a voltage sag on the 120-kV system

You will now observe the impact of a voltage sag resulting from a remote fault on the 120-kV system. First, in the wind speed step block, disable the wind speed step by changing the Final value from 14 to 8 m/s. Then open the 120-kV voltage source menu. In the parameter "Time variation of", select " Amplitude". A 0.15 pu voltage drop lasting 0.5 s is programmed to occur at t = 5 s. Make sure that the control mode is still in Var regulation with Qref = 0. Start simulation and open the "Grid" scope. Observe the plant voltage and current as well as the motor speed. Note that the wind farm produces 1.87 MW. At t = 5 s, the voltage falls below 0.9 pu and at t = 5.22 s, the protection system trips the plant because an undervoltage lasting more than 0.2 s has been detected (look at the protection settings and status in the "Plant" subsystem). The plant current falls to zero and motor speed decreases gradually, while the wind farm continues generating at a power level of 1.87 MW. After the plant has tripped, 1.25 MW of power (P_B25 measured at bus B25) is exported to the grid.

Now, change the wind turbine control mode to "Voltage regulation" and repeat the test. You will notice that the plant does not trip anymore. This is because the voltage support provided by the 5 Mvar reactive power generated by the wind-turbines during the voltage sag keeps the plant voltage above the 0.9 pu protection threshold. The plant voltage during the voltage sag is now 0.93 pu.

3. Simulation of a fault on the 25-kV system

Finally, you will now observe impact of a single phase-to-ground fault occurring on the 25-kV line at B25 bus. First disable the 120-kV voltage step. Now open the "Fault" block menu and select "Phase A Fault". Check that the fault is programmed to apply a 9-cycle single-phase to ground fault at t = 5 s.

You should observe that when the wind turbine is in "Voltage regulation" mode, the positive-sequence voltage at wind-turbine terminals (V1_B575) drops to 0.8 pu during the fault, which is above the undervoltage protection threshold (0.75 pu for a t > 0.1 s). The wind farm therefore stays in service. However, if the "Var regulation" mode is used with Qref = 0, the voltage drops under 0.7 pu and the undervoltage protection trips the wind farm. We can now observe that the turbine speed increases. At t= 40 s the pitch angle starts to increase in order to limit the speed.

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 "WindFarmDFIGPhasorModel.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 Configuration Parameters pane, uncheck the "Initial state" parameter and check "Final States" parameter.

2. Double click the Step block labeled "Wind Speed (m/s)" and temporarily disable the change of wind speed by multiplying the Step time by 100.

3. Double click the Breaker block and make sure that no fault is applied (Phase A, B and C checkboxes not selected).

4. Double click the 120 kV voltage source block and make sure that the "Time variation of" parameter is set to "None".

5. 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 (MyModelInit.mat).

>> xInitial=xFinal;
>> save MyModelInit xInitial

6. In the InitFcn window of Model Properties pane, replace the line "xInitial = init_WindFarmDFIGPhasorModel;" with "load MyModelInit.mat". Next time you open this model, the variable xInitial saved in the MyModelInit.mat file will be loaded in your workspace.

7. In the Configuration Parameters pane, check "Initial state".

8. Start simulation and verify that your model starts in steady-state.

9. Double click the Step block labeled "Wind Speed (m/s)" and re-enable the change of wind speed at t=5 s (remove the 100 multiplication factor).

10. Save your model.