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.

[参考译文] LP-MSPM0G3507:MSPM0无传感器 FOC 软件会损坏 BOOSTXL-DRV8323RS

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

https://e2e.ti.com/support/motor-drivers-group/motor-drivers/f/motor-drivers-forum/1396422/lp-mspm0g3507-mspm0-sensorless-foc-software-damages-boostxl-drv8323rs

器件型号:LP-MSPM0G3507
主题中讨论的其他器件:BOOSTXL-DRV8323RSCSD88584Q5DC

工具与软件:

您好!

我运行的是来自 SDK 2.1.0.03的 MSPM0无传感器 FOC。 电机启动效果非常好、直到 BOOSTXL-DRV8323RS MOSFET 之一(C1或 C2或 C3)出现热事件的迹象。 现在、两块板子发生了这种情况、我感到有点困惑、因为这项行动完全在我所知的范围内。

当电机稳定运行时、该系统为30V 和大约5A 供电、这是我根据它的声音进行判断的最根本原因。 该值应完全处于限制范围内、因为它小于48V 且小于15A。但是、几秒钟后、会发生过热事件、并且其中一个 MOSFET 开始吸烟。 电机停止旋转、并显示以下状态信息:

systemFaultStatus:0 (no_faults)
MotorState:6 (MOTOR_ALIGN)

我根据准备开环调试中的调优指南设置了我的系统、因此进行了以下调整:

pUserInputRegs->mtrStartUp1.b.mtrStartUpOption     = 0; // Motor start-up method Align
pUserInputRegs->mtrStartUp1.b.olILimitCfg          = 0; // Open loop current limit defined by OL_ILIMIT
pUserInputRegs->mtrStartUp2.b.olILimit             = 0x05; // Open loop current limit at 10 % * FULL_SCALE_CURRENT_BASE
pUserInputRegs->faultCfg2.b.maxVmMtr               = 0x3;  // Voltage maximum at 75 % * voltageBase
pUserInputRegs->faultCfg2.b.minVmMtr               = 0x0;  // No voltage minimum
pUserInputRegs->isdCfg.b.isdEn                     = 0; // Start with standstill
pUserInputRegs->systemParams.mtrResist             = 39; // 38.5 mOhm
pUserInputRegs->systemParams.mtrInductance         = 17; // 16.95 µH
pUserInputRegs->systemParams.mtrBemfConst          = 167; // 16.717 mV/Hz
pUserInputRegs->systemParams.currLoopKp            = 0; // Auto compute
pUserInputRegs->systemParams.currLoopKi            = 0; // Auto compute
pUserInputRegs->systemParams.mtrSaliency           = 0.0548;
pUserInputRegs->systemParams.voltageBase           = 57.42; // 57.42 V
pUserCtrlRegs->algoDebugCtrl1.b.closeLoopDis       = 1;    // run in open loop only for Motor Open Loop Debug
pUserCtrlRegs->algoDebugCtrl2.b.currLoopDis        = 1;    // disapble current loop only for Motor Open Loop Debug
pUserCtrlRegs->algoDebugCtrl2.b.forceVDCurrLoopDis = 100;  // starting point for tuning
pUserCtrlRegs->algoDebugCtrl2.b.forceVQCurrLoopDis = 100;  // starting point for tuning
pUserCtrlRegs->speedCtrl.b.speedInput              = 500;
#define FULL_SCALE_CURRENT_BASE                    23.571
#define MOTOR_MAX_SPEED                            833.0

我希望防止丢失更多硬件。 有什么我丢失的东西吗?

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

    您好!

    请允许我向电机控制专家咨询您的问题。  

    此致、

    Cash Hao

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

    尊敬的 Tobias:

    很抱歉这里迟到了答复。

    我看到您使用的是 PWM 环路 模式、这意味着您将使用固定的 PWM 占空比来控制您的电机。  

    一个可能的原因是、MOSFET 的死区时间不足以满足这一要求。 您是否会尝试增加死区时间设置、以查看问题是否仍然存在。

    同时、您也可以共享电机的电流波形。 我不确定5A 是多少...如果这是电源电流消耗、则相电流应远高于此值。

    B.R.

    SAL

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

    尊敬的 Sal:
    我们感谢您的答复。

    死区时间现在设置为500ns、以获得较大的间隙、我们认为:  

    说明:
    1. HS 栅极与源极之间的电压(差分)
    2. LS 栅极与源极之间的电压
    3.电压相位
    4.当前相位

    通过仔细观察波形、我们可以看到栅极驱动器配置不当可能导致的问题。 测量显示了 LS 栅极跳变信号、这可能会导致 LS MOSFET 在 HS MOSFET 刚刚打开时闭合。 我们认为这是短暂的短路。 然而、我们需要设置一个更详细的测量才能确保。

    为了排除其他更高效的因素、我们将在大约15V 的电压斜升期间出现惊人低的相电压 作为目标。我们将电源限值增加到15A (仍在 dev.ti.com/.../DRV8323RS_ILimit.html 的范围内)并将 Hardware_User_Guide 降低到7、5%。 但是、这几乎没有任何影响、我们又损坏了另一个电子器件、显示的模式与上述相同。

    当我们的资源资源将在这里结束时,我们想知道在剩余的时间里我们是否还能做些什么。 但是、我们的印象是我们的电机负载过大、不适合用于栅极驱动器配置。 我们假设这两个都不能及时解决,因为 olILimit 不能提供足够的控制,并准备另一个电机只是为了尝试另一个之后是超出我们可以投资的。 除此之外、调优栅极驱动器本身也是一项挑战、这项挑战已经超越了。 是否有更有效的步骤能够最终实现所承诺的快速成功?

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

    尊敬的 Tobias:

    我这边有几条建议。

    1.另请显示一个完整电气周期的相电流波形、 目前只显示几个 PWM 占空比的波形。 最好提供总体电流波形以供参考。

    对于此处显示的波形、相电流至少有接近60A 的峰值、这意味着其 RMS 值为60/sqrt (2)=42A。 如果这是峰值、则这在 MOSFET 规格范围内。 ->然后请确保死区时间对于这些高电流足够、它通常对于高电流需要1-2us、甚至更大。

    [CSD88584Q5DC 40V 半桥 NexFET 电源块数据表]

    3、电流基准和电流限值

    将 olilimit 减少至7.5 %。 但是、这几乎没有什么影响、我们又损坏了另一台电子设备[/引述]

    由于客户不使用电流环路模式、因此电流限制在此处不起作用。

    第15行"pUserCtrlRegs->algoDebugCtrl2.b.currLoopDis     = 1;  //仅在电机开环调试时排除电流环路"显示了相应情况。

    另一方面、我不确定您的当前基本设置是、我在您的共享代码中找不到它。 然而、根据此处的宏定义"FULL_SCALE_CURRENT_BASE"、这意味着相电流不应超过23.571A。 60A 相电流超出了检测量程范围。 由于客户只使用 PWM 模式、不执行任何速度环路或电流环路控制、因此这对客户来说是可以的。

    4、进一步调整方法的建议。

    由于我们的资源来源即将在这里结束、我们想知道在剩余时间内还有什么可以做的。

    客户为何需要使用 PWM 控制模式(禁用闭环、禁用电流环路)? 它的效率较低 电流在算法中不受控制 .

    如果不需要关闭回放、请为您的应用使用电流环路。

    Remove below:
    pUserCtrlRegs->algoDebugCtrl2.b.currLoopDis        = 1;    // disapble current loop only for Motor Open Loop Debug
    pUserCtrlRegs->algoDebugCtrl2.b.forceVDCurrLoopDis = 100;  // starting point for tuning
    pUserCtrlRegs->algoDebugCtrl2.b.forceVQCurrLoopDis = 100;  // starting point for tuning
    
    Add below for current control:
    pUserInputRegs->mtrStartUp1.b.alignOrSlowCurrLimit -> set align current
    pUserInputRegs->mtrStartUp2.b.olILimit -> set open loop current
    pUserInputRegs->mtrStartUp2.b.olClHandOffThr -> set the open loop speed

    B.R.

    SAL

    [/quote]