Эх сурвалжийг харах

fix: 转向错误bug,助力系数更改

CN\guohui27 2 жил өмнө
parent
commit
8e0a278306

+ 1 - 1
User project/3.BasicFunction/Include/AssistCurve.h

@@ -44,7 +44,7 @@
 #define TORQUE_SWITCH2_THRESHOLD 120 // 0.1Nm
 #define TORQUE_SWITCH1_THRESHOLD 100 // 0.1Nm
 
-#define BIKE_ASS_MOTOR_CURRENT_MAX      5500 // 0.01A
+#define BIKE_ASS_MOTOR_CURRENT_MAX      5000 //5500 // 0.01A
 #define BIKE_ASS_MOTOR_TORQUE_MAX       20   // 0.1Nm
 #define BIKE_SPD_MOTOR_CURRENT_MAX      500  // 0.01A
 #define BIKE_SPD_MOTOR_CONSTANT_COMMAND 5  // RPM

+ 10 - 13
User project/3.BasicFunction/Source/AssistCurve.c

@@ -441,27 +441,20 @@ void ass_voAssitTorqPI(ASS_TORQ_PI_IN *in, ASS_TORQ_PI_OUT *out)
 
 SWORD ass_pvt_swVoltCnt=0;
 UWORD ass_pvt_uwTorqAccCnt=0,ass_pvt_uwTorqDecCnt=0,ass_pvt_uwSpd2TorqCnt=0;
-
+static void AssitCuvApplPerVolt(void)
+{  
     SLONG slTeTorAssitTmpPu,slTeTorAssitLinerPu,slTeCadAssitTmpPu;
     SWORD swTeTorAssitPu1, swTeTorAssitPu2;
     SWORD swTeCadAssitPu1, swTeCadAssitPu2;
     SWORD swTmpSpdtoTorqCur;
     SLONG slTmpSmoothCur;
     SWORD swTorqCmd1, swTorqCmd, swCadCmd;
-static SWORD AssitCuvApplPerVolt(void)
-{  
-//    SLONG slTeTorAssitTmpPu,slTeTorAssitLinerPu,slTeCadAssitTmpPu;
-//    SWORD swTeTorAssitPu1, swTeTorAssitPu2;
-//    SWORD swTeCadAssitPu1, swTeCadAssitPu2;
-//    SWORD swTmpSpdtoTorqCur;
-//    SLONG slTmpSmoothCur;
-//    SWORD swTorqCmd1, swTorqCmd, swCadCmd;
     UWORD uwTorqAccStep = 50,uwTorqDecStep = 80;
     SWORD swCurSwitch = 0;
     SWORD swTmpVoltPu,swTmpVoltPu2;
     SLONG slSpdErr,slTmpVoltLim;
     SWORD swSpdKpPu = 500; //Q10
-    UWORD uwVoltAccStep = 3, uwVoltDecStep = 10;
+    UWORD uwVoltAccStep = 1, uwVoltDecStep = 3;
     UWORD uwTmpStopCnt = 0;
     ORIG_COEF stStopOrigCoef = {-100, 0, 0};
     POLY_COEF stStopCoef;
@@ -562,10 +555,14 @@ static SWORD AssitCuvApplPerVolt(void)
     {
     case Startup:
         ass_stCalCoef.swSmoothGain = Q12_1;        
-        swSpdKpPu = 500;  //ass_stParaSet.uwStartUpCadNm;
+        swSpdKpPu = 2000;  //ass_stParaSet.uwStartUpCadNm;
         slSpdErr = (SLONG)ass_stCalOut.swCadSpd2MotSpd - (SLONG)ass_stCalIn.uwSpdFbkAbsPu;
+        if(slSpdErr < 0)
+        {
+            slSpdErr = 0;
+        }
        
-        ass_stCalCoef.StartFlag = 1;        
+//        ass_stCalCoef.StartFlag = 1;        
         /* Open Voltage Limit according SpdErr*/
         if(ass_stCalCoef.StartFlag == 0)
         { 
@@ -580,7 +577,7 @@ static SWORD AssitCuvApplPerVolt(void)
             }
             ass_stCalOut.swVoltLimitPu = slTmpVoltLim;
             
-            if(slSpdErr <= 1500 )
+            if(slSpdErr <= 800)
             {
                 ass_stCalCoef.StartFlag=1;
             }     

+ 2 - 2
User project/4.BasicHardwSoftwLayer/2.BasicSoftwLayer/Source/CodePara.c

@@ -39,12 +39,12 @@ CP_FLG              cp_stFlg = CP_FLG_DEFAULT;
 void CodeParaInit(void)
 {
     UWORD i;
-#if (MOTOR_ID_SEL ==MOTOR_WELLING_CITY )
+#if ((MOTOR_ID_SEL == MOTOR_WELLING_CITY_36V) || (MOTOR_ID_SEL == MOTOR_WELLING_CITY_48V))
 {
     cp_stFlg.RunModelSelect = CityBIKE; //CityBIKE;//ClZLOOP; 
     cp_stFlg.RotateDirectionSelect = BackwardRotate;
 }
-#elif (MOTOR_ID_SEL == MOTOR_WELLING_MTB)
+#elif ((MOTOR_ID_SEL == MOTOR_WELLING_MTB_36V) || (MOTOR_ID_SEL == MOTOR_WELLING_MTB_48V))
 {
     cp_stFlg.RunModelSelect = MountainBIKE;//ClZLOOP; MountainBIKE
     cp_stFlg.RotateDirectionSelect = ForwardRotate;