void UpdateDbMainInput(void) { #if (DB_TYPE != DB_IBC) /* read chassinf info 阅读追逐信息 */ if (IsChassinfFunctionEnable(CHASSINF_RB) != FALSE) { DbIn.u.Flg.DbEnabled_b1 = TRUE; } else { DbIn.u.Flg.DbEnabled_b1 = FALSE; } /* read roller bench mode status读取滚轮工作台模式状态 */ DbIn.u.Flg.RollerBenchAct_b1 = IsRollerBenchModeActive(); /* read main circuit pressure 读取主回路压力 */ if (IsInputValid(INPUT_VALID_BRAKE_PRESSURE) == TRUE) { DbIn.u.Flg.McPressVal_b1 = TRUE; DbIn.McPress_s16 = GetMcpFiltered(); DbIn.McPressGrad_s16 = GetMcpDot(); } else { DbIn.u.Flg.McPressVal_b1 = FALSE; DbIn.McPress_s16 = 0; DbIn.McPressGrad_s16 = 0; } /* get brake activity of any other performance subsystem 获取任何其他性能子系统的制动活动 */ DbIn.u.Flg.OthPerfAct_b1 = IsBrakeControlArbitratorActive(); /* read vehicle speed and acceleration 读取车速和加速度 */ DbIn.VehSpd_s16 = GetZeroSlipVehicleVelocity(); DbIn.VehAcc_s16 = GetVehicleAccel(); /* get actual inclination 获得实际倾斜度 */ DbIn.HillAccAbs_s16 = ABS(GetHillAccelFilt()); /* calculate inclination dependent hold pressure 计算倾斜相关的保持压力 */ DbIn.HoldPress_s16 = (S16)((((((((((((S32)DbIn.HillAccAbs_s16 * ((GetTireSize(FRONT_AXLE) + GetTireSize(REAR_AXLE) ) / AXLE_MAX ) ) / METER ) * TORQUE_PRESSURE_CONV_SF ) / VEH_ACCEL_RES ) * PI_SCALE_FACTOR ) / (S32)(2 * PI * PI_SCALE_FACTOR) ) * GetChassinfVehicleMass() ) / KILOGRAM ) * BAR ) / WHEEL_MAX ) / ((GetBrakeTorqueFactor(FRONT_AXLE) + GetBrakeTorqueFactor(REAR_AXLE) ) / AXLE_MAX ) );这段代码什么意思,有什么作用
时间: 2024-03-28 09:39:36 浏览: 466
IBC.rar_BOOST CONVERTER_Boost_IBC_IBC converter
这段代码是一个名为 "UpdateDbMainInput" 的函数,用于更新主要输入DB的数值。该函数包括以下步骤:
1. 判断底盘追逐信息功能是否启用,若启用则将DbEnabled_b1标志位置为TRUE,否则为FALSE。
2. 读取滚轮工作台模式的状态,将RollerBenchAct_b1标志位置为对应状态。
3. 读取主回路压力的数值,若输入有效则将McPressVal_b1标志位置为TRUE,同时获取主回路压力和其导数值,否则为FALSE。
4. 获取任何其他性能子系统的制动活动状态,将OthPerfAct_b1标志位置为对应状态。
5. 读取车速和加速度的数值。
6. 获取实际倾斜度的绝对值。
7. 根据倾斜度计算出倾斜相关的保持压力。
具体而言,第7步是一个较为复杂的计算,其计算公式如下:
(((((HillAccAbs_s16 * ((GetTireSize(FRONT_AXLE) + GetTireSize(REAR_AXLE)) / AXLE_MAX)) / METER) * TORQUE_PRESSURE_CONV_SF) / VEH_ACCEL_RES) * PI_SCALE_FACTOR) / (S32)(2 * PI * PI_SCALE_FACTOR) * GetChassinfVehicleMass() / KILOGRAM * BAR / WHEEL_MAX / ((GetBrakeTorqueFactor(FRONT_AXLE) + GetBrakeTorqueFactor(REAR_AXLE)) / AXLE_MAX)
其中,各个参数的含义如下:
- HillAccAbs_s16: 实际倾斜度的绝对值;
- GetTireSize(FRONT_AXLE) + GetTireSize(REAR_AXLE): 前后轮胎直径的和;
- AXLE_MAX: 轴最大直径;
- METER: 米转换系数;
- TORQUE_PRESSURE_CONV_SF: 扭矩压力转换比例系数;
- VEH_ACCEL_RES: 车辆加速度分辨率;
- PI_SCALE_FACTOR: PI比例系数;
- GetChassinfVehicleMass(): 车辆质量;
- KILOGRAM: 千克转换系数;
- BAR: 压力转换系数;
- WHEEL_MAX: 轮子最大直径;
- GetBrakeTorqueFactor(FRONT_AXLE) + GetBrakeTorqueFactor(REAR_AXLE): 前后轮制动扭矩系数的和。
这段计算公式的目的是根据实际倾斜度计算出倾斜相关的保持压力,以便系统进行适当的响应和控制。
需要注意的是,具体的参数和计算方式可能因不同的系统而异。因此,在具体使用时,需要结合上下文和相关文档来理解其含义和作用。
阅读全文