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:使用单分流器的 IPD 启动方法

Guru**** 2390755 points
Other Parts Discussed in Thread: DRV8329, LP-MSPM0G3507

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1415298/lp-mspm0g3507-ipd-startup-method-using-single-shunt

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

工具与软件:

大家好!

FOC 调优指南( 链接 ,第5页)中提到 IPD 启动方法使用所有三相电流来检测初始位置,并在开环模式下加速电机,直到获得足够的 BEMF。 我正在使用的设置具有 LP-MSPM0G3507和 DRV8329 EVM、并使用 SDK mspm0_SDK_2_02_00_05中提供的示例 FOC 代码。  (马达 连杆 )  
在上面的调整指南中,他们建议使用对齐和转到作为启动过程,它应该适用于大多数电机,但当我尝试这样做时,它只是停止。  


1、当我尝试用 IPD 作为启动方法时,电机成功进入闭环状态,我能用 GUI 成功地控制速度。 DRV8329 EVM 仅具有单分流器设置、仍然是如何使用 IPD 运行的、而不是对齐或减慢第一个周期。
2.我已经尝试过按照指南中的说明对这两个参数进行调整、但是仍然无法对齐并且减慢第一个周期甚至能够成功进入开环模式。

提前感谢、
OM Dave

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

    我会找一位电机专家来解答您的问题。

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

    Dave、您好!

    实际上、我曾使用 EVM 板和您共享的电机、它应该可以正常工作、除非有高负载导致电机停转。 我想您的配置可能有一些问题。

    Unknown 说:
    仍然是如何使用 IPD 运行而不是对齐或减慢第一个周期的。

    对于单分流电阻器解决方案、虽然总线中只有一个反馈电流、但它会在一个 PWM 周期内检测两次、每个都可以获得特定的相电流。 在检测到两相电流后、可计算出第三相电流。

    我已经尝试对调优参数进行更改

    我建议您检查对齐阶段设置。 也许您可以在此处分享您的配置。

    顺便说一下、IPD 仅用于初始位置检测、 如果您设置的对齐电流稍高、它应该能够在对齐模式下工作。

    B.R.

    SAL

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

    您好、Sal、

    感谢您的快速响应
    我附加了 USER_INP_MTR_STARTUP 寄存器的值。 如果需要更多的寄存器值、请告知我。  
    设置这些值后、我在 GUI 用户控制界面中的 speedInput 对话框中将值设为3000 (即使在使用 IPD 时、值3000也对我有用)。 电压从24V 电源降至5.7V,电流消耗为2.5A (我在电源上设置的限值)约1秒,不会触发电源过流保护,但一秒钟后电压恢复到24V 和0A 电流消耗。  
    在 GUI 中,它仍然显示在 MOTOR_ALIGN 模式下(在连续读取模式下)。

    USER_INPUT_MTR_STARTUP1_T :0x0A949400

    USER_INPUT_MTR_STARTUP2_T:0x53066006

    STARTUP1 (PIC1)STARTUP1 (PIC2)

    STARTUP2 (PIC1)STARTUP2 (PIC2)
    感谢您帮助我提高对 IPD 的理解。
    此致、
    OM Dave

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

    你好、Sal、


    我还有一个关于总直流母线电流值的问题。 正如您提到的、在 FOC 中将对相电流进行采样和估算。 然而,要得到总直流母线电流,我可以使用这个  IDC = K1*Ipha + K2*Iphb + K3*IPHC 其中 K1..3是上晶体管的栅极命令1/0吗?(或者有没有更好的方法)
    或者,如果整个总线电流已经在算法中计算,我能以某种方式访问它吗?

    此致、
    OM Dave

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

    Dave、您好!

    对不起的回复晚了,这天太忙了。

    在 GUI 中、它仍然显示为 motor_align 模式(连续读取模式)。

    顺便说一下、请确保您已按照 SDK 中的指导修改 DRV8329EVM:

    这很重要。

    实际上、我不使用 GUI、而是使用 CCS 项目开始评估。 请首先检查硬件连接、然后我可以帮助与 GUI 进行检查、看看它是否可以正常工作。

    然而,要获得总直流母线电流,我可以使用这个  IDC = K1*Ipha + K2*Iphb + K3*IPHC 其中 K1..3是上晶体管的栅极命令1/0吗?(或有更好的方法)[/报价]

    在单个分流电阻器解决方案中、如果您捕获了总线电流、您将看到以下波形:

    这是我使用 LP-MSPM0G3507和 DRV8329EVM 进行的测试。

    实际上,你会从总线电流检测得到 I1和 I2,然后你可以使用 K1*I1和 K2*I2计算总线电流平均值。

    B.R.

    SAL

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

    尊敬的 Sal:

    [报价 userid="522967" url="~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1415298/lp-mspm0g3507-ipd-startup-method-using-single-shunt/5432901 #5432901"]

    顺便说一下、请确保您已按照 SDK 中的指导修改 DRV8329EVM:

    [报价]

    除了分流电阻器之外、我们已经完成了所有更改、EVM 上保留了原始电阻器、因为我们目前不能对其进行更改、这是否是 align / slowFirstCycle 无法按预期工作的原因?

    实际上、您将从总线电流检测中获得 I1和 I2、然后您可以使用 K1*I1和 K2*I2计算总线电流平均值

    如果我们使用  Ipha + Iphb + IPHC =0 (在代码中实现)估算最终相位值  、然后使用  IDC = K1*Ipha + K2*Iphb + K3*IPHC 而不是仅仅两个相位、那么这是否正确?


    谢谢!


    此致、  
    OM Dave

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

    Dave、您好!

    除了分流电阻外、我们已经完成了所有更改

    这很重要。

    实际上1mΩ 太小了,我曾经 玩过1mΩ,它被截断不 起作用。 那么我选择使用20mΩ。

    我建议您更改为20mΩ、看看它是否起作用。

    注意:请使用一个分流电阻器。 我以前知道一个用户使用三个串联的7mΩ 分流电阻、然后这个板也不是很好。

    如果我们使用  Ipha + Iphb + IPHC =0 (代码中正在实现)估算最终相位值  、那么使用  IDC = K1*Ipha + K2*Iphb + K3*IPHC 而不是仅仅两个相位、这是否正确?

    我展示的波形是真实的总线电流。

    IBUS = K1*I1 + K2*I2 -> K1和 K2具有真正的含义、可以通过 PWM 占空比计算得出。

    它可以转换为"IDC = K1*Ipha + K2*Iphb + K3*IPHC",但很难判断 K1/K2/K3的真实含义。 也许你可以尝试找出关系,然后它可以工作.

    B.R.

    SAL

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

    尊敬的 Sal:

    实际上1mΩ 太小了、我曾经 玩过1mΩ、它截断了不 起作用。 然后我选择使用20mΩ。

    好的,谢谢你,我会尝试。

    K1和 K2具有真正的含义、可通过 PWM 占空比计算得出。

    您可以详细说明一下我如何做这个或如果有任何资源,我可以参考实现这一点,谢谢.


    此致、
    OM Dave

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

    Dave、您好!

    您能详细说明一下我该怎么做吗?或者如果有任何资源我可以参考来实现这一点、谢谢。

    本文档简要说明了如何实现信号并联焊接。

    https://www.ti.com/lit/an/spract7/spract7.pdf 

    总线电流的计算公式的推导需要电机控制的一些理论知识、但目前没有任何相关信息可供分享。

    没有那么困难。 由于您只需弄清楚何时将速度矢量(PWM 设置)应用于电机、那么使用该矢量的总线电流是多少。 最后、您可以计算出包含全部三个矢量电流(两个有效矢量和一个零矢量)的总线电流计算公式。

    B.R.

    SAL

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

    您好、Sal、


    我研究了三相系统的电流计算,我仍然需要一些澄清相同.

    1. FOC 算法中使用的相电流是峰值相电流还是平均相电流?
    2.我需要计算输出均方根平均电流,输入直流电流(假设现在效率为80%, PF 为1)和峰值输出电流。

    如果可以的话、请您简单说明一下如何从分流电阻器上测量的相电流中获得这些值。

    此致、
    OM Dave

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

    Dave、您好!

    1. FOC 算法中使用的相电流是峰值相电流还是平均相电流?[/报价]

    不、FOC 将使用实时电流(瞬时值)、而不是峰值或平均电流。

    2. 我需要计算输出 RMS 平均电流,输入直流电流(假设现在效率为80%, PF 为1)和峰值输出电流。[/报价]

    我们不会在我们的算法中实现此目的。 所以没有参考代码或想法。从我的角度来看、有一些想法。  

    如果用户通过估算速度来获知电气周期时间、就可以根据定义来计算 RMS。 或者、也可以使用峰值(最大值) 进行简单使用。

    关于直流输入 电流、我的想法是将平均电流与整个电气周期中获取的所有相电流数据结合使用、用于计算平均值。  先决条件是、您需要获得估算速度才能了解电气周期时间。

    B.R.

    SAL

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

    尊敬的 Sal:
    我有一个5mOhm 分流电阻器使用 align 和 slowFirstCycle 启动方法 ,然而,我仍然面临问题,进入闭环状态,同时使用 slowFirstCycle 和当尝试开始使用 algin 时,电机只是移动一点点,然后停止. 我已经尝试将电流增加到50%总线电流,频率增加到最大电机转速的20%在 FOC 调整指南中的建议。 请告诉我我应该共享什么寄存器值、以便您帮助我解决此问题  
    我目前已连接 MTR_STARTUP 寄存器

    /resized-image/__size/320x240/__key/communityserver-discussions-components-files/908/startupParameterVal.png

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

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

    Dave、您好!

    看上去都是有线的。 请尝试使用20mΩ。  

    我还将验证 GUI 并查看它是否有问题。

    我预计将在本周内更新一些进展。

    B.R.

    SAL

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

    您好、Sal、


    FOC 有一个内置功能,如果直流母线电流超过特定值,就会触发故障。

    1.您能告诉我,我们如何能够访问正在用于生成故障的总线电流的值。

    同时、我想询问有关欠压、过压和类似电机锁定故障的问题、我曾尝试使用它们来生成故障、但在参考 FOC 调优指南时却无法做到。 您能说明一下如何使用该功能并对其进行测试、然后再将其用于我的应用程序吗  


    此致、
    OM Dave

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

    Dave、您好!

    根据您的要求更新一些测试实验。

    将 GUI (链接)与您共享的电机 配合使用、我验证它可以与 GUI 良好配合使用、GUI 使用对齐/慢速首循环模式和板中的20mΩ。

    #1对齐模式(电流波形)

    #2慢速首循环 (电流波形)

     

    在测试中、我只需对寄存器值进行以下更改(我在 CCS 项目中将其初始化、也可以通过 GUI 进行手动设置):

    其他寄存器的默认参数保持不变。

    B.R.

    SAL

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

    Dave、您好!

    1.您能告诉我我们如何访问用于生成故障的总线电流的值吗?

    我想目前没有检测到直流母线电流、我们检查相 电流是否存在电流保护故障。

    同时、我们没有访问它的接口、我从 SDK 团队那里获得了反馈、我们将在下一个版本中打开接口、目前、我们可以实现已计算总线电流以进行功率估算的功率闭环。

    [报价 userid="619753" url="~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1415298/lp-mspm0g3507-ipd-startup-method-using-single-shunt/5467512 #5467512"]2.我还想问一下欠压、过压和类似的电机锁定故障、我曾尝试用它们来产生故障、但在参考 FOC 调优指南时却未能这样做。 您能否说明我如何使用此功能并在应用程序中使用它之前对其进行测试 [/报价]

    我想该寄存器设置在调优指南中有说明。

    用户唯一需要注意的是基于的电压。

    例如、I set 如下:

    这意味着如果直流母线电压超过0.6*base = 0.6*76=45V,或小于0.2*76=15V;故障将被触发。

    使用 clearfault 可以在总线电压恢复后消除故障状态。 或将其设置为自动恢复。

    B.R.

    SAL

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

    顺便说一下、现在有一个适用于 SDK 2.02的 GUI 版本、如果您使用上一版(上一 版是我要测试的版本、可以正常工作)、可能会对您有所帮助。

    https://dev.ti.com/gallery/view/TIMSPGC/MSPM0G-SENSORLESS_FOC/ver/2.02.00/ 

    B.R.

    SAL

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

    嗨、Sal、

    感谢您的回复,我将使用提供的寄存器值测试电机。 我在系统参数中找不到 MaxMotorPower 字段最新 GUI 的调优指南。 是否有调优指南的更新版本? 最新 SDK 最新自述文件中的链接显示404错误  

    此致、
    OM Dave

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

    嗨、  

    如何计算估计速度? 我们希望实现失速检测,因此除了电流检测之外,我们还在寻找更多可以使用的选项,以及在当前 SDK 中实现的电机锁和电机停转的相同功能?

    此致、
    OM Dave

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

    嘿 Sal、

    我正在尝试比较读取相电流的准确度与实际相电流,以便推导出与电机停转功能的直流总线电流值的关系。 在示例代码中,我们有 IQ27格式的 iabc raw 的值,然而即使在转换后,这些值也不是非常精确的 DMM 上观测到的值。  
    我已经使用_IQtoF 函数使用 mathAcl 库,你能不能指导我如何正确地做同样的.
    还感谢您发送上述寄存器值、即使是在5m Ω 条件下、我也能够成功地使电机旋转  

    在这里 Rega 与 iabc->a 相同、并且在 main 函数中每次 while (1)迭代时都会更新。 Rega 是 int32_t、regb 和 regc 都是 float。

    此致、  
    OM Dave

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

    Dave、您好!

    最新 SDK 自述文件中的链接显示404错误 

    您可以使用这个文件: https://www.ti.com/lit/ug/slau927a/slau927a.pdf 

    如何计算估计速度

    这是由 eSMO 实现的。 我们不会为用户打开此文件。

    这可以通过异常 BEMF 检测来实现、SDK 中提供了此功能。 ->这只会在闭环中生效。

    此处 Rega 与 iabc->a 相同、并在 main 函数中的每次 while (1)迭代时更新。 rega 是 int32_t、regb 和 regc 都是 float。

    建议在 ADC 中断中更新一次电流。  

    B.R.

    SAL

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

    你(们)好

    我想看看如何调整 maxMotorPower 的参数。 本调优指南没有参数说明或说明。 我从 GUI 所知道的就是参数是从0缩放到1024。
    我需要了解为限制输出功率而需要在 GUI 中输入的值

    此致、
    OM Dave

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

    Dave、您好!

     在演示中、我没有机会玩转电源环路。

    首先、我建议您使用电机上的负载、因为如果电机没有负载、它将具有极低的功耗。

    其次、它只是使用功率环路来代替速度环路、那么功率环路控制参数和输出配置将与速度环路相同。 基本功率(或指定的最大功率)值将在 System Parameters 中单独设置。

    第三、我从软件团队获得反馈、新调优指南正在审核中、发布到 TI.com 需要一些时间。 您可以首先参考前一个。

    B.R.

    SAL