Calculate average wind velocity

142 Views Asked by At

I've got an anemometer to measure wind speed.

Its ratio is $50Hz = 15.5m/s$, so my Arduino counts pulses in 3100ms, which should give a count of $100 = 10m/s$.

I can display this on a dashboard on the wall, but I'm more interested in an average.

(I'm just using this for fun, I'm not controlling the traffic on a bridge or in an airport)

But what makes more sense? I can count pulses for $(19*3.1) = 59.8 \text{seconds}$ and divide by 190 to get an average for 1 minute. Or the same for 10 minutes.

Or I could have a memory of the last p samples so I add the sample to a register, and divide with p, then at Tp subtract it from the register again, so I get a running average over the last minutes.

I could also take a weighted average of the current value and the current average as the next current average, which would emulate the charging and discharging of a capacitor. Something like

$$\overline{V} = \frac{V + (n-1)\overline{V}prev}{n}$$

Or should I take into the account that energy of the wind is proportional to the speed cubed?

So 1 minute of 10m/s and 1 minute of 20 m/s have the same energy of

$$ \sqrt[3]\frac{10^{3} + 20^{3}}{2} \approx 16.5 $$