Jelajahi Sumber

硬件允许的母线电压最大最小值限制,设置值不能超过

Signed-off-by: kevin <huhui@sharkgulf.com>
kevin 2 tahun lalu
induk
melakukan
1673690a4c

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

@@ -29,6 +29,8 @@
 #include "bsp/board_yuanqu.h"
 #elif defined (MC100_HW_V1)
 #define CONFIG_CURRENT_SENSOR_CEOF 0.32F
+#define CONFIG_BOARD_MAX_VOLTAGE 120.0f
+#define CONFIG_BOARD_MIN_VOLTAGE 50.0f
 #include "bsp/gd32/board_mc100_v1.h"
 #define CONFIG_BOARD_MCXXX
 #define CONFIG_BOARD_NAME "MC100"
@@ -37,6 +39,8 @@
 #elif defined (CONFIG_MC105_HW_V3)
 #define CONFIG_VBUS_I_POSITIVE 1
 #define CONFIG_CURRENT_SENSOR_CEOF 0.303F
+#define CONFIG_BOARD_MAX_VOLTAGE 120.0f
+#define CONFIG_BOARD_MIN_VOLTAGE 50.0f
 #include "bsp/gd32/board_mc105_v3.h"
 #define CONFIG_BOARD_MCXXX
 #define CONFIG_BOARD_NAME "MC105"
@@ -44,6 +48,8 @@
 
 #elif defined (CONFIG_BOARD_MC124)
 #define CONFIG_CURRENT_SENSOR_CEOF 0.313F
+#define CONFIG_BOARD_MAX_VOLTAGE 90.0f
+#define CONFIG_BOARD_MIN_VOLTAGE 50.0f
 #include "bsp/gd32/board_mc105_v3.h"
 #define CONFIG_BOARD_MCXXX
 #define CONFIG_BOARD_NAME "MCXXX"

+ 1 - 1
Applications/foc/core/controller.c

@@ -23,7 +23,7 @@ void mot_contrl_init(mot_contrl_t *ctrl) {
 	ctrl->hwlim.dc_curr = CONFIG_HW_MAX_DC_CURRENT;
 	ctrl->hwlim.mot_vel = CONFIG_HW_MAX_MOTOR_RPM;
 	ctrl->hwlim.phase_curr = CONFIG_HW_MAX_PHASE_CURR;
-	ctrl->hwlim.phase_vol = CONFIG_HW_MAX_PHASE_VOL;
+	//ctrl->hwlim.phase_vol = CONFIG_HW_MAX_PHASE_VOL;
 	//ctrl->hwlim.dc_vol      = CONFIG_HW_MAX_DC_VOLTAGE;
 	ctrl->hwlim.torque  = mc_conf()->m.max_torque; //电机的最大扭矩
 	ctrl->hwlim.fw_id = mc_conf()->m.max_fw_id;  //电池能支持的最大弱磁电流

+ 1 - 1
Applications/foc/core/controller.h

@@ -103,7 +103,7 @@ typedef struct {
 typedef struct {
 	float mot_vel;
 	float phase_curr;
-	float phase_vol;
+	//float phase_vol;
 	float fw_id; //D轴最大退磁电流
 	float dc_curr;
 	//float dc_vol;

+ 2 - 0
Applications/foc/mc_config.c

@@ -367,6 +367,8 @@ int mc_conf_decode_controler(u8 *buff) {
 	conf.c.thro_max_vol = decode_float(buff);buff += 4;
 	conf.c.thro_dec_time = decode_u16(buff);buff += 2;
 	conf.c.max_torque = min(conf.c.max_torque, conf.m.max_torque);
+	conf.c.max_dc_vol = min(conf.c.max_dc_vol, CONFIG_BOARD_MAX_VOLTAGE);
+	conf.c.min_dc_vol = MAX(conf.c.min_dc_vol, CONFIG_BOARD_MIN_VOLTAGE);
 	buff += mc_conf_decode_pid(&conf.c.pid[PID_VelLim_ID], buff);
 	buff += mc_conf_decode_pid(&conf.c.pid[PID_Vel_ID], buff);
 	buff += mc_conf_decode_pid(&conf.c.pid[PID_AutoHold_ID], buff);