Geavanceerde berekeningen in Flux
Dit document behandelt geavanceerde berekeningen en wiskundige bewerkingen met Flux voor het analyseren van de Bries windturbine data.
TSR (Tip Speed Ratio) berekening
De Tip Speed Ratio (TSR) is de verhouding tussen de snelheid van de bladtip en de windsnelheid. Dit is een belangrijke parameter voor windturbines die aangeeft hoe efficiënt de turbine werkt.
Stap 1: Data ophalen
// Windsnelheid ophalen
windspeed = from(bucket: "Bries")
|> range(start: minTime, stop: maxTime)
|> filter(fn: (r) => r._measurement == "Wspeed" and r.runID == runID)
|> filter(fn: (r) => r._field == "value")
|> map(fn: (r) => ({ r with _value: float(v: r._value) }))
|> aggregateWindow(every: 100ms, fn: mean, createEmpty: true)
|> fill(column: "_value", usePrevious: true)
|> map(fn: (r) => ({_value: r._value, _time: r._time, _field: "Wind speed"}))
// Rotorsnelheid ophalen
rotorspeed = from(bucket: "Bries")
|> range(start: minTime, stop: maxTime)
|> filter(fn: (r) => r._measurement == "Rspeed" and r.runID == runID)
|> filter(fn: (r) => r._field == "value")
|> map(fn: (r) => ({ r with _value: float(v: r._value) }))
|> aggregateWindow(every: 100ms, fn: mean, createEmpty: true)
|> fill(column: "_value", usePrevious: true)
|> map(fn: (r) => ({_value: r._value, _time: r._time, _field: "rotor speed"}))
Stap 2: Berekening met transformatie
Vervolgens gebruik je deze queries in Grafana en pas je de volgende transformaties toe:
- 3.14159 * rotor speed = PI * rotorsnelheid
- 30 * Wind speed = Constante * windsnelheid
- 3.14159 * rotor speed * 0.94 = PI * rotorsnelheid * bladRadius
- TSR = (3.14159 * rotor speed * 0.94) / (30 * Wind speed)
De TSR formule is:
Waar: - Ω = Hoeksnelheid van de rotor in rad/s = (2π × RPM) / 60 - R = Bladradius in meters - V = Windsnelheid in m/sTurbine vermogen berekening
Het vermogen van de windturbine kan worden berekend door het rotorkoppel te vermenigvuldigen met de hoeksnelheid.
Stap 1: Data ophalen
// Rotorsnelheid ophalen
rspeed = from(bucket: "Bries")
|> range(start: minTime, stop: maxTime)
|> filter(fn: (r) => r._measurement == "Rspeed" and r.runID == runID)
|> filter(fn: (r) => r._field == "value")
|> map(fn: (r) => ({ r with _value: float(v: r._value) }))
|> aggregateWindow(every: 100ms, fn: mean, createEmpty: true)
|> fill(column: "_value", usePrevious: true)
|> map(fn: (r) => ({_value: r._value, _time: r._time, _field: "Rotor speed"}))
|> yield(name: "Rotor speed")
// Rotorkoppel ophalen
rtorque = from(bucket: "Bries")
|> range(start: minTime, stop: maxTime)
|> filter(fn: (r) => r._measurement == "Rtorque" and r.runID == runID)
|> filter(fn: (r) => r._field == "value")
|> map(fn: (r) => ({ r with _value: float(v: r._value) }))
|> aggregateWindow(every: 100ms, fn: mean, createEmpty: true)
|> fill(column: "_value", usePrevious: true)
|> map(fn: (r) => ({_value: r._value, _time: r._time, _field: "Rotor koppel"}))
|> yield(name: "Rotor koppel")
Stap 2: Berekening met transformatie
Gebruik de volgende transformaties in Grafana:
- 2pi = 2 * 3.14159
- 2piRotor = 2pi * Rotor speed
- 2piRotor / 60 = 2pi * Rotor speed / 60 (omzetting van RPM naar rad/s)
- Power = (2piRotor / 60) * Rotor koppel
De vermogensformule is:
Waar: - P = Vermogen in Watt - τ = Koppel in Nm - ω = Hoeksnelheid in rad/sEfficiency (Wach number) berekening
De efficiency berekent hoe efficiënt het voertuig de windenergie gebruikt door de voertuigsnelheid te vergelijken met de effectieve windsnelheid.
Stap 1: Data ophalen
Gebruik de queries voor windsnelheid en voertuigsnelheid zoals eerder beschreven.
Stap 2: Berekening met transformatie
- Real wind = Wind speed - Vehicle speed
- Efficiency = Vehicle speed / Real wind
- Efficiency [%] = Efficiency * 100
Gear Ratio berekening
De Gear Ratio geeft de verhouding weer tussen de rotorsnelheid en de voertuigsnelheid, wat belangrijk is voor het begrijpen van de mechanische transmissie.
Stap 1: Data ophalen
Gebruik de queries voor rotorsnelheid en voertuigsnelheid zoals eerder beschreven.
Stap 2: Berekening met transformatie
- WielDia/2 = Wieldiameter / 2 (straal)
- 30Vspeed = 30 * Vehicle speed
- WielDia/2*pi = Wielstraal * pi
- RightFormula = 30Vspeed / (WielDia/2*pi)
- Gear ratio = Rotor speed / RightFormula
Windsnelheid van stilstand berekening
Dit berekent de effectieve windsnelheid vanaf stilstand, wat belangrijk is voor het begrijpen van de werkelijke windbelasting op de turbine.
// Echte windsnelheid = Relatieve windsnelheid - Voertuigsnelheid
Wind speed stilstand = Wind speed - Vehicle speed
Join-operatie voor geavanceerde berekeningen
Als alternatief voor de Grafana transformaties kun je ook direct in Flux een join-operatie gebruiken voor berekeningen:
// Join rotorsnelheid en torque om vermogen te berekenen
joined = join(
tables: {rspeed: rspeed, rtorque: rtorque},
on: ["_time"]
)
|> map(fn: (r) => ({
_time: r._time,
_field: "Power",
_value: r._value_rtorque * (r._value_rspeed * 2 * 3.14159 / 60) // Power = τ × ω
}))
|> yield(name: "calculated_power")
Deze methode voert de berekeningen uit in Flux in plaats van Grafana, wat soms voordelen kan hebben voor prestaties of herbruikbaarheid.