代码规范

This commit is contained in:
TuxMonkey
2025-11-20 19:26:42 +08:00
parent d49c023f3c
commit 1ff64dea82
7 changed files with 19 additions and 5 deletions

View File

@@ -266,7 +266,9 @@ void Kalman_Filter_Measure(KalmanFilter_t *kf)
// 矩阵H K R根据量测情况自动调整
// matrix H K R auto adjustment
if (kf->UseAutoAdjustment != 0)
{
H_K_R_Adjustment(kf);
}
else
{
memcpy(kf->z_data, kf->MeasuredVector, sizeof_float * kf->zSize);

View File

@@ -205,7 +205,9 @@ void Calibrate_MPU_Offset(IMU_Data_t *bmi088)
gNormDiff = gNormMax - gNormMin;
for (uint8_t j = 0; j < 3; ++j)
{
gyroDiff[j] = gyroMax[j] - gyroMin[j];
}
if (gNormDiff > 0.5f ||
gyroDiff[0] > 0.5f || //0.15
gyroDiff[1] > 0.5f || //0.15
@@ -220,7 +222,9 @@ void Calibrate_MPU_Offset(IMU_Data_t *bmi088)
bmi088->gNorm /= (float) CaliTimes;
for (uint8_t i = 0; i < 3; ++i)
{
bmi088->GyroOffset[i] /= (float) CaliTimes;
}
BMI088_accel_read_muli_reg(BMI088_TEMP_M, buf, 2);
bmi088_raw_temp = (int16_t) ((buf[0] << 3) | (buf[1] >> 5));

View File

@@ -67,7 +67,9 @@ static void InitQuaternion(float *init_q4)
DWT_Delay(0.001);
}
for (uint8_t i = 0; i < 3; ++i)
{
acc_init[i] /= 100;
}
Norm3d(acc_init);
// 计算原始加速度矢量和导航系重力加速度矢量的夹角
float angle = acosf(Dot3d(acc_init, gravity_norm));
@@ -75,7 +77,9 @@ static void InitQuaternion(float *init_q4)
Norm3d(axis_rot);
init_q4[0] = cosf(angle / 2.0f);
for (uint8_t i = 0; i < 2; ++i)
{
init_q4[i + 1] = axis_rot[i] * sinf(angle / 2.0f); // 轴角公式,第三轴为0(没有z轴分量)
}
}
attitude_t *INS_Init(void)
@@ -265,7 +269,9 @@ static void IMU_Param_Correction(IMU_Param_t *param, float gyro[3], float accel[
}
float gyro_temp[3];
for (uint8_t i = 0; i < 3; ++i)
{
gyro_temp[i] = gyro[i] * param->scale[i];
}
gyro[X] = c_11 * gyro_temp[X] +
c_12 * gyro_temp[Y] +
@@ -279,7 +285,9 @@ static void IMU_Param_Correction(IMU_Param_t *param, float gyro[3], float accel[
float accel_temp[3];
for (uint8_t i = 0; i < 3; ++i)
{
accel_temp[i] = accel[i];
}
accel[X] = c_11 * accel_temp[X] +
c_12 * accel_temp[Y] +

View File

@@ -38,11 +38,11 @@ void PowerMeterDecode(FDCANInstance *instance)
measure->dt = DWT_GetDeltaT(&power_meter_instance->feed_cnt);
// 解析电流数据 (放大100倍需要除以100)
int16_t current_raw = (int16_t) ((rxbuff[1] << 8) | rxbuff[0]);
auto current_raw = (int16_t) ((rxbuff[1] << 8) | rxbuff[0]);
measure->current = (float) current_raw / 100.0f;
// 解析电压数据 (放大100倍需要除以100)
int16_t voltage_raw = (int16_t) ((rxbuff[3] << 8) | rxbuff[2]);
auto voltage_raw = (int16_t) ((rxbuff[3] << 8) | rxbuff[2]);
measure->voltage = (float) voltage_raw / 100.0f;
// 计算功率