From 9d5b77c9e17c423cbf2affa0113d8d2aa38101e1 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: Tue, 1 Jul 2025 09:11:36 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=87=8F=E9=80=9F=E6=AF=94?= =?UTF-8?q?=E5=92=8C=E7=94=B5=E6=B5=81=E8=BF=87=E6=B5=81=E4=BF=9D=E6=8A=A4?= 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 | 34 ++++++++++++++++++++++------ BSP/Driver/full_bridge/full_bridge.c | 26 ++++++++++----------- 3 files changed, 50 insertions(+), 30 deletions(-) diff --git a/APP/Common/ptz_default_value.h b/APP/Common/ptz_default_value.h index 0b4b671..a883f98 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 //(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.5//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.2//2.0 /**********************************************************/ ///磁编码器和电机之间的减速比 - #define PTZ_VERT_MOTOR_RATIO 75.0//(50.0 * (52.0 / 35.0))//20.0 + #define PTZ_VERT_MOTOR_RATIO 37.5 //75.0//(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 3000.0 //6000.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.0 //0.5//0.74//2.7 ///垂直云台最小转速 - #define PTZ_VERT_MIN_SPEED 0.07//0.1//0.15//0.5 + #define PTZ_VERT_MIN_SPEED 0.14 //0.07//0.1//0.15//0.5 ///垂直云台默认最佳速度 - #define PTZ_VERT_BEST_SPEED 0.4//0.7//2.0 + #define PTZ_VERT_BEST_SPEED 0.7 //0.4//0.7//2.0 //电机磁极对数 diff --git a/APP/Service/service_statusmonitor.c b/APP/Service/service_statusmonitor.c index c727ad5..af8a500 100644 --- a/APP/Service/service_statusmonitor.c +++ b/APP/Service/service_statusmonitor.c @@ -12,6 +12,10 @@ static char max_temperature_fault; static char ptz_temp_volt_current_fault_detect_task() {//只报故障,不做响应 static unsigned short int time_ms; + + static unsigned char hori_fault; + static unsigned char vert_fault; + time_ms ++; if(time_ms < 50) @@ -20,16 +24,32 @@ static char ptz_temp_volt_current_fault_detect_task() 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; } diff --git a/BSP/Driver/full_bridge/full_bridge.c b/BSP/Driver/full_bridge/full_bridge.c index dda1723..560e33d 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 + 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[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](); - } + // } } }