请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号: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}, };
但是、我仍然无法使它启动。
在以正确的方式调整驱动程序时、我应该考虑哪些关键参数? 哪些参数应该增加/减少?
如果有任何测量结果可以帮助您回答这些问题、请告诉我。
谢谢!