> For the complete documentation index, see [llms.txt](https://docs.voltmasters.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.voltmasters.io/device-integrations/wind-turbines.md).

# Wind turbines

Our EMS supports **wind turbines** as an on-site production asset, alongside PV. A wind turbine is treated as **non-controllable generation**: the EMS measures and forecasts its output and factors that into the site's energy balance, but it does not curtail or steer the turbine itself.

Because the turbine is not controlled over Modbus, its production is **measured through an auxiliary energy meter** — a dedicated meter on the turbine's output. The EMS combines that live measurement with a **wind-based production forecast** so you can see both what the turbine is producing now and what it is expected to produce.

{% hint style="info" %}
A wind turbine is a **virtual** device: there is no turbine-specific brand or protocol to configure. You only add the turbine, describe its physical characteristics, and point it at the energy meter that measures its output.
{% endhint %}

## How wind production is measured

The turbine's real output is read from an **auxiliary energy meter** that you assign to the turbine. This must be an energy meter in the same project that:

* is **not** the project's grid (main) meter, and
* has its **metering type** set to **Default**.

If the project only has a grid meter, the auxiliary-meter list will be empty — add a separate energy meter on the turbine's output first. See [Energy meters](/device-integrations/energy-meters.md) for supported meters.

## Adding a wind turbine

{% stepper %}
{% step %}

### Open device management

1. Open the project and go to **My Devices**.
2. Click **Add device**.
   {% endstep %}

{% step %}

### Select the wind turbine

1. Choose **Wind Turbine** as the device type.
2. Give it a clear name (for example the turbine's location or asset tag).
   {% endstep %}

{% step %}

### Configure the turbine

Fill in the turbine's characteristics (see [Configuration](#configuration) below) and select the **auxiliary energy meter** that measures its output.
{% endstep %}

{% step %}

### Save

Save the device. From this point the EMS starts recording its measured production and generating output forecasts.
{% endstep %}
{% endstepper %}

## Configuration <a href="#configuration" id="configuration"></a>

The turbine's settings drive both how its production is displayed and how accurately its output is predicted. You can edit them at any time on the device's **Settings** tab. Every setting below except the two optional ones feeds directly into the production forecast, so it pays to enter them accurately from the turbine's data sheet.

| Setting                             | Unit     | Description                                                                                                                                                                                                |
| ----------------------------------- | -------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Production capacity**             | kW       | The turbine's rated (nameplate) power. Acts as the ceiling for the predicted output: no forecast slot is ever higher than this, whatever the wind.                                                         |
| **Hub height**                      | m        | Height of the turbine hub (the rotor centre) above ground level. The forecast wind speed is recalculated to exactly this height before any power is estimated, so an error here shifts the whole forecast. |
| **Rotor diameter**                  | m        | Diameter of the circle swept by the blades. The swept area grows with the square of this value and drives the built-in physics model. Only used when no power curve is configured.                         |
| **Cut-in wind speed**               | m/s      | Minimum wind speed at which the turbine starts turning. Below this speed the predicted output is always zero, and between cut-in and the first power-curve point the forecast ramps up from zero.          |
| **Cut-out wind speed**              | m/s      | Wind speed at which the turbine shuts down to protect itself. At or above this speed the predicted output is always zero, even when a power curve or calibration would suggest otherwise.                  |
| **Power curve**                     | m/s : kW | *Optional.* The manufacturer's power curve. Leave empty to use the built-in physics model. See [How the expected power is estimated](#how-the-expected-power-is-estimated).                                |
| **Auxiliary energy meter**          | —        | The energy meter that measures the turbine's real output. This is what the live figures and the self-calibration are based on.                                                                             |
| **Green Certificate price per MWh** | €/MWh    | *Optional.* The value of the green certificates (*groenestroomcertificaten*) earned per MWh of wind production, used in the financial figures.                                                             |

{% hint style="warning" %}
The prediction needs a valid **hub height**, **rotor diameter**, **cut-out speed**, and a **cut-in speed lower than the cut-out speed**. It also needs either a **production capacity** or a **power curve**. If these are missing or inconsistent, no forecast is produced for the turbine (its measured production is still recorded, and it still appears on the dashboards).
{% endhint %}

### The power curve field <a href="#power-curve-field" id="power-curve-field"></a>

The power curve is the single most effective way to make the forecast accurate, and it is optional. Enter the manufacturer's curve as comma-separated `wind speed:power` pairs, with the **wind speed in m/s** and the **power in kW**:

```
3:0, 6:400, 11:2000, 25:2000
```

* Each pair is one point on the curve. The example reads: 0 kW at 3 m/s, 400 kW at 6 m/s, 2000 kW at 11 m/s, holding 2000 kW up to 25 m/s.
* Provide **at least two points**. More points give a more accurate curve, especially around the steep part between cut-in and rated power.
* The order does not matter; the points are sorted automatically.
* Leave the field **empty** (or enter `betz`) to fall back to the built-in physics model.

How the EMS reads the curve:

* Between two given points it **interpolates linearly**.
* Between **cut-in and the first point** it ramps up linearly from zero, so a curve that starts above cut-in does not jump straight to full power.
* Above the **last point** it holds that point's power (until the cut-out speed forces zero).
* Every value is still capped at the **production capacity**.

## Production prediction <a href="#production-prediction" id="production-prediction"></a>

The EMS produces a fresh forecast for each turbine **every four hours (six times a day)**. Each run covers the coming days at **five-minute resolution**, so the forecast follows the weather closely and is never more than a few hours old.

### From wind forecast to expected power

Each run turns a weather forecast into an expected production figure per five-minute slot:

1. **Fetch the wind forecast** for the site's coordinates.
2. **Adjust the wind speed to your hub height.** Wind speed increases with height, so the forecast (provided at several standard heights) is recalculated to the exact **hub height** you configured, using a standard wind-shear profile. This is why an accurate hub height matters.
3. **Account for air density.** Denser air carries more energy at the same speed. The EMS derives the air density from the forecast temperature and pressure, falling back to a standard value when those are unavailable.
4. **Smooth to five-minute slots.** The hourly forecast is interpolated to five-minute steps so the prediction follows the trend within the hour instead of jumping at every full hour.
5. **Estimate the power** for each slot (see below) and **cap it at the production capacity**.
6. **Apply the turbine's limits.** Output is forced to **zero below the cut-in speed and at or above the cut-out speed**, exactly as the turbine behaves.

### How the expected power is estimated <a href="#how-the-expected-power-is-estimated" id="how-the-expected-power-is-estimated"></a>

For each slot, the EMS picks the best available method in this order:

1. **Self-calibration (empirical), once there is enough history.** This is the most accurate method and takes over automatically. See [Self-calibration](#self-calibration) below.
2. **Your power curve, if configured.** The expected power is read straight from the curve, interpolated as described in [The power curve field](#power-curve-field).
3. **The built-in physics model, as a fallback.** When no power curve is set and there is not yet enough history, the EMS estimates power from the wind speed, the air density and the rotor's swept area (a standard cubic wind-power relationship). This needs the **rotor diameter** and is bounded by the **production capacity**.

Whichever method is used, the cut-in and cut-out limits and the production-capacity ceiling are always applied on top.

### Self-calibration <a href="#self-calibration" id="self-calibration"></a>

A generic model cannot know your site: the real shape of the power curve, wake effects from nearby obstacles or turbines, availability losses, terrain, and any systematic bias in the wind forecast. The EMS learns all of that automatically by comparing, over time, the **forecast wind speed** it used against the turbine's **actual measured production** (read from the auxiliary meter).

* Each prediction run stores the hub-height wind speed it used per slot, so it can later be paired with what the turbine really produced.
* Once the turbine has **enough paired history** (measured production across at least ten separate days within the last month), the EMS switches from the model to this empirical wind-speed → production relationship.
* **Recent data counts more.** Measurements from the last week weigh most heavily, the week before that somewhat less, and older data least, so the calibration follows seasonal and hardware changes.
* For a given forecast speed, the estimate is drawn from the closest matching historical speeds, so it follows the real curve rather than an average.
* The cut-in and cut-out limits still apply, since history rarely covers those extremes.

{% hint style="info" %}
You do not switch calibration on; it happens on its own. A new turbine starts on the power curve (or the physics model) and, over the first weeks of operation, quietly shifts to the calibrated estimate as production history builds up. A good power curve gives the best starting point; calibration refines it from there.
{% endhint %}

### Getting the most accurate forecast

* **Enter the turbine's data sheet values precisely**, especially hub height, rotor diameter and the cut-in/cut-out speeds.
* **Add the manufacturer's power curve** if you have it. It is the biggest single accuracy gain before calibration kicks in.
* **Make sure the auxiliary meter reads reliably.** Calibration and the live figures both depend on it; gaps in the measured production slow down calibration.
* **Give it time.** The forecast keeps improving over the first weeks without any manual tuning.

## Where to follow wind production

* **EMS dashboard — energy flow diagram**: the turbine appears as a production node with its current output; the link animates as it feeds the site.
* **EMS dashboard — weather forecast**: when the project has a wind turbine, the weather card also shows the expected wind speed for today and tomorrow.
* **Consumption report**: total wind production over the selected period is included alongside PV and the other energy figures.
* **Mobile app**: the project's wind production series is available for the turbine.

{% hint style="info" %}
The auxiliary meter assigned to a turbine is shown as part of that turbine, not as a separate node in the energy-flow diagram, so production is never counted twice.
{% endhint %}

## Role in the control strategy

Wind is local generation. Under [Self-supply](/control-algorithms/self-supply.md) and [Cost optimization](/control-algorithms/cost-optimization.md), the measured wind output counts toward covering the site's consumption and charging the battery, just like PV. The EMS does not curtail the turbine; it works around the wind it measures and forecasts.

## Frequently asked questions

<details>

<summary><strong>Why can't I select an auxiliary energy meter?</strong></summary>

The list only contains energy meters that are **not** the project's grid meter and whose **metering type** is **Default**. If the project only has a grid meter, add a separate energy meter on the turbine's output first; it will then appear in the list.

</details>

<details>

<summary><strong>Do I need a power curve?</strong></summary>

No. The power curve is optional. Without one, the EMS uses a built-in model based on the rotor diameter and rated power, and refines the forecast through self-calibration once production history is available. Adding the manufacturer's power curve gives the most accurate starting point.

</details>

<details>

<summary><strong>Why is my turbine's predicted output zero even though there is some wind?</strong></summary>

Below the configured **cut-in wind speed** the turbine does not produce, so the forecast is zero — this is expected. Predicted output is also zero at or above the **cut-out wind speed**, when the turbine shuts down for safety. Check that the cut-in and cut-out speeds match the turbine's data sheet.

</details>

<details>

<summary><strong>Does the EMS control or curtail the wind turbine?</strong></summary>

No. A wind turbine is treated as non-controllable production. The EMS measures and forecasts its output and factors that into the site's energy balance and battery control, but it does not send setpoints to the turbine.

</details>


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.voltmasters.io/device-integrations/wind-turbines.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
