This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] MCT8316A:调整特定负载的驱动器参数(难以启动)

Guru**** 654100 points
Other Parts Discussed in Thread: MCT8316A
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/motor-drivers-group/motor-drivers/f/motor-drivers-forum/1182712/mct8316a-tunning-driver-parameters-for-a-specific-load-hard-to-make-it-start

器件型号: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},
};

但是、我仍然无法使它启动。  

在以正确的方式调整驱动程序时、我应该考虑哪些关键参数? 哪些参数应该增加/减少?

如果有任何测量结果可以帮助您回答这些问题、请告诉我。

谢谢!

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    嗨、Blas、

    感谢您将问题发布到 E2E。 我已为团队的一名成员分配了反馈/时间表预期。

    请注意、假期可能会有一些延迟。

    最棒的

    Akshay