293 lines
12 KiB
C
293 lines
12 KiB
C
#ifndef __DEVICE_SPEED_BLDC_H_
|
||
#define __DEVICE_SPEED_BLDC_H_
|
||
#include "ptz_type_select.h"
|
||
|
||
#ifdef PTZ_BLDC_MOTOR
|
||
|
||
|
||
#ifdef PTZ_LIGHT_GEAR_L6235D_AS5047D
|
||
|
||
#define PID_B 1
|
||
//水平速度小于设定速度时
|
||
#define PTZ_HORI_PRO_ADD_RANGE_LESS 0.4 //水平比例调速的范围
|
||
#define PTZ_HORI_PRO_ADD_MUL_LESS 1.2 //水平比例调速增加的倍数
|
||
//水平速度大于设定速度时
|
||
// #define PTZ_HORI_PRO_ADD_RANGE_MORE 0.5 //水平比例调速的范围
|
||
// #define PTZ_HORI_PRO_ADD_MUL_MORE 0.8 //水平比例调速增加的倍数
|
||
//垂直速度小于设定速度时
|
||
#define PTZ_VERT_PRO_ADD_RANGE_LESS 0.4 //垂直比例调速的范围
|
||
#define PTZ_VERT_PRO_ADD_MUL_LESS 1.2 //垂直比例调速增加的倍数
|
||
|
||
#define PTZ_PID_HALL_SPEED 1
|
||
|
||
#define PTZ_HORI_PID_T 20u
|
||
#define PTZ_HORI_PID_HORI_KP 0.4//1.4 //0.014//0.005 //比例系数
|
||
#define PTZ_HORI_PID_HORI_TI 100.0 //积分系数
|
||
#define PTZ_HORI_PID_HORI_TD 0.0 //微分系数
|
||
|
||
#define PTZ_HORI_PID_INPUT_LIMIT 100//6.91//PID调速输入值限定
|
||
#define PTZ_HORI_PID_OUTPUT_LIMIT 200.0//PID调速输出值限定,当前输出值和上一次输出值之间的差异
|
||
|
||
|
||
#define PTZ_VERT_PID_T 20u
|
||
#define PTZ_VERT_PID_VERT_KP 1.4 //0.014//0.005 //比例系数
|
||
#define PTZ_VERT_PID_VERT_TI 100.0 //积分系数
|
||
#define PTZ_VERT_PID_VERT_TD 0.0 //微分系数
|
||
|
||
#define PTZ_VERT_PID_INPUT_LIMIT 100//4.0//PID调速输入值限定
|
||
#define PTZ_VERT_PID_OUTPUT_LIMIT 200.0//PID调速输出值限定,当前输出值和上一次输出值之间的差异
|
||
|
||
|
||
#define PTZ_HORI_PID_T_MAX 75//50u//PID调速最大周期
|
||
#define PTZ_VERT_PID_T_MAX 75//50u//PID调速最大周期
|
||
|
||
|
||
#define PTZ_HORI_PID_ADD 30//PID调速快速增量
|
||
#define PTZ_VERT_PID_ADD 30//PID调速快速增量
|
||
|
||
#define PTZ_HORI_PID_ADD_A 10//10//PID调速快速增量
|
||
#define PTZ_VERT_PID_ADD_A 10//15//PID调速快速增量
|
||
|
||
#endif
|
||
|
||
#ifdef PTZ_MEDIUM_WORM_L6235D_AS5047D
|
||
|
||
#define PID_B 1
|
||
//水平速度小于设定速度时
|
||
#define PTZ_HORI_PRO_ADD_RANGE_LESS 0.4 //水平比例调速的范围
|
||
#define PTZ_HORI_PRO_ADD_MUL_LESS 1.2 //水平比例调速增加的倍数
|
||
//水平速度大于设定速度时
|
||
// #define PTZ_HORI_PRO_ADD_RANGE_MORE 0.5 //水平比例调速的范围
|
||
// #define PTZ_HORI_PRO_ADD_MUL_MORE 0.8 //水平比例调速增加的倍数
|
||
//垂直速度小于设定速度时
|
||
#define PTZ_VERT_PRO_ADD_RANGE_LESS 0.4 //垂直比例调速的范围
|
||
#define PTZ_VERT_PRO_ADD_MUL_LESS 1.2 //垂直比例调速增加的倍数
|
||
//垂直速度大于设定速度时
|
||
// #define PTZ_VERT_PRO_ADD_RANGE_MORE 0.5 //垂直比例调速的范围
|
||
// #define PTZ_VERT_PRO_ADD_MUL_MORE 0.8 //垂直比例调速增加的倍数
|
||
|
||
//#define PID_A 1
|
||
// #define PTZ_HORI_PID_AS5048A_ANGLE_ASY_SPEED 2//角度变化异步
|
||
// #define PTZ_VERT_PID_AS5048A_ANGLE_ASY_SPEED 2//角度变化异步
|
||
//通过芯片反馈测速
|
||
//#define PTZ_HORI_PID_JY02A_SPEED
|
||
//#define PTZ_VERT_PID_JY02A_SPEED
|
||
#define PTZ_PID_HALL_SPEED 1
|
||
|
||
#define PTZ_HORI_PID_T 20u
|
||
#define PTZ_HORI_PID_HORI_KP 0.6//1.0//6.0//比例系数
|
||
#define PTZ_HORI_PID_HORI_TI 70.0//80.0//100.0//积分系数
|
||
#define PTZ_HORI_PID_HORI_TD 0.001//微分系数
|
||
|
||
#define PTZ_HORI_PID_INPUT_LIMIT 100.0//PID调速输入值限定
|
||
#define PTZ_HORI_PID_OUTPUT_LIMIT 200.0//PID调速输出值限定,当前输出值和上一次输出值之间的差异
|
||
|
||
#define PTZ_VERT_PID_T 20u
|
||
#define PTZ_VERT_PID_VERT_KP 6//6.0//比例系数
|
||
#define PTZ_VERT_PID_VERT_TI 80.0//100.0//积分系数
|
||
#define PTZ_VERT_PID_VERT_TD 0.001//微分系数
|
||
|
||
#define PTZ_VERT_PID_INPUT_LIMIT 100.0//PID调速输入值限定
|
||
#define PTZ_VERT_PID_OUTPUT_LIMIT 200.0//PID调速输出值限定,当前输出值和上一次输出值之间的差异
|
||
|
||
#define PTZ_HORI_PID_T_MAX 80//75u//PID调速最大周期
|
||
#define PTZ_VERT_PID_T_MAX 80//75u//PID调速最大周期
|
||
|
||
#define PTZ_HORI_PID_ADD 20//PID调速快速增量
|
||
#define PTZ_VERT_PID_ADD 20//PID调速快速增量
|
||
|
||
#define PTZ_HORI_PID_ADD_A 15//PID调速快速增量
|
||
#define PTZ_VERT_PID_ADD_A 15//PID调速快速增量
|
||
|
||
#endif
|
||
|
||
#ifdef PTZ_HEAVY_WORM_L6235D_AS5047D
|
||
|
||
#define PID_B 1
|
||
//水平速度小于设定速度时
|
||
#define PTZ_HORI_PRO_ADD_RANGE_LESS 0.4 //水平比例调速的范围
|
||
#define PTZ_HORI_PRO_ADD_MUL_LESS 1.2 //水平比例调速增加的倍数
|
||
//水平速度大于设定速度时
|
||
#define PTZ_HORI_PRO_ADD_RANGE_MORE 0.5 //水平比例调速的范围
|
||
#define PTZ_HORI_PRO_ADD_MUL_MORE 0.8 //水平比例调速增加的倍数
|
||
//垂直速度小于设定速度时
|
||
#define PTZ_VERT_PRO_ADD_RANGE_LESS 0.4 //垂直比例调速的范围
|
||
#define PTZ_VERT_PRO_ADD_MUL_LESS 1.2 //垂直比例调速增加的倍数
|
||
//垂直速度大于设定速度时
|
||
#define PTZ_VERT_PRO_ADD_RANGE_MORE 0.5 //垂直比例调速的范围
|
||
#define PTZ_VERT_PRO_ADD_MUL_MORE 0.8 //垂直比例调速增加的倍数
|
||
|
||
|
||
|
||
//#define PID_A 1
|
||
//通过磁编码器计算云台转速,磁编码器角度增大,云台角度增大;磁编码器角度减小,云台角度减小
|
||
//#define PTZ_VERT_PID_AS5048A_ANGLE_SYN_SPEED 1//角度变化同步
|
||
//通过磁编码器计算云台转速,磁编码器角度增大,云台角度减小;磁编码器角度减小,云台角度增大
|
||
//#define PTZ_HORI_PID_AS5048A_ANGLE_ASY_SPEED 2//角度变化异步
|
||
//通过芯片反馈测速
|
||
//#define PTZ_HORI_PID_JY02A_SPEED
|
||
//#define PTZ_VERT_PID_JY02A_SPEED
|
||
#define PTZ_PID_HALL_SPEED 1
|
||
// #define PTZ_HORI_PID_T 20u
|
||
// #define PTZ_HORI_PID_HORI_KP 6.0 //0.014//0.005 //比例系数
|
||
// #define PTZ_HORI_PID_HORI_TI 100.0 //积分系数
|
||
// #define PTZ_HORI_PID_HORI_TD 0.0 //微分系数
|
||
// #define PTZ_HORI_FG_PWM_NUM_CYCLE 15.0 //电机旋转一圈FG返回的脉冲默认值
|
||
// #define PTZ_HORI_PID_INPUT_LIMIT 6.91 //PID调速输入值限定
|
||
// #define PTZ_HORI_PID_OUTPUT_LIMIT 100.0//PID调速输出值限定,当前输出值和上一次输出值之间的差异
|
||
//
|
||
// #define PTZ_VERT_PID_T 20u
|
||
// #define PTZ_VERT_PID_VERT_KP 6.0 //0.014//0.005 //比例系数
|
||
// #define PTZ_VERT_PID_VERT_TI 100.0 //积分系数
|
||
// #define PTZ_VERT_PID_VERT_TD 0.0 //微分系数
|
||
// #define PTZ_VERT_FG_PWM_NUM_CYCLE 15.0 //电机旋转一圈FG返回的脉冲默认值
|
||
// #define PTZ_VERT_PID_INPUT_LIMIT 4.0//PID调速输入值限定
|
||
// #define PTZ_VERT_PID_OUTPUT_LIMIT 100.0//PID调速输出值限定,当前输出值和上一次输出值之间的差异
|
||
|
||
#define PTZ_HORI_PID_T 20u
|
||
#define PTZ_HORI_PID_HORI_KP 6.0//3.0 //0.014//0.005 //比例系数
|
||
#define PTZ_HORI_PID_HORI_TI 100.0 //积分系数
|
||
#define PTZ_HORI_PID_HORI_TD 0.0 //微分系数
|
||
|
||
#define PTZ_HORI_PID_INPUT_LIMIT 6.91//PID调速输入值限定
|
||
#define PTZ_HORI_PID_OUTPUT_LIMIT 200.0//PID调速输出值限定,当前输出值和上一次输出值之间的差异
|
||
|
||
#define PTZ_VERT_PID_T 20u
|
||
#define PTZ_VERT_PID_VERT_KP 8.0//3.0 //0.014//0.005 //比例系数
|
||
#define PTZ_VERT_PID_VERT_TI 100.0 //积分系数
|
||
#define PTZ_VERT_PID_VERT_TD 0.0 //微分系数
|
||
|
||
#define PTZ_VERT_PID_INPUT_LIMIT 4.0//PID调速输入值限定
|
||
#define PTZ_VERT_PID_OUTPUT_LIMIT 200.0//PID调速输出值限定,当前输出值和上一次输出值之间的差异
|
||
|
||
#define PTZ_HORI_PID_T_MAX 75//50u//PID调速最大周期
|
||
#define PTZ_VERT_PID_T_MAX 75//50u//PID调速最大周期
|
||
|
||
#define PTZ_HORI_PID_ADD 20//PID调速快速增量
|
||
#define PTZ_VERT_PID_ADD 20//PID调速快速增量
|
||
|
||
#define PTZ_HORI_PID_ADD_A 20//PID调速快速增量
|
||
#define PTZ_VERT_PID_ADD_A 20//PID调速快速增量
|
||
#endif
|
||
|
||
#ifdef PTZ_SUPER_LIGHT_WORM_L6235D_AS5047D_12V
|
||
#define PID_B 1
|
||
//水平速度小于设定速度时
|
||
#define PTZ_HORI_PRO_ADD_RANGE_LESS 0.6 //水平比例调速的范围
|
||
#define PTZ_HORI_PRO_ADD_MUL_LESS 1.3 //水平比例调速增加的倍数
|
||
//水平速度大于设定速度时
|
||
#define PTZ_HORI_PRO_ADD_RANGE_MORE 0.5 //水平比例调速的范围
|
||
#define PTZ_HORI_PRO_ADD_MUL_MORE 0.8 //水平比例调速增加的倍数
|
||
//垂直速度小于设定速度时
|
||
#define PTZ_VERT_PRO_ADD_RANGE_LESS 0.6 //垂直比例调速的范围
|
||
#define PTZ_VERT_PRO_ADD_MUL_LESS 1.3 //垂直比例调速增加的倍数
|
||
//垂直速度大于设定速度时
|
||
#define PTZ_VERT_PRO_ADD_RANGE_MORE 0.5 //垂直比例调速的范围
|
||
#define PTZ_VERT_PRO_ADD_MUL_MORE 0.8 //垂直比例调速增加的倍数
|
||
|
||
|
||
|
||
|
||
//#define PTZ_HORI_PID_AS5048A_ANGLE_ASY_SPEED 2//角度变化异步
|
||
//#define PTZ_VERT_PID_AS5048A_ANGLE_ASY_SPEED 2//角度变化异步
|
||
//通过芯片反馈测速
|
||
//#define PTZ_HORI_PID_JY02A_SPEED
|
||
//#define PTZ_VERT_PID_JY02A_SPEED
|
||
#define PTZ_PID_HALL_SPEED 1
|
||
|
||
#define PTZ_HORI_PID_T 30u
|
||
#define PTZ_HORI_PID_HORI_KP 2.0//6.0 //0.014//0.005 //比例系数
|
||
#define PTZ_HORI_PID_HORI_TI 100.0 //积分系数
|
||
#define PTZ_HORI_PID_HORI_TD 0.0 //微分系数
|
||
|
||
#define PTZ_HORI_PID_INPUT_LIMIT 100.0//6.91//PID调速输入值限定
|
||
#define PTZ_HORI_PID_OUTPUT_LIMIT 200.0//PID调速输出值限定,当前输出值和上一次输出值之间的差异
|
||
|
||
#define PTZ_VERT_PID_T 30u
|
||
#define PTZ_VERT_PID_VERT_KP 2.0//6.0 //0.014//0.005 //比例系数
|
||
#define PTZ_VERT_PID_VERT_TI 100.0 //积分系数
|
||
#define PTZ_VERT_PID_VERT_TD 0.0 //微分系数
|
||
|
||
#define PTZ_VERT_PID_INPUT_LIMIT 100.0//4.0//PID调速输入值限定
|
||
#define PTZ_VERT_PID_OUTPUT_LIMIT 200.0//PID调速输出值限定,当前输出值和上一次输出值之间的差异
|
||
|
||
#define PTZ_HORI_PID_T_MAX 100u//PID调速最大周期
|
||
#define PTZ_VERT_PID_T_MAX 100u//PID调速最大周期
|
||
|
||
#define PTZ_HORI_PID_ADD 20//40//PID调速快速增量
|
||
#define PTZ_VERT_PID_ADD 20//40//PID调速快速增量
|
||
|
||
#define PTZ_HORI_PID_ADD_A 15//PID调速快速增量
|
||
#define PTZ_VERT_PID_ADD_A 15//PID调速快速增量
|
||
|
||
#endif
|
||
|
||
|
||
#ifdef PTZ_SUPER_LIGHT_WORM_L6235D_AS5047D_24V
|
||
#define PID_B 1
|
||
//水平速度小于设定速度时
|
||
#define PTZ_HORI_PRO_ADD_RANGE_LESS 0.4 //水平比例调速的范围
|
||
#define PTZ_HORI_PRO_ADD_MUL_LESS 1.2 //水平比例调速增加的倍数
|
||
//水平速度大于设定速度时
|
||
#define PTZ_HORI_PRO_ADD_RANGE_MORE 0.5 //水平比例调速的范围
|
||
#define PTZ_HORI_PRO_ADD_MUL_MORE 0.8 //水平比例调速增加的倍数
|
||
//垂直速度小于设定速度时
|
||
#define PTZ_VERT_PRO_ADD_RANGE_LESS 0.4 //垂直比例调速的范围
|
||
#define PTZ_VERT_PRO_ADD_MUL_LESS 1.2 //垂直比例调速增加的倍数
|
||
//垂直速度大于设定速度时
|
||
#define PTZ_VERT_PRO_ADD_RANGE_MORE 0.5 //垂直比例调速的范围
|
||
#define PTZ_VERT_PRO_ADD_MUL_MORE 0.8 //垂直比例调速增加的倍数
|
||
|
||
|
||
|
||
|
||
//#define PTZ_HORI_PID_AS5048A_ANGLE_ASY_SPEED 2//角度变化异步
|
||
//#define PTZ_VERT_PID_AS5048A_ANGLE_ASY_SPEED 2//角度变化异步
|
||
//通过芯片反馈测速
|
||
//#define PTZ_HORI_PID_JY02A_SPEED
|
||
//#define PTZ_VERT_PID_JY02A_SPEED
|
||
#define PTZ_PID_HALL_SPEED 1
|
||
|
||
#define PTZ_HORI_PID_T 30u
|
||
#define PTZ_HORI_PID_HORI_KP 2.0//比例系数
|
||
#define PTZ_HORI_PID_HORI_TI 100.0 //积分系数
|
||
#define PTZ_HORI_PID_HORI_TD 0.0 //微分系数
|
||
|
||
#define PTZ_HORI_PID_INPUT_LIMIT 100.0//PID调速输入值限定
|
||
#define PTZ_HORI_PID_OUTPUT_LIMIT 200.0//PID调速输出值限定,当前输出值和上一次输出值之间的差异
|
||
|
||
#define PTZ_VERT_PID_T 30u
|
||
#define PTZ_VERT_PID_VERT_KP 2.0//比例系数
|
||
#define PTZ_VERT_PID_VERT_TI 100.0 //积分系数
|
||
#define PTZ_VERT_PID_VERT_TD 0.0 //微分系数
|
||
|
||
#define PTZ_VERT_PID_INPUT_LIMIT 100.0//PID调速输入值限定
|
||
#define PTZ_VERT_PID_OUTPUT_LIMIT 200.0//PID调速输出值限定,当前输出值和上一次输出值之间的差异
|
||
|
||
#define PTZ_HORI_PID_T_MAX 100u//PID调速最大周期
|
||
#define PTZ_VERT_PID_T_MAX 100u//PID调速最大周期
|
||
|
||
#define PTZ_HORI_PID_ADD 20//20//PID调速快速增量
|
||
#define PTZ_VERT_PID_ADD 20//20//PID调速快速增量
|
||
|
||
//#define PTZ_HORI_PID_ADD_A 15//PID调速快速增量
|
||
//#define PTZ_VERT_PID_ADD_A 15//PID调速快速增量
|
||
|
||
#endif
|
||
|
||
|
||
//通过方向PWM波提供反向力矩调速
|
||
//PID调速
|
||
#define PID_ADJUST_SPEED 0
|
||
//方向调速
|
||
#define DIRECTOR_ADJUST_SPEED 1
|
||
|
||
void ptz_send_speed(char dev, char speed);
|
||
void init_speed_module(void);
|
||
void ptz_pid_Init();
|
||
void ptz_hori_pid_clear_zero();
|
||
void ptz_vert_pid_clear_zero();
|
||
void init_speed_module(void);
|
||
#endif
|
||
|
||
#endif |