|
@@ -1247,7 +1247,8 @@ MC_CalParam_Struct_t MC_AssistRunMode_Torque_Process(MC_CadenceResult_Struct_t C
|
|
|
#endif
|
|
|
|
|
|
//根据指拨控制
|
|
|
- if((GasCtrlMode == MC_SUPPORT_ENABLE) && (AdcSenorData.GasSensor > 50) && (MC_RunInfo.BikeSpeed > 100) && (MC_RunInfo.BikeSpeed < 255))
|
|
|
+ if((GasCtrlMode == MC_SUPPORT_ENABLE) && (AdcSenorData.GasSensor > 50) && (MC_RunInfo.BikeSpeed > 100) && \
|
|
|
+ ( (MC_RunInfo.BikeSpeed < 250) || ((MC_RunInfo.BikeSpeed < 260)&&(AdcSenorData.TorqueSensor<200)) ) )
|
|
|
{
|
|
|
MC_TorqueProcess_Param.MotorStopLock_Flag = RESET;
|
|
|
//停止判断
|
|
@@ -1414,7 +1415,8 @@ MC_CalParam_Struct_t MC_AssistRunMode_Torque_Process(MC_CadenceResult_Struct_t C
|
|
|
if(IsEnterGasMode == SET)
|
|
|
{
|
|
|
Torque_Temp = MC_TorqueProcess_Param.TorqueApp;
|
|
|
- TorqueAccStep = 3;
|
|
|
+ if( MC_SpeedSensorData.Speed_Data < 230 ) TorqueAccStep = 3;
|
|
|
+ else TorqueAccStep = 1;
|
|
|
TorqueDecStep = 7;
|
|
|
//给定上限
|
|
|
Torque_Temp = (Torque_Temp > MC_AssisParam.Gear_5.Upper_Iq) ? MC_AssisParam.Gear_5.Upper_Iq : Torque_Temp;
|
|
@@ -1427,6 +1429,15 @@ MC_CalParam_Struct_t MC_AssistRunMode_Torque_Process(MC_CadenceResult_Struct_t C
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
+ static int32_t SpeedRatio_NoFlt=1092;
|
|
|
+ static int32_t speedRatio_temp=1092<<12;
|
|
|
+
|
|
|
+ if( (MC_RunInfo.MotorSpeed > 500)&&(MC_CadenceResult.Cadence_Data >= 15)&&(MC_TorqueProcess_Param.TorqueApp > 200) )
|
|
|
+ {
|
|
|
+ SpeedRatio_NoFlt= (100*MC_RunInfo.MotorSpeed)/MC_CadenceResult.Cadence_Data;
|
|
|
+ speedRatio_temp += ((SpeedRatio_NoFlt << 12) - speedRatio_temp) >> 10;
|
|
|
+ SpeedRatio = speedRatio_temp >> 12;
|
|
|
+ }
|
|
|
//按照助力档位调节力矩输入值
|
|
|
switch(GearSt)
|
|
|
{
|
|
@@ -1688,17 +1699,21 @@ MC_CalParam_Struct_t MC_AssistRunMode_Torque_Process(MC_CadenceResult_Struct_t C
|
|
|
|
|
|
//随车速调节助力比
|
|
|
static uint8_t SpeedLimitEnd = 24;
|
|
|
-
|
|
|
- if((IsEnterGasMode == RESET) && (AdcSenorData.GasSensor > 50) && (CadenceData.Cadence_Dir == MC_Cadence_Forward))//指拨模式同时踩踏,限速40km/h
|
|
|
+ if(IsEnterGasMode == RESET)
|
|
|
{
|
|
|
SpeedLimitEnd = MC_ConfigParam1.SpeedLimit-1;
|
|
|
+ //随车速调节助力比
|
|
|
+ Torque_Temp = (uint16_t)((uint32_t)(Torque_Temp * Function_Linear_3Stage(0, 0, SpeedLimitEnd * 10, 52, MC_SpeedSensorData.Speed_Data)) >> 10);
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
SpeedLimitEnd = 24;
|
|
|
- }
|
|
|
- Torque_Temp = (uint16_t)((uint32_t)(Torque_Temp * Function_Linear_3Stage(0, 0, SpeedLimitEnd * 10, 52, MC_SpeedSensorData.Speed_Data)) >> 10);
|
|
|
-
|
|
|
+ //随车速调节助力比
|
|
|
+ Torque_Temp = (uint16_t)((uint32_t)(Torque_Temp * Function_Linear_3Stage(0, 0, 230, 35, MC_SpeedSensorData.Speed_Data)) >> 10);
|
|
|
+ Torque_Temp = (uint16_t)((uint32_t)(Torque_Temp * Function_Linear_3Stage(0, 0, 230, 35, MC_SpeedSensorData.Speed_Data)) >> 10);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
//助力输出
|
|
|
MC_TorqueProcess_Param.TorqueRef = Torque_Temp;
|
|
|
if(MC_TorqueProcess_Param.TorqueRef <= 0)
|
|
@@ -1801,7 +1816,7 @@ MC_CalParam_Struct_t MC_AssistRunMode_Torque_Process(MC_CadenceResult_Struct_t C
|
|
|
MC_MotorStop(&MC_StarFlag);
|
|
|
}
|
|
|
#if 0 //低于限速点启动电机
|
|
|
- else if(MC_RunInfo.BikeSpeed < (((IsEnterGasMode == SET) && (CadenceData.Cadence_Dir == MC_Cadence_Forward)) ? (40 * 10 + 22) : MC_ConfigParam1.SpeedLimit * 10 + 22))
|
|
|
+ else if(MC_RunInfo.BikeSpeed < ((MC_ConfigParam1.SpeedLimit) * 10))
|
|
|
{
|
|
|
MC_MotorStar(&MC_StarFlag);
|
|
|
}
|