diff --git a/sw/airborne/agl_vfilter.c b/sw/airborne/agl_vfilter.c new file mode 100644 index 0000000000..25d9efd77c --- /dev/null +++ b/sw/airborne/agl_vfilter.c @@ -0,0 +1,141 @@ +#include "agl_vfilter.h" + +#include CONFIG +#include "airframe.h" +#include "std.h" + +/* + +X = [ z zdot bias ] + +temps : + predict 86us + update 46us + +*/ +/* initial covariance diagonal */ +#define INIT_PXX 10. +/* process noise */ +#define Qzz 0.001 +#define Qzdotzdot 0.001 +#define Qbiasbias 0.00001 +#define R 2. + +float agl_vf_z; +float agl_vf_zdot; +float agl_vf_bias; + +struct adc_buf agl_adc_buf; + +float agl_vf_P[STATE_SIZE][STATE_SIZE]; + +float agl_vf_z_meas; + +void agl_vf_init(float init_z, float init_zdot, float init_bias) { + agl_vf_z = init_z; + agl_vf_zdot = init_zdot; + agl_vf_bias = init_bias; + int i, j; + for (i=0; i