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.

[参考译文] MSPM0G3507:MSPM0G3507 开发板速度设置问题

Guru**** 2927270 points

Other Parts Discussed in Thread: DRV8329, LP-MSPM0G3507, TSV911

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

https://e2e.ti.com/support/motor-drivers-group/motor-drivers/f/motor-drivers-forum/1620836/mspm0g3507-mspm0g3507-development-board-speed-setting-issue

器件型号: MSPM0G3507
Thread 中讨论的其他器件: DRV8329

您好、先生

我们有 LP-MSPM0G3507 开发板、我们将其与 MSPM0 通用 FOC 相连并使用示例代码通用 FOC DRV8329。

一旦我们在 SpeedInput 中写入任何值、电机便会以写入最大电机速度寄存器中的频率开始旋转。

我们无法使用 SpeedInput 寄存器来更改电机转速(控制模式 0:速度控制)

如果我们使用控制模式 2:扭矩控制、然后禁用 CurrLoopDis =1、然后在 Vq 和 Vd 中写入值、然后电机电压改变、但频率达到 MaxmotorSpeed。

请指导我如何使用扭矩控制和速度控制模式提高电机频率并以不同的速度运行电机。

 

谢谢  

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

    尊敬的 Rajesh:

    您是否遵循 SDK 文档中的硬件指南? 我们需要进行一些修改、以使 EVM 板正常工作:

    https://dev.ti.com/tirex/explore/node?isTheia=false&node=A__AH6GFp404CLSuJI.Gz5flA__MSPM0-SDK__a3PaaoK__LATEST&placeholder=true 

    然后、您是否使用 GUI 或 SDK 工程来调优电机?

    我们在 SpeedInput 中写入任何值后、电机会以写入最大电机转速寄存器的频率开始旋转。

    我建议首先在对齐模式下强制状态,看看相电流是否低于预期值 — 即全部三个相位中的恒定电流。

    然后,如果正常,第二次在开环模式下强制状态,看看相电流是否正确 — 给定振幅和频率的正弦波形->在轻负载下进行更好的测试。

    B.R.

    Sal

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

    你好  

    感谢您的答复

    1.  我们使用 示例代码通用 FOC DRV8329 并使用通用 FOC GUI 从 PC 控制电机、当我们在 “SpeedInput “中写入任何值时、电机将以 写入最大电机速度寄存器的频率开始旋转、 根据我的理解、如果我写入 32768、那么电机达到最大速度、如果我将值更改为 16348、则电机以半速旋转、但这没有发生、电机以最大速度旋转与 我在“SpeedInput"中“中写入的值无关

    2.我们可以在 CCS Watch 窗口中观察相电流的位置?  “ sourceCurrentFilt “ 这是用于观察相电流的正确变量吗? 我们使用了单分流器配置。  

    3.如果“ sourceCurrentFilt “是正确的变量来观察相电流,那么我该如何将它的值转换为实际电流值(安培)格式?

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

    尊敬的 Rajesh:

    在 CCS Watch 窗口中可以在哪里观察到相电流?  “ sourceCurrentFilt “ 这是用于观察相电流的正确变量吗? 我们使用了单分流器配置。  [/报价]

    我建议在硬件侧使用电流探头来验证相电流。

    应 在以下变量中观察相电流:

    /*! @电机输入指针短*/
    HAL_measure_motor_Inputs_T *g_pMotorInputs;

    您是否遵循 SDK 文档中的硬件指南? 我们需要进行一些修改以使 EVM 板正常工作:

    您是否遵循了文档中的所有步骤?

    电机参数是否正常工作?

    我们使用 示例代码通用 FOC DRV8329、并使用通用 FOC GUI 从 PC
    控制电机

    我通常使用 CCS 工程进行调试、而不是与 GUI 系列、如果您确认所有硬件设置都正确、我可以尝试一下。

    B.R.

    Sal

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

    你好  

    是的。 我已经按照硬件指南和管理以运行电机中的所有步骤进行了操作。

    电机按预期旋转、但在电流降至其限值(低于 1 安培)后、电机启动的第一个周期需要大电流(高达 10 安培)

    “sourceCurrentFilt “如何将其值转换为实际当前值(安培)格式?

    如果我们必须观察“iabc.a"对于“对于 A 相电流、那么如何将其值转换为实际安培值? 是否有任何用于变量转换的文档?

    观察 CCS 中的“iabc.a"值“值会得出随机值(随附视频以供参考)

    e2e.ti.com/.../WhatsApp-Video-2026_2D00_03_2D00_02-at-4.17.27-PM.mp4

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

    尊敬的 Rajesh:

    如果您有电流探头来测量电机三相的任何相电流、则应观察到以下波形:

    可听电流为 IQ 格式、您可以右键点击该变量、并将此电流的 IQ 类型设置为 IQ27。

    ->遗憾的是、CCS 中的新频率很低、但您无法获得干净的波形来在监视窗口中观察它。

    电机按预期旋转、但在电流下降至其限值(低于 1 安培)后、电机启动的第一个周期需要大电流(高达 10 安培)

    这看起来是错误的参数设置行为、如果电机在没有负载的情况下旋转、我建议您减小对齐电流和开环电流设置:

    如果您有电流波形、请将其共享以供我参考。

    B.R.

    Sal

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

    你好

    下面随附了使用电流探头的 DSO 快照、我们使用了额定频率为 100Hz、额定电压为 72VDC 的 PMSM 电机、

    正如我们有上一篇文章 “ iabc.a “中的电流读数观测 在正值和负值之间波动很大。

    在我们的应用中,我们需要显示电机电流,计算的电压提供给电机(或通过算法计算的最终相电压,我们不想获取相电压的反馈并测量实际电压,我们只需要计算出的电压施加到电机),以及电机运行时的实际频率。

    请注意、我们如何获得上述三个参数的稳定读数  

    谢谢  

    下面还介绍了我们使用的电机参数设置快照  

    下面是控制配置  

    这里我已经转换了 IQ27 格式的变量并拍摄视频。 我们需要稳定的电机电流测量、以便从哪个变量可以获得测量结果。

    e2e.ti.com/.../WhatsApp-Video-2026_2D00_03_2D00_06-at-7.00.31-PM.mp4  

    另一个观察是“ g_pMotorInputs -> Vabc “值(我假设它是相电压计算值)在我们给电机运行命令时停止更新、一旦我们停止电机、开始更新、在电机运行期间它不更新  

    谢谢  

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

    尊敬的 Rajesh:

    [引述 userid=“511034" url="“ url="~“~/support/motor-drivers-group/motor-drivers/f/motor-drivers-forum/1620836/mspm0g3507-mspm0g3507-development-board-speed-setting-issue/6258797

    谢谢  

    [/报价]

    顺便说一下、您的电机是否会随负载而旋转?

    电流波形看起来正确、只有启动参数看起来过大、因为我可以看到您的电机没有重负载(在闭环中)、您可以从较低的对齐/开环电流开始。

    这看起来像是错误的参数设置行为、如果电机在空载的情况下旋转、我建议您减小对齐电流和开环电流设置:

    为了做好准备、我更喜欢单独设置每个参数、总体寄存器值对设置的理解并不简单。

    下面也是我们使用的电机参数设置快照 

    请将电流环路 KP/KI 设置为零、以适应您的电机参数。 它将自动计算电流控制环路 PI 参数。

    我看到您的参数设置电机 bemf = 4000mV/Hz = 4V/Hz

    此处随附了使用电流探头的 DSO 快照、我们使用了额定频率为 100Hz、额定电压为 72VDC 的 PMSM 电机、

    如果是这样、当电机转速= 100Hz(电气速度)时、您的 bemf=400V、根据您的 72V 直流母线、这看起来不正确。

    [引述 userid=“511034" url="“ url="~“~/support/motor-drivers-group/motor-drivers/f/motor-drivers-forum/1620836/mspm0g3507-mspm0g3507-development-board-speed-setting-issue/6258797

    下面是控制配置  

    [/报价]

    请设置一个较小的对齐/开环电流、如果没有负载、则再次进行测试。

    显示电机电流

    是指直流母线电流、还是电机相电流? 我们只支持相电流。

    CCS 不支持显示任何实时变量。 这是 IDE 工具的函数差距。 此处有两种方法:

    1.使用 J-scope 检查实时变量

    2.设置一个大型数组以在每个 PWM 周期将相电流存储在 ADC_ISR 中、然后在 CCS“Watch"窗口“窗口中显示该数组

    计算得出的电机电压[/报价]

    下面的对此进行了定义:

    我们又观察到“ g_pMotorInputs -> Vabc “值(我假设它是相电压计算值)当我们给电机运行命令并在停止电机后开始更新时停止更新、在电机运行期间它不更新 [/报价]

    否、电机相电压不应用于 FOC 算法。 它仅用于初始速度检测算法。 您现在可以忽略它。

    顺便说一下、我们计划在 4 月之前发布 FOC UG。 理想情况下、它可能会在接下来的几周内出现。 这将有助于您的发展。

    B.R.

    Sal

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

    您好、先生  
    感谢您的详细响应。

    我们 更正了 Bemf 值、现在为 750mV/Hz。

    我们将电流环路增益设为零、然后尝试运行电机。 我们的电机在空载条件下运行。

    当我们保持 CurrentLoop Disable 并在 ForceVQCurrLoopDis 寄存器值中增加值时、电机将以完美的速度达到满 RPM。

    但是、当我们更改“电流环路禁用=0;“、然后应用非零“speedInput “时 、电机将以特定频率运行、然后失速。

    此外、更改“SpeedInput"寄存“寄存器中的值不会影响电机转速(我们在此寄存器电机中输入的任何值都会独立于此值旋转) 请检查并验证)

    我们保持 ALIGN_SLOW_RAMP_RATE = 0h、

    ALIGN_TIME = 500ms

    ALIGN_OR_SLOW_ CURRENT_ILIMIT =7.5%

    OL_ILIMIT = 0h

    ILIMIT = 0x05h

    OL_ILIMIT_CONFIG =0

    在电动机起动过程中仍然需要很高的电流、我们是否需要修改任何其它参数?

    谢谢  

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

    尊敬的 Rajesh:

    当我们在 ForceVQCurrLoopDis 寄存器值中保留 CurrentLoop Disable 和 increse 值时、电机会以达到满 RPM 的速度完美运行。

    这意味着 PWM 环路效果良好。

    但当我们更改“ Current Loop Disable =0;“、然后应用非零“speedInput “时 、电机将以特定频率运行、然后失速。

    这意味着电流环路不正确。  只需仔细检查 DRV8329 中的分流电阻是多少?

    我建议使用以下调试流程:

    1.强制器件处于对齐模式测试电流环路,电机电流应使用恒定波形。 ->修改对齐电流应反映在电机相电流中(需要停止电机并设置新的电机)

    2.如果步骤 1 通过、则强制器件处于开环状态、电机应旋转、电流波形应为纯正弦波形。 ->这可以验证 PI 参数和电流环路。

    在电机启动过程中仍然需要非常高的电流、我们是否需要修改任何其他参数?

    我怀疑电流环路或参数有问题。

    B.R.

    Sal

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

    你好  

    我们有两个 5 毫欧的并联电阻。 之后,我们做了 MCP601 运算放大器网络(我们试图更新快照在这里,但不幸的是,它给出了错误,不上载)  

    我的电流测量网络偏移值约为 320 mV  

    现在、我怀疑当前循环或参数有问题。

    我们需要在电流环路中检查哪些变化? 您能 指导一步一步的检查方法吗?

    谢谢  

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

    尊敬的 Rajesh:

    我们有两个并联的 5 毫欧分流电阻器。

    因此、 等效电阻为 2.5m Ω。 您设置的基极电流 (pUserInputRegs->systemParams.currentBase) 是多少?

    您可以尝试使用两个 20m Ω 电阻器吗? 由于测试未负载、因此电机不需要如此高的电流。

    两个较小的分流电阻器可能会导致总线电流信号中产生较大的噪声。 可能存在一些信号问题。

    我们需要在当前循环中检查哪些变化? 您能否 指导逐步检查方法。

    上传文件或数据时出现一些系统问题。 如果系统问题随后得到解决、我将总结一些指导、供您明天参考。

    B.R.

    Sal

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

    尊敬的 Rajesh:

    按照以下指导验证电流环路:

    1.强制开环

    将 pUserCtrlRegs ->algDebugCrtl1.b.forceAlignEn 设置为 1b 以启用强制对齐模式。

    将 speedInput 设置为非零值以使电机旋转。 下图展示了强制对齐模式下的电流波形。

    2.强制开环

    将 pUserCtrlRegs -> algDebugCrtl1.b.closeLoopDis 设置为 1b 以启用强制开环模式。

    下图显示了强制开环模式下的电机相电流波形。

    您可以检查电流波形 幅度和频率是否与您的设置匹配。

    如果所有这些都有效、我认为您的电机参数/速度闭环 PI 参数存在严重错误。

    B.R.

    Sal

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

    你好  

    我们已根据您提供的照片验证了此设置及其相同  

    我们在速度环路 PI 和电流环路 PI 中也有所怀疑  

    当我们设置电流环路 PI 零然后运行电机,那么它将自动计算电流环路 Kp : 12 和电流环路 Ki : 4988  

    根据我的经验、KP 值高于 KI、 请建议是否正确或我们遗漏的东西.

    此外、经过多次试错后、速度环路 PI 设置无法很好地进行调优  

    请指导您是否有任何方法来微调此 PI 值。

    我已附上上次无法上载的当前测量网络图  

    这里来自 0.0025 欧姆分流电阻器的感测输入、IU+将进入 ADC 进行测量。 我们不使用 TSV911、而是使用 MCP601-I/OT。  

    请查看图表、并在需要时提出更改建议。

    谢谢

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

    尊敬的 Rajesh:

    [引用 userid=“511034" url="“ url="~“~/support/motor-drivers-group/motor-drivers/f/motor-drivers-forum/1620836/mspm0g3507-mspm0g3507-development-board-speed-setting-issue/6269771 ]根据我的经验、KP 值高于 KI、、、、、、、 请建议是否正确或我们遗漏的内容。

    是的、这符合电流环路的预期、因为  KI 参数乘以 TS(PWM 周期)、然后再合并到 PI 环路计算中。

    此外、经过多次试错后、速度环路 PI 设置无法很好地调整 

    对于速度环路、则需要进行调整。 我们没有具体的方法来直接很好地设置它。 通常、我们根据实际电机转速曲线对其进行调整。

    我建议您 首先遵循以下方法:

    [引述 userid=“522967" url="“ url="~“~/support/motor-drivers-group/motor-drivers/f/motor-drivers-forum/1620836/mspm0g3507-mspm0g3507-development-board-speed-setting-issue/6268647

    按照以下指导验证电流环路:

    1.强制开环

    将 pUserCtrlRegs ->algDebugCrtl1.b.forceAlignEn 设置为 1b 以启用强制对齐模式。

    [/报价]

    在我们验证电流环路参数和电流检测电路没有问题后、我们可以进一步调整速度环路。

    我已附上我上次无法上传的当前测量网络图 

    它看起来正确、失调电压为 0.3V、增益为 11。

    B.R.

    Sal

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

    您好、先生

    更改基极电压寄存器中的值会产生很大的影响。

    您能解释如何计算基极电压、基极电流和最大电机功率寄存器吗?

    基极电压是直流母线电压还是电机电压?

    如果是直流母线电压、那么我们在哪里配置电机电压?

    在 MCU 的 ADC 引脚的直流母线输入端、我们有 940K 串联电阻和 4194 Ω 压降电阻。

    我们已经阅读 MSPM0 指南、但我们无法计算该值、因此请解释详细信息]

    我们有 50Hz,2880RPM ,110V 和 8.2 安培的感应电动机  

    谢谢  

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

    尊敬的 Rajesh:

    MSPM0 UG 现已发布: https://www.ti.com/lit/ug/sluudm5/sluudm5.pdf 

    希望这可以帮助您了解并开始使用 SDK 示例工程。

    您能解释一下如何计算基极电压、基极电流和最大电机功率寄存器吗?

    如果您不使用电源环路模式、则最大功率无关紧要。 您可以在 UG 中找到的其他人。

    基极电压是直流母线电压还是电机电压?

    这是电机电压。

    如果是直流母线电压、那么我们在这里配置电机电压?

    我们通过宏定义计算电机电压、并将其设置在 ISC.c 中

    [引述 userid=“511034" url="“ url="~“~/support/motor-drivers-group/motor-drivers/f/motor-drivers-forum/1620836/mspm0g3507-mspm0g3507-development-board-speed-setting-issue/6274699

    在 MCU 的 ADC 引脚的直流母线输入端、我们有 940K 串联电阻和 4194 Ω 压降电阻。

    我们已经阅读 MSPM0 指南、但我们无法计算该值、因此请解释详细信息]

    我们有 50Hz,2880RPM ,110V 和 8.2 安培的感应电动机  

    [/报价]

    最大电压= 3.3V *(940K+4.194K)/4.194K = 742.9V(为什么这么大?)

    基极电压= 428.9V

    我建议您将 940K 设置为较小的值、以获得更好的直流母线输入信号。 我建议将最大电压设置为接近您的实际直流母线输入(使用小缓冲器,如 20-30%)。

    B.R.

    Sal

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

    您好、先生  

    我们有直流母线最大电压 450VDC、因此我们相应地设置分压器(将分压电阻更改为 6.66K Ω)

    根据您的说明、基极电压为 260V。  但我的电机只有 72V、所以我该如何配置它?  我希望最大输出电压为 72V。

    2.当我们设置“maxmotorSpeed =50.0“,然后 将 speedinput 设置为 5000,那么它将驱动电机超过 50 Hz ,为什么会发生这种情况? 我正在使用扭矩控制模式。 我已连接屏幕短路设置和实际测量速度(图像 1 和图像 2)。

    显示一些值的估计速度参数如何将其转换为实际速度或频率值。(图 3)。 在 Image4 中、我设置了 IQ27 格式和十进制表示法。

    映像 1

    图像 2

    图像 3

    图像 4.

     

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

    尊敬的 Rajesh:

    根据您的说明、现在基极电压为 260V。  但我的电机只有 72V、所以我该如何配置它?  我希望最大输出电压为 72V。

    如果是、则代码中设置的基极电压为 260V。

    FOC algoritgm 将动态监测直流母线、使用检测到的直流母线电压计算 Vd/Vq、然后计算 SVPWM 输出。 所以没关系。

    3.显示一些值的估计速度参数如何将其转换为实际速度或频率值。(图 3)。 在 Image4 中、我设置了 IQ27 格式和十进制符号。

    您可以在 UG 的以下章节中查看详细信息:  7.5 旋转电机 (LVBLDC)

    B.R.

    Sal

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

    您好、先生

    请详细说明  MSPM0 中的“无传感器 FOC “和“通用 FOC “SDK 之间的区别。 请分享是否有任何文档比较 这两个 SDK。 哪个 SDK 更适合?

    谢谢  

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

    尊敬的 Rajesh:

    您可以在 UG 中跟踪差异:

    如果对开源没有要求、则无传感器 FOC 工程将更合适。 我们只有很少针对无传感器 FOC 的高级功能。

    B.R.

    Sal

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

    尊敬的先生  

    我们开发了和定制板并管理运行电机、我们使用了无传感器 FOC 示例。

    在扭矩控制模式下、当我们在 SpeedInput 中写入 5000 时、电路板电源电压为 26V、输出频率为 50.6Hz。 现在、如果我将 SpeedInput Register 更改为 10000、则仍然观察到相同的输出...没有观察到变化。

    如果我将 20,000 写入 speedinput 寄存器,然后电路板输出 96V(远高于电机额定电压),并且频率也高于 100 Hz。

    我们的目的是在扭矩控制模式下运行电机,并希望根据直流母线变化(太阳能应用)改变其速度(或扭矩)。 当直流母线上升时、我们希望提高扭矩和 RPM、当直流母线变为低电平时、我们降低扭矩和 RPM。

    谢谢  

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

    尊敬的 Rajesh:

    我目前还没有在我这边测试扭矩模式、因为我没有负载电机。

    我建议检查电流环路基准和反馈、以查看您的输入是否正确应用于控制环路。

    1.将 controlMode 设置为 2h。

    2. IQ 或 Powr PI 环路应具有通过 speedinput 预设的基准:

    如果仍有问题、 我将尝试设置默认具有负载的风扇电机、以查看电源环路功能。

    B.R.

    Sal