From 3b990dd88c04e0ab7a6b776041bda1f05e1e1e5d Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E8=B5=B7=E5=BA=8A=E5=B0=B1=E7=8A=AF=E5=9B=B0?=
<11730503+psx123456@user.noreply.gitee.com>
Date: Mon, 30 Jun 2025 16:34:13 +0800
Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E4=BC=A0=E5=8A=A8=E6=AF=94?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
APP/Common/ptz_default_value.h | 20 +++++++-------
APP/Service/service_statusmonitor.c | 33 ++++++++++++++++------
BSP/Driver/full_bridge/full_bridge.c | 41 ++++++++++++++++------------
PROJECT/OS2.ewp | 2 +-
4 files changed, 59 insertions(+), 37 deletions(-)
diff --git a/APP/Common/ptz_default_value.h b/APP/Common/ptz_default_value.h
index 0b4b671..e3f7313 100644
--- a/APP/Common/ptz_default_value.h
+++ b/APP/Common/ptz_default_value.h
@@ -73,11 +73,11 @@
#ifdef PTZ_MEDIUM_WORM_L6235D_AS5047D
///*******************************标准云台******************************/
///水平电机减速比
- #define PTZ_HORI_MOTOR_RATIO 25.0//(25.0 * 1.5)//20
+ #define PTZ_HORI_MOTOR_RATIO 10.0//(25.0 * 1.5)//20
///水平大齿轮减速比
#define PTZ_HORI_BIG_GEAR_RATIO 80.0//62.0
///水平总减速比
- #define PTZ_HORI_RATIO 2000.0//2325//1240.0
+ #define PTZ_HORI_RATIO 800.0//2325//1240.0
///水平电机调速模拟电压最大值
#define PTZ_HORI_VR_MAX 1999
///水平电机调速模拟电压最小值
@@ -89,20 +89,20 @@
///水平电机最小转速
#define PTZ_HORI_MOTOR_MIN_SPEED 400.0//600.0
///水平云台最大转速
- #define PTZ_HORI_MAX_SPEED 1.5//1.29//2.4
+ #define PTZ_HORI_MAX_SPEED 3.75//1.29//2.4
///水平云台最小转速
- #define PTZ_HORI_MIN_SPEED 0.2//0.3//0.26//0.4
+ #define PTZ_HORI_MIN_SPEED 0.5//0.3//0.26//0.4
///水平云台默认最佳速度
- #define PTZ_HORI_BEST_SPEED 1.2//2.0
+ #define PTZ_HORI_BEST_SPEED 2.7//2.0
/**********************************************************/
///磁编码器和电机之间的减速比
- #define PTZ_VERT_MOTOR_RATIO 75.0//(50.0 * (52.0 / 35.0))//20.0
+ #define PTZ_VERT_MOTOR_RATIO 22.5//(50.0 * (52.0 / 35.0))//20.0
///磁编码器与云台轴之间的减速比
#define PTZ_VERT_BIG_GEAR_RATIO 80.0//54.00
///垂直总减速比
- #define PTZ_VERT_RATIO 6000.0//4011.429//1080.0
+ #define PTZ_VERT_RATIO 1800.0//4011.429//1080.0
///垂直电机调速模拟电压最大值
#define PTZ_VERT_VR_MAX 1999
///垂直电机调速模拟电压最小值
@@ -114,11 +114,11 @@
///垂直电机最小转速
#define PTZ_VERT_MOTOR_MIN_SPEED 400.0//600.0
///垂直云台最大转速
- #define PTZ_VERT_MAX_SPEED 0.5//0.74//2.7
+ #define PTZ_VERT_MAX_SPEED 1.66//0.74//2.7
///垂直云台最小转速
- #define PTZ_VERT_MIN_SPEED 0.07//0.1//0.15//0.5
+ #define PTZ_VERT_MIN_SPEED 0.22//0.1//0.15//0.5
///垂直云台默认最佳速度
- #define PTZ_VERT_BEST_SPEED 0.4//0.7//2.0
+ #define PTZ_VERT_BEST_SPEED 1.2//0.7//2.0
//电机磁极对数
diff --git a/APP/Service/service_statusmonitor.c b/APP/Service/service_statusmonitor.c
index c727ad5..fc588b2 100644
--- a/APP/Service/service_statusmonitor.c
+++ b/APP/Service/service_statusmonitor.c
@@ -13,24 +13,41 @@ static char ptz_temp_volt_current_fault_detect_task()
{//只报故障,不做响应
static unsigned short int time_ms;
+ static char hori_fault = 0;
+ static char vert_fault = 0;
+
time_ms ++;
if(time_ms < 50)
{
//轻型云台峰值电流5.4A,
if(H_ADC_Collect.Phase_curr_V >= PHASE_CURRENT ||H_ADC_Collect.Phase_curr_U >= PHASE_CURRENT ||H_ADC_Collect.Phase_curr_W >= PHASE_CURRENT )
{//堵转检测,防止电机堵转烧坏,结合电机卡死故障监测,与云台工作电流监测。
-
- g_ptz.fault_detect.Phase_curr_H = FAULT;//水平电机相电流过大,报警
-
- ptz_hori_stop(PTZ_HORI_STOP_TIME);
+ if (g_ptz.fault_detect.Phase_curr_H != FAULT) {
+ hori_fault++;
+ if (hori_fault > 10) {
+ g_ptz.fault_detect.Phase_curr_H = FAULT;//水平电机相电流过大,报警
+ ptz_hori_stop(PTZ_HORI_STOP_TIME);
+ }
+ }
}
+ else {
+ hori_fault = 0;
+ }
+
if(V_ADC_Collect.Phase_curr_V >= PHASE_CURRENT ||V_ADC_Collect.Phase_curr_U >= PHASE_CURRENT ||V_ADC_Collect.Phase_curr_W >= PHASE_CURRENT )
{//堵转检测,防止电机堵转烧坏,结合电机卡死故障监测,与云台工作电流监测。
-
- g_ptz.fault_detect.Phase_curr_V = FAULT;//垂直电机相电流过大,报警
-
- ptz_vert_stop(PTZ_VERT_STOP_TIME);
+ if (g_ptz.fault_detect.Phase_curr_V != FAULT) {
+ vert_fault++;
+ if (vert_fault > 10) {
+ g_ptz.fault_detect.Phase_curr_V = FAULT;//垂直电机相电流过大,报警
+ ptz_vert_stop(PTZ_VERT_STOP_TIME);
+ }
+ }
}
+ else {
+ vert_fault = 0;
+ }
+
return 1;
}
else
diff --git a/BSP/Driver/full_bridge/full_bridge.c b/BSP/Driver/full_bridge/full_bridge.c
index dda1723..6ccc56a 100644
--- a/BSP/Driver/full_bridge/full_bridge.c
+++ b/BSP/Driver/full_bridge/full_bridge.c
@@ -360,21 +360,21 @@ void h_bldc_six_step()
H_Hall_state.Hall_value = h_hall_senser_value_get();
if((H_Hall_state.Hall_value <= 6)&&(H_Hall_state.Hall_value >= 1))
{
-// if(g_ptz.hori_direction_set == PTZ_HORI_DIR_RIGHT)
-// {//电机正转- 1
-// h_six_step_commu[(7-H_Hall_state.Hall_value) -1]();
-// }else{//电机反转
-// h_six_step_commu[H_Hall_state.Hall_value -1]();
-// }
+ if(g_ptz.hori_direction_set == PTZ_HORI_DIR_RIGHT)
+ {//电机正转- 1
+ h_six_step_commu[(7-H_Hall_state.Hall_value) -1]();
+ }else{//电机反转
+ h_six_step_commu[H_Hall_state.Hall_value -1]();
+ }
//直齿云台转向
- if(g_ptz.hori_direction_set == PTZ_HORI_DIR_RIGHT)
- {//电机正转- 1
+ // if(g_ptz.hori_direction_set == PTZ_HORI_DIR_RIGHT)
+ // {//电机正转- 1
- h_six_step_commu[H_Hall_state.Hall_value -1]();
- }else{//电机反转
- h_six_step_commu[(7-H_Hall_state.Hall_value) -1]();
+ // h_six_step_commu[H_Hall_state.Hall_value -1]();
+ // }else{//电机反转
+ // h_six_step_commu[(7-H_Hall_state.Hall_value) -1]();
- }
+ // }
}
}
@@ -395,12 +395,17 @@ void v_bldc_six_step()
V_Hall_state.Hall_value = v_hall_senser_value_get();
if((V_Hall_state.Hall_value <= 6)&&(V_Hall_state.Hall_value >= 1))
{
- if(g_ptz.vert_direction_set == PTZ_VERT_DIR_UP)
- {//电机正转- 1
- v_six_step_commu[V_Hall_state.Hall_value -1]();
- }else{//电机反转
- v_six_step_commu[(7-V_Hall_state.Hall_value) -1]();
- }
+ // if(g_ptz.vert_direction_set == PTZ_VERT_DIR_UP)
+ // {//电机正转- 1
+ // v_six_step_commu[V_Hall_state.Hall_value -1]();
+ // }else{//电机反转
+ // v_six_step_commu[(7-V_Hall_state.Hall_value) -1]();
+ // }
+ if (g_ptz.vert_direction_set == PTZ_VERT_DIR_UP) {//电机正转- 1
+ v_six_step_commu[(7-V_Hall_state.Hall_value) -1]();
+ } else {//电机反转
+ v_six_step_commu[V_Hall_state.Hall_value -1]();
+ }
// if(g_ptz.vert_pid.PidUT_float < 0)
diff --git a/PROJECT/OS2.ewp b/PROJECT/OS2.ewp
index 1498948..7b060ff 100644
--- a/PROJECT/OS2.ewp
+++ b/PROJECT/OS2.ewp
@@ -825,7 +825,7 @@