From 32271a98fffe91d685a25de50b3bff5211ccfca2 Mon Sep 17 00:00:00 2001 From: Marius Eggert Date: Wed, 15 May 2024 10:04:04 +0200 Subject: [PATCH] go home compiler, you're drunk --- .../controller/acs/MultiplicativeKalmanFilter.cpp | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/mission/controller/acs/MultiplicativeKalmanFilter.cpp b/mission/controller/acs/MultiplicativeKalmanFilter.cpp index e938b0c4..fc61ca0e 100644 --- a/mission/controller/acs/MultiplicativeKalmanFilter.cpp +++ b/mission/controller/acs/MultiplicativeKalmanFilter.cpp @@ -119,7 +119,8 @@ ReturnValue_t MultiplicativeKalmanFilter::mekfEst( measVec[matrixDimensionFactor] = {}, estVec[matrixDimensionFactor] = {}; kfUpdate(susData, mgmData, *measSensMatrix, *measCovMatrix, measVec, estVec); - double kalmanGain[6][matrixDimensionFactor] = {}; + double kalmanGain[6][matrixDimensionFactor]; + std::memset(kalmanGain, 0, sizeof(kalmanGain)); result = kfGain(*measSensMatrix, *measCovMatrix, *kalmanGain, attitudeEstimationData); if (result != returnvalue::OK) { reset(attitudeEstimationData); @@ -343,9 +344,10 @@ ReturnValue_t MultiplicativeKalmanFilter::kfGain( acsctrl::AttitudeEstimationData *attitudeEstimationData) { // Kalman Gain: K = P * H' / (H * P * H' + R) double kalmanGainDen[matrixDimensionFactor][matrixDimensionFactor] = {}, - invKalmanGainDen[matrixDimensionFactor][matrixDimensionFactor] = {}, - residualCov[6][matrixDimensionFactor] = {}, - measSensMatrixTransposed[6][matrixDimensionFactor] = {}; + invKalmanGainDen[matrixDimensionFactor][matrixDimensionFactor] = {}; + double residualCov[6][matrixDimensionFactor], measSensMatrixTransposed[6][matrixDimensionFactor]; + std::memset(residualCov, 0, sizeof(residualCov)); + std::memset(measSensMatrixTransposed, 0, sizeof(measSensMatrixTransposed)); MatrixOperations::transpose(measSensMatrix, *measSensMatrixTransposed, matrixDimensionFactor, 6); @@ -382,8 +384,7 @@ void MultiplicativeKalmanFilter::kfCovAposteriori(double *kalmanGain, double *me void MultiplicativeKalmanFilter::kfStateAposteriori(double *kalmanGain, double *measVec, double *estVec) { - double stateVecErr[6] = {0, 0, 0, 0, 0, 0}; - double plantOutputDiff[matrixDimensionFactor] = {}; + double stateVecErr[6] = {0, 0, 0, 0, 0, 0}, plantOutputDiff[matrixDimensionFactor] = {}; VectorOperations::subtract(measVec, estVec, plantOutputDiff, matrixDimensionFactor); MatrixOperations::multiply(kalmanGain, plantOutputDiff, stateVecErr, 6, matrixDimensionFactor, 1);