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.

[参考译文] DRV8301-HC-C2-KIT:Lab13b 相电流受限

Guru**** 2611705 points
Other Parts Discussed in Thread: DRV8301

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/686213/drv8301-hc-c2-kit-lab13b-phase-current-is-limited

器件型号:DRV8301-HC-C2-KIT

我使用 lab13b 来旋转8极对机器、主要是因为它具有编码器反馈功能。 我不是软件工程师、因此我不知道如何使用 FOC 实验室实现位置传感器。  我只需要旋转<500 RPM、但我需要生成最大扭矩。

使用库存 EVM 配置(PCB 和 user.h 缩放)、峰值相电流峰值在~30安培时达到峰值、 EXT_IX-FB 等于1.2伏(对于30A)。  我的 USER_MOTOR_MAX_CURRENT = 40、因此我不知道为什么电流在30安培时达到峰值?  示波器跟踪。

我将 Rsense (R80、R81、R82)更改为0.001Ω Ω、以为峰值电流提供更大的裕度(我需要在70-80安培时才能达到)。  我还更改了 user.h 中的比例

USER_IQ_FULL_SCALE_CURRENT_A      (82.5)

USER_ADC_FULL_SCALE_CURRENT_A     (165)

USER_MOTOR_MAX_CURRENT      (80.0)

现在、当需要高转矩时、峰值相电流限制为~40安培、EXT_IX-FB 等于0.78伏(对于40A)。  为什么不允许电流上升到80安培?  是否有其他参数限制电流?  我没有接近满量程(1.65伏)的地方。

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

    1、根据 h/w 在 user.h 中设置正确的电流和电压标度
    2.请参阅 lab2a/2b/2c 在 user.h 中设置正确的电机参数以进行识别、然后运行 lab2a/b/c 以识别电机参数、在 user.h 中设置识别的电机参数
    运行 lab12a 以识别电机惯性、并在 user.h 中设置识别的参数 确保物理连接正确完成。 如果电机或编码器线的连接顺序不正确、则 lab12a 和 lab13b 将无法正常工作、即使是过流、电机也无法移动。
    5.在运行 lab13b 之前已识别系统惯性并调整了 SpinTAC 位置控制,如果没有,则先返回 lab12a 和 lab13a。

    更多详细说明可在 instaSPIN 实验室指南和用户指南(SPRUHJ1G)中找到。

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

    1、根据 h/w 在 user.h 中设置正确的电流和电压标度   我相信、基于将 Rsense (R80、R81、R82)更改为1MΩ USER_IQ_FULL_SCALE_CURRENT_A、我拥有这一正确答案        (82.5)

    USER_ADC_FULL_SCALE_CURRENT_A     (165)   

    2.请参阅 lab2a/2b/2c 在 user.h 中设置正确的电机参数以进行识别、然后运行 lab2a/b/c 以识别电机参数、在 user.h 中设置识别的电机参数   

    我确实通过 lab02a 获得了成功的身份识别、没有问题。

    #elif (USER_MOTOR== HIGH_RL)//来自 lab2a、电压为54伏20180410
    #define USER_MOTOR_TYPE MOTOR_Type_PM
    #define USER_MOTOR_NUM_POLE_PAIRS (8)
    #define USER_MOTOR_RR (空)
    #define USER_MOTOR_Rs (0.27469936)
    #define USER_MOTOR_LS_d (0.00173067872)
    #define USER_MOTOR_LS_q (0.00173067872)
    #define USER_MOTOR_RATGE_FLUX (0.329362482)
    #define USER_MOTOR_磁 化电流(空)
    #define USER_MOTOR_RES_EST_CURRENT (10.0)
    #define USER_MOTOR_IND_EST_CURRENT (-3.0)
    #define USER_MOTOR_MAX_CURRENT (60.0)
    #define USER_MOTOR_FLUX_EST_FREQ_Hz (30.0)


    运行 lab12a 以识别电机惯性、并在 user.h 中设置识别的参数 确保物理连接正确完成。 如果电机或编码器线的连接顺序不正确、则 lab12a 和 lab13b 将无法正常工作、即使是过流、电机也无法移动。

    我确实通过 lab12a 获得了可重复的惯性和摩擦值、因此我非常确定物理连接是否正确。 电机旋转以进行 lab12a 惯性测量、并在 lab13a 中保持位置。  我设置 #define USER_SYSTEM_BANTANSE   (30.0)以获得适当的响应。

    #define USER_MOTOR_ENCODER_LINs (2000.0)//电机正交编码器上的线数
    #define USER_MOTOR_MAX_SPEED_KRPM (1.0)//电机的最大速度
    #define USER_SYSTEM_惯性(1.6067)//电机和系统的惯性、应通过 lab12a 20180410中的 SpinTAC 速度识别进行估算
    #define USER_SYSTEM_FRICTION (2.1907)//电机和系统的摩擦、应通过 lab12a 20180410中的 SpinTAC 速度识别进行估算
    #define USER_SYSTEM_BANGE_SCALE (1.0)


    5.在运行 lab13b 之前已识别系统惯性并调整了 SpinTAC 位置控制,如果没有,则先返回 lab12a 和 lab13a。

    我相信所有东西都经过了很好的调优、我只想了解为什么在我增加电机负载时相电流限制在~40安培。  只有40A 的峰值相电流时、我无法满足负载要求。  您知道我如何提高此限制、我设置的扩展和硬件(如上所示)应该允许这样做吗?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    电机的输出电流仅限于 USER_MOTOR_MAX_CURRENT、但由 SpinTAC 控制器控制。 Lab13b 是一种位置转换控制、扭矩电流取决于电机负载、位置移动的响应要求。
    您能否检查 st_obj->posCtlHandle->cfg.OutMax/OutMin 是否等于 USER_MOTOR_MAX_CURRENT? 如果是、则电流应由 SpinTAC 控制器根据位置移动的要求进行控制。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我验证了 OutMax/OutMin 变量等于 USER_MOTOR_MAX_CURRENT、因此这是正确的。

    我认为问题实际上是硬件问题、最有可能是相电流达到~38-42安培时触发的 DRV8301-HC_EVM 上的交互。  当我将 USER_MOTOR_MAX_CURRENT 设置为<35A 时、相电流确实会按预期限制   

    我在下面记录了3条示波器迹线、放大了每张图像。  在低侧驱动器关闭时(我显示 B 相、但也发生在 C 相上。  不是 A 相)您可以看到 Vgs 的振荡。  最终、该振荡会导致 PWM_BH 关闭、至少在示波器以这种方式出现时是如此、直到下一个 PWM 周期。  对于相位 B 和相位 C、它似乎只有一个极性

    您以前是否见过这种情况?  我想知道它是否是我的机器的电流电平和电感的组合?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您可以检查寄存器配置以查看电流是否受限 DRV8301禁用 PWM 输出。 也许、您可以更改 OC_ADJ_SET 寄存器中的 VDS 值以增加 DRV8301的限制电流。