|
@@ -645,25 +645,20 @@ MC_CalParam_Struct_t MC_AssistRunMode_GasTorque_Process(MC_GasMode_Struct_t GasM
|
|
|
if((MC_ConfigParam2.SpeedLimitStartAdj > 50) || (MC_ConfigParam2.SpeedLimitStartAdj < -50)) MC_ConfigParam2.SpeedLimitStartAdj=0;
|
|
|
if((MC_ConfigParam2.SpeedLimitEndAdj > 50) || (MC_ConfigParam2.SpeedLimitEndAdj < -50)) MC_ConfigParam2.SpeedLimitEndAdj=0;
|
|
|
|
|
|
- #if 0
|
|
|
- if(MC_GasMode_Param.Mode_bit.SpeedLimit <= 5)
|
|
|
+ //默认限速值 ± 15km/h
|
|
|
+ if(MC_GasMode_Param.Mode_bit.SpeedLimit <= 5) //0-5:限速设定值 + 设定值 + 31 - 21
|
|
|
{
|
|
|
speedLimitStart = (((MC_ConfigParam1.SpeedLimit + (int8_t)MC_ConfigParam2.SpeedLimitAdj + GasMode_Param.Mode_bit.SpeedLimit + 0x1F - (0xAA >> 3) - 2) * 10 + MC_ConfigParam2.SpeedLimitStartAdj) * MC_LimitSpeed_Cal_K_BySOC((((MC_ConfigParam1.SpeedLimit >> 7) & 0x01) == 0 ? ENABLE : DISABLE), MC_RunInfo.SOC)) >> 10;
|
|
|
speedLimitEnd = (((MC_ConfigParam1.SpeedLimit + (int8_t)MC_ConfigParam2.SpeedLimitAdj + GasMode_Param.Mode_bit.SpeedLimit + 0x1F - (0xAA >> 3)) * 10 + MC_ConfigParam2.SpeedLimitEndAdj + 22) * MC_LimitSpeed_Cal_K_BySOC((((MC_ConfigParam1.SpeedLimit >> 7) & 0x01) == 0 ? ENABLE : DISABLE), MC_RunInfo.SOC)) >> 10;
|
|
|
slewRate = 1024 / (speedLimitEnd - speedLimitStart - 3);
|
|
|
}
|
|
|
- else
|
|
|
+ else //5-31:限速设定值 + 设定值 - 21
|
|
|
{
|
|
|
speedLimitStart = (((MC_ConfigParam1.SpeedLimit + (int8_t)MC_ConfigParam2.SpeedLimitAdj + GasMode_Param.Mode_bit.SpeedLimit - (0xAA >> 3) - 2) * 10 + MC_ConfigParam2.SpeedLimitStartAdj) * MC_LimitSpeed_Cal_K_BySOC((((MC_ConfigParam1.SpeedLimit >> 7) & 0x01) == 0 ? ENABLE : DISABLE), MC_RunInfo.SOC)) >> 10;
|
|
|
speedLimitEnd = (((MC_ConfigParam1.SpeedLimit + (int8_t)MC_ConfigParam2.SpeedLimitAdj + GasMode_Param.Mode_bit.SpeedLimit - (0xAA >> 3)) * 10 + MC_ConfigParam2.SpeedLimitEndAdj + 22) * MC_LimitSpeed_Cal_K_BySOC((((MC_ConfigParam1.SpeedLimit >> 7) & 0x01) == 0 ? ENABLE : DISABLE), MC_RunInfo.SOC)) >> 10;
|
|
|
slewRate = 1024 / (speedLimitEnd - speedLimitStart - 3);
|
|
|
}
|
|
|
- #else //客户测试,限速32km/h
|
|
|
- speedLimitStart = 310;
|
|
|
- speedLimitEnd = 345;
|
|
|
- slewRate = 29;
|
|
|
- #endif
|
|
|
-
|
|
|
+
|
|
|
//随车速调节助力比
|
|
|
if(MC_GasMode_Param.Mode_bit.StartMode == 0) //零速启动
|
|
|
Torque_Temp = (uint16_t)((uint32_t)(Torque_Temp * Function_Linear_3Stage(0, 0, speedLimitStart, slewRate, MC_SpeedSensorData.Speed_Data)) >> 10);
|
|
@@ -788,11 +783,7 @@ MC_CalParam_Struct_t MC_AssistRunMode_Walk_Process(MC_WorkMode_Struct_t p_MC_Wor
|
|
|
uint8_t WalkMode_MotorSpeedSet = 0;
|
|
|
|
|
|
//新增配置项,兼容旧电机
|
|
|
- #if 0
|
|
|
WalkMode_MotorSpeedSet = (MC_ConfigParam1.WalkMode_MotorSpeedSet == 0) ? 135 : MC_ConfigParam1.WalkMode_MotorSpeedSet;
|
|
|
- #else //客户需求推行2.6mph
|
|
|
- WalkMode_MotorSpeedSet = 105;
|
|
|
- #endif
|
|
|
|
|
|
if(MC_WalkProcess_Param.MotorSpeedSetBigin < (WalkMode_MotorSpeedSet << 5) - 10)
|
|
|
{
|
|
@@ -1238,21 +1229,10 @@ MC_CalParam_Struct_t MC_AssistRunMode_Torque_Process(uint16_t SenorData, MC_Gear
|
|
|
static uint16_t speedLimitStart = 250, speedLimitEnd = 272, slewRate = 52;
|
|
|
if((MC_ConfigParam2.SpeedLimitStartAdj > 50) || (MC_ConfigParam2.SpeedLimitStartAdj < -50)) MC_ConfigParam2.SpeedLimitStartAdj = 0;
|
|
|
if((MC_ConfigParam2.SpeedLimitEndAdj > 50) || (MC_ConfigParam2.SpeedLimitEndAdj < -50)) MC_ConfigParam2.SpeedLimitEndAdj = 0;
|
|
|
-
|
|
|
- #if 1 //客户测试,加大限速区间
|
|
|
- MC_ConfigParam2.SpeedLimitStartAdj = -10;
|
|
|
- MC_ConfigParam2.SpeedLimitEndAdj = 20;
|
|
|
- #endif
|
|
|
-
|
|
|
- #if 0
|
|
|
+
|
|
|
speedLimitStart = (((MC_ConfigParam1.SpeedLimit + (int8_t)MC_ConfigParam2.SpeedLimitAdj) * 10 + MC_ConfigParam2.SpeedLimitStartAdj) * MC_LimitSpeed_Cal_K_BySOC((((MC_ConfigParam1.SpeedLimit >> 7) & 0x01) == 0 ? ENABLE : DISABLE), MC_RunInfo.SOC)) >> 10;
|
|
|
speedLimitEnd = (((MC_ConfigParam1.SpeedLimit + (int8_t)MC_ConfigParam2.SpeedLimitAdj) * 10 + MC_ConfigParam2.SpeedLimitEndAdj + 22) * MC_LimitSpeed_Cal_K_BySOC((((MC_ConfigParam1.SpeedLimit >> 7) & 0x01) == 0 ? ENABLE : DISABLE), MC_RunInfo.SOC)) >> 10;
|
|
|
slewRate = 1024 / (speedLimitEnd - speedLimitStart - 3);
|
|
|
- #else //客户测试,限速45km/h
|
|
|
- speedLimitStart = 350;
|
|
|
- speedLimitEnd = 390;
|
|
|
- slewRate = 25;
|
|
|
- #endif
|
|
|
|
|
|
//随车速调节助力比
|
|
|
Torque_Temp = (uint16_t)((uint32_t)(Torque_Temp * Function_Linear_3Stage(speedLimitStart, 0, speedLimitStart, slewRate, MC_SpeedSensorData.Speed_Data)) >> 10);
|