Explorar o código

仪表设置转速百分比。

dd hai 2 meses
pai
achega
6d76122b01

+ 9 - 1
1.FrameLayer/Source/TimeTask_Event.c

@@ -388,6 +388,7 @@ void  Event_200ms(void)
     CalcResVaule(&MosCal_A,adc_stUpOut.PCBTemp);
     CalcResVaule(&MosCal_B,adc_stUpOut.PCBTemp);
     CalcResVaule(&MosCal_C,adc_stUpOut.PCBTemp);
+#if 0
     /* Ebike车速、踏频、力矩、温度传感器故障判断 */
     if(MC_WorkMode  == 0)
     {
@@ -414,6 +415,7 @@ void  Event_200ms(void)
             alm_voDetec200MS(&alm_stBikeIn, &alm_stDetect200MSCoef);
         }
     }
+#endif
 
     if(power_stPowStateOut.powerstate != POWER_START)
     {
@@ -482,7 +484,8 @@ void event_voAssCmd(void)
             /* 力矩中轴助力模式判断 */
             if(cp_stBikeRunInfoPara.uwBikeGear > 0)
             {   
-                if((cp_stBikeRunInfoPara.uwBikeGear == 0x22) || (bikethrottle_stBikeThrottleOut.uwThrottlePercent > 250))
+#if 0 //正常模式
+                if((cp_stBikeRunInfoPara.uwBikeGear == 0x22)||(bikethrottle_stBikeThrottleOut.uwThrottlePercent > 250))
                 {
                     /* 力矩中轴速度模式 */
                     event_enMode = SpdAss;
@@ -492,6 +495,9 @@ void event_voAssCmd(void)
                     /* 力矩中轴力矩助力模式 */
                     event_enMode = TorqAss;
                 }
+#else //仪表挡位控制转速
+                event_enMode = SpdAss;
+#endif
             }
             else 
             {
@@ -563,6 +569,7 @@ void event_voAssCmd(void)
                     event_enMode = NoneAss;
                 }
             }
+#if 0
             else if((cp_stBikeRunInfoPara.uwBikeGear <=5) && (bikethrottle_stBikeThrottleOut.uwThrottlePercent <= 250))
             {
                 event_enMode = TorqAss;
@@ -573,6 +580,7 @@ void event_voAssCmd(void)
                 ass_stCadAssCalOut.blPreStopFlag = TRUE; 
                 ass_enCadAssStatus = CadAssStop;
             }
+#endif
             else 
             {
                 /* 不处理 */

+ 34 - 2
3.BasicFunction/Source/CadAssist.c

@@ -361,7 +361,7 @@ void ass_voAssistCoefCal(void)
     /** Motor Max Speed calculate according to bike speed limit */
     tmp_slAssistSpdLimit = ((SLONG)ass_stCadAssCoef.swKmhToMSpdPu*((SLONG) ass_stCadAssCoef.uwThrottleMaxBikeSpeed + ASS_SPD_LIMIT_ERR) >> 4) / 10;
     ass_stCadAssCoef.swThrottleMaxspd= (SWORD)tmp_slAssistSpdLimit;
-    tmp_slAssistSpdLimit = ((SWORD)((SLONG)ass_stCadAssCoef.swKmhToMSpdPu*((SLONG)ass_stCadAssCoef.uwAssistMaxBikeSpeed + ASS_SPD_LIMIT_ERR) >> 4)) / 10;
+    tmp_slAssistSpdLimit = ((SLONG)((SLONG)ass_stCadAssCoef.swKmhToMSpdPu*((SLONG)ass_stCadAssCoef.uwAssistMaxBikeSpeed + ASS_SPD_LIMIT_ERR) >> 4)) / 10;
     ass_stCadAssCoef.swAssistMaxSpd=(SWORD)tmp_slAssistSpdLimit;
 
    #if(THROTTLEGEAR !=0)
@@ -402,6 +402,7 @@ void ass_voAssistCoefCal(void)
 void ass_voParameterInput(void)
 {
     /** Motor Max Speed calculate according to bike speed limit */
+#if 0
     if(MC_WorkMode == 1) //配置模式不限制电机最高转速
     {
         ass_stCadAssCoef.swMSpdpuLimit = (SLONG)(cp_stMotorPara.swRSpeedRpm << 15) / cof_uwVbRpm;
@@ -417,6 +418,9 @@ void ass_voParameterInput(void)
             ass_stCadAssCoef.swMSpdpuLimit =ass_stCadAssCoef.swAssistMaxSpd;
         }
     }
+#else //不限速
+    ass_stCadAssCoef.swMSpdpuLimit = (SLONG)(cp_stMotorPara.swRSpeedRpm << 15) / cof_uwVbRpm;
+#endif
 
     /** Flux current limit input */
     ass_stCadAssParaIn.swFlxIqLimitPu = abs(flx_stCtrlOut.swIqLimPu);
@@ -880,7 +884,7 @@ void ass_voAssistCmdDeal(void)
   #endif
     /** Record Last assist mode */
     ass_stCadAssParaPro.uwAssitModeLast = ass_stCadAssParaPro.uwAssitMode;
-    
+#if 0
     /** Cart Comand */
     if(ass_stCadAssParaIn.uwGearSt == 0x22)
     {
@@ -1098,7 +1102,35 @@ void ass_voAssistCmdDeal(void)
         ass_stCadAssParaPro.uwAssitMode = 0;
         tmp_slAssistSpdCmd = 0;                 /**< Q15 */
     }
+#else //仪表挡位控制转速
+    if((ass_stCadAssParaIn.uwGearSt >= 0x01) && (ass_stCadAssParaIn.uwGearSt <= 0x05) )
+    {
+        ass_stCadAssParaPro.uwAssitMode = 6;
+        if(ass_stCadAssParaIn.uwGearSt == 0x01)
+            MC_MotorSPD_rpm_Percent = 20;
+        else if(ass_stCadAssParaIn.uwGearSt == 0x02)
+            MC_MotorSPD_rpm_Percent = 40;
+        else if(ass_stCadAssParaIn.uwGearSt == 0x03)
+            MC_MotorSPD_rpm_Percent = 60;
+        else if(ass_stCadAssParaIn.uwGearSt == 0x04)
+            MC_MotorSPD_rpm_Percent = 80;
+        else
+            MC_MotorSPD_rpm_Percent = 100;
+        tmp_slAssistSpdCmd = (SLONG)(cp_stMotorPara.swRSpeedRpm << 15) / cof_uwVbRpm;
+        tmp_slAssistSpdCmd= ((SLONG)MC_MotorSPD_rpm_Percent * tmp_slAssistSpdCmd) / 100;
 
+        if(MC_MotorSPD_rpm_Percent <= 2)
+        {
+            tmp_slAssistSpdCmd = 0;
+            ass_stCadAssParaPro.uwAssitMode = 0;
+        }
+    }
+    else
+    {
+        ass_stCadAssParaPro.uwAssitMode = 0;
+        tmp_slAssistSpdCmd = 0;                 /**< Q15 */
+    }
+#endif
     /** Stop Assist when Bike Brake */
     if((BikeBrake_blGetstate() == TRUE) ||(BMS_RunInfo.Status.Status_Bit.Charge!=0))
     {

+ 2 - 2
4.BasicHardwSoftwLayer/2.BasicSoftwLayer/Include/syspar.h

@@ -63,7 +63,7 @@ Update Time
    0 - PA19和PA20做前灯DCDC控制时,不可仿真;
    1 - PA19和PA20作SWD调试接口时,前灯DCDC不可控制
 *=======================================================================*/
-#define  SIMULATION        0
+#define  SIMULATION        1
 /*======================================================================*
    //仪表协议选择
 // //0-5s,1-锂电2号,2-概念智慧, 3-八方,4-澜风2.6,无适配仪表,暂未使用, 5-J协议,6-澜风9.0
@@ -82,7 +82,7 @@ Update Time
    //0-关闭功率模式智能踏频  1-打开,车速跟随脚踩频率变化而变化
     * 牙盘齿轮比自适应,
     * 每个档位限制速度都一样,档位用功率区分
-    *  1档 20%开始限功率,
+    * 1档  20%开始限功率,
     * 2档  30% 开始限功率
     * 3档  50% 开始限功率
     * 4档  60%不限功率