Wind Turbine¶
DERSim ships two reference wind machines, both selectable from the device-type flag and configured to match published reference designs:
| Device type | Reference machine | Topology | Rating |
|---|---|---|---|
Wind-T3-3Phase |
NREL 5-MW baseline (Jonkman et al., NREL/TP-500-38060, 2009) | Type III — Doubly-Fed Induction Generator (DFIG), 97:1 gearbox, ~30 % rotor-side converter | 5 MW |
Wind-T4-3Phase |
IEA 15-MW reference (Gaertner et al., NREL/TP-5000-75698, 2020) | Type IV — direct-drive PMSG with 100 % full-power converter | 15 MW |
Start each with the matching -d:
./sim --device_type Wind-T3-3Phase
./sim --device_type Wind-T4-3Phase
What's simulated¶
The full chain from wind to grid is modeled, not just the electrical interface:
- Wind speed → rotor swept area via a power-law shear
extrapolation from the measurement height to hub height
(
--wind_anemometer_height_m). - Aerodynamics — Cp(λ, β) coefficient from the Heier / Slootweg analytical fit, calibrated to each reference machine's published Cp_max. The K·ω² Region-2 MPPT controller tracks the optimal tip-speed ratio below rated; above rated the pitch loop holds rotor speed.
- Drivetrain ODE — single-mass rotor inertia with damping; the pitch controller torque-references the generator and the aerodynamic torque drives the rotor.
- Pitch controller — gain-scheduled PI loop that pitches blades to feather as wind speed exceeds rated.
- Generator + converter — Type-III rotor-side + grid-side converter with the ~30 % partial-rating limit on the rotor-side inverter; Type-IV full-power converter sized to nameplate.
- Grid-side P/Q — MVA-circle clamping on the converter, plus IEEE 1547 / IEC 61400-27-1 LVRT priority during voltage sags (reactive-current injection ahead of active power). Type-III is constrained to ±0.33 pu reactive at full P; Type-IV gets ±0.50 pu.
The output P/Q reaches the SunSpec and IEEE 2030.5 comm layers exactly the same way a real inverter would — every grid-support mode (Volt-Var, Volt-Watt, fixed PF, frequency droop, etc.) applies on top of the wind turbine's available active power, with the LVRT priority enforced underneath. (OCPP is a charge-point protocol and only applies to the EVSE device type.)
Wind-speed input¶
Wind speed comes from a bundled one-week NDBC station 44025 (Long
Island NY offshore buoy) hourly observation set. The dataset is
public domain (NOAA / NDBC). Override with --wind_data_file PATH
to point at any CSV with the columns timestamp_utc, wind_speed_m_s.
| Flag | Default | Description |
|---|---|---|
--wind_data_file |
(bundled NDBC 44025) | CSV with timestamp_utc, wind_speed_m_s |
--wind_anemometer_height_m |
5.0 | Source measurement height; used for power-law shear extrapolation to hub height |
--wind_time_scale |
60.0 | Sim-seconds per wall-second; 60.0 = 1 hour of data per minute of wall-clock, 1.0 = real-time |
A typical lab run compresses the week's data into one minute of wall-time:
./sim --device_type Wind-T4-3Phase --wind_time_scale 60
For a real-time playback (one second of weather per second of
wall-time), set --wind_time_scale 1. For an accelerated stress
test (one day of weather per minute), set --wind_time_scale 1440.
Dashboard¶
The dashboard exposes a Wind Turbine panel (sidebar 🌬️) showing live:
- Hub-speed wind (after shear extrapolation)
- Rotor RPM, pitch angle, Cp value
- Mechanical power (rotor), electrical power (grid-side)
- Reactive power
- LVRT state (nominal / sag-detected / recovery)
- A rolling wind-speed chart

The Type-IV machine renders the same view with the IEA 15 MW reference parameters:

The overview page summarises grid-side P/Q against the wind turbine's rated nameplate:

The /api/dersim/wind REST endpoint returns the same telemetry as
JSON for programmatic test harnesses.
REST control — pinning a wind speed¶
For deterministic lab runs (sweeping the power curve, reproducing a specific operating point) you can pin the wind speed via the REST control endpoint:
POST /api/dersim/wind/override
Content-Type: application/json
{"enabled": true, "wind_speed_m_s": 12.0}
While the override is enabled, the CSV/dataset playback is paused — the rotor controller, generator, and grid-side converter all see the pinned wind speed. Release with:
POST /api/dersim/wind/override
Content-Type: application/json
{"enabled": false}
The wind speed value bound at 0 ≤ wind_speed_m_s ≤ 30 (cut-out is
typically 25 m/s on both reference machines; the extra headroom lets
you exercise the over-speed pitch loop). When the override is
active, the Wind Turbine view shows the "Override" toggle in the
ON state with the pinned value.
SunSpec model exposure¶
The wind variants use the same general DER SunSpec model set as PV
and battery (701 nameplate + live AC measurements, 702 ratings,
703 enter-service, 704 fixed PF, 705 Volt-Var, 706 Volt-Watt, 711
Frequency-Droop, 712 Watt-Var) — there isn't a dedicated wind
extension model on the SunSpec wire. Wind-specific telemetry
(rotor RPM, pitch angle, Cp, hub-speed wind, LVRT state) is
available only via the /api/dersim/wind REST endpoint
and the WebSocket telemetry stream.
| Model | Purpose | Key points |
|---|---|---|
714 |
DC-side input | One port with PrtTyp = 2 (wind). The only wind-specific marker on the SunSpec wire; lets a scanner distinguish a wind machine from a PV inverter without out-of-band hints |
800-series |
Battery bank | Not populated — wind variants have no electrochemical storage, so 713 / 802 / 803 / 804 / 805 are stripped from the loaded model list at startup |
Existing SunSpec scan tools (pysunspec2, certification harnesses) treat the wind machines as ordinary inverters; the wind-specific operating point is observable via REST only.
Why two machines¶
The Type-III DFIG (NREL 5-MW) and Type-IV full-converter (IEA 15-MW) behave very differently during grid disturbances even though both are rated to the same IEEE 1547 envelope. Aggregator-side controllability differs as well — Type-III has a partial-rating rotor-side converter with a fixed reactive limit; Type-IV has a full-rating grid-side converter with much more headroom for reactive support. Lab tests that need to exercise either machine's specific abnormal-condition behavior have both bundled and pickable from the command line without needing to write a custom profile.