9 Commity b0e3269c9b ... 82b66f06a8

Autor SHA1 Wiadomość Data
  kevin 82b66f06a8 通过宏开关指定母线电流的计算使用重建的相电压还是电流环给定的相电压,需要硬件支持 2 lat temu
  kevin be463542af 相电压滤波参数调整到bsp.h中,根据硬件定 2 lat temu
  kevin 29f57972ef 更新中动100码电机参数 2 lat temu
  kevin 48d851ff69 MC105默认使用ZD100的电机 2 lat temu
  kevin 3628e608ce foc 参数默认配置,根据CONFIG_Motor_xxxx选择auto_config 头文件 2 lat temu
  kevin eb66a5a9ee 修改mc124_R1_V2.yml配置文件 2 lat temu
  kevin 928c0f4dbd 去掉整车相关参数,加入弱磁开启,启动占空比参数 2 lat temu
  kevin 5200cf8757 去掉F_Calc.c,不使用 2 lat temu
  kevin c95774fbe2 if控制加入hall角度的plot 2 lat temu

+ 19 - 0
Applications/app/app.c

@@ -194,6 +194,25 @@ static void plot_smo_angle(void) {
 	delta = fast_atan2(s, c)/PI*180.0f;
 	can_plot3(mot_angle, smo_angle, delta);
 }
+
+#ifdef CONFIG_USE_ENCODER_HALL
+static void plot_hall_angle(void) {
+	u32 mask = cpu_enter_critical();
+	float hall_angle = hall_get_elec_angle();
+	float mot_angle = foc()->in.mot_angle;
+	if (mot_contrl()->if_ctl.b_ena) {
+		mot_angle += 90;
+	}
+	norm_angle_deg(mot_angle);
+	cpu_exit_critical(mask);
+	float delta = hall_angle - mot_angle;
+	float s, c;
+	arm_sin_cos(delta, &s, &c);
+	delta = fast_atan2(s, c)/PI*180.0f;
+	can_plot3(mot_angle, hall_angle, delta);
+}
+#endif
+
 static u32 app_plot_task(void * args) {
 	if (plot_type == 1) {
 		s16 plot_arg1 = mot_contrl()->ramp_vel_lim.interpolation;

+ 2 - 3
Applications/autogen_config.h

@@ -11,9 +11,8 @@
 #define CONFIG_Motor_PLLBand  200
 #define CONFIG_Motor_EpmPLL  400
 #define CONFIG_Motor_PosPLL  500
-#define CONFIG_Motor_VehicleW  190
-#define CONFIG_Motor_WheelC  145
-#define CONFIG_Motor_GearRatio  6.25f
+#define CONFIG_Motor_FwEnable  1
+#define CONFIG_Motor_FwDutyStart  90
 #define CONFIG_Motor_MaxFwDCurr  100
 #define CONFIG_Motor_MaxTorque  200
 #define CONFIG_Motor_EncOffset  -103

+ 0 - 3
Applications/bsp/gd32/board_mc105_v3.h

@@ -224,9 +224,6 @@
 #define W_VOL_ADC_RCU 	RCU_GPIOA
 #define W_VOL_ADC_MODE 	GPIO_MODE_AIN
 
-#define PHASE_VOL_R (40*1000.0f)
-#define PHASE_VOL_R1 (1*1000.0f)
-#define PHASE_VOL_C1 (470e-9f) //470nF
 #define PHASE_VOL_Gain  ((PHASE_VOL_R + PHASE_VOL_R1)/PHASE_VOL_R1)
 #define Phase_Vol_LPF_R  ((PHASE_VOL_R * PHASE_VOL_R1)/(PHASE_VOL_R + PHASE_VOL_R1))
 #define PHASE_VOL_LPF_BAND  (1/(2*3.14F*Phase_Vol_LPF_R*PHASE_VOL_C1))

+ 8 - 0
Applications/bsp/gd32/bsp.h

@@ -43,18 +43,26 @@
 #define CONFIG_CURRENT_SENSOR_CEOF 0.303F
 #define CONFIG_BOARD_MAX_VOLTAGE 120.0f
 #define CONFIG_BOARD_MIN_VOLTAGE 50.0f
+#define PHASE_VOL_R (40*1000.0f)
+#define PHASE_VOL_R1 (1*1000.0f)
+#define PHASE_VOL_C1 (10e-9f) //10nF
 #include "bsp/gd32/board_mc105_v3.h"
 #define CONFIG_BOARD_MCXXX
 #define CONFIG_BOARD_NAME "MC105"
 #define CONFIG_MC105_HW_VERSION 3
+#define CONFIG_MOT_IND_USE_PHASE_SAMPLE 0 //电机参数离线识别使用采集的相电压
 
 #elif defined (CONFIG_BOARD_MC124)
 #define CONFIG_CURRENT_SENSOR_CEOF 0.313F
 #define CONFIG_BOARD_MAX_VOLTAGE 90.0f
 #define CONFIG_BOARD_MIN_VOLTAGE 40.0f
+#define PHASE_VOL_R (40*1000.0f)
+#define PHASE_VOL_R1 (1*1000.0f)
+#define PHASE_VOL_C1 (470e-9f) //470nF
 #include "bsp/gd32/board_mc105_v3.h"
 #define CONFIG_BOARD_MCXXX
 #define CONFIG_BOARD_NAME "MCXXX"
 #define CONFIG_MC105_HW_VERSION 3
+#define CONFIG_MOT_IND_USE_PHASE_SAMPLE 1 //电机参数离线识别使用采集的相电压
 #endif
 #endif /* __BSP_GD32_H__ */

+ 13 - 2
Applications/foc/core/controller.c

@@ -168,7 +168,7 @@ u8 mot_contrl_mode(mot_contrl_t *ctrl) {
 			line_ramp_set_time(&ctrl->ramp_input_torque, ctrl->torque_dec_time);
 			line_ramp_set_target(&ctrl->ramp_input_torque, 0);//先把扭矩快速减小到0
 		}else if ((preMode == CTRL_MODE_EBRAKE) && (ctrl->mode_running == CTRL_MODE_SPD)) {
-			PI_Controller_Reset(&ctrl->pi_vel, F_get_air());
+			PI_Controller_Reset(&ctrl->pi_vel, 0);
 		}
 	}
 	if (ctrl->mode_running == CTRL_MODE_OPEN) {
@@ -337,15 +337,26 @@ bool mot_contrl_update(mot_contrl_t *ctrl) {
 	LowPass_Filter(ctrl->out_vdq_filterd.q, foc->out.vol_dq.q ,lowpass/1.5f);
 
 	/* 计算母线电流 */
+#if (CONFIG_IBUS_CALC_SAMPLED_V)
+	float v_alpha = ctrl->phase_v_ab.a;
+	float v_beta = ctrl->phase_v_ab.b;
+	float i_alpha = foc->in.curr_ab.a;
+	float i_beta = foc->in.curr_ab.b;
+#else
 	float vd = ctrl->out_vdq_filterd.d;
 	float vq = ctrl->out_vdq_filterd.q;
 	float id = ctrl->out_idq_filterd.d;
 	float iq = ctrl->out_idq_filterd.q;
+#endif
     /*
 		根据公式(等幅值变换,功率不等):
-		iDC x vDC = 3/2(iq x vq + id x vd);
+		iDC x vDC = 3/2(iq x vq + id x vd) = 3/2(i_alpha * v_alpha + i_beta * v_beta);
 	*/
+#if (CONFIG_IBUS_CALC_SAMPLED_V)
+	float m_pow = (v_alpha * i_alpha + v_beta * i_beta);
+#else
 	float m_pow = (vd * id + vq * iq);
+#endif
 	float raw_idc = 0.0f;
 	float v_dc = get_vbus_float();
 	if (v_dc != 0.0f) {

+ 1 - 2
Applications/foc/foc_config.h

@@ -65,8 +65,7 @@
 #define CONFIG_CONTRL_FW_START_DUTY 0.9F
 
 #define CONFIG_ENABLE_IAB_REC 1   // for phase current/voltage debug
-
-#define CONFIG_MOT_IND_USE_PHASE_SAMPLE 1 //电机参数离线识别使用采集的相电压
+#define CONFIG_IBUS_CALC_SAMPLED_V 1
 
 #ifdef CONFIG_SPEED_LADRC
 	#define CONFIG_LADRC_Wo  200.0F

+ 13 - 9
Applications/foc/mc_config.c

@@ -187,9 +187,8 @@ void mc_conf_default(void) {
 	conf.m.nor_pll_band = CONFIG_Motor_PLLBand;
 	conf.m.epm_pll_band = CONFIG_Motor_EpmPLL;
 	conf.m.pos_pll_band = CONFIG_Motor_PosPLL;
-	conf.m.vehicle_w = CONFIG_Motor_VehicleW;
-	conf.m.wheel_c = CONFIG_Motor_WheelC;
-	conf.m.gear_ratio = CONFIG_Motor_GearRatio;
+	conf.m.fw_enable = CONFIG_Motor_FwEnable;
+	conf.m.fw_duty_start = CONFIG_Motor_FwDutyStart;
 	conf.m.max_fw_id = CONFIG_Motor_MaxFwDCurr;
 	conf.m.max_torque = CONFIG_Motor_MaxTorque;
 	conf.m.encoder_offset = CONFIG_Motor_EncOffset;
@@ -236,6 +235,10 @@ void mc_conf_default(void) {
 	conf.c.pid[PID_IDCLim_ID].ki = CONFIG_Foc_PID_IDCLim_Ki;
 	conf.c.pid[PID_IDCLim_ID].kd = CONFIG_Foc_PID_IDCLim_Kd;
 
+	conf.c.epm_pid.kp = CONFIG_Foc_PID_EPM_Kp;
+	conf.c.epm_pid.ki = CONFIG_Foc_PID_EPM_Ki;
+	conf.c.epm_pid.kd = CONFIG_Foc_PID_EPM_Kd;
+
 	conf.s.auto_hold = CONFIG_Settings_AutoHold;
 	conf.s.brk_shut_power = CONFIG_Settings_BrkShutPower;
 	conf.s.tcs_enable = CONFIG_Settings_TcsEnable;
@@ -302,12 +305,14 @@ int mc_conf_decode_motor(u8 *buff) {
 	conf.m.nor_pll_band = (float)decode_u16(buff); buff += 2;
 	conf.m.epm_pll_band = (float)decode_u16(buff); buff += 2;
 	conf.m.pos_pll_band = (float)decode_u16(buff); buff += 2;
-	conf.m.vehicle_w = decode_u16(buff);buff += 2;
-	conf.m.wheel_c = decode_u16(buff);buff += 2;
-	conf.m.gear_ratio = decode_float(buff);buff += 4;
+	conf.m.fw_enable = decode_u8(buff);buff += 1;
+	conf.m.fw_duty_start = decode_u8(buff);buff += 1;
 	conf.m.max_fw_id = decode_u16(buff); buff += 2;
 	conf.m.max_torque = decode_u16(buff); buff += 2;
 	conf.m.encoder_offset = decode_s16(buff); buff += 2;
+	if (conf.m.fw_duty_start > 100) {
+		conf.m.fw_duty_start = 100;
+	}
 	return buff - ori;
 }
 
@@ -321,9 +326,8 @@ int mc_conf_encode_motor(u8 *buff) {
 	encode_u16(buff, (u16)conf.m.nor_pll_band); buff += 2;
 	encode_u16(buff, (u16)conf.m.epm_pll_band); buff += 2;
 	encode_u16(buff, (u16)conf.m.pos_pll_band); buff += 2;
-	encode_u16(buff, conf.m.vehicle_w);buff += 2;
-	encode_u16(buff, conf.m.wheel_c);buff += 2;
-	encode_float(buff, conf.m.gear_ratio);buff += 4;
+	encode_u8(buff, (u8)conf.m.fw_enable);buff += 1;
+	encode_u8(buff, conf.m.fw_duty_start);buff += 1;
 	encode_u16(buff, conf.m.max_fw_id); buff += 2;
 	encode_u16(buff, conf.m.max_torque); buff += 2;
 	encode_s16(buff, conf.m.encoder_offset); buff += 2;

+ 8 - 4
Applications/foc/mc_config.h

@@ -2,8 +2,13 @@
 #define _MC_CONFIG_H__
 
 #include "os/os_types.h"
+#ifdef CONFIG_Motor_R1_Encoder
+#include "configs/autogen_config_R1_enc.h"
+#elif defined CONFIG_Motor_Z100_Encoder
+#include "configs/autogen_config_z100_enc.h"
+#else
 #include "autogen_config.h"
-
+#endif
 #define CONFIG_MAX_GEARS 4
 #define CONFIG_TEMP_PROT_NUM 3
 #define CONFIG_GEAR_SPEED_TRQ_NUM 10
@@ -30,9 +35,8 @@ typedef struct
 	float nor_pll_band;
 	float epm_pll_band;
 	float pos_pll_band;
-	int vehicle_w;
-	int wheel_c;
-	float gear_ratio;
+	bool  fw_enable;
+	u8  fw_duty_start; //0-100
 	u16	max_fw_id;
 	u16 max_torque;
 	s16 encoder_offset;

+ 1 - 1
Applications/foc/motor/mot_params_ind.c

@@ -100,7 +100,7 @@ static void _rs_ind_timer_handler(shark_timer_t *t) {
 		}
 		break;
 	case 3: {
-		float dtc = ((float)CONFIG_HW_DeadTime/(float)FOC_PWM_period) * motor.controller.foc.in.dc_vol * TWO_BY_THREE;
+		float dtc = ((float)CONFIG_HW_DeadTime/(float)FOC_PWM_period) * motor.controller.foc.in.dc_vol;
 		float vd = rs_vd_now * TWO_BY_THREE - dtc;
 		float id = motor.controller.foc.out.curr_dq.d;
 		float rs = vd / (id + 0.0001f);

+ 0 - 2
Applications/foc/motor/motor.c

@@ -1714,8 +1714,6 @@ void Sched_MC_mTask(void) {
 
 	throttle_detect(motor.b_start);
 
-	F_all_Calc();
-
 #ifdef CONFIG_CRUISE_ENABLE_ACCL
 	mc_process_curise();
 #endif

+ 3 - 4
Applications/foc/motor/motor_param.c

@@ -373,11 +373,10 @@ void motor_mpta_fw_lookup(float rpm, float torque, dq_t *dq_out) {
 		}
 	}
 #else
-#if CONFIG_CONTRL_FW_ENABLE
-	if ((mot_contrl()->duty_filterd >= CONFIG_CONTRL_FW_START_DUTY) && (CONFIG_CONTRL_FW_START_DUTY < CONFIG_SVM_MODULATION)) {
-		d = -f_map(mot_contrl()->duty_filterd, CONFIG_CONTRL_FW_START_DUTY, CONFIG_SVM_MODULATION, 0, mc_conf()->m.max_fw_id);
+	float fw_start_duty = (float)mc_conf()->m.fw_duty_start/100.0f;
+	if (mc_conf()->m.fw_enable && (mot_contrl()->duty_filterd >= fw_start_duty)) {
+		d = -f_map(mot_contrl()->duty_filterd, fw_start_duty, CONFIG_SVM_MODULATION, 0, mc_conf()->m.max_fw_id);
 	}
-#endif
 	q = torque;
 #endif
  	step_towards(&dq_out->d, d, 10.0f);

+ 57 - 69
Project/MC105_V3.uvoptx

@@ -406,18 +406,6 @@
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
       <bDave2>0</bDave2>
-      <PathWithFileName>..\Applications\foc\core\F_Calc.c</PathWithFileName>
-      <FilenameWithoutPath>F_Calc.c</FilenameWithoutPath>
-      <RteFlg>0</RteFlg>
-      <bShared>0</bShared>
-    </File>
-    <File>
-      <GroupNumber>2</GroupNumber>
-      <FileNumber>15</FileNumber>
-      <FileType>1</FileType>
-      <tvExp>0</tvExp>
-      <tvExpOptDlg>0</tvExpOptDlg>
-      <bDave2>0</bDave2>
       <PathWithFileName>..\Applications\foc\core\etcs.c</PathWithFileName>
       <FilenameWithoutPath>etcs.c</FilenameWithoutPath>
       <RteFlg>0</RteFlg>
@@ -425,7 +413,7 @@
     </File>
     <File>
       <GroupNumber>2</GroupNumber>
-      <FileNumber>16</FileNumber>
+      <FileNumber>15</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -437,7 +425,7 @@
     </File>
     <File>
       <GroupNumber>2</GroupNumber>
-      <FileNumber>17</FileNumber>
+      <FileNumber>16</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -457,7 +445,7 @@
     <RteFlg>0</RteFlg>
     <File>
       <GroupNumber>3</GroupNumber>
-      <FileNumber>18</FileNumber>
+      <FileNumber>17</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -469,7 +457,7 @@
     </File>
     <File>
       <GroupNumber>3</GroupNumber>
-      <FileNumber>19</FileNumber>
+      <FileNumber>18</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -481,7 +469,7 @@
     </File>
     <File>
       <GroupNumber>3</GroupNumber>
-      <FileNumber>20</FileNumber>
+      <FileNumber>19</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -493,7 +481,7 @@
     </File>
     <File>
       <GroupNumber>3</GroupNumber>
-      <FileNumber>21</FileNumber>
+      <FileNumber>20</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -505,7 +493,7 @@
     </File>
     <File>
       <GroupNumber>3</GroupNumber>
-      <FileNumber>22</FileNumber>
+      <FileNumber>21</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -517,7 +505,7 @@
     </File>
     <File>
       <GroupNumber>3</GroupNumber>
-      <FileNumber>23</FileNumber>
+      <FileNumber>22</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -529,7 +517,7 @@
     </File>
     <File>
       <GroupNumber>3</GroupNumber>
-      <FileNumber>24</FileNumber>
+      <FileNumber>23</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -541,7 +529,7 @@
     </File>
     <File>
       <GroupNumber>3</GroupNumber>
-      <FileNumber>25</FileNumber>
+      <FileNumber>24</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -561,7 +549,7 @@
     <RteFlg>0</RteFlg>
     <File>
       <GroupNumber>4</GroupNumber>
-      <FileNumber>26</FileNumber>
+      <FileNumber>25</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -573,7 +561,7 @@
     </File>
     <File>
       <GroupNumber>4</GroupNumber>
-      <FileNumber>27</FileNumber>
+      <FileNumber>26</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -585,7 +573,7 @@
     </File>
     <File>
       <GroupNumber>4</GroupNumber>
-      <FileNumber>28</FileNumber>
+      <FileNumber>27</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -605,7 +593,7 @@
     <RteFlg>0</RteFlg>
     <File>
       <GroupNumber>5</GroupNumber>
-      <FileNumber>29</FileNumber>
+      <FileNumber>28</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -617,7 +605,7 @@
     </File>
     <File>
       <GroupNumber>5</GroupNumber>
-      <FileNumber>30</FileNumber>
+      <FileNumber>29</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -629,7 +617,7 @@
     </File>
     <File>
       <GroupNumber>5</GroupNumber>
-      <FileNumber>31</FileNumber>
+      <FileNumber>30</FileNumber>
       <FileType>4</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -641,7 +629,7 @@
     </File>
     <File>
       <GroupNumber>5</GroupNumber>
-      <FileNumber>32</FileNumber>
+      <FileNumber>31</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -661,7 +649,7 @@
     <RteFlg>0</RteFlg>
     <File>
       <GroupNumber>6</GroupNumber>
-      <FileNumber>33</FileNumber>
+      <FileNumber>32</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -673,7 +661,7 @@
     </File>
     <File>
       <GroupNumber>6</GroupNumber>
-      <FileNumber>34</FileNumber>
+      <FileNumber>33</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -685,7 +673,7 @@
     </File>
     <File>
       <GroupNumber>6</GroupNumber>
-      <FileNumber>35</FileNumber>
+      <FileNumber>34</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -697,7 +685,7 @@
     </File>
     <File>
       <GroupNumber>6</GroupNumber>
-      <FileNumber>36</FileNumber>
+      <FileNumber>35</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -709,7 +697,7 @@
     </File>
     <File>
       <GroupNumber>6</GroupNumber>
-      <FileNumber>37</FileNumber>
+      <FileNumber>36</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -721,7 +709,7 @@
     </File>
     <File>
       <GroupNumber>6</GroupNumber>
-      <FileNumber>38</FileNumber>
+      <FileNumber>37</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -733,7 +721,7 @@
     </File>
     <File>
       <GroupNumber>6</GroupNumber>
-      <FileNumber>39</FileNumber>
+      <FileNumber>38</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -745,7 +733,7 @@
     </File>
     <File>
       <GroupNumber>6</GroupNumber>
-      <FileNumber>40</FileNumber>
+      <FileNumber>39</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -757,7 +745,7 @@
     </File>
     <File>
       <GroupNumber>6</GroupNumber>
-      <FileNumber>41</FileNumber>
+      <FileNumber>40</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -769,7 +757,7 @@
     </File>
     <File>
       <GroupNumber>6</GroupNumber>
-      <FileNumber>42</FileNumber>
+      <FileNumber>41</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -781,7 +769,7 @@
     </File>
     <File>
       <GroupNumber>6</GroupNumber>
-      <FileNumber>43</FileNumber>
+      <FileNumber>42</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -793,7 +781,7 @@
     </File>
     <File>
       <GroupNumber>6</GroupNumber>
-      <FileNumber>44</FileNumber>
+      <FileNumber>43</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -805,7 +793,7 @@
     </File>
     <File>
       <GroupNumber>6</GroupNumber>
-      <FileNumber>45</FileNumber>
+      <FileNumber>44</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -825,7 +813,7 @@
     <RteFlg>0</RteFlg>
     <File>
       <GroupNumber>7</GroupNumber>
-      <FileNumber>46</FileNumber>
+      <FileNumber>45</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -837,7 +825,7 @@
     </File>
     <File>
       <GroupNumber>7</GroupNumber>
-      <FileNumber>47</FileNumber>
+      <FileNumber>46</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -849,7 +837,7 @@
     </File>
     <File>
       <GroupNumber>7</GroupNumber>
-      <FileNumber>48</FileNumber>
+      <FileNumber>47</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -861,7 +849,7 @@
     </File>
     <File>
       <GroupNumber>7</GroupNumber>
-      <FileNumber>49</FileNumber>
+      <FileNumber>48</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -873,7 +861,7 @@
     </File>
     <File>
       <GroupNumber>7</GroupNumber>
-      <FileNumber>50</FileNumber>
+      <FileNumber>49</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -893,7 +881,7 @@
     <RteFlg>0</RteFlg>
     <File>
       <GroupNumber>8</GroupNumber>
-      <FileNumber>51</FileNumber>
+      <FileNumber>50</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -905,7 +893,7 @@
     </File>
     <File>
       <GroupNumber>8</GroupNumber>
-      <FileNumber>52</FileNumber>
+      <FileNumber>51</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -917,7 +905,7 @@
     </File>
     <File>
       <GroupNumber>8</GroupNumber>
-      <FileNumber>53</FileNumber>
+      <FileNumber>52</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -937,7 +925,7 @@
     <RteFlg>0</RteFlg>
     <File>
       <GroupNumber>9</GroupNumber>
-      <FileNumber>54</FileNumber>
+      <FileNumber>53</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -949,7 +937,7 @@
     </File>
     <File>
       <GroupNumber>9</GroupNumber>
-      <FileNumber>55</FileNumber>
+      <FileNumber>54</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -961,7 +949,7 @@
     </File>
     <File>
       <GroupNumber>9</GroupNumber>
-      <FileNumber>56</FileNumber>
+      <FileNumber>55</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -973,7 +961,7 @@
     </File>
     <File>
       <GroupNumber>9</GroupNumber>
-      <FileNumber>57</FileNumber>
+      <FileNumber>56</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -985,7 +973,7 @@
     </File>
     <File>
       <GroupNumber>9</GroupNumber>
-      <FileNumber>58</FileNumber>
+      <FileNumber>57</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -997,7 +985,7 @@
     </File>
     <File>
       <GroupNumber>9</GroupNumber>
-      <FileNumber>59</FileNumber>
+      <FileNumber>58</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -1009,7 +997,7 @@
     </File>
     <File>
       <GroupNumber>9</GroupNumber>
-      <FileNumber>60</FileNumber>
+      <FileNumber>59</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -1021,7 +1009,7 @@
     </File>
     <File>
       <GroupNumber>9</GroupNumber>
-      <FileNumber>61</FileNumber>
+      <FileNumber>60</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -1033,7 +1021,7 @@
     </File>
     <File>
       <GroupNumber>9</GroupNumber>
-      <FileNumber>62</FileNumber>
+      <FileNumber>61</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -1045,7 +1033,7 @@
     </File>
     <File>
       <GroupNumber>9</GroupNumber>
-      <FileNumber>63</FileNumber>
+      <FileNumber>62</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -1057,7 +1045,7 @@
     </File>
     <File>
       <GroupNumber>9</GroupNumber>
-      <FileNumber>64</FileNumber>
+      <FileNumber>63</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -1069,7 +1057,7 @@
     </File>
     <File>
       <GroupNumber>9</GroupNumber>
-      <FileNumber>65</FileNumber>
+      <FileNumber>64</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -1081,7 +1069,7 @@
     </File>
     <File>
       <GroupNumber>9</GroupNumber>
-      <FileNumber>66</FileNumber>
+      <FileNumber>65</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -1093,7 +1081,7 @@
     </File>
     <File>
       <GroupNumber>9</GroupNumber>
-      <FileNumber>67</FileNumber>
+      <FileNumber>66</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -1105,7 +1093,7 @@
     </File>
     <File>
       <GroupNumber>9</GroupNumber>
-      <FileNumber>68</FileNumber>
+      <FileNumber>67</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -1117,7 +1105,7 @@
     </File>
     <File>
       <GroupNumber>9</GroupNumber>
-      <FileNumber>69</FileNumber>
+      <FileNumber>68</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -1137,7 +1125,7 @@
     <RteFlg>0</RteFlg>
     <File>
       <GroupNumber>10</GroupNumber>
-      <FileNumber>70</FileNumber>
+      <FileNumber>69</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -1149,7 +1137,7 @@
     </File>
     <File>
       <GroupNumber>10</GroupNumber>
-      <FileNumber>71</FileNumber>
+      <FileNumber>70</FileNumber>
       <FileType>2</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -1161,7 +1149,7 @@
     </File>
     <File>
       <GroupNumber>10</GroupNumber>
-      <FileNumber>72</FileNumber>
+      <FileNumber>71</FileNumber>
       <FileType>2</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>

+ 2 - 7
Project/MC105_V3.uvprojx

@@ -337,9 +337,9 @@
             <v6Rtti>0</v6Rtti>
             <VariousControls>
               <MiscControls>--gnu</MiscControls>
-              <Define>USE_STDPERIPH_DRIVER,GD32F30X_CL,CONFIG_MC105_HW_V3,CONFIG_CAN_IAP</Define>
+              <Define>USE_STDPERIPH_DRIVER,GD32F30X_CL,CONFIG_MC105_HW_V3,CONFIG_CAN_IAP,CONFIG_Motor_Z100_Encoder</Define>
               <Undefine></Undefine>
-              <IncludePath>..\Librarys\CMSIS\Include,..\Librarys\CMSIS\GD\GD32F30x\Include,..\Librarys\GD32F30x_Drivers\include,..\Applications;..\Simulink\PMSM_Controller_ert_rtw</IncludePath>
+              <IncludePath>..\Librarys\CMSIS\Include,..\Librarys\CMSIS\GD\GD32F30x\Include,..\Librarys\GD32F30x_Drivers\include,..\Applications;..\</IncludePath>
             </VariousControls>
           </Cads>
           <Aads>
@@ -453,11 +453,6 @@
               <FileType>1</FileType>
               <FilePath>..\Applications\foc\core\ladrc_observer.c</FilePath>
             </File>
-            <File>
-              <FileName>F_Calc.c</FileName>
-              <FileType>1</FileType>
-              <FilePath>..\Applications\foc\core\F_Calc.c</FilePath>
-            </File>
             <File>
               <FileName>etcs.c</FileName>
               <FileType>1</FileType>

+ 60 - 72
Project/MC124.uvoptx

@@ -73,7 +73,7 @@
         <LExpSel>0</LExpSel>
       </OPTXL>
       <OPTFL>
-        <tvExp>0</tvExp>
+        <tvExp>1</tvExp>
         <tvExpOptDlg>0</tvExpOptDlg>
         <IsCurrentTarget>1</IsCurrentTarget>
       </OPTFL>
@@ -227,7 +227,7 @@
 
   <Group>
     <GroupName>Foc</GroupName>
-    <tvExp>0</tvExp>
+    <tvExp>1</tvExp>
     <tvExpOptDlg>0</tvExpOptDlg>
     <cbSel>0</cbSel>
     <RteFlg>0</RteFlg>
@@ -346,18 +346,6 @@
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
       <bDave2>0</bDave2>
-      <PathWithFileName>..\Applications\foc\core\F_Calc.c</PathWithFileName>
-      <FilenameWithoutPath>F_Calc.c</FilenameWithoutPath>
-      <RteFlg>0</RteFlg>
-      <bShared>0</bShared>
-    </File>
-    <File>
-      <GroupNumber>2</GroupNumber>
-      <FileNumber>15</FileNumber>
-      <FileType>1</FileType>
-      <tvExp>0</tvExp>
-      <tvExpOptDlg>0</tvExpOptDlg>
-      <bDave2>0</bDave2>
       <PathWithFileName>..\Applications\foc\core\etcs.c</PathWithFileName>
       <FilenameWithoutPath>etcs.c</FilenameWithoutPath>
       <RteFlg>0</RteFlg>
@@ -365,7 +353,7 @@
     </File>
     <File>
       <GroupNumber>2</GroupNumber>
-      <FileNumber>16</FileNumber>
+      <FileNumber>15</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -377,7 +365,7 @@
     </File>
     <File>
       <GroupNumber>2</GroupNumber>
-      <FileNumber>17</FileNumber>
+      <FileNumber>16</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -391,13 +379,13 @@
 
   <Group>
     <GroupName>Motor</GroupName>
-    <tvExp>0</tvExp>
+    <tvExp>1</tvExp>
     <tvExpOptDlg>0</tvExpOptDlg>
     <cbSel>0</cbSel>
     <RteFlg>0</RteFlg>
     <File>
       <GroupNumber>3</GroupNumber>
-      <FileNumber>18</FileNumber>
+      <FileNumber>17</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -409,7 +397,7 @@
     </File>
     <File>
       <GroupNumber>3</GroupNumber>
-      <FileNumber>19</FileNumber>
+      <FileNumber>18</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -421,7 +409,7 @@
     </File>
     <File>
       <GroupNumber>3</GroupNumber>
-      <FileNumber>20</FileNumber>
+      <FileNumber>19</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -433,7 +421,7 @@
     </File>
     <File>
       <GroupNumber>3</GroupNumber>
-      <FileNumber>21</FileNumber>
+      <FileNumber>20</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -445,7 +433,7 @@
     </File>
     <File>
       <GroupNumber>3</GroupNumber>
-      <FileNumber>22</FileNumber>
+      <FileNumber>21</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -457,7 +445,7 @@
     </File>
     <File>
       <GroupNumber>3</GroupNumber>
-      <FileNumber>23</FileNumber>
+      <FileNumber>22</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -469,7 +457,7 @@
     </File>
     <File>
       <GroupNumber>3</GroupNumber>
-      <FileNumber>24</FileNumber>
+      <FileNumber>23</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -481,7 +469,7 @@
     </File>
     <File>
       <GroupNumber>3</GroupNumber>
-      <FileNumber>25</FileNumber>
+      <FileNumber>24</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -501,7 +489,7 @@
     <RteFlg>0</RteFlg>
     <File>
       <GroupNumber>4</GroupNumber>
-      <FileNumber>26</FileNumber>
+      <FileNumber>25</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -513,7 +501,7 @@
     </File>
     <File>
       <GroupNumber>4</GroupNumber>
-      <FileNumber>27</FileNumber>
+      <FileNumber>26</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -525,7 +513,7 @@
     </File>
     <File>
       <GroupNumber>4</GroupNumber>
-      <FileNumber>28</FileNumber>
+      <FileNumber>27</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -545,7 +533,7 @@
     <RteFlg>0</RteFlg>
     <File>
       <GroupNumber>5</GroupNumber>
-      <FileNumber>29</FileNumber>
+      <FileNumber>28</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -557,7 +545,7 @@
     </File>
     <File>
       <GroupNumber>5</GroupNumber>
-      <FileNumber>30</FileNumber>
+      <FileNumber>29</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -569,7 +557,7 @@
     </File>
     <File>
       <GroupNumber>5</GroupNumber>
-      <FileNumber>31</FileNumber>
+      <FileNumber>30</FileNumber>
       <FileType>4</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -581,7 +569,7 @@
     </File>
     <File>
       <GroupNumber>5</GroupNumber>
-      <FileNumber>32</FileNumber>
+      <FileNumber>31</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -601,7 +589,7 @@
     <RteFlg>0</RteFlg>
     <File>
       <GroupNumber>6</GroupNumber>
-      <FileNumber>33</FileNumber>
+      <FileNumber>32</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -613,7 +601,7 @@
     </File>
     <File>
       <GroupNumber>6</GroupNumber>
-      <FileNumber>34</FileNumber>
+      <FileNumber>33</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -625,7 +613,7 @@
     </File>
     <File>
       <GroupNumber>6</GroupNumber>
-      <FileNumber>35</FileNumber>
+      <FileNumber>34</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -637,7 +625,7 @@
     </File>
     <File>
       <GroupNumber>6</GroupNumber>
-      <FileNumber>36</FileNumber>
+      <FileNumber>35</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -649,7 +637,7 @@
     </File>
     <File>
       <GroupNumber>6</GroupNumber>
-      <FileNumber>37</FileNumber>
+      <FileNumber>36</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -661,7 +649,7 @@
     </File>
     <File>
       <GroupNumber>6</GroupNumber>
-      <FileNumber>38</FileNumber>
+      <FileNumber>37</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -673,7 +661,7 @@
     </File>
     <File>
       <GroupNumber>6</GroupNumber>
-      <FileNumber>39</FileNumber>
+      <FileNumber>38</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -685,7 +673,7 @@
     </File>
     <File>
       <GroupNumber>6</GroupNumber>
-      <FileNumber>40</FileNumber>
+      <FileNumber>39</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -697,7 +685,7 @@
     </File>
     <File>
       <GroupNumber>6</GroupNumber>
-      <FileNumber>41</FileNumber>
+      <FileNumber>40</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -709,7 +697,7 @@
     </File>
     <File>
       <GroupNumber>6</GroupNumber>
-      <FileNumber>42</FileNumber>
+      <FileNumber>41</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -721,7 +709,7 @@
     </File>
     <File>
       <GroupNumber>6</GroupNumber>
-      <FileNumber>43</FileNumber>
+      <FileNumber>42</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -733,7 +721,7 @@
     </File>
     <File>
       <GroupNumber>6</GroupNumber>
-      <FileNumber>44</FileNumber>
+      <FileNumber>43</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -745,7 +733,7 @@
     </File>
     <File>
       <GroupNumber>6</GroupNumber>
-      <FileNumber>45</FileNumber>
+      <FileNumber>44</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -765,7 +753,7 @@
     <RteFlg>0</RteFlg>
     <File>
       <GroupNumber>7</GroupNumber>
-      <FileNumber>46</FileNumber>
+      <FileNumber>45</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -777,7 +765,7 @@
     </File>
     <File>
       <GroupNumber>7</GroupNumber>
-      <FileNumber>47</FileNumber>
+      <FileNumber>46</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -789,7 +777,7 @@
     </File>
     <File>
       <GroupNumber>7</GroupNumber>
-      <FileNumber>48</FileNumber>
+      <FileNumber>47</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -801,7 +789,7 @@
     </File>
     <File>
       <GroupNumber>7</GroupNumber>
-      <FileNumber>49</FileNumber>
+      <FileNumber>48</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -813,7 +801,7 @@
     </File>
     <File>
       <GroupNumber>7</GroupNumber>
-      <FileNumber>50</FileNumber>
+      <FileNumber>49</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -833,7 +821,7 @@
     <RteFlg>0</RteFlg>
     <File>
       <GroupNumber>8</GroupNumber>
-      <FileNumber>51</FileNumber>
+      <FileNumber>50</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -845,7 +833,7 @@
     </File>
     <File>
       <GroupNumber>8</GroupNumber>
-      <FileNumber>52</FileNumber>
+      <FileNumber>51</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -857,7 +845,7 @@
     </File>
     <File>
       <GroupNumber>8</GroupNumber>
-      <FileNumber>53</FileNumber>
+      <FileNumber>52</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -877,7 +865,7 @@
     <RteFlg>0</RteFlg>
     <File>
       <GroupNumber>9</GroupNumber>
-      <FileNumber>54</FileNumber>
+      <FileNumber>53</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -889,7 +877,7 @@
     </File>
     <File>
       <GroupNumber>9</GroupNumber>
-      <FileNumber>55</FileNumber>
+      <FileNumber>54</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -901,7 +889,7 @@
     </File>
     <File>
       <GroupNumber>9</GroupNumber>
-      <FileNumber>56</FileNumber>
+      <FileNumber>55</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -913,7 +901,7 @@
     </File>
     <File>
       <GroupNumber>9</GroupNumber>
-      <FileNumber>57</FileNumber>
+      <FileNumber>56</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -925,7 +913,7 @@
     </File>
     <File>
       <GroupNumber>9</GroupNumber>
-      <FileNumber>58</FileNumber>
+      <FileNumber>57</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -937,7 +925,7 @@
     </File>
     <File>
       <GroupNumber>9</GroupNumber>
-      <FileNumber>59</FileNumber>
+      <FileNumber>58</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -949,7 +937,7 @@
     </File>
     <File>
       <GroupNumber>9</GroupNumber>
-      <FileNumber>60</FileNumber>
+      <FileNumber>59</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -961,7 +949,7 @@
     </File>
     <File>
       <GroupNumber>9</GroupNumber>
-      <FileNumber>61</FileNumber>
+      <FileNumber>60</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -973,7 +961,7 @@
     </File>
     <File>
       <GroupNumber>9</GroupNumber>
-      <FileNumber>62</FileNumber>
+      <FileNumber>61</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -985,7 +973,7 @@
     </File>
     <File>
       <GroupNumber>9</GroupNumber>
-      <FileNumber>63</FileNumber>
+      <FileNumber>62</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -997,7 +985,7 @@
     </File>
     <File>
       <GroupNumber>9</GroupNumber>
-      <FileNumber>64</FileNumber>
+      <FileNumber>63</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -1009,7 +997,7 @@
     </File>
     <File>
       <GroupNumber>9</GroupNumber>
-      <FileNumber>65</FileNumber>
+      <FileNumber>64</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -1021,7 +1009,7 @@
     </File>
     <File>
       <GroupNumber>9</GroupNumber>
-      <FileNumber>66</FileNumber>
+      <FileNumber>65</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -1033,7 +1021,7 @@
     </File>
     <File>
       <GroupNumber>9</GroupNumber>
-      <FileNumber>67</FileNumber>
+      <FileNumber>66</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -1045,7 +1033,7 @@
     </File>
     <File>
       <GroupNumber>9</GroupNumber>
-      <FileNumber>68</FileNumber>
+      <FileNumber>67</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -1057,7 +1045,7 @@
     </File>
     <File>
       <GroupNumber>9</GroupNumber>
-      <FileNumber>69</FileNumber>
+      <FileNumber>68</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -1077,7 +1065,7 @@
     <RteFlg>0</RteFlg>
     <File>
       <GroupNumber>10</GroupNumber>
-      <FileNumber>70</FileNumber>
+      <FileNumber>69</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -1089,7 +1077,7 @@
     </File>
     <File>
       <GroupNumber>10</GroupNumber>
-      <FileNumber>71</FileNumber>
+      <FileNumber>70</FileNumber>
       <FileType>2</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -1101,7 +1089,7 @@
     </File>
     <File>
       <GroupNumber>10</GroupNumber>
-      <FileNumber>72</FileNumber>
+      <FileNumber>71</FileNumber>
       <FileType>2</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>

+ 2 - 7
Project/MC124.uvprojx

@@ -337,9 +337,9 @@
             <v6Rtti>0</v6Rtti>
             <VariousControls>
               <MiscControls>--gnu</MiscControls>
-              <Define>USE_STDPERIPH_DRIVER,GD32F30X_CL,CONFIG_BOARD_MC124,CONFIG_CAN_IAP</Define>
+              <Define>USE_STDPERIPH_DRIVER,GD32F30X_CL,CONFIG_BOARD_MC124,CONFIG_CAN_IAP,CONFIG_Motor_R1_Encoder</Define>
               <Undefine></Undefine>
-              <IncludePath>..\Librarys\CMSIS\Include,..\Librarys\CMSIS\GD\GD32F30x\Include,..\Librarys\GD32F30x_Drivers\include,..\Applications;..\Simulink\PMSM_Controller_ert_rtw</IncludePath>
+              <IncludePath>..\Librarys\CMSIS\Include,..\Librarys\CMSIS\GD\GD32F30x\Include,..\Librarys\GD32F30x_Drivers\include,..\Applications;..\</IncludePath>
             </VariousControls>
           </Cads>
           <Aads>
@@ -453,11 +453,6 @@
               <FileType>1</FileType>
               <FilePath>..\Applications\foc\core\ladrc_observer.c</FilePath>
             </File>
-            <File>
-              <FileName>F_Calc.c</FileName>
-              <FileType>1</FileType>
-              <FilePath>..\Applications\foc\core\F_Calc.c</FilePath>
-            </File>
             <File>
               <FileName>etcs.c</FileName>
               <FileType>1</FileType>

+ 220 - 0
configs/autogen_config_R1_enc.h

@@ -0,0 +1,220 @@
+/* auto gen 2024/2/19 10:04:23*/
+#ifndef _AUTOGEN_CONFIG_H__
+#define _AUTOGEN_CONFIG_H__
+
+#define CONFIG_Version 1
+#define CONFIG_Motor_Poles  5
+#define CONFIG_Motor_Ld  5.4E-05f
+#define CONFIG_Motor_Lq  7E-05
+#define CONFIG_Motor_Rs  0.015f
+#define CONFIG_Motor_Flux  0.018f
+#define CONFIG_Motor_PLLBand  200
+#define CONFIG_Motor_EpmPLL  400
+#define CONFIG_Motor_PosPLL  500
+#define CONFIG_Motor_FwEnable  1
+#define CONFIG_Motor_FwDutyStart  90
+#define CONFIG_Motor_MaxFwDCurr  100
+#define CONFIG_Motor_MaxTorque  350
+#define CONFIG_Motor_EncOffset  -2
+#define CONFIG_Foc_MaxDCVol  90
+#define CONFIG_Foc_MinDCVol  40
+#define CONFIG_Foc_MaxPhaseCurr  350
+#define CONFIG_Foc_MaxRPM  9000
+#define CONFIG_Foc_MaxEPMRPM  300
+#define CONFIG_Foc_MaxEPMTorque  100
+#define CONFIG_Foc_MaxEPMRPMBk  170
+#define CONFIG_Foc_MaxEPMTorqueBk  80
+#define CONFIG_Foc_MaxTorque  350
+#define CONFIG_Foc_MaxEbrkTorque  40
+#define CONFIG_Foc_MaxIDC  200
+#define CONFIG_Foc_MaxAutoHoldTorque  100
+#define CONFIG_Foc_ThroStartVol  0.9f
+#define CONFIG_Foc_ThroEndVol  4
+#define CONFIG_Foc_ThroMinVol  0.4f
+#define CONFIG_Foc_ThroMaxVol  4.6f
+#define CONFIG_Foc_CurrCtrlBandWith  400
+#define CONFIG_Foc_ThroDecTime  50
+#define CONFIG_Foc_PID_VelLim_Kp 0.15f
+#define CONFIG_Foc_PID_VelLim_Ki 2.5f
+#define CONFIG_Foc_PID_VelLim_Kd 0
+#define CONFIG_Foc_PID_VelCtrl_Kp 0.2f
+#define CONFIG_Foc_PID_VelCtrl_Ki 0.02f
+#define CONFIG_Foc_PID_VelCtrl_Kd 0
+#define CONFIG_Foc_PID_Autohold_Kp 0.01f
+#define CONFIG_Foc_PID_Autohold_Ki 0.2f
+#define CONFIG_Foc_PID_Autohold_Kd 0
+#define CONFIG_Foc_PID_IDCLim_Kp 0
+#define CONFIG_Foc_PID_IDCLim_Ki 5
+#define CONFIG_Foc_PID_IDCLim_Kd 0
+#define CONFIG_Foc_PID_EPM_Kp 0.2f
+#define CONFIG_Foc_PID_EPM_Ki 7.5f
+#define CONFIG_Foc_PID_EPM_Kd 0
+#define CONFIG_Settings_AutoHold  1
+#define CONFIG_Settings_BrkShutPower  1
+#define CONFIG_Settings_TcsEnable  0
+#define CONFIG_Gear0_MaxSpeed 3500
+#define CONFIG_Gear0_MaxTorque 250
+#define CONFIG_Gear0_MaxIdc 30
+#define CONFIG_Gear0_ZeroAccl 300
+#define CONFIG_Gear0_NormalAccl 1000
+#define CONFIG_Gear0_Torque0 100
+#define CONFIG_Gear0_Torque1 100
+#define CONFIG_Gear0_Torque2 100
+#define CONFIG_Gear0_Torque3 80
+#define CONFIG_Gear0_Torque4 20
+#define CONFIG_Gear0_Torque5 0
+#define CONFIG_Gear0_Torque6 0
+#define CONFIG_Gear0_Torque7 0
+#define CONFIG_Gear0_Torque8 0
+#define CONFIG_Gear0_Torque9 0
+#define CONFIG_Gear1_MaxSpeed 4500
+#define CONFIG_Gear1_MaxTorque 250
+#define CONFIG_Gear1_MaxIdc 45
+#define CONFIG_Gear1_ZeroAccl 300
+#define CONFIG_Gear1_NormalAccl 500
+#define CONFIG_Gear1_Torque0 100
+#define CONFIG_Gear1_Torque1 100
+#define CONFIG_Gear1_Torque2 100
+#define CONFIG_Gear1_Torque3 80
+#define CONFIG_Gear1_Torque4 60
+#define CONFIG_Gear1_Torque5 50
+#define CONFIG_Gear1_Torque6 50
+#define CONFIG_Gear1_Torque7 0
+#define CONFIG_Gear1_Torque8 0
+#define CONFIG_Gear1_Torque9 0
+#define CONFIG_Gear2_MaxSpeed 5500
+#define CONFIG_Gear2_MaxTorque 300
+#define CONFIG_Gear2_MaxIdc 60
+#define CONFIG_Gear2_ZeroAccl 500
+#define CONFIG_Gear2_NormalAccl 250
+#define CONFIG_Gear2_Torque0 100
+#define CONFIG_Gear2_Torque1 100
+#define CONFIG_Gear2_Torque2 100
+#define CONFIG_Gear2_Torque3 90
+#define CONFIG_Gear2_Torque4 80
+#define CONFIG_Gear2_Torque5 70
+#define CONFIG_Gear2_Torque6 50
+#define CONFIG_Gear2_Torque7 0
+#define CONFIG_Gear2_Torque8 0
+#define CONFIG_Gear2_Torque9 0
+#define CONFIG_Gear3_MaxSpeed 7000
+#define CONFIG_Gear3_MaxTorque 300
+#define CONFIG_Gear3_MaxIdc 150
+#define CONFIG_Gear3_ZeroAccl 500
+#define CONFIG_Gear3_NormalAccl 100
+#define CONFIG_Gear3_Torque0 100
+#define CONFIG_Gear3_Torque1 100
+#define CONFIG_Gear3_Torque2 100
+#define CONFIG_Gear3_Torque3 90
+#define CONFIG_Gear3_Torque4 80
+#define CONFIG_Gear3_Torque5 70
+#define CONFIG_Gear3_Torque6 70
+#define CONFIG_Gear3_Torque7 50
+#define CONFIG_Gear3_Torque8 50
+#define CONFIG_Gear3_Torque9 0
+#define CONFIG_GearLow0_MaxSpeed 1000
+#define CONFIG_GearLow0_MaxTorque 100
+#define CONFIG_GearLow0_MaxIdc 30
+#define CONFIG_GearLow0_ZeroAccl 500
+#define CONFIG_GearLow0_NormalAccl 100
+#define CONFIG_GearLow0_Torque0 100
+#define CONFIG_GearLow0_Torque1 100
+#define CONFIG_GearLow0_Torque2 100
+#define CONFIG_GearLow0_Torque3 100
+#define CONFIG_GearLow0_Torque4 100
+#define CONFIG_GearLow0_Torque5 100
+#define CONFIG_GearLow0_Torque6 100
+#define CONFIG_GearLow0_Torque7 100
+#define CONFIG_GearLow0_Torque8 0
+#define CONFIG_GearLow0_Torque9 0
+#define CONFIG_GearLow1_MaxSpeed 1000
+#define CONFIG_GearLow1_MaxTorque 100
+#define CONFIG_GearLow1_MaxIdc 30
+#define CONFIG_GearLow1_ZeroAccl 500
+#define CONFIG_GearLow1_NormalAccl 100
+#define CONFIG_GearLow1_Torque0 100
+#define CONFIG_GearLow1_Torque1 100
+#define CONFIG_GearLow1_Torque2 100
+#define CONFIG_GearLow1_Torque3 100
+#define CONFIG_GearLow1_Torque4 100
+#define CONFIG_GearLow1_Torque5 100
+#define CONFIG_GearLow1_Torque6 100
+#define CONFIG_GearLow1_Torque7 100
+#define CONFIG_GearLow1_Torque8 0
+#define CONFIG_GearLow1_Torque9 0
+#define CONFIG_GearLow2_MaxSpeed 1000
+#define CONFIG_GearLow2_MaxTorque 100
+#define CONFIG_GearLow2_MaxIdc 30
+#define CONFIG_GearLow2_ZeroAccl 500
+#define CONFIG_GearLow2_NormalAccl 100
+#define CONFIG_GearLow2_Torque0 100
+#define CONFIG_GearLow2_Torque1 100
+#define CONFIG_GearLow2_Torque2 100
+#define CONFIG_GearLow2_Torque3 100
+#define CONFIG_GearLow2_Torque4 100
+#define CONFIG_GearLow2_Torque5 100
+#define CONFIG_GearLow2_Torque6 100
+#define CONFIG_GearLow2_Torque7 100
+#define CONFIG_GearLow2_Torque8 0
+#define CONFIG_GearLow2_Torque9 0
+#define CONFIG_GearLow3_MaxSpeed 1000
+#define CONFIG_GearLow3_MaxTorque 100
+#define CONFIG_GearLow3_MaxIdc 30
+#define CONFIG_GearLow3_ZeroAccl 500
+#define CONFIG_GearLow3_NormalAccl 100
+#define CONFIG_GearLow3_Torque0 100
+#define CONFIG_GearLow3_Torque1 100
+#define CONFIG_GearLow3_Torque2 100
+#define CONFIG_GearLow3_Torque3 100
+#define CONFIG_GearLow3_Torque4 100
+#define CONFIG_GearLow3_Torque5 100
+#define CONFIG_GearLow3_Torque6 100
+#define CONFIG_GearLow3_Torque7 100
+#define CONFIG_GearLow3_Torque8 0
+#define CONFIG_GearLow3_Torque9 0
+#define CONFIG_Protect_Motor_Level0_Entry 130
+#define CONFIG_Protect_Motor_Level0_Exit 120
+#define CONFIG_Protect_Motor_Level0_Value 0
+#define CONFIG_Protect_Motor_Level1_Entry 120
+#define CONFIG_Protect_Motor_Level1_Exit 110
+#define CONFIG_Protect_Motor_Level1_Value 34
+#define CONFIG_Protect_Motor_Level2_Entry 100
+#define CONFIG_Protect_Motor_Level2_Exit 90
+#define CONFIG_Protect_Motor_Level2_Value 66
+#define CONFIG_Protect_MosFet_Level0_Entry 100
+#define CONFIG_Protect_MosFet_Level0_Exit 95
+#define CONFIG_Protect_MosFet_Level0_Value 0
+#define CONFIG_Protect_MosFet_Level1_Entry 95
+#define CONFIG_Protect_MosFet_Level1_Exit 90
+#define CONFIG_Protect_MosFet_Level1_Value 34
+#define CONFIG_Protect_MosFet_Level2_Entry 90
+#define CONFIG_Protect_MosFet_Level2_Exit 85
+#define CONFIG_Protect_MosFet_Level2_Value 66
+#define CONFIG_Protect_Voltage_Level0_Entry 40
+#define CONFIG_Protect_Voltage_Level0_Exit 42
+#define CONFIG_Protect_Voltage_Level0_Value 0
+#define CONFIG_EnergyRecovery_Level0_Torque 0
+#define CONFIG_EnergyRecovery_Level0_Time 600
+#define CONFIG_EnergyRecovery_Level1_Torque 10
+#define CONFIG_EnergyRecovery_Level1_Time 500
+#define CONFIG_EnergyRecovery_Level2_Torque 15
+#define CONFIG_EnergyRecovery_Level2_Time 400
+#define CONFIG_EnergyRecovery_Level3_Torque 20
+#define CONFIG_EnergyRecovery_Level3_Time 300
+#define CONFIG_EnergyRecovery_Level4_Torque 35
+#define CONFIG_EnergyRecovery_Level4_Time 200
+#define CONFIG_EnergyRecovery_Level5_Torque 40
+#define CONFIG_EnergyRecovery_Level5_Time 200
+#define CONFIG_EnergyRecovery_Level6_Torque 40
+#define CONFIG_EnergyRecovery_Level6_Time 200
+#define CONFIG_EnergyRecovery_Level7_Torque 40
+#define CONFIG_EnergyRecovery_Level7_Time 200
+#define CONFIG_EnergyRecovery_Level8_Torque 40
+#define CONFIG_EnergyRecovery_Level8_Time 200
+#define CONFIG_EnergyRecovery_Level9_Torque 40
+#define CONFIG_EnergyRecovery_Level9_Time 200
+#define CONFIG_CrossZero_Low  2
+#define CONFIG_CrossZero_High  7
+#define CONFIG_CrossZero_MinStep  0.1f
+#define CONFIG_CrossZero_NorStep  5
+#endif /* _AUTOGEN_CONFIG_H__ */ 

+ 220 - 0
configs/autogen_config_z100_enc.h

@@ -0,0 +1,220 @@
+/* auto gen 2024/2/19 16:25:38*/
+#ifndef _AUTOGEN_CONFIG_H__
+#define _AUTOGEN_CONFIG_H__
+
+#define CONFIG_Version 1
+#define CONFIG_Motor_Poles  5
+#define CONFIG_Motor_Ld  5E-05
+#define CONFIG_Motor_Lq  6.9E-05f
+#define CONFIG_Motor_Rs  0.015f
+#define CONFIG_Motor_Flux  0.019f
+#define CONFIG_Motor_PLLBand  200
+#define CONFIG_Motor_EpmPLL  400
+#define CONFIG_Motor_PosPLL  500
+#define CONFIG_Motor_FwEnable  1
+#define CONFIG_Motor_FwDutyStart  90
+#define CONFIG_Motor_MaxFwDCurr  100
+#define CONFIG_Motor_MaxTorque  350
+#define CONFIG_Motor_EncOffset  0
+#define CONFIG_Foc_MaxDCVol  110
+#define CONFIG_Foc_MinDCVol  70
+#define CONFIG_Foc_MaxPhaseCurr  400
+#define CONFIG_Foc_MaxRPM  9000
+#define CONFIG_Foc_MaxEPMRPM  300
+#define CONFIG_Foc_MaxEPMTorque  100
+#define CONFIG_Foc_MaxEPMRPMBk  170
+#define CONFIG_Foc_MaxEPMTorqueBk  80
+#define CONFIG_Foc_MaxTorque  350
+#define CONFIG_Foc_MaxEbrkTorque  40
+#define CONFIG_Foc_MaxIDC  100
+#define CONFIG_Foc_MaxAutoHoldTorque  100
+#define CONFIG_Foc_ThroStartVol  0.85f
+#define CONFIG_Foc_ThroEndVol  4.15f
+#define CONFIG_Foc_ThroMinVol  0.4f
+#define CONFIG_Foc_ThroMaxVol  4.6f
+#define CONFIG_Foc_CurrCtrlBandWith  400
+#define CONFIG_Foc_ThroDecTime  10
+#define CONFIG_Foc_PID_VelLim_Kp 0.2f
+#define CONFIG_Foc_PID_VelLim_Ki 1.5f
+#define CONFIG_Foc_PID_VelLim_Kd 0
+#define CONFIG_Foc_PID_VelCtrl_Kp 0.2f
+#define CONFIG_Foc_PID_VelCtrl_Ki 1.5f
+#define CONFIG_Foc_PID_VelCtrl_Kd 0
+#define CONFIG_Foc_PID_Autohold_Kp 0.01f
+#define CONFIG_Foc_PID_Autohold_Ki 0.2f
+#define CONFIG_Foc_PID_Autohold_Kd 0
+#define CONFIG_Foc_PID_IDCLim_Kp 5
+#define CONFIG_Foc_PID_IDCLim_Ki 15
+#define CONFIG_Foc_PID_IDCLim_Kd 0
+#define CONFIG_Foc_PID_EPM_Kp 0.1f
+#define CONFIG_Foc_PID_EPM_Ki 1
+#define CONFIG_Foc_PID_EPM_Kd 0
+#define CONFIG_Settings_AutoHold  1
+#define CONFIG_Settings_BrkShutPower  1
+#define CONFIG_Settings_TcsEnable  0
+#define CONFIG_Gear0_MaxSpeed 3000
+#define CONFIG_Gear0_MaxTorque 200
+#define CONFIG_Gear0_MaxIdc 45
+#define CONFIG_Gear0_ZeroAccl 500
+#define CONFIG_Gear0_NormalAccl 100
+#define CONFIG_Gear0_Torque0 100
+#define CONFIG_Gear0_Torque1 100
+#define CONFIG_Gear0_Torque2 100
+#define CONFIG_Gear0_Torque3 100
+#define CONFIG_Gear0_Torque4 100
+#define CONFIG_Gear0_Torque5 100
+#define CONFIG_Gear0_Torque6 100
+#define CONFIG_Gear0_Torque7 100
+#define CONFIG_Gear0_Torque8 0
+#define CONFIG_Gear0_Torque9 0
+#define CONFIG_Gear1_MaxSpeed 4500
+#define CONFIG_Gear1_MaxTorque 200
+#define CONFIG_Gear1_MaxIdc 55
+#define CONFIG_Gear1_ZeroAccl 500
+#define CONFIG_Gear1_NormalAccl 100
+#define CONFIG_Gear1_Torque0 100
+#define CONFIG_Gear1_Torque1 100
+#define CONFIG_Gear1_Torque2 100
+#define CONFIG_Gear1_Torque3 100
+#define CONFIG_Gear1_Torque4 100
+#define CONFIG_Gear1_Torque5 100
+#define CONFIG_Gear1_Torque6 100
+#define CONFIG_Gear1_Torque7 100
+#define CONFIG_Gear1_Torque8 0
+#define CONFIG_Gear1_Torque9 0
+#define CONFIG_Gear2_MaxSpeed 6000
+#define CONFIG_Gear2_MaxTorque 300
+#define CONFIG_Gear2_MaxIdc 65
+#define CONFIG_Gear2_ZeroAccl 500
+#define CONFIG_Gear2_NormalAccl 100
+#define CONFIG_Gear2_Torque0 100
+#define CONFIG_Gear2_Torque1 100
+#define CONFIG_Gear2_Torque2 100
+#define CONFIG_Gear2_Torque3 100
+#define CONFIG_Gear2_Torque4 100
+#define CONFIG_Gear2_Torque5 100
+#define CONFIG_Gear2_Torque6 100
+#define CONFIG_Gear2_Torque7 100
+#define CONFIG_Gear2_Torque8 0
+#define CONFIG_Gear2_Torque9 0
+#define CONFIG_Gear3_MaxSpeed 7500
+#define CONFIG_Gear3_MaxTorque 350
+#define CONFIG_Gear3_MaxIdc 80
+#define CONFIG_Gear3_ZeroAccl 500
+#define CONFIG_Gear3_NormalAccl 100
+#define CONFIG_Gear3_Torque0 100
+#define CONFIG_Gear3_Torque1 100
+#define CONFIG_Gear3_Torque2 100
+#define CONFIG_Gear3_Torque3 100
+#define CONFIG_Gear3_Torque4 100
+#define CONFIG_Gear3_Torque5 100
+#define CONFIG_Gear3_Torque6 100
+#define CONFIG_Gear3_Torque7 100
+#define CONFIG_Gear3_Torque8 50
+#define CONFIG_Gear3_Torque9 0
+#define CONFIG_GearLow0_MaxSpeed 1000
+#define CONFIG_GearLow0_MaxTorque 100
+#define CONFIG_GearLow0_MaxIdc 30
+#define CONFIG_GearLow0_ZeroAccl 500
+#define CONFIG_GearLow0_NormalAccl 100
+#define CONFIG_GearLow0_Torque0 100
+#define CONFIG_GearLow0_Torque1 100
+#define CONFIG_GearLow0_Torque2 100
+#define CONFIG_GearLow0_Torque3 100
+#define CONFIG_GearLow0_Torque4 100
+#define CONFIG_GearLow0_Torque5 100
+#define CONFIG_GearLow0_Torque6 100
+#define CONFIG_GearLow0_Torque7 100
+#define CONFIG_GearLow0_Torque8 0
+#define CONFIG_GearLow0_Torque9 0
+#define CONFIG_GearLow1_MaxSpeed 1000
+#define CONFIG_GearLow1_MaxTorque 100
+#define CONFIG_GearLow1_MaxIdc 30
+#define CONFIG_GearLow1_ZeroAccl 500
+#define CONFIG_GearLow1_NormalAccl 100
+#define CONFIG_GearLow1_Torque0 100
+#define CONFIG_GearLow1_Torque1 100
+#define CONFIG_GearLow1_Torque2 100
+#define CONFIG_GearLow1_Torque3 100
+#define CONFIG_GearLow1_Torque4 100
+#define CONFIG_GearLow1_Torque5 100
+#define CONFIG_GearLow1_Torque6 100
+#define CONFIG_GearLow1_Torque7 100
+#define CONFIG_GearLow1_Torque8 0
+#define CONFIG_GearLow1_Torque9 0
+#define CONFIG_GearLow2_MaxSpeed 1000
+#define CONFIG_GearLow2_MaxTorque 100
+#define CONFIG_GearLow2_MaxIdc 30
+#define CONFIG_GearLow2_ZeroAccl 500
+#define CONFIG_GearLow2_NormalAccl 100
+#define CONFIG_GearLow2_Torque0 100
+#define CONFIG_GearLow2_Torque1 100
+#define CONFIG_GearLow2_Torque2 100
+#define CONFIG_GearLow2_Torque3 100
+#define CONFIG_GearLow2_Torque4 100
+#define CONFIG_GearLow2_Torque5 100
+#define CONFIG_GearLow2_Torque6 100
+#define CONFIG_GearLow2_Torque7 100
+#define CONFIG_GearLow2_Torque8 0
+#define CONFIG_GearLow2_Torque9 0
+#define CONFIG_GearLow3_MaxSpeed 1000
+#define CONFIG_GearLow3_MaxTorque 100
+#define CONFIG_GearLow3_MaxIdc 30
+#define CONFIG_GearLow3_ZeroAccl 500
+#define CONFIG_GearLow3_NormalAccl 100
+#define CONFIG_GearLow3_Torque0 100
+#define CONFIG_GearLow3_Torque1 100
+#define CONFIG_GearLow3_Torque2 100
+#define CONFIG_GearLow3_Torque3 100
+#define CONFIG_GearLow3_Torque4 100
+#define CONFIG_GearLow3_Torque5 100
+#define CONFIG_GearLow3_Torque6 100
+#define CONFIG_GearLow3_Torque7 100
+#define CONFIG_GearLow3_Torque8 0
+#define CONFIG_GearLow3_Torque9 0
+#define CONFIG_Protect_Motor_Level0_Entry 130
+#define CONFIG_Protect_Motor_Level0_Exit 120
+#define CONFIG_Protect_Motor_Level0_Value 0
+#define CONFIG_Protect_Motor_Level1_Entry 120
+#define CONFIG_Protect_Motor_Level1_Exit 110
+#define CONFIG_Protect_Motor_Level1_Value 34
+#define CONFIG_Protect_Motor_Level2_Entry 110
+#define CONFIG_Protect_Motor_Level2_Exit 100
+#define CONFIG_Protect_Motor_Level2_Value 66
+#define CONFIG_Protect_MosFet_Level0_Entry 100
+#define CONFIG_Protect_MosFet_Level0_Exit 95
+#define CONFIG_Protect_MosFet_Level0_Value 0
+#define CONFIG_Protect_MosFet_Level1_Entry 95
+#define CONFIG_Protect_MosFet_Level1_Exit 90
+#define CONFIG_Protect_MosFet_Level1_Value 34
+#define CONFIG_Protect_MosFet_Level2_Entry 90
+#define CONFIG_Protect_MosFet_Level2_Exit 80
+#define CONFIG_Protect_MosFet_Level2_Value 66
+#define CONFIG_Protect_Voltage_Level0_Entry 60
+#define CONFIG_Protect_Voltage_Level0_Exit 70
+#define CONFIG_Protect_Voltage_Level0_Value 0
+#define CONFIG_EnergyRecovery_Level0_Torque 0
+#define CONFIG_EnergyRecovery_Level0_Time 1000
+#define CONFIG_EnergyRecovery_Level1_Torque 10
+#define CONFIG_EnergyRecovery_Level1_Time 500
+#define CONFIG_EnergyRecovery_Level2_Torque 15
+#define CONFIG_EnergyRecovery_Level2_Time 400
+#define CONFIG_EnergyRecovery_Level3_Torque 20
+#define CONFIG_EnergyRecovery_Level3_Time 300
+#define CONFIG_EnergyRecovery_Level4_Torque 35
+#define CONFIG_EnergyRecovery_Level4_Time 200
+#define CONFIG_EnergyRecovery_Level5_Torque 40
+#define CONFIG_EnergyRecovery_Level5_Time 200
+#define CONFIG_EnergyRecovery_Level6_Torque 40
+#define CONFIG_EnergyRecovery_Level6_Time 200
+#define CONFIG_EnergyRecovery_Level7_Torque 40
+#define CONFIG_EnergyRecovery_Level7_Time 200
+#define CONFIG_EnergyRecovery_Level8_Torque 40
+#define CONFIG_EnergyRecovery_Level8_Time 200
+#define CONFIG_EnergyRecovery_Level9_Torque 40
+#define CONFIG_EnergyRecovery_Level9_Time 200
+#define CONFIG_CrossZero_Low  1
+#define CONFIG_CrossZero_High  7
+#define CONFIG_CrossZero_MinStep  0.03f
+#define CONFIG_CrossZero_NorStep  5
+#endif /* _AUTOGEN_CONFIG_H__ */ 

+ 2 - 3
configs/mc124_R1_V2.yml

@@ -10,9 +10,8 @@ Motor:
   PLLBand: 200
   EpmPLL: 400
   PosPLL: 500
-  VehicleW: 190
-  WheelC: 145
-  GearRatio: 6.25
+  FwEnable: 1
+  FwDutyStart: 90
   MaxFwDCurr: 100
   MaxTorque: 350
   EncOffset: -2

+ 2 - 3
configs/mc_servo.yml

@@ -10,9 +10,8 @@ Motor:
   PLLBand: 200
   EpmPLL: 400
   PosPLL: 500
-  VehicleW: 190
-  WheelC: 145
-  GearRatio: 6.25
+  FwEnable: 0
+  FwDutyStart: 0
   MaxFwDCurr: 100
   MaxTorque: 300
   EncOffset: -103

+ 195 - 196
configs/mc_zd100.yml

@@ -1,31 +1,30 @@
-##### "配置文件自动生成,不要手动修改!!"
+##### 配置文件自动生成,不要手动修改!! 2024/2/19 16:25:15
 Version: 1
 CheckCrc: 0
 Motor:
   Poles: 5
-  Ld: 0.000045
-  Lq: 0.000096
-  Rs: 0.008
+  Ld: 5E-05
+  Lq: 6.9E-05
+  Rs: 0.015
   Flux: 0.019
   PLLBand: 200
   EpmPLL: 400
   PosPLL: 500
-  VehicleW: 190  #kg
-  WheelC: 145  #cm
-  GearRatio: 6.25 # 1:6.25
+  FwEnable: 1
+  FwDutyStart: 90
   MaxFwDCurr: 100
-  MaxTorque: 200 #根据控制方式不同,可能是相电流,可能是真实扭矩
+  MaxTorque: 350
   EncOffset: 0
 Foc:
   MaxDCVol: 110
   MinDCVol: 70
-  MaxPhaseCurr: 300
+  MaxPhaseCurr: 400
   MaxRPM: 9000
   MaxEPMRPM: 300
   MaxEPMTorque: 100
   MaxEPMRPMBk: 170
   MaxEPMTorqueBk: 80
-  MaxTorque: 300
+  MaxTorque: 350
   MaxEbrkTorque: 40
   MaxIDC: 100
   MaxAutoHoldTorque: 100
@@ -33,211 +32,211 @@ Foc:
   ThroEndVol: 4.15
   ThroMinVol: 0.4
   ThroMaxVol: 4.6
-  CurrCtrlBandWith: 200
+  CurrCtrlBandWith: 400
   ThroDecTime: 10
-  PID:  #pid controller
+  PID:
     VelLim:
-      Kp: 0.5
-      Ki: 2.5
-      Kd: 0.0
+      Kp: 0.2
+      Ki: 1.5
+      Kd: 0
     VelCtrl:
-      Kp: 0.1
-      Ki: 3.5
-      Kd: 0.0
+      Kp: 0.2
+      Ki: 1.5
+      Kd: 0
     Autohold:
       Kp: 0.01
       Ki: 0.2
-      Kd: 0.0
+      Kd: 0
     IDCLim:
-      Kp: 5.0
-      Ki: 15.0
-      Kd: 0.0
+      Kp: 5
+      Ki: 15
+      Kd: 0
     EPM:
-      Kp: 0.2
-      Ki: 7.5
+      Kp: 0.1
+      Ki: 1
       Kd: 0
 Settings:
   AutoHold: 1
   BrkShutPower: 1
   TcsEnable: 0
 Gear:
-  - MaxSpeed: 1000
-    MaxTorque: 100
-    MaxIdc: 30
-    ZeroAccl: 500
-    NormalAccl: 100
-    Torque:
-      - 100
-      - 100
-      - 100
-      - 100
-      - 100
-      - 100
-      - 100
-      - 100
-      - 0
-      - 0
-  - MaxSpeed: 1000
-    MaxTorque: 100
-    MaxIdc: 30
-    ZeroAccl: 500
-    NormalAccl: 100
-    Torque:
-      - 100
-      - 100
-      - 100
-      - 100
-      - 100
-      - 100
-      - 100
-      - 100
-      - 0
-      - 0
-  - MaxSpeed: 1000
-    MaxTorque: 100
-    MaxIdc: 30
-    ZeroAccl: 500
-    NormalAccl: 100
-    Torque:
-      - 100
-      - 100
-      - 100
-      - 100
-      - 100
-      - 100
-      - 100
-      - 100
-      - 0
-      - 0
-  - MaxSpeed: 1000
-    MaxTorque: 100
-    MaxIdc: 30
-    ZeroAccl: 500
-    NormalAccl: 100
-    Torque:
-      - 100
-      - 100
-      - 100
-      - 100
-      - 100
-      - 100
-      - 100
-      - 100
-      - 0
-      - 0
+- MaxSpeed: 3000
+  MaxTorque: 200
+  MaxIdc: 45
+  ZeroAccl: 500
+  NormalAccl: 100
+  Torque:
+  - 100
+  - 100
+  - 100
+  - 100
+  - 100
+  - 100
+  - 100
+  - 100
+  - 0
+  - 0
+- MaxSpeed: 4500
+  MaxTorque: 200
+  MaxIdc: 55
+  ZeroAccl: 500
+  NormalAccl: 100
+  Torque:
+  - 100
+  - 100
+  - 100
+  - 100
+  - 100
+  - 100
+  - 100
+  - 100
+  - 0
+  - 0
+- MaxSpeed: 6000
+  MaxTorque: 300
+  MaxIdc: 65
+  ZeroAccl: 500
+  NormalAccl: 100
+  Torque:
+  - 100
+  - 100
+  - 100
+  - 100
+  - 100
+  - 100
+  - 100
+  - 100
+  - 0
+  - 0
+- MaxSpeed: 7500
+  MaxTorque: 350
+  MaxIdc: 80
+  ZeroAccl: 500
+  NormalAccl: 100
+  Torque:
+  - 100
+  - 100
+  - 100
+  - 100
+  - 100
+  - 100
+  - 100
+  - 100
+  - 50
+  - 0
 GearLow:
-  - MaxSpeed: 1000
-    MaxTorque: 100
-    MaxIdc: 30
-    ZeroAccl: 500
-    NormalAccl: 100
-    Torque:
-      - 100
-      - 100
-      - 100
-      - 100
-      - 100
-      - 100
-      - 100
-      - 100
-      - 0
-      - 0
-  - MaxSpeed: 1000
-    MaxTorque: 100
-    MaxIdc: 30
-    ZeroAccl: 500
-    NormalAccl: 100
-    Torque:
-      - 100
-      - 100
-      - 100
-      - 100
-      - 100
-      - 100
-      - 100
-      - 100
-      - 0
-      - 0
-  - MaxSpeed: 1000
-    MaxTorque: 100
-    MaxIdc: 30
-    ZeroAccl: 500
-    NormalAccl: 100
-    Torque:
-      - 100
-      - 100
-      - 100
-      - 100
-      - 100
-      - 100
-      - 100
-      - 100
-      - 0
-      - 0
-  - MaxSpeed: 1000
-    MaxTorque: 100
-    MaxIdc: 30
-    ZeroAccl: 500
-    NormalAccl: 100
-    Torque:
-      - 100
-      - 100
-      - 100
-      - 100
-      - 100
-      - 100
-      - 100
-      - 100
-      - 0
-      - 0
+- MaxSpeed: 1000
+  MaxTorque: 100
+  MaxIdc: 30
+  ZeroAccl: 500
+  NormalAccl: 100
+  Torque:
+  - 100
+  - 100
+  - 100
+  - 100
+  - 100
+  - 100
+  - 100
+  - 100
+  - 0
+  - 0
+- MaxSpeed: 1000
+  MaxTorque: 100
+  MaxIdc: 30
+  ZeroAccl: 500
+  NormalAccl: 100
+  Torque:
+  - 100
+  - 100
+  - 100
+  - 100
+  - 100
+  - 100
+  - 100
+  - 100
+  - 0
+  - 0
+- MaxSpeed: 1000
+  MaxTorque: 100
+  MaxIdc: 30
+  ZeroAccl: 500
+  NormalAccl: 100
+  Torque:
+  - 100
+  - 100
+  - 100
+  - 100
+  - 100
+  - 100
+  - 100
+  - 100
+  - 0
+  - 0
+- MaxSpeed: 1000
+  MaxTorque: 100
+  MaxIdc: 30
+  ZeroAccl: 500
+  NormalAccl: 100
+  Torque:
+  - 100
+  - 100
+  - 100
+  - 100
+  - 100
+  - 100
+  - 100
+  - 100
+  - 0
+  - 0
 Protect:
   Motor:
-    - Entry: 130
-      Exit: 120
-      Value: 0
-    - Entry: 120
-      Exit: 110
-      Value: 34
-    - Entry: 110
-      Exit: 100
-      Value: 66
+  - Entry: 130
+    Exit: 120
+    Value: 0
+  - Entry: 120
+    Exit: 110
+    Value: 34
+  - Entry: 110
+    Exit: 100
+    Value: 66
   MosFet:
-    - Entry: 100
-      Exit: 95
-      Value: 0
-    - Entry: 95
-      Exit: 90
-      Value: 34
-    - Entry: 90
-      Exit: 80
-      Value: 66
+  - Entry: 100
+    Exit: 95
+    Value: 0
+  - Entry: 95
+    Exit: 90
+    Value: 34
+  - Entry: 90
+    Exit: 80
+    Value: 66
   Voltage:
-    - Entry: 60
-      Exit:  70
-      Value: 0
-EnergyRecovery:  # Braking Energy Recovery
-  - Torque: 0
-    Time:   1000
-  - Torque: 10
-    Time:   500
-  - Torque: 15
-    Time:   400  
-  - Torque: 20
-    Time:   300  
-  - Torque: 35
-    Time:   200  
-  - Torque: 40
-    Time:   200  
-  - Torque: 45
-    Time:   200  
-  - Torque: 50
-    Time:   200  
-  - Torque: 55
-    Time:   200  
-  - Torque: 60
-    Time:   200
-CrossZero: #扭矩过零处理
+  - Entry: 60
+    Exit: 70
+    Value: 0
+EnergyRecovery:
+- Torque: 0
+  Time: 1000
+- Torque: 10
+  Time: 500
+- Torque: 15
+  Time: 400
+- Torque: 20
+  Time: 300
+- Torque: 35
+  Time: 200
+- Torque: 40
+  Time: 200
+- Torque: 40
+  Time: 200
+- Torque: 40
+  Time: 200
+- Torque: 40
+  Time: 200
+- Torque: 40
+  Time: 200
+CrossZero:
   Low: 1
   High: 7
   MinStep: 0.03
-  NorStep: 5
+  NorStep: 5