New version of quadcopter software written to OO principles
Dependencies: mbed MODSERIAL filter mbed-rtos ConfigFile PID PPM FreeIMU_external_magnetometer TinyGPS
Kalman.cpp
00001 #include "Kalman.h" 00002 00003 Kalman::Kalman(double q, double r, double p, double intialValue) 00004 { 00005 _kalmanState = KalmanState(); 00006 _kalmanState.q = q; 00007 _kalmanState.r = r; 00008 _kalmanState.p = p; 00009 _kalmanState.x = intialValue; 00010 } 00011 00012 Kalman::~Kalman(){} 00013 00014 double Kalman::update(double predicted, double measurement) 00015 { 00016 //prediction 00017 _kalmanState.x = predicted * _kalmanState.x; 00018 _kalmanState.p = _kalmanState.p + _kalmanState.q; 00019 00020 //measurement 00021 _kalmanState.k = _kalmanState.p / (_kalmanState.p + _kalmanState.r); 00022 _kalmanState.x = _kalmanState.x + _kalmanState.k * (measurement - _kalmanState.x); 00023 _kalmanState.p = (1 - _kalmanState.k) * _kalmanState.p; 00024 00025 return _kalmanState.x; 00026 } 00027 00028 double Kalman::getEstimated() 00029 { 00030 return _kalmanState.x; 00031 }
Generated on Fri Jul 15 2022 00:21:58 by 1.7.2