mtecs: do not calculate derivative in first iteration

This commit is contained in:
Thomas Gubler
2014-06-01 09:38:14 +02:00
parent 7716a1816d
commit db925db460
3 changed files with 11 additions and 0 deletions
@@ -861,6 +861,7 @@ FixedwingPositionControl::control_position(const math::Vector<2> &current_positi
/* reset integrators */ /* reset integrators */
if (_mTecs.getEnabled()) { if (_mTecs.getEnabled()) {
_mTecs.resetIntegrators(); _mTecs.resetIntegrators();
_mTecs.resetDerivatives(_airspeed.true_airspeed_m_s);
} }
} }
@@ -261,6 +261,12 @@ void mTecs::resetIntegrators()
_firstIterationAfterReset = true; _firstIterationAfterReset = true;
} }
void mTecs::resetDerivatives(float airspeed)
{
_airspeedDerivative.setU(airspeed);
}
void mTecs::updateTimeMeasurement() void mTecs::updateTimeMeasurement()
{ {
if (!_dtCalculated) { if (!_dtCalculated) {
@@ -139,6 +139,10 @@ public:
*/ */
void resetIntegrators(); void resetIntegrators();
/*
* Reset all derivative calculations
*/
void resetDerivatives(float airspeed);
/* Accessors */ /* Accessors */
bool getEnabled() {return _mTecsEnabled.get() > 0;} bool getEnabled() {return _mTecsEnabled.get() > 0;}