请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:MCT8316A 您好!
我正在使用 MCT8316A 驱动器、该驱动器由基于 I2C 的 PIC32MM 微控制器控制。
驱动器连接到驱动纹波机器的三相无刷电机。 有一种机制可将电机的旋转运动转换为线性运动、最终使针前后移动。
该负载(线性传动器)的特殊性在于很难使其启动。 电机必须在开始时施加较大的力。 但当电机运行时、功率要求会显著降低。
首先、我针对没有任何负载的电机调整了 MCT8316A、使其能够快速启动。 以下是我用于无负载电机的配置:
static const config_t open_loop_ultra_slow_start_config2[] =
{
{ISD_CONFIG_ADDR, 0x6EC4C100},
/**
* MOTOR_STARTUP1_ADDR:
*
* -> MTR_STARTUP = 1h = Double Align
* -> ALIGN_RAMP_RATE = 7h = 10 V/s [Align voltage ramp rate]
**** -> ALIGN_TIME = 3h = 50 ms
* -> ALIGN_CURR_THR = 4h = 0.4 V [Align current threshold (Align current threshold (A) = ALIGN_CURR_THR / CSA_GAIN)] = 2.66A (with CSA 0.15 A/V)
* -> IPD_CLK_FREQ = 2h = 250 Hz
* -> IPD_CURR_THR = 4h = 0.4 V [IPD current threshold (IPD current threshold (A) = IPD_CURR_THR / CSA_GAIN)] = 2.6A (with CSA 0.15 A/V)
* -> IPD_RLS_MODE = 1h = Tristate [IPD release mode]
* -> IPD_ADV_ANGLE = 2h = 60° [IPD advance angle]
* -> IPD_REPEAT = 1h = average of 2 times [Number of times IPD is executed]
* -> SLOW_FIRST_CYC_FREQ = 2h = 0.25 Hz [Frequency of first cycle]
*/
{MOTOR_STARTUP1_ADDR, 0x2E689192},
/**
* MOTOR_STARTUP2_ADDR:
*
* -> OL_ILIMIT_CONFIG = 0h = Open loop current limit defined by OL_ILIMIT
* -> OL_DUTY = 3h = 25% [Duty cycle limit during open loop]
* -> OL_ILIMIT = 4h = 0.4 V [Open loop current limit (OL current threshold (A) = OL_CURR_THR / CSA_GAIN)] = 2.6A (with CSA 0.15 A/V)
**** -> OL_ACC_A1 = 18h = 200 Hz/s [Open loop acceleration A1]
**** -> OL_ACC_A2 = 18h = 200 Hz/s2 [Open loop acceleration A2]
* -> OPN_CL_HANDOFF_THR = 19h = 300 Hz [Open to closed loop handoff threshold]
* -> AUTO_HANDOFF = 1h = Enable Auto Handoff
* -> FIRST_CYCLE_FREQ_SEL = 0h = Defined by SLOW_FIRST_CYC_FREQ
* -> MIN_DUTY = 4h = 5 % [Min operational duty cycle]
*/
{MOTOR_STARTUP2_ADDR, 0x1A631990},
/**
* CLOSED_LOOP1_ADDR:
*
* -> COMM_CONTROL = 0h = 120° Commutation [Trapezoidal commutation mode]
* -> CL_ACC = 8h = 2.5 V/s [Closed loop acceleration rate]
* -> CL_DEC_CONFIG = 0h = Close loop deceleration defined by CL_DEC [Closed loop decel configuration]
* -> CL_DEC = 8h = 2.5 V/s [Closed loop deceleration rate]
* -> PWM_FREQ_OUT = 10h = 25 kHz [Output PWM switching frequency]
* -> PWM_MODUL = 0h = High-Side Modulation
* -> PWM_MODE = 0h = Single Ended Mode
* -> LD_ANGLE_POLARITY = 1h = Positive [Polarity of applied lead angle]
* -> LD_ANGLE = 0h = Lead Angle {Lead Angle (deg) = LD_ANGLE * 0.12}
*/
{CLOSED_LOOP1_ADDR, 0x08220200},
{CLOSED_LOOP2_ADDR, 0x02A6E4B0},
{CLOSED_LOOP3_ADDR, 0x4CC40100},
{CLOSED_LOOP4_ADDR, 0x000CE944},
/**
* CONST_SPEED_ADDR:
*
* -> SPD_POWER_KP = 64h = 100 [Speed/ Power loop Kp (Kp = SPD_LOOP_KP / 10000)]
* -> SPD_POWER_KI = 32h = 50 [Speed/ Power loop Ki (Ki = SPD_LOOP_KI / 1000000)
* -> SPD_POWER_V_MAX = 0h = 100 % [Upper saturation limit for speed/ power loop]
* -> SPD_POWER_V_MIN = 4h = 10 % [Lower saturation limit for speed/power loop]
* -> CLOSED_LOOP_MODE = 1h = Speed Loop
*/
{CONST_SPEED_ADDR, 0x06403211},
{CONST_PWR_ADDR, 0x5DC04C84},
{_150_DEG_TWO_PH_PROFILE_ADDR, 0x36DB6DA6},
{_150_DEG_THREE_PH_PROFILE_ADDR, 0x36DB6D80},
{TRAP_CONFIG1_ADDR, 0x054BA106},
{TRAP_CONFIG2_ADDR, 0x62880000},
{FAULT_CONFIG1_ADDR, 0x78F43025},
{FAULT_CONFIG2_ADDR, 0x7447A009},
{GD_CONFIG1_ADDR, 0x1C440000},
{GD_CONFIG2_ADDR, 0x14000000},
{PIN_CONFIG1_ADDR, 0x2D720604},
{PIN_CONFIG2_ADDR, 0x080C0000},
{DEVICE_CONFIG_ADDR, 0x7FFF0000},
};
然后、我将电机连接到负载并重复测试。 电机无法启动。 假设问题是电机启动的困难、我将配置更改为以下配置:
static const config_t open_loop_ultra_slow_start_config2[] =
{
{ISD_CONFIG_ADDR, 0x6EC4C100},
/**
* MOTOR_STARTUP1_ADDR:
*
* -> MTR_STARTUP = 1h = Double Align
* -> ALIGN_RAMP_RATE = 7h = 10 V/s [Align voltage ramp rate]
**** -> ALIGN_TIME = Ah = 1 s
* -> ALIGN_CURR_THR = Ah = 1 V [Align current threshold (Align current threshold (A) = ALIGN_CURR_THR / CSA_GAIN)] = 6.6A (with CSA 0.15 A/V)
* -> IPD_CLK_FREQ = 2h = 250 Hz
* -> IPD_CURR_THR = Ah = 1 V [IPD current threshold (IPD current threshold (A) = IPD_CURR_THR / CSA_GAIN)] = 6.6A (with CSA 0.15 A/V)
* -> IPD_RLS_MODE = 1h = Tristate [IPD release mode]
* -> IPD_ADV_ANGLE = 2h = 60° [IPD advance angle]
* -> IPD_REPEAT = 1h = average of 2 times [Number of times IPD is executed]
* -> SLOW_FIRST_CYC_FREQ = 2h = 0.25 Hz [Frequency of first cycle]
*/
{MOTOR_STARTUP1_ADDR, 0x2F54A992},
/**
* MOTOR_STARTUP2_ADDR:
*
* -> OL_ILIMIT_CONFIG = 0h = Open loop current limit defined by OL_ILIMIT
* -> OL_DUTY = 7h = 100% [Duty cycle limit during open loop]
* -> OL_ILIMIT = Ah = 1 V [Open loop current limit (OL current threshold (A) = OL_CURR_THR / CSA_GAIN)] = 6.6A (with CSA 0.15 A/V)
**** -> OL_ACC_A1 = 18h = 200 Hz/s [Open loop acceleration A1]
**** -> OL_ACC_A2 = 18h = 200 Hz/s2 [Open loop acceleration A2]
* -> OPN_CL_HANDOFF_THR = 19h = 300 Hz [Open to closed loop handoff threshold]
* -> AUTO_HANDOFF = 1h = Enable Auto Handoff
* -> FIRST_CYCLE_FREQ_SEL = 0h = Defined by SLOW_FIRST_CYC_FREQ
* -> MIN_DUTY = 4h = 5 % [Min operational duty cycle]
*/
{MOTOR_STARTUP2_ADDR, 0x3D631990},
/**
* CLOSED_LOOP1_ADDR:
*
* -> COMM_CONTROL = 0h = 120° Commutation [Trapezoidal commutation mode]
* -> CL_ACC = 8h = 2.5 V/s [Closed loop acceleration rate]
* -> CL_DEC_CONFIG = 0h = Close loop deceleration defined by CL_DEC [Closed loop decel configuration]
* -> CL_DEC = 8h = 2.5 V/s [Closed loop deceleration rate]
* -> PWM_FREQ_OUT = 10h = 25 kHz [Output PWM switching frequency]
* -> PWM_MODUL = 0h = High-Side Modulation
* -> PWM_MODE = 0h = Single Ended Mode
* -> LD_ANGLE_POLARITY = 1h = Positive [Polarity of applied lead angle]
* -> LD_ANGLE = 0h = Lead Angle {Lead Angle (deg) = LD_ANGLE * 0.12}
*/
{CLOSED_LOOP1_ADDR, 0x08220200},
{CLOSED_LOOP2_ADDR, 0x02A6E4B0},
{CLOSED_LOOP3_ADDR, 0x4CC40100},
{CLOSED_LOOP4_ADDR, 0x000CE944},
/**
* CONST_SPEED_ADDR:
*
* -> SPD_POWER_KP = 64h = 100 [Speed/ Power loop Kp (Kp = SPD_LOOP_KP / 10000)]
* -> SPD_POWER_KI = 32h = 50 [Speed/ Power loop Ki (Ki = SPD_LOOP_KI / 1000000)
* -> SPD_POWER_V_MAX = 0h = 100 % [Upper saturation limit for speed/ power loop]
* -> SPD_POWER_V_MIN = 4h = 10 % [Lower saturation limit for speed/power loop]
* -> CLOSED_LOOP_MODE = 1h = Speed Loop
*/
{CONST_SPEED_ADDR, 0x06403211},
{CONST_PWR_ADDR, 0x5DC04C84},
{_150_DEG_TWO_PH_PROFILE_ADDR, 0x36DB6DA6},
{_150_DEG_THREE_PH_PROFILE_ADDR, 0x36DB6D80},
{TRAP_CONFIG1_ADDR, 0x054BA106},
{TRAP_CONFIG2_ADDR, 0x62880000},
{FAULT_CONFIG1_ADDR, 0x78F43025},
{FAULT_CONFIG2_ADDR, 0x7447A009},
{GD_CONFIG1_ADDR, 0x1C440000},
{GD_CONFIG2_ADDR, 0x14000000},
{PIN_CONFIG1_ADDR, 0x2D720604},
{PIN_CONFIG2_ADDR, 0x080C0000},
{DEVICE_CONFIG_ADDR, 0x7FFF0000},
};
但是、我仍然无法使它启动。
在以正确的方式调整驱动程序时、我应该考虑哪些关键参数? 哪些参数应该增加/减少?
如果有任何测量结果可以帮助您回答这些问题、请告诉我。
谢谢!