Просмотр исходного кода

add error record & change torque_lut to torque -manager speed & torque

Signed-off-by: huhui <huhui@sharkgulf.com>
huhui 3 лет назад
Родитель
Сommit
3f716304cc

+ 2 - 2
Applications/foc/core/PMSM_FOC_Core.c

@@ -7,7 +7,7 @@
 #include "foc/motor/current.h"
 #include "foc/motor/motor.h"
 #include "foc/core/svpwm.h"
-#include "foc/core/torque_lut.h"
+#include "foc/core/torque.h"
 #include "foc/samples.h"
 #include "bsp/pwm.h"
 #include "libs/logger.h"
@@ -298,7 +298,7 @@ static __INLINE void PMSM_FOC_idq_Assign(void) {
 			_gFOC_Ctrl.in.s_targetIdq.q = _gFOC_Ctrl.in.s_targetCurrent;
 		}
 	}else if ((_gFOC_Ctrl.out.n_RunMode == CTRL_MODE_TRQ) || (_gFOC_Ctrl.out.n_RunMode == CTRL_MODE_SPD)) {
-		torque_lut_get_idq(_gFOC_Ctrl.in.s_targetTorque, _gFOC_Ctrl.in.s_motRPM, &_gFOC_Ctrl.in.s_targetIdq);
+		torque_get_idq(_gFOC_Ctrl.in.s_targetTorque, _gFOC_Ctrl.in.s_motRPM, &_gFOC_Ctrl.in.s_targetIdq);
 	}
 
 	FOC_Set_iDqRamp(&_gFOC_Ctrl.idq_ctl[0], _gFOC_Ctrl.in.s_targetIdq.d);

+ 9 - 3
Applications/foc/core/PMSM_FOC_Core.h

@@ -96,10 +96,16 @@ typedef enum {
 	FOC_Speed_TooLow,
 	FOC_NotCruiseMode,
 	FOC_Param_Err,
+	FOC_Unknow_Cmd,
+	FOC_Critical_Err_Start = 150,
+	FOC_OV_Vol_Err = FOC_Critical_Err_Start,
+	FOC_UN_Vol_Err,
+	FOC_DC_Curr_OV_Err,
+	FOC_Phase_Curr_OV_Err,
 	FOC_Phase_Err,
-	FOC_Hall_Err,
-	FOC_Brake_Err = 100,
-	FOC_Unknow_Cmd = 0xFF,
+	FOC_Encoder_Err,
+	FOC_Brake_Err,
+	FOC_Err_Max = 0xFF,
 }foc_fault_t;
 
 

+ 38 - 0
Applications/foc/core/torque.c

@@ -0,0 +1,38 @@
+#include "foc/core/torque.h"
+#include "foc/foc_config.h"
+/*
+通过查表获取对应扭矩和速度时的Id和IQ的分配
+*/
+void torque_init(void) {
+
+}
+
+void torque_get_idq(float torque, float rpm, DQ_t *dq_out) {
+	dq_out->d = 0;
+	dq_out->q = torque;
+}
+
+float speed_target_from_throttle(float f_throttle) {
+
+	if (f_throttle <= (THROTTLE_LOW_VALUE)) {
+		return 0;
+	}
+	float delta = f_throttle - (THROTTLE_LOW_VALUE);
+
+	float ration = delta / (THROTTLE_MAX_VALUE - THROTTLE_LOW_VALUE);
+
+	return (PMSM_FOC_GetSpeedLimit() * ration);
+}
+
+float torque_target_from_throttle(float f_throttle) {
+	if (f_throttle <= (THROTTLE_LOW_VALUE)) {
+		return 0;
+	}
+	float delta = f_throttle - (THROTTLE_LOW_VALUE);
+
+	float ration = delta / (THROTTLE_MAX_VALUE - THROTTLE_LOW_VALUE);
+
+	return (MAX_TORQUE * ration);
+}
+
+

+ 12 - 0
Applications/foc/core/torque.h

@@ -0,0 +1,12 @@
+#ifndef _TORQUE_LUT_H__
+#define _TORQUE_LUT_H__
+#include "os/os_types.h"
+#include "foc/core/PMSM_FOC_Core.h"
+
+void torque_init(void);
+void torque_get_idq(float torque, float rpm, DQ_t *dq_out);
+float speed_target_from_throttle(float f_throttle);
+float torque_target_from_throttle(float f_throttle);
+
+#endif /*_TORQUE_LUT_H__ */
+

+ 0 - 13
Applications/foc/core/torque_lut.c

@@ -1,13 +0,0 @@
-#include "foc/core/torque_lut.h"
-/*
-通过查表获取对应扭矩和速度时的Id和IQ的分配
-*/
-void torque_lut_init(void) {
-
-}
-
-void torque_lut_get_idq(float torque, float rpm, DQ_t *dq_out) {
-	dq_out->d = 0;
-	dq_out->q = torque;
-}
-

+ 0 - 10
Applications/foc/core/torque_lut.h

@@ -1,10 +0,0 @@
-#ifndef _TORQUE_LUT_H__
-#define _TORQUE_LUT_H__
-#include "os/os_types.h"
-#include "foc/core/PMSM_FOC_Core.h"
-
-void torque_lut_init(void);
-void torque_lut_get_idq(float torque, float rpm, DQ_t *dq_out);
-
-#endif /*_TORQUE_LUT_H__ */
-

+ 21 - 0
Applications/foc/mc_error.c

@@ -0,0 +1,21 @@
+#include "foc/mc_error.h"
+#include "foc/core/PMSM_FOC_Core.h"
+
+static err_record_t err[FOC_Err_Max];
+
+void err_add_record(u8 err_code, s16 err_value) {
+	if (err_code >= FOC_Err_Max) {
+		return;
+	}
+	err[err_code].err_value = err_value;
+	err[err_code].err_time = shark_get_seconds();
+}
+
+int err_get_record(u8 index, int size, err_record_t *err_out) {
+	size = min(size, (FOC_Err_Max -  index));
+	for (int i = index; i < index + size; i++) {
+		err_out[i].err_value = err[i].err_value;
+		err_out[i].err_time = err[i].err_time;
+	}
+	return size;
+}

+ 15 - 0
Applications/foc/mc_error.h

@@ -0,0 +1,15 @@
+#ifndef _MC_ERROR_H__
+#define _MC_ERROR_H__
+#include "os/os_types.h"
+
+#pragma  pack (push,1)
+typedef struct {
+	s16 err_value;
+	u32 err_time;
+}err_record_t;
+#pragma pack(pop)
+
+void err_add_record(u8 err_code, s16 err_value);
+
+#endif /*_MC_ERROR_H__ */
+

+ 8 - 31
Applications/foc/motor/motor.c

@@ -1,6 +1,7 @@
 #include "foc/motor/motor.h"
 #include "foc/motor/current.h"
 #include "foc/foc_config.h"
+#include "foc/mc_error.h"
 #include "foc/samples.h"
 #include "math/fast_math.h"
 #include "bsp/timer_count32.h"
@@ -14,6 +15,7 @@
 #include "bsp/sched_timer.h"
 #include "foc/core/e_ctrl.h"
 #include "foc/motor/motor_param.h"
+#include "foc/core/torque.h"
 
 static motor_t motor = {
 	.s_direction = POSITIVE,
@@ -43,10 +45,12 @@ bool mc_start(u8 mode) {
 	}
 	if (PMSM_FOC_GetSpeed() > 10.0f) {
 		PMSM_FOC_SetErrCode(FOC_NowAllowed_With_Speed);
+		err_add_record(FOC_NowAllowed_With_Speed, (s16)PMSM_FOC_GetSpeed());
 		return false;
 	}
 	if (!mc_throttle_released()) {
 		PMSM_FOC_SetErrCode(FOC_Throttle_Err);
+		err_add_record(FOC_Throttle_Err, get_throttle_float() * 10);
 		return false;
 	}
 	eCtrl_init(1000, 2000);
@@ -70,10 +74,12 @@ bool mc_stop(void) {
 	}
 	if (PMSM_FOC_GetSpeed() > 10.0f) {
 		PMSM_FOC_SetErrCode(FOC_NowAllowed_With_Speed);
+		err_add_record(FOC_NowAllowed_With_Speed, (s16)PMSM_FOC_GetSpeed());
 		return false;
 	}
 	if (!mc_throttle_released()) {
 		PMSM_FOC_SetErrCode(FOC_Throttle_Err);
+		err_add_record(FOC_Throttle_Err, get_throttle_float() * 10);
 		return false;
 	}	
 	adc_stop_convert();
@@ -149,35 +155,6 @@ bool mc_throttle_released(void) {
 	return get_throttle_float() < THROTTLE_LOW_VALUE;
 }
 
-static float _get_speed_from_throttle(float f_throttle) {
-	if (motor.b_ignor_throttle) {
-		return motor.s_targetFix;
-	}
-
-	if (f_throttle <= (THROTTLE_LOW_VALUE)) {
-		return 0;
-	}
-	float delta = f_throttle - (THROTTLE_LOW_VALUE);
-
-	float ration = delta / (THROTTLE_MAX_VALUE - THROTTLE_LOW_VALUE);
-
-	return (PMSM_FOC_GetSpeedLimit() * ration);
-}
-
-static float _get_torque_from_throttle(float f_throttle) {
-	if (motor.b_ignor_throttle) {
-		return motor.s_targetFix;
-	}
-
-	if (f_throttle <= (THROTTLE_LOW_VALUE)) {
-		return 0;
-	}
-	float delta = f_throttle - (THROTTLE_LOW_VALUE);
-
-	float ration = delta / (THROTTLE_MAX_VALUE - THROTTLE_LOW_VALUE);
-
-	return (MAX_TORQUE * ration);
-}
 
 /*do 50 times filter*/
 static void brake_timer_handler(shark_timer_t *t) {
@@ -247,10 +224,10 @@ void Sched_MC_mTask(void) {
 		if (f_throttle != motor.throttle) {
 			motor.throttle = f_throttle;
 			if (runMode == CTRL_MODE_SPD) {
-				float speed_Ref = _get_speed_from_throttle(f_throttle);
+				float speed_Ref = speed_target_from_throttle(f_throttle);
 				PMSM_FOC_Set_Speed(speed_Ref);
 			}else if (runMode == CTRL_MODE_TRQ) {
-				float torque = _get_torque_from_throttle(f_throttle);
+				float torque = torque_target_from_throttle(f_throttle);
 				PMSM_FOC_Set_Torque(torque);
 			}
 		}		

+ 86 - 58
Project/GD32_DEMO.uvoptx

@@ -120,7 +120,6 @@
         <SetRegEntry>
           <Number>0</Number>
           <Key>DLGUARM</Key>
-          <Name>?</Name>
         </SetRegEntry>
         <SetRegEntry>
           <Number>0</Number>
@@ -148,7 +147,24 @@
           <Name>UL2CM3(-S0 -C0 -P0 -FD20000000 -FC1000 -FN1 -FF0GD32F30x_HD -FS08000000 -FL010000 -FP0($$Device:GD32F303RC$Flash\GD32F30x_HD.FLM))</Name>
         </SetRegEntry>
       </TargetDriverDllRegistry>
-      <Breakpoint/>
+      <Breakpoint>
+        <Bp>
+          <Number>0</Number>
+          <Type>0</Type>
+          <LineNumber>146</LineNumber>
+          <EnabledFlag>1</EnabledFlag>
+          <Address>0</Address>
+          <ByteObject>0</ByteObject>
+          <HtxType>0</HtxType>
+          <ManyObjects>0</ManyObjects>
+          <SizeOfObject>0</SizeOfObject>
+          <BreakByAccess>0</BreakByAccess>
+          <BreakIfRCount>0</BreakIfRCount>
+          <Filename>..\Applications\foc\motor\encoder.c</Filename>
+          <ExecCommand></ExecCommand>
+          <Expression></Expression>
+        </Bp>
+      </Breakpoint>
       <WatchWindow1>
         <Ww>
           <count>0</count>
@@ -433,8 +449,20 @@
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
       <bDave2>0</bDave2>
-      <PathWithFileName>..\Applications\foc\core\torque_lut.c</PathWithFileName>
-      <FilenameWithoutPath>torque_lut.c</FilenameWithoutPath>
+      <PathWithFileName>..\Applications\foc\mc_error.c</PathWithFileName>
+      <FilenameWithoutPath>mc_error.c</FilenameWithoutPath>
+      <RteFlg>0</RteFlg>
+      <bShared>0</bShared>
+    </File>
+    <File>
+      <GroupNumber>2</GroupNumber>
+      <FileNumber>12</FileNumber>
+      <FileType>1</FileType>
+      <tvExp>0</tvExp>
+      <tvExpOptDlg>0</tvExpOptDlg>
+      <bDave2>0</bDave2>
+      <PathWithFileName>..\Applications\foc\core\torque.c</PathWithFileName>
+      <FilenameWithoutPath>torque.c</FilenameWithoutPath>
       <RteFlg>0</RteFlg>
       <bShared>0</bShared>
     </File>
@@ -448,7 +476,7 @@
     <RteFlg>0</RteFlg>
     <File>
       <GroupNumber>3</GroupNumber>
-      <FileNumber>12</FileNumber>
+      <FileNumber>13</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -460,7 +488,7 @@
     </File>
     <File>
       <GroupNumber>3</GroupNumber>
-      <FileNumber>13</FileNumber>
+      <FileNumber>14</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -472,7 +500,7 @@
     </File>
     <File>
       <GroupNumber>3</GroupNumber>
-      <FileNumber>14</FileNumber>
+      <FileNumber>15</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -484,7 +512,7 @@
     </File>
     <File>
       <GroupNumber>3</GroupNumber>
-      <FileNumber>15</FileNumber>
+      <FileNumber>16</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -504,7 +532,7 @@
     <RteFlg>0</RteFlg>
     <File>
       <GroupNumber>4</GroupNumber>
-      <FileNumber>16</FileNumber>
+      <FileNumber>17</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -516,7 +544,7 @@
     </File>
     <File>
       <GroupNumber>4</GroupNumber>
-      <FileNumber>17</FileNumber>
+      <FileNumber>18</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -528,7 +556,7 @@
     </File>
     <File>
       <GroupNumber>4</GroupNumber>
-      <FileNumber>18</FileNumber>
+      <FileNumber>19</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -540,7 +568,7 @@
     </File>
     <File>
       <GroupNumber>4</GroupNumber>
-      <FileNumber>19</FileNumber>
+      <FileNumber>20</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -560,7 +588,7 @@
     <RteFlg>0</RteFlg>
     <File>
       <GroupNumber>5</GroupNumber>
-      <FileNumber>20</FileNumber>
+      <FileNumber>21</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -572,7 +600,7 @@
     </File>
     <File>
       <GroupNumber>5</GroupNumber>
-      <FileNumber>21</FileNumber>
+      <FileNumber>22</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -584,7 +612,7 @@
     </File>
     <File>
       <GroupNumber>5</GroupNumber>
-      <FileNumber>22</FileNumber>
+      <FileNumber>23</FileNumber>
       <FileType>4</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -604,7 +632,7 @@
     <RteFlg>0</RteFlg>
     <File>
       <GroupNumber>6</GroupNumber>
-      <FileNumber>23</FileNumber>
+      <FileNumber>24</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -616,7 +644,7 @@
     </File>
     <File>
       <GroupNumber>6</GroupNumber>
-      <FileNumber>24</FileNumber>
+      <FileNumber>25</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -628,7 +656,7 @@
     </File>
     <File>
       <GroupNumber>6</GroupNumber>
-      <FileNumber>25</FileNumber>
+      <FileNumber>26</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -640,7 +668,7 @@
     </File>
     <File>
       <GroupNumber>6</GroupNumber>
-      <FileNumber>26</FileNumber>
+      <FileNumber>27</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -652,7 +680,7 @@
     </File>
     <File>
       <GroupNumber>6</GroupNumber>
-      <FileNumber>27</FileNumber>
+      <FileNumber>28</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -664,7 +692,7 @@
     </File>
     <File>
       <GroupNumber>6</GroupNumber>
-      <FileNumber>28</FileNumber>
+      <FileNumber>29</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -676,7 +704,7 @@
     </File>
     <File>
       <GroupNumber>6</GroupNumber>
-      <FileNumber>29</FileNumber>
+      <FileNumber>30</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -688,7 +716,7 @@
     </File>
     <File>
       <GroupNumber>6</GroupNumber>
-      <FileNumber>30</FileNumber>
+      <FileNumber>31</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -700,7 +728,7 @@
     </File>
     <File>
       <GroupNumber>6</GroupNumber>
-      <FileNumber>31</FileNumber>
+      <FileNumber>32</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -712,7 +740,7 @@
     </File>
     <File>
       <GroupNumber>6</GroupNumber>
-      <FileNumber>32</FileNumber>
+      <FileNumber>33</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -724,7 +752,7 @@
     </File>
     <File>
       <GroupNumber>6</GroupNumber>
-      <FileNumber>33</FileNumber>
+      <FileNumber>34</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -736,7 +764,7 @@
     </File>
     <File>
       <GroupNumber>6</GroupNumber>
-      <FileNumber>34</FileNumber>
+      <FileNumber>35</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -748,7 +776,7 @@
     </File>
     <File>
       <GroupNumber>6</GroupNumber>
-      <FileNumber>35</FileNumber>
+      <FileNumber>36</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -760,7 +788,7 @@
     </File>
     <File>
       <GroupNumber>6</GroupNumber>
-      <FileNumber>36</FileNumber>
+      <FileNumber>37</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -772,7 +800,7 @@
     </File>
     <File>
       <GroupNumber>6</GroupNumber>
-      <FileNumber>37</FileNumber>
+      <FileNumber>38</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -784,7 +812,7 @@
     </File>
     <File>
       <GroupNumber>6</GroupNumber>
-      <FileNumber>38</FileNumber>
+      <FileNumber>39</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -804,7 +832,7 @@
     <RteFlg>0</RteFlg>
     <File>
       <GroupNumber>7</GroupNumber>
-      <FileNumber>39</FileNumber>
+      <FileNumber>40</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -816,7 +844,7 @@
     </File>
     <File>
       <GroupNumber>7</GroupNumber>
-      <FileNumber>40</FileNumber>
+      <FileNumber>41</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -828,7 +856,7 @@
     </File>
     <File>
       <GroupNumber>7</GroupNumber>
-      <FileNumber>41</FileNumber>
+      <FileNumber>42</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -840,7 +868,7 @@
     </File>
     <File>
       <GroupNumber>7</GroupNumber>
-      <FileNumber>42</FileNumber>
+      <FileNumber>43</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -852,7 +880,7 @@
     </File>
     <File>
       <GroupNumber>7</GroupNumber>
-      <FileNumber>43</FileNumber>
+      <FileNumber>44</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -864,7 +892,7 @@
     </File>
     <File>
       <GroupNumber>7</GroupNumber>
-      <FileNumber>44</FileNumber>
+      <FileNumber>45</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -884,7 +912,7 @@
     <RteFlg>0</RteFlg>
     <File>
       <GroupNumber>8</GroupNumber>
-      <FileNumber>45</FileNumber>
+      <FileNumber>46</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -896,7 +924,7 @@
     </File>
     <File>
       <GroupNumber>8</GroupNumber>
-      <FileNumber>46</FileNumber>
+      <FileNumber>47</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -908,7 +936,7 @@
     </File>
     <File>
       <GroupNumber>8</GroupNumber>
-      <FileNumber>47</FileNumber>
+      <FileNumber>48</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -928,7 +956,7 @@
     <RteFlg>0</RteFlg>
     <File>
       <GroupNumber>9</GroupNumber>
-      <FileNumber>48</FileNumber>
+      <FileNumber>49</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -940,7 +968,7 @@
     </File>
     <File>
       <GroupNumber>9</GroupNumber>
-      <FileNumber>49</FileNumber>
+      <FileNumber>50</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -952,7 +980,7 @@
     </File>
     <File>
       <GroupNumber>9</GroupNumber>
-      <FileNumber>50</FileNumber>
+      <FileNumber>51</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -964,7 +992,7 @@
     </File>
     <File>
       <GroupNumber>9</GroupNumber>
-      <FileNumber>51</FileNumber>
+      <FileNumber>52</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -976,7 +1004,7 @@
     </File>
     <File>
       <GroupNumber>9</GroupNumber>
-      <FileNumber>52</FileNumber>
+      <FileNumber>53</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -988,7 +1016,7 @@
     </File>
     <File>
       <GroupNumber>9</GroupNumber>
-      <FileNumber>53</FileNumber>
+      <FileNumber>54</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -1000,7 +1028,7 @@
     </File>
     <File>
       <GroupNumber>9</GroupNumber>
-      <FileNumber>54</FileNumber>
+      <FileNumber>55</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -1012,7 +1040,7 @@
     </File>
     <File>
       <GroupNumber>9</GroupNumber>
-      <FileNumber>55</FileNumber>
+      <FileNumber>56</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -1024,7 +1052,7 @@
     </File>
     <File>
       <GroupNumber>9</GroupNumber>
-      <FileNumber>56</FileNumber>
+      <FileNumber>57</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -1036,7 +1064,7 @@
     </File>
     <File>
       <GroupNumber>9</GroupNumber>
-      <FileNumber>57</FileNumber>
+      <FileNumber>58</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -1048,7 +1076,7 @@
     </File>
     <File>
       <GroupNumber>9</GroupNumber>
-      <FileNumber>58</FileNumber>
+      <FileNumber>59</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -1060,7 +1088,7 @@
     </File>
     <File>
       <GroupNumber>9</GroupNumber>
-      <FileNumber>59</FileNumber>
+      <FileNumber>60</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -1072,7 +1100,7 @@
     </File>
     <File>
       <GroupNumber>9</GroupNumber>
-      <FileNumber>60</FileNumber>
+      <FileNumber>61</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -1084,7 +1112,7 @@
     </File>
     <File>
       <GroupNumber>9</GroupNumber>
-      <FileNumber>61</FileNumber>
+      <FileNumber>62</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -1096,7 +1124,7 @@
     </File>
     <File>
       <GroupNumber>9</GroupNumber>
-      <FileNumber>62</FileNumber>
+      <FileNumber>63</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -1108,7 +1136,7 @@
     </File>
     <File>
       <GroupNumber>9</GroupNumber>
-      <FileNumber>63</FileNumber>
+      <FileNumber>64</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -1128,7 +1156,7 @@
     <RteFlg>0</RteFlg>
     <File>
       <GroupNumber>10</GroupNumber>
-      <FileNumber>64</FileNumber>
+      <FileNumber>65</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -1140,7 +1168,7 @@
     </File>
     <File>
       <GroupNumber>10</GroupNumber>
-      <FileNumber>65</FileNumber>
+      <FileNumber>66</FileNumber>
       <FileType>2</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>

+ 7 - 2
Project/GD32_DEMO.uvprojx

@@ -439,9 +439,14 @@
               <FilePath>..\Applications\foc\core\svpwm.c</FilePath>
             </File>
             <File>
-              <FileName>torque_lut.c</FileName>
+              <FileName>mc_error.c</FileName>
               <FileType>1</FileType>
-              <FilePath>..\Applications\foc\core\torque_lut.c</FilePath>
+              <FilePath>..\Applications\foc\mc_error.c</FilePath>
+            </File>
+            <File>
+              <FileName>torque.c</FileName>
+              <FileType>1</FileType>
+              <FilePath>..\Applications\foc\core\torque.c</FilePath>
             </File>
           </Files>
         </Group>