#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