| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160 |
- #ifndef _MOTOR_PARAM_H__
- #define _MOTOR_PARAM_H__
- #include "bsp/bsp.h"
- #include "os/os_types.h"
- #include "foc/core/controller.h"
- /* 电机外特性map, 每个转速点对应的最大扭矩 */
- typedef struct {
- s16 rpm;
- s16 torque;
- }motor_map_t;
- typedef struct{
- s16 torque;
- s16 d;
- s16 q;
- }torque2dq_t;
- typedef struct {
- s16 iq;
- float lq;
- }iq_lq_map_t;
- typedef torque2dq_t torque_map_t;
- s16 motor_max_torque_for_rpm(s16 rpm);
- void motor_mpta_fw_lookup(float rpm, float torque, dq_t *dq_out);
- float motor_get_lq_from_iq(s16 iq);
- float motor_get_ebreak_toruqe(float rpm);
- #if 0
- #if CONFIG_MOT_TYPE==MOTOR_BLUESHARK_NEW1
- #define MOTOR_R 0.010f
- #define MOTOR_Ld (0.000120f*0.5f)
- #define MOTOR_Lq (0.000200f*0.5f)
- #define MOTOR_POLES 4
- #define MOTOR_ENC_OFFSET 0.0F
- #define CONFIG_MAX_MOTOR_TORQUE 40.0F
- #define TRQ_PI_KP 0.14F
- #define TRQ_PI_KI 0.15F
- #define CONFIG_CURRENT_BANDWITH 1000.0f /* 电流环带宽 */
- #define CONFIG_DEFAULT_PHASE_CURR_LIM 200
- #define CONFIG_MAX_FW_D_CURR 100.0F //d轴最大的退磁电流
- #define MOTOR_NR 0x11
- #elif CONFIG_MOT_TYPE==MOTOR_BLUESHARK_A1
- #define MOTOR_STATOR_5N
- #ifndef MOTOR_STATOR_5N
- #define MOTOR_R 0.011f //5N -> 0.0164/2
- #define MOTOR_Ld (0.000140F*0.5f) //5N -> 0.000048
- #define MOTOR_Lq (0.000356f*0.5f) //5N -> 0.0001335
- #define MOTOR_Flux (0.019f)
- #else
- #define MOTOR_R 0.009f
- #define MOTOR_Ld (0.000100F*0.5f) //5N -> 0.000048
- #define MOTOR_Lq (0.000240f*0.5f) //5N -> 0.0001335
- #define MOTOR_Flux (0.0158f)
- #endif
- #define MOTOR_POLES 4
- #define MOTOR_ENC_OFFSET 0.0F
- #define CONFIG_MAX_MOTOR_TORQUE 400.0f//45.0F
- #define PI_VEL_LIM_KP 0.085F //0.13f
- #define PI_VEL_LIM_KI 2.5F
- #define PI_VEL_LIM_KD 0.0F
- #define PI_VEL_KP 0.1F //0.13f
- #define PI_VEL_KI 3.0F
- #define PI_VEL_KD 0.0F
- #define MOTOR_NR 0x16
- //4000->10, 34; 8000->8, 15
- #define CONFIG_CURRENT_BANDWITH (800 * 2 * PI) /* 电流环带宽 = bandwith / (2 * pi)*/
- #define CONFIG_DEFAULT_PHASE_CURR_LIM 500
- #define CONFIG_MAX_FW_D_CURR 300.0F //d轴最大的退磁电流
- #define CONFIG_CURRENT_LOOP_DECOUPE //电流环解耦
- #define CONFIG_SENSORLESS_MAX_IDC 60
- #define CONFIG_SENSORLESS_MAX_TORQUE 100
- #define CONFIG_SENSORLESS_MAX_SPEED 5000
- #elif CONFIG_MOT_TYPE==MOTOR_BLUESHARK_NEW2
- #define MOTOR_R 0.013f
- #define MOTOR_Ld (0.000140f*0.5f)
- #define MOTOR_Lq (0.000320f*0.5f)
- #define MOTOR_POLES 4
- #define MOTOR_ENC_OFFSET 250.0F
- #define CONFIG_MAX_MOTOR_TORQUE 40.0F
- #define TRQ_PI_KP 0.14F
- #define TRQ_PI_KI 0.15F
- #define MOTOR_NR 0x12
- #define CONFIG_CURRENT_BANDWITH 1000.0f /* 电流环带宽 */
- #define CONFIG_DEFAULT_PHASE_CURR_LIM 200
- #define CONFIG_MAX_FW_D_CURR 100.0F //d轴最大的退磁电流
- #elif CONFIG_MOT_TYPE==MOTOR_BLUESHARK_ZD_100
- #define MOTOR_R 0.008f
- #define MOTOR_Lq (0.000125f*0.5f)
- #define MOTOR_Ld (0.000091f*0.5f)
- #define MOTOR_POLES 5
- #define MOTOR_Flux (0.019f)
- #define MOTOR_ENC_OFFSET 0.0F
- #define PI_VEL_LIM_KP 0.085F //0.13f
- #define PI_VEL_LIM_KI 2.5F
- #define PI_VEL_LIM_KD 0.0F
- #define PI_VEL_KP 0.1F //0.13f
- #define PI_VEL_KI 3.0F
- #define PI_VEL_KD 0.0F
- #define MOTOR_NR 0x13
- #define CONFIG_CURRENT_LOOP_DECOUPE //电流环解耦
- #define CONFIG_SENSORLESS_MAX_IDC 30
- #define CONFIG_SENSORLESS_MAX_TORQUE 80
- #define CONFIG_SENSORLESS_MAX_SPEED 3000
- #elif CONFIG_MOT_TYPE==MOTOR_BLUESHARK_OLD
- #define MOTOR_R 0.012f
- #define MOTOR_Ld (0.000143f*0.5f)
- #define MOTOR_Lq (0.000205f*0.5f)
- #define MOTOR_POLES 5
- #define MOTOR_ENC_OFFSET 180.0F
- #define CONFIG_MAX_MOTOR_TORQUE 40.0F
- #define TRQ_PI_KP 0.14F
- #define TRQ_PI_KI 0.15F
- #define MOTOR_NR 0x14
- #define CONFIG_CURRENT_BANDWITH 1000.0f /* 电流环带宽 */
- #define CONFIG_DEFAULT_PHASE_CURR_LIM 200
- #define CONFIG_MAX_FW_D_CURR 100.0F //d轴最大的退磁电流
- #elif CONFIG_MOT_TYPE==MOTOR_3505
- //编码器电机 3505
- #define MOTOR_R 0.08f
- #define MOTOR_Ld 0.000032f
- #define MOTOR_Lq 0.000032f
- #define MOTOR_POLES 10
- #define CONFIG_MAX_MOTOR_CURR 20.0F
- #define TRQ_PI_KP 0.14F
- #define TRQ_PI_KI 0.15F
- #define MOTOR_NR 0x15
- #define CONFIG_CURRENT_BANDWITH 1000.0f /* 电流环带宽 */
- #endif
- #endif
- #endif /* _MOTOR_PARAM_H__ */
|