Wrote up a wind estimator today. It is based off of a simple model which requires very little inputs from sensors.
psi - true heading (not course over ground)
theta - pitch
GPS lat and long
It is a simple model. The wind model has no dynamics which helps simplify the solution. This asusmption is mostly true beings the wind direction and velocity doesn't change all that much for a given flight. The filter starts off by assuming the soltion is a zero wind scenario and then moves towards reality. It takes about 2-3 seconds to converge.
The non-linear state update equations are as follows:
Pn_dot = Vair*cos(psi)*cos(theta) - Wn
Pe_dot = Vair*sin(psi)*cos(theta) - We
Wn_dot = 0
We_dot = 0
Notice the filter resolves on a wind velocity of 15 ft/s and 090 deg heading.
Pretty slick how quickly it finds a solution.