浏览代码

V3.3.1_20201118
1、指拨信号滤波延时加大,解决松开指拨时电机突然停止造成的异响;
2、解决续航的计算在踏频模式下无效的问题;
3、指拨模式增加力矩信号,与指拨信号比较后,取大值;
4、指拨模式调整各个档位加速曲线和减速曲线;
5、踏频模式低力矩停机时间,固定为1500ms,并降低低力矩停机值;
6、踏频模式的处理,调整电机转速临界值;
7、低压保护增加根据电池通信状态按照剩余容量进行判断的处理;
8、版本号:V3.3.1_20201118

dail.zhou 4 年之前
父节点
当前提交
212f84229d
共有 8 个文件被更改,包括 101 次插入37 次删除
  1. 1 1
      Core/Src/adc.c
  2. 8 1
      Core/Src/main.c
  3. 二进制
      MDK-ARM/bin/MC_TTKZ010A_V3.3.1_20201118.bin
  4. 二进制
      MDK-ARM/bin/QD007A_CTL_APP.bin
  5. 47 31
      User/Src/motor_control.c
  6. 35 2
      User/Src/protect_check.c
  7. 1 1
      User/Src/var.c
  8. 9 1
      修改说明.txt

+ 1 - 1
Core/Src/adc.c

@@ -585,7 +585,7 @@ void HAL_ADC_ConvCpltCallback(ADC_HandleTypeDef* hadc)
 	//更新指拨
 	Temp_32 = ADC1_Result[ADC1_RANK_GAS] - GasSensor_OffSet;
 	Temp_32 = (Temp_32 <= 0) ? 0 : Temp_32;
-	GasSensorFltSum += ((Temp_32 << 10) - GasSensorFltSum) >> 8;  //滤波延时0.33*256=85.3ms
+	GasSensorFltSum += ((Temp_32 << 10) - GasSensorFltSum) >> 10;  //滤波延时0.33 * 1024 = 338ms
 	ADC_SensorData.GasSensor = GasSensorFltSum >> 10;
 	
 	//更新MCU温度

+ 8 - 1
Core/Src/main.c

@@ -272,7 +272,14 @@ int main(void)
 					RD_RemainDis_Init(MC_ConfigParam1.WheelSize + MC_ConfigParam1.WheelSizeAdj, IsComOK_BMS.IsOK_Flag, MC_RunInfo.BusVoltage / 10, MC_MotorParam.Rate_Voltage, BMS_RunInfo.RC);	
 				}
 				RD_CalculateRemainDis(MC_SpeedSensorData.WheelTurnCount, BMS_RunInfo.RC, BMS_RunInfo.SOC, MC_RunInfo.BusCurrent);
-				RD_SaveAndUpdateInfo(MC_ControlCode.GearSt, MC_CalParam.AssistRunMode);
+				if((MC_ControlCode.GearSt & 0xF0) == 0x10)//踏频模式
+				{
+				  RD_SaveAndUpdateInfo((MC_GearSt_Struct_t)((uint8_t)MC_ControlCode.GearSt & 0x0F), MC_CalParam.AssistRunMode);
+				}
+				else//力矩模式
+				{
+				  RD_SaveAndUpdateInfo(MC_ControlCode.GearSt, MC_CalParam.AssistRunMode);
+				}
 			}
 			
 			//更新电机运行信息

二进制
MDK-ARM/bin/MC_TTKZ010A_V3.3.1_20201118.bin


二进制
MDK-ARM/bin/QD007A_CTL_APP.bin


+ 47 - 31
User/Src/motor_control.c

@@ -234,7 +234,7 @@ int16_t SpeedSetReal = 0;	// 
 /*指拨模式相关变量*/
 
 //指拨模式处理
-MC_CalParam_Struct_t MC_AssistRunMode_Gas_Process(uint16_t SensorData, MC_GearSt_Struct_t GearSt)
+MC_CalParam_Struct_t MC_AssistRunMode_Gas_Process(uint16_t GasSensorData, uint16_t TorqueSensorData, MC_GearSt_Struct_t GearSt)
 {
 	int32_t Tmp;
 	int16_t TorQueBySpd = 0;
@@ -298,7 +298,7 @@ MC_CalParam_Struct_t MC_AssistRunMode_Gas_Process(uint16_t SensorData, MC_GearSt
 
 	/*电机最高速度,上位机配置参数*/
 	SpeedMax = MC_MotorParam.Rate_Speed;
-	Tmp = SensorData + 50 ;  //加50偏移量,确保能达到最大值2048
+	Tmp = ((GasSensorData < TorqueSensorData) ? TorqueSensorData : GasSensorData) + 50 ;  //加50偏移量,确保能达到最大值2048
 	Tmp = Tmp > 2048 ? 2048 : Tmp; 
 	
 	/*调试用,根据车速限速值,换算指拨对应的设定车速*/
@@ -320,25 +320,25 @@ MC_CalParam_Struct_t MC_AssistRunMode_Gas_Process(uint16_t SensorData, MC_GearSt
 	switch (GearSt & 0x0F)
 	{
 		case 0x01:
-			accStep = StepCalc(SpeedMax, 1, 6500);
+			accStep = StepCalc(SpeedMax, 1, 2100);
 			break;
 		case 0x02:
-			accStep = StepCalc(SpeedMax, 1, 6000);
+			accStep = StepCalc(SpeedMax, 1, 1500);
 			break;
 		case 0x03:
-			accStep = StepCalc(SpeedMax, 1, 5500);
+			accStep = StepCalc(SpeedMax, 1, 1071);
 			break;
 		case 0x04:
-			accStep = StepCalc(SpeedMax, 1, 5000);
+			accStep = StepCalc(SpeedMax, 1, 765);
 			break;
 		default:
-			/*计算周期1ms, 加减速时间为 5.00s  加减速步进计算*/
-			accStep = StepCalc(SpeedMax, 1, 5000);
+			/*计算周期1ms, 加减速时间为 2.00s  加减速步进计算*/
+			accStep = StepCalc(SpeedMax, 1, 1500);
 			break;
 	}
 	
 	/*减速步进*/
-	decStep = StepCalc(SpeedMax, 1, 1000);
+	decStep = StepCalc(SpeedMax, 1, 2000);
 
 	/* 跟踪启动 */
 	if(MC_CalParam.Foc_Flag  == RESET)			
@@ -655,7 +655,7 @@ MC_CalParam_Struct_t MC_AssistRunMode_Cadence_Process(MC_CadenceResult_Struct_t
 	
 	#else
 	//输入阶跃
-	MC_TorqueProcess_Param.TorqueApp  = 1000;
+	MC_TorqueProcess_Param.TorqueApp = 1000;
 	
 	//踏频设为启动
 	CadenceData.Cadence_Dir = MC_Cadence_Forward;
@@ -664,22 +664,23 @@ MC_CalParam_Struct_t MC_AssistRunMode_Cadence_Process(MC_CadenceResult_Struct_t
 	#endif
 	
 	//低力矩停机
-	TorqueStopData = (TorqueSensorStartData < 200) ? 100 : (TorqueSensorStartData >> 1);
+	TorqueStopData = (TorqueSensorStartData < 300) ? 100 : (TorqueSensorStartData / 3);
 	if(MC_TorqueProcess_Param.TorqueApp >= (TorqueStopData))
 	{
 	  TorqueStopDelayTimeCnt = HAL_GetTick();
 	}
 	else
 	{
-		if(MC_RunInfo.MotorSpeed > 200)
-		{
-		  TorqueStopDelayTime = 218400 / MC_RunInfo.MotorSpeed; //60s / (电机转速 / 4.55 / 2.4) / 3,曲柄1/3圈
-		}
-		else
-		{
-		  TorqueStopDelayTime = 1200;
-		}
-		TorqueStopDelayTime= (TorqueStopDelayTime < 500) ? 500 : TorqueStopDelayTime;
+//		if(MC_RunInfo.MotorSpeed > 200)
+//		{
+//		  TorqueStopDelayTime = 218400 / MC_RunInfo.MotorSpeed; //60s / (电机转速 / 4.55 / 2.4) / 3,曲柄1/3圈
+//		}
+//		else
+//		{
+//		  TorqueStopDelayTime = 1200;
+//		}
+//		TorqueStopDelayTime= (TorqueStopDelayTime < 500) ? 500 : TorqueStopDelayTime;
+		TorqueStopDelayTime = 1500;
 		if((HAL_GetTick() - TorqueStopDelayTimeCnt) > TorqueStopDelayTime)//超时1200ms
 		{
 			MC_TorqueProcess_Param.MotorStopLock_Flag = SET;
@@ -760,12 +761,15 @@ MC_CalParam_Struct_t MC_AssistRunMode_Cadence_Process(MC_CadenceResult_Struct_t
 				if(CadenceData.Cadence_Data < 50)//输出功率与输入力矩成正比,等效于踏频采用固定值50rpm
 				{
 					Torque_Temp = (uint16_t)((uint32_t)(MC_TorqueProcess_Param.TorqueApp * Coefficient_GainCal(MC_AssisParam.Gear_ECO.Gain_K >> 1, MC_AssisParam.Gear_ECO.Gain_K, MC_AssisParam.Gear_ECO.TorqueApp_TH, MC_TorqueProcess_Param.TorqueApp)) >> 10);
-				  Torque_Temp = (MC_RunInfo.MotorSpeed < 10) ? MC_AssisParam.Gear_ECO.Upper_Iq : Torque_Temp * 120 / (MC_RunInfo.MotorSpeed * 20 / 91);
+				  Torque_Temp = (MC_RunInfo.MotorSpeed < 546) ? MC_AssisParam.Gear_ECO.Upper_Iq 
+					                                            : Torque_Temp * 120 / (MC_RunInfo.MotorSpeed * 20 / 91);
 				}
 				else if((CadenceData.Cadence_Data >= 50) && (CadenceData.Cadence_Data < 90))//输出功率与输入力矩成正比
 				{
 				  Torque_Temp = (uint16_t)((uint32_t)(MC_TorqueProcess_Param.TorqueApp * Coefficient_GainCal(MC_AssisParam.Gear_ECO.Gain_K >> 1, MC_AssisParam.Gear_ECO.Gain_K, MC_AssisParam.Gear_ECO.TorqueApp_TH, MC_TorqueProcess_Param.TorqueApp)) >> 10);
-				  Torque_Temp = (MC_RunInfo.MotorSpeed < 10) ? MC_AssisParam.Gear_ECO.Upper_Iq : Torque_Temp * CadenceData.Cadence_Data * 24 / 10 / (MC_RunInfo.MotorSpeed * 20 / 91);
+				  Torque_Temp = (MC_RunInfo.MotorSpeed < 546) ? MC_AssisParam.Gear_ECO.Upper_Iq 
+					                                            : ((MC_RunInfo.MotorSpeed < 983) ? Torque_Temp * 216 / (MC_RunInfo.MotorSpeed * 20 / 91) 
+					                                                                             : Torque_Temp * CadenceData.Cadence_Data * 24 / 10 / (MC_RunInfo.MotorSpeed * 20 / 91));
 				}
 				else//全功率输出
 				{
@@ -808,12 +812,15 @@ MC_CalParam_Struct_t MC_AssistRunMode_Cadence_Process(MC_CadenceResult_Struct_t
 				if(CadenceData.Cadence_Data < 50)//输出功率与输入力矩成正比,等效于踏频采用固定值50rpm
 				{
 					Torque_Temp = (uint16_t)((uint32_t)(MC_TorqueProcess_Param.TorqueApp * Coefficient_GainCal(MC_AssisParam.Gear_NORM.Gain_K >> 1, MC_AssisParam.Gear_NORM.Gain_K, MC_AssisParam.Gear_NORM.TorqueApp_TH, MC_TorqueProcess_Param.TorqueApp)) >> 10);
-				  Torque_Temp = (MC_RunInfo.MotorSpeed < 10) ? MC_AssisParam.Gear_NORM.Upper_Iq : Torque_Temp * 120 / (MC_RunInfo.MotorSpeed * 20 / 91);
+				  Torque_Temp = (MC_RunInfo.MotorSpeed < 546) ? MC_AssisParam.Gear_NORM.Upper_Iq 
+					                                            : Torque_Temp * 120 / (MC_RunInfo.MotorSpeed * 20 / 91);
 				}
 				else if((CadenceData.Cadence_Data >= 50) && (CadenceData.Cadence_Data < 90))//输出功率与输入力矩成正比
 				{
 				  Torque_Temp = (uint16_t)((uint32_t)(MC_TorqueProcess_Param.TorqueApp * Coefficient_GainCal(MC_AssisParam.Gear_NORM.Gain_K >> 1, MC_AssisParam.Gear_NORM.Gain_K, MC_AssisParam.Gear_NORM.TorqueApp_TH, MC_TorqueProcess_Param.TorqueApp)) >> 10);
-				  Torque_Temp = (MC_RunInfo.MotorSpeed < 10) ? MC_AssisParam.Gear_NORM.Upper_Iq : Torque_Temp * CadenceData.Cadence_Data * 24 / 10 / (MC_RunInfo.MotorSpeed * 20 / 91);
+				  Torque_Temp = (MC_RunInfo.MotorSpeed < 546) ? MC_AssisParam.Gear_NORM.Upper_Iq 
+					                                            : ((MC_RunInfo.MotorSpeed < 983) ? Torque_Temp * 216 / (MC_RunInfo.MotorSpeed * 20 / 91) 
+					                                                                             : Torque_Temp * CadenceData.Cadence_Data * 24 / 10 / (MC_RunInfo.MotorSpeed * 20 / 91));
 				}
 				else//全功率输出
 				{
@@ -857,12 +864,15 @@ MC_CalParam_Struct_t MC_AssistRunMode_Cadence_Process(MC_CadenceResult_Struct_t
 				if(CadenceData.Cadence_Data < 50)//输出功率与输入力矩成正比,等效于踏频采用固定值50rpm
 				{
 					Torque_Temp = (uint16_t)((uint32_t)(MC_TorqueProcess_Param.TorqueApp * Coefficient_GainCal(MC_AssisParam.Gear_SPORT.Gain_K >> 1, MC_AssisParam.Gear_SPORT.Gain_K, MC_AssisParam.Gear_SPORT.TorqueApp_TH, MC_TorqueProcess_Param.TorqueApp)) >> 10);
-				  Torque_Temp = (MC_RunInfo.MotorSpeed < 10) ? MC_AssisParam.Gear_SPORT.Upper_Iq : Torque_Temp * 120 / (MC_RunInfo.MotorSpeed * 20 / 91);
+				  Torque_Temp = (MC_RunInfo.MotorSpeed < 546) ? MC_AssisParam.Gear_SPORT.Upper_Iq 
+					                                            : Torque_Temp * 120 / (MC_RunInfo.MotorSpeed * 20 / 91);
 				}
 				else if((CadenceData.Cadence_Data >= 50) && (CadenceData.Cadence_Data < 90))//输出功率与输入力矩成正比
 				{
 				  Torque_Temp = (uint16_t)((uint32_t)(MC_TorqueProcess_Param.TorqueApp * Coefficient_GainCal(MC_AssisParam.Gear_SPORT.Gain_K >> 1, MC_AssisParam.Gear_SPORT.Gain_K, MC_AssisParam.Gear_SPORT.TorqueApp_TH, MC_TorqueProcess_Param.TorqueApp)) >> 10);
-				  Torque_Temp = (MC_RunInfo.MotorSpeed < 10) ? MC_AssisParam.Gear_SPORT.Upper_Iq : Torque_Temp * CadenceData.Cadence_Data * 24 / 10 / (MC_RunInfo.MotorSpeed * 20 / 91);
+				  Torque_Temp = (MC_RunInfo.MotorSpeed < 546) ? MC_AssisParam.Gear_SPORT.Upper_Iq 
+					                                            : ((MC_RunInfo.MotorSpeed < 983) ? Torque_Temp * 216 / (MC_RunInfo.MotorSpeed * 20 / 91) 
+					                                                                             : Torque_Temp * CadenceData.Cadence_Data * 24 / 10 / (MC_RunInfo.MotorSpeed * 20 / 91));
 				}
 				else//全功率输出
 				{
@@ -905,12 +915,15 @@ MC_CalParam_Struct_t MC_AssistRunMode_Cadence_Process(MC_CadenceResult_Struct_t
 				if(CadenceData.Cadence_Data < 50)//输出功率与输入力矩成正比,等效于踏频采用固定值50rpm
 				{
 					Torque_Temp = (uint16_t)((uint32_t)(MC_TorqueProcess_Param.TorqueApp * Coefficient_GainCal(MC_AssisParam.Gear_TURBO.Gain_K >> 1, MC_AssisParam.Gear_TURBO.Gain_K, MC_AssisParam.Gear_TURBO.TorqueApp_TH, MC_TorqueProcess_Param.TorqueApp)) >> 10);
-				  Torque_Temp = (MC_RunInfo.MotorSpeed < 10) ? MC_AssisParam.Gear_TURBO.Upper_Iq : Torque_Temp * 120 / (MC_RunInfo.MotorSpeed * 20 / 91);
+				  Torque_Temp = (MC_RunInfo.MotorSpeed < 546) ? MC_AssisParam.Gear_TURBO.Upper_Iq 
+					                                            : Torque_Temp * 120 / (MC_RunInfo.MotorSpeed * 20 / 91);
 				}
 				else if((CadenceData.Cadence_Data >= 50) && (CadenceData.Cadence_Data < 90))//输出功率与输入力矩成正比
 				{
 				  Torque_Temp = (uint16_t)((uint32_t)(MC_TorqueProcess_Param.TorqueApp * Coefficient_GainCal(MC_AssisParam.Gear_TURBO.Gain_K >> 1, MC_AssisParam.Gear_TURBO.Gain_K, MC_AssisParam.Gear_TURBO.TorqueApp_TH, MC_TorqueProcess_Param.TorqueApp)) >> 10);
-				  Torque_Temp = (MC_RunInfo.MotorSpeed < 10) ? MC_AssisParam.Gear_TURBO.Upper_Iq : Torque_Temp * CadenceData.Cadence_Data * 24 / 10 / (MC_RunInfo.MotorSpeed * 20 / 91);
+				  Torque_Temp = (MC_RunInfo.MotorSpeed < 546) ? MC_AssisParam.Gear_TURBO.Upper_Iq 
+					                                            : ((MC_RunInfo.MotorSpeed < 983) ? Torque_Temp * 216 / (MC_RunInfo.MotorSpeed * 20 / 91) 
+					                                                                             : Torque_Temp * CadenceData.Cadence_Data * 24 / 10 / (MC_RunInfo.MotorSpeed * 20 / 91));
 				}
 				else//全功率输出
 				{
@@ -953,12 +966,15 @@ MC_CalParam_Struct_t MC_AssistRunMode_Cadence_Process(MC_CadenceResult_Struct_t
 				if(CadenceData.Cadence_Data < 50)//输出功率与输入力矩成正比,等效于踏频采用固定值50rpm
 				{
 					Torque_Temp = (uint32_t)(MC_TorqueProcess_Param.TorqueApp * MC_TorqueProcess_Param.TorqueApp) / (MC_AssisParam.Gear_SMART.TorqueApp_TH);
-				  Torque_Temp = (MC_RunInfo.MotorSpeed < 10) ? MC_AssisParam.Gear_SMART.Upper_Iq : Torque_Temp * 120 / (MC_RunInfo.MotorSpeed * 20 / 91);
+				  Torque_Temp = (MC_RunInfo.MotorSpeed < 546) ? MC_AssisParam.Gear_SMART.Upper_Iq 
+					                                            : Torque_Temp * 120 / (MC_RunInfo.MotorSpeed * 20 / 91);
 				}
 				else if((CadenceData.Cadence_Data >= 50) && (CadenceData.Cadence_Data < 90))//输出功率与输入力矩成正比
 				{
 				  Torque_Temp = (uint32_t)(MC_TorqueProcess_Param.TorqueApp * MC_TorqueProcess_Param.TorqueApp) / (MC_AssisParam.Gear_SMART.TorqueApp_TH);
-				  Torque_Temp = (MC_RunInfo.MotorSpeed < 10) ? MC_AssisParam.Gear_SMART.Upper_Iq : Torque_Temp * CadenceData.Cadence_Data * 24 / 10 / (MC_RunInfo.MotorSpeed * 20 / 91);
+				  Torque_Temp = (MC_RunInfo.MotorSpeed < 546) ? MC_AssisParam.Gear_SMART.Upper_Iq 
+					                                            : ((MC_RunInfo.MotorSpeed < 983) ? Torque_Temp * 216 / (MC_RunInfo.MotorSpeed * 20 / 91) 
+					                                                                             : Torque_Temp * CadenceData.Cadence_Data * 24 / 10 / (MC_RunInfo.MotorSpeed * 20 / 91));
 				}
 				else//全功率输出
 				{
@@ -1776,7 +1792,7 @@ void MC_CalParam_Cal(MC_WorkMode_Struct_t p_MC_WorkMode, \
 		case MC_AssistRunMode_GAS:
 		{
 			//计算FOC控制输入
-			*p_MC_CalParam = MC_AssistRunMode_Gas_Process(p_ADC_SensorData.GasSensor, (MC_GearSt_Struct_t)(GearSt & 0x0F));
+			*p_MC_CalParam = MC_AssistRunMode_Gas_Process(p_ADC_SensorData.GasSensor, MC_CadenceResult.torqueByCadence, (MC_GearSt_Struct_t)(GearSt & 0x0F));
 			//助力模式切换标志复位
 			MC_AssistRunMode_ShiftFlag = RESET;
 			break;

+ 35 - 2
User/Src/protect_check.c

@@ -11,12 +11,45 @@ FlagStatus MC_Protect_OverCurrentTrig_Flag = RESET;
 
 /******************************局部函数定义******************************/
 //低压保护检测
-void MC_Protect_UnderVoltage_Process(uint16_t BusVoltage, uint8_t DesignVoltage, uint16_t UV_TH, MC_ErrorCode_Struct_t* p_MC_ErrorCode)
+void MC_Protect_UnderVoltage_Process(uint16_t BusVoltage, uint8_t DesignVoltage, uint16_t UV_TH, TrueOrFalse_Flag_Struct_t BMS_Com_OK_Flag, uint16_t BMS_RC, BMS_STATUS_Struct_t BMS_Status, MC_ErrorCode_Struct_t* p_MC_ErrorCode)
 {
   static uint32_t uvTimeCnt = 0;
 	static uint32_t uvFaultTimeCnt = 0;
 	uint16_t UV_Voltage = 0;
 	
+	//电池通讯正常时,根据剩余容量提示低电量警告,警告延时10s
+	if(BMS_Com_OK_Flag == TRUE)
+	{
+		static uint32_t uvAlarmTimeCnt = 0;
+		static FlagStatus AlarmFlag = RESET;
+		
+		if(BMS_Status.Status_Bit.Charge == 1)//充电状态,清除标志
+		{
+	  	p_MC_ErrorCode->ERROR_Bit.Protect_UnderVoltage = 0;
+			return;
+		}
+		
+		if(p_MC_ErrorCode->ERROR_Bit.Protect_UnderVoltage == 0)
+		{
+			if(AlarmFlag == RESET) // 只出现一次警告,10s后自动消失
+			{
+				if(BMS_RC < 200)
+				{
+					p_MC_ErrorCode->ERROR_Bit.Protect_UnderVoltage = 1;
+					uvAlarmTimeCnt = HAL_GetTick();
+					AlarmFlag = SET;
+				}			
+			}
+		}
+		else
+		{
+			if((HAL_GetTick() - uvAlarmTimeCnt) > 10000)
+			{
+				p_MC_ErrorCode->ERROR_Bit.Protect_UnderVoltage = 0;
+			}
+		}		
+	}
+	
 	//根据额定电压更新保护阈值
 	switch(DesignVoltage)
 	{
@@ -393,7 +426,7 @@ void MC_Protect_OverCurrent_Process(FlagStatus* OverCurrentTrigFlag, MC_ErrorCod
 void MC_Protect_Check_Process(void)
 {
 	//低压保护检测
-	MC_Protect_UnderVoltage_Process(MC_RunInfo.BusVoltage, MC_MotorParam.Rate_Voltage, ((MC_ConfigParam1.UV_Protect_TH == 0) ? 3100 : MC_ConfigParam1.UV_Protect_TH), &MC_ErrorCode);
+	MC_Protect_UnderVoltage_Process(MC_RunInfo.BusVoltage, MC_MotorParam.Rate_Voltage, ((MC_ConfigParam1.UV_Protect_TH == 0) ? 3100 : MC_ConfigParam1.UV_Protect_TH), IsComOK_BMS.IsOK_Flag, BMS_RunInfo.RC, BMS_RunInfo.Status, &MC_ErrorCode);
 	
 	//过压保护检测
 	MC_Protect_OverVoltage_Process(MC_RunInfo.BusVoltage, MC_MotorParam.Rate_Voltage, &MC_ErrorCode);

+ 1 - 1
User/Src/var.c

@@ -489,7 +489,7 @@ void Var_Init(void)
 		
 	//MC版本信息初始化,Mode和SN从EEPROM读取
   strncpy(MC_VerInfo.HW_Version, (char*)"TT_KZ_010D.     ", 16);
-	strncpy(MC_VerInfo.FW_Version, (char*)"V3r3r0_20201113.", 16);
+	strncpy(MC_VerInfo.FW_Version, (char*)"V3r3r1_20201118.", 16);
 	
 	//电机型号
 	strncpy(MC_VerInfo.Mode, (char*)"PG8000 & PSX000.", 16);

+ 9 - 1
修改说明.txt

@@ -336,7 +336,15 @@ V3.3.0_20201113
 3、MC_AssistRunMode_CADENCE模式下,FOC运算采用MC_CalParam.Ref_Torque;
 4、版本号:V3.3.0_20201113
 
-
+V3.3.1_20201118
+1、指拨信号滤波延时加大,解决松开指拨时电机突然停止造成的异响;
+2、解决续航的计算在踏频模式下无效的问题;
+3、指拨模式增加力矩信号,与指拨信号比较后,取大值;
+4、指拨模式调整各个档位加速曲线和减速曲线;
+5、踏频模式低力矩停机时间,固定为1500ms,并降低低力矩停机值;
+6、踏频模式的处理,调整电机转速临界值;
+7、低压保护增加根据电池通信状态按照剩余容量进行判断的处理;
+8、版本号:V3.3.1_20201118