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 软件和 CCS Theia 无法旋转电机的 DRV8300DIPWM-EVM

Guru**** 2440900 points
Other Parts Discussed in Thread: LP-MSPM0G3507, BOOSTXL-DRV8323RS

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

https://e2e.ti.com/support/motor-drivers-group/motor-drivers/f/motor-drivers-forum/1367761/lp-mspm0g3507-drv8300dipwm-evm-with-mspm0-sensorless-foc-software-and-ccs-theia-unable-to-spin-motor

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

工具与软件:

您好!

执行 此处所述的步骤 并使用 GUI 旋转电机后、 我认为我的硬件设置可按预期工作。 因此我现在转到下一步、使用 MSPM0无传感器 FOC 软件并使用 CCS Theia 研究如何旋转电机  1.4.0.12但在遵循 指南之后、 我最终得到一个正在运行的 LP-MSPM0G3507板、并且 DRV8300DIPWM-EVM 板上预期的灯显示、但电机没有反应。 将 SpeedCtrl 增大到100不会导致任何声音、移动或功耗增加。 我唯一得到的反应是、 如果我 在电源电压高于30V 时将 SpeedCtrl 增加到100、会出现以下故障:

  • systemFaultStatus:2 (FAULT_VOLTAGE_OUT_OF_BOUNDS)
  • MotorState:13 (MOTOR_FAULT)

我按照 调整指南设置我的系统、从而进行以下调整:

  • pUserInputRegs->systemParams.mtrResistor = 39;
  • pUserInputRegs->systemParams.mtrInductance = 18;
  • pUserInputRegs->systemParams.mtrBemfConst = 17;
  • pUserInputRegs->systemParams.voltageBase = DC_VOLTAGE_BASE * 1000;
  • pUserInputRegs->systemParams.currentBase = FULL_SCALE_CURRENT_BASE * 1000;
  • pUserCtrlRegs->algoDebugCtrl1.b.closeLoopDis = 1;
  • #define FULL_SCALE_CURRENT_BASE           23.571.

有什么我丢失的东西吗?

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

    您好!

    我需要更正一个拼写错误:驱动板是 BOOSTXL-DRV8323RS、而不是 DRV8300DIPWM-EVM。

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

    尊敬的 Tobias:

    您当前是否正在调试模式下尝试在 CCS 中执行此操作?

    《MSPM0无传感器 FOC 调优指南》最近更新、它使用您可能想要尝试的最新版本的 MSPM0 FOC 电机控制 GUI/软件: https://dev.ti.com/gallery/view/TIMSPGC/MSPM0G-SENSORLESS_FOC/ver/2.0.0/

    [报价用户 id="608140" url="~/support/motor-drivers-group/motor-drivers/f/motor-drivers-forum/1367761/lp-mspm0g3507-drv8300dipwm-evm-with-mspm0-sensorless-foc-software-and-ccs-theia-unable-to-spin-motor "]
    • pUserInputRegs->systemParams.mtrResistor = 39;
    • pUserInputRegs->systemParams.mtrInductance = 18;
    • pUserInputRegs->systemParams.mtrBemfConst = 17;
    [报价]

    您是从电机驱动器数据表中获取还是测量这些值? 是否确定正确使用了相间电阻和电感?  

    反电动势常数是否转换为 mV/Hz、如图所示?

    此致、
    Brandon Fisher

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

    Brandon、您好!

    感谢您 回来观看这个视频。

    我实际上是在调试模式下运行。 我现在更新到了  MSPM0 SDK 2.1.0.03并浏览了 更新后的文档。 由于有新信息、我不得不对参数进行一些更改:  

    • pUserInputRegs->systemParams.mtrResistor = 39;// 38.5m Ω
    • pUserInputRegs->systemParams.mtrInductance = 17;// 16、95 µH
    • pUserInputRegs->systemParams.mtrBemfConst = 17;// 16.717mV/Hz
    • pUserInputRegs->systemParams.voltageBase = DC_VOLTAGE_BASE;  
    • pUserInputRegs->systemParams.currentBase = FULL_SCALE_CURRENT_BASE;
    • pUserCtrlRegs->algoDebugCtrl1.b.closeLoopDis = 1;
    • #define FULL_SCALE_CURRENT_BASE           23.571.

    遗憾的是、行为仍然相同。  出于好奇、我检查了它是否会随 GUI 发生变化。 但是、尽管 GUI 指示已连接、但显示了一组"Connection Error"消息、并且未显示任何合理的数据。

      按照文件的要求将 voltageBase 和 currentBase 的比例调整为 V 和 A。 但是、代码注释 显然需要 mV 和 mA。 这里的正确缩放是什么?

     

    您是从电机驱动器数据表中提取这些值还是测量这些值?

    我的参数源自2024年6月的 SLAU927A 中所述的测量值。

    您确定您使用的相间电阻和电感是否正确?  [报价]

    我严格遵循了 SLAU927A。 我确信文档是否正确。

    反电动势常数是否转换为毫伏/赫、如图所示?

    我已将 SI 单位添加到上述参数中。  查看文档后、应用的值似乎符合要求。

    关于从何处开始了解故障状态、您是否有相关建议?

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

    尊敬的 Tobias:

    我要更正您的配置之一:

    pUserInputRegs->systemParams.mtrBemfConst = 17;// 16.717mV/Hz

    根据调优指南、单位 应为0.1mV/Hz。 所以、您应该为该变量设置167。 [它用于为反电动势提供更高的精度]。 然而、这不是您的错误的根本原因。

      按照文档的要求将 voltageBase 和 currentBase 的比例调整为 V 和 A。 但是、代码注释 显然需要 mV 和 mA。 此处的正确缩放比例是多少?[/QUOT]

    单位是 A 和 V。您是否可以分享您找到的单位、告诉您单位是 mV 和 mA?

    [报价 userid="608140" url="~/support/motor-drivers-group/motor-drivers/f/motor-drivers-forum/1367761/lp-mspm0g3507-drv8300dipwm-evm-with-mspm0-sensorless-foc-software-and-ccs-theia-unable-to-spin-motor/5264239 #5264239"]pUserCtrlRegs->AlgoDebugCtrl1.b.closeLoopDis = 1;[/QUOT]

    如果您设置此值、算法将使用开环、这意味着只有电流环路起作用。 eSMO (使用电机参数估算转子位置)在此阶段不起作用。 因此、目前只有电流环路的 kp/ki 生效。

    [quote userid="608140" url="~/support/motor-drivers-group/motor-drivers/f/motor-drivers-forum/1367761/lp-mspm0g3507-drv8300dipwm-evm-with-mspm0-sensorless-foc-software-and-ccs-theia-unable-to-spin-motor systemFaultStatus:2 (fault_voltage_out_of_bounds)[/quot]

    在故障开始处、这意味着输入直流电源不在您的范围内。

    您可以检查以下变量以适合您的输入、详细说明可以参考调优指南。

    基本值为 DC_VOLTAGE_BASE。 例如、我共享的代码会将输入直流功率(30V)判断为0.2~0.9 * DC_VOLTAGE_BASE。 如果不匹配、则会发生故障。

    顺便说一下、速度输入是一个15位变量、因此、您可以将其设置为 IQ15格式、然后输入(0-1)作为初始值。 将100作为输入、意味着您只将其设置为0.003*MAX_SPEED 作为速度设置。

    请告知我这是否可以解决您的问题。

    B.R.

    SAL

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

    尊敬的 Sal:

    您的输入响应提供了很多帮助。 现在、系统显示了设置速度时的预期行为。 我认为以下部分对调优指南有所帮助:

    您可以检查以下变量以适应您的输入、详细说明可参考调优指南。

    关于您的问题:

    单位是 A 和 V。您能分享一下您发现的单位是 mV 还是 mA 吗?

    请参阅 appInputCtrlInterface.h:

    /*! Maximum DC Bus Max Voltage in mV*/
    float                               voltageBase;
    
    /*! Maximum DC Bus Current in mA*/
    float                               currentBase;

    非常感谢!

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

    尊敬的 Tobias:

    感谢您的反馈。 库中应该有一个拼写错误。 我将报告,并希望它可以解决在下面发布的版本. 我们还将在调优指南中添加更多说明、以帮助用户播放 SDK 演示。

    我将关闭该主题。 如果您有任何其他问题、请随时提交新主题。

    B.R.

    SAL