Kaynağa Gözat

测试

电流环可运行保存
avery 7 ay önce
ebeveyn
işleme
0993d82551

+ 6 - 6
KeilC51/Fortior.uvopt

@@ -145,27 +145,27 @@
         <Ww>
           <count>0</count>
           <WinNumber>1</WinNumber>
-          <ItemText>mcCurOffset,0x0A</ItemText>
+          <ItemText>motorControl,0x0A</ItemText>
         </Ww>
         <Ww>
           <count>1</count>
           <WinNumber>1</WinNumber>
-          <ItemText>motorControl,0x0A</ItemText>
+          <ItemText>mcFaultSource</ItemText>
         </Ww>
         <Ww>
           <count>2</count>
           <WinNumber>1</WinNumber>
-          <ItemText>mcFaultSource</ItemText>
+          <ItemText>mcState</ItemText>
         </Ww>
         <Ww>
           <count>3</count>
           <WinNumber>1</WinNumber>
-          <ItemText>mcState</ItemText>
+          <ItemText>mcFocCtrl,0x0A</ItemText>
         </Ww>
         <Ww>
           <count>4</count>
           <WinNumber>1</WinNumber>
-          <ItemText>mcFocCtrl,0x0A</ItemText>
+          <ItemText>mcCurOffset,0x0A</ItemText>
         </Ww>
       </WatchWindow1>
       <WatchWindow2>
@@ -354,7 +354,7 @@
       <GroupNumber>1</GroupNumber>
       <FileNumber>3</FileNumber>
       <FileType>1</FileType>
-      <tvExp>1</tvExp>
+      <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
       <bDave2>0</bDave2>
       <PathWithFileName>..\User\Application\Control.c</PathWithFileName>

+ 0 - 1
User/Application/Control.c

@@ -19,7 +19,6 @@ void Get_Target_Ref(void)
         #if (CONTROL_MODE == NONEMODE)
         isCtrlPowOn = true;
         motorControl.TargetRef = TARGET_SPEED_SET;
-        motorControl.QOutRef = I_Value(1.0);
         motorControl.QOutRef = I_Value(4.0);
         #elif (CONTROL_MODE == UARTMODE)
         #endif

+ 8 - 8
User/Function/AddFunction.c

@@ -123,18 +123,18 @@ void Speed_response(void)
                         mcFocCtrl.IsRef = HW_Zero_Calc(mcSpeedRamp.ActualValue - motorControl.ActualSpeed);
                         #endif
                         
-                        STT_FOC_THECOMP_CLEAR();
+                        // STT_FOC_THECOMP_CLEAR();
                     }
                     #else
                     {
-                        motorControl.ActualQOutValue = FOC_IQREF;
+//                        motorControl.ActualQOutValue = FOC_IQREF;
+//                    
+//                        if (motorControl.ActualQOutValue < motorControl.QOutRef)
+//                        { motorControl.ActualQOutValue += QOUTINC; }
+//                        else if (FOC_IQREF > motorControl.QOutRef)
+//                        { motorControl.ActualQOutValue -= QOUTINC; }
                     
-                        if (motorControl.ActualQOutValue < motorControl.QOutRef)
-                        { motorControl.ActualQOutValue += QOUTINC; }
-                        else if (FOC_IQREF > motorControl.QOutRef)
-                        { motorControl.ActualQOutValue -= QOUTINC; }
-                    
-                        FOC_IQREF = motorControl.ActualQOutValue;
+                        FOC_IQREF = motorControl.QOutRef;
                     }
                     #endif
                     mcFocCtrl.LoopTime = 0;

+ 9 - 9
User/Function/FocControlFunction.c

@@ -21,7 +21,7 @@ void FOC_Init(void)
     FOC_RTHEACC     = 0;
     FOC__RTHESTEP   = 0;
     FOC_RTHECNT     = 0;
-    FOC_THECOMP     = Start_FOC_THECOMP;                      // SMO 估算补偿角
+    // FOC_THECOMP     = Start_FOC_THECOMP;                      // SMO 估算补偿角
     FOC_THECOR      = 0x02;                                 // 误差角度补偿
     mcFocCtrl.STT_FOC_THECOMP = Start_FOC_THECOMP;
     // 电流环参数配置
@@ -241,14 +241,14 @@ void Motor_Open(void)
     FOC_EFREQMIN  = MOTOR_OMEGA_ACC_MIN;
     FOC_EFREQHOLD = MOTOR_OMEGA_ACC_END;
     SetReg(FOC_CR1, EFAE | RFAE | ANGM, EFAE | ANGM);
-//    #if  (IFFDebugg)
-//    {
-//        // 估算器禁止输出
-//        ClrBit(FOC_CR1, EFAE);                      // 禁止估算器强制输出
-//        ClrBit(FOC_CR1, RFAE);                      // 使能强拉
-//        ClrBit(FOC_CR1, ANGM);                      // 禁止估算器输出
-//    }
-//    #endif
+    #if  (IFFDebugg)
+    {
+        // 估算器禁止输出
+        ClrBit(FOC_CR1, EFAE);                      // 禁止估算器强制输出
+        ClrBit(FOC_CR1, RFAE);                      // 使能强拉
+        ClrBit(FOC_CR1, ANGM);                      // 禁止估算器输出
+    }
+    #endif
     #elif (Open_Start_Mode == Open_Start)
     FOC_RTHEACC = MOTOR_OPEN_ACC;
     FOC__RTHESTEP = MOTOR_OPEN_ACC_MIN;

+ 3 - 3
User/include/Customer.h

@@ -67,7 +67,7 @@
 #define DQKI_Alignment                  _Q15(0.05)
 
 #define IQ_Align_CURRENT                I_Value(0.0)
-#define ID_Align_CURRENT_Start          I_Value(1.0)
+#define ID_Align_CURRENT_Start          I_Value(2.0)
 #define ID_Align_CURRENT_End            ID_Align_CURRENT_Start
 
 #define Align_Angle1                    _Q15((float)0.0 / 180.0)
@@ -86,7 +86,7 @@
 #define Start_FOC_THECOMP              _Q15(10.0/180.0)                        //启动补偿角度
 
 /*************Omega启动的参数***************/
-#define ATO_BW                         (120.0)                               // 观测器带宽的滤波值,经典值为1.0-200.0
+#define ATO_BW                         (100.0)                               // 观测器带宽的滤波值,经典值为1.0-200.0
 #define ATO_BW_RUN                     (130.0)
 #define ATO_BW_RUN1                    (140.0)
 #define ATO_BW_RUN2                    (150.0)
@@ -185,7 +185,7 @@
 
 
 
-#define OUT_LOOP_CONTROL                (0)
+#define OUT_LOOP_CONTROL                (1)
 #define LOOP_MODE                       (SPEED_CONTROL_MODE)
 #define CONTROL_MODE                    (NONEMODE)