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.

[参考译文] CCS/TMS320F28054F:lab1b 和 lab1c 函数在无源代码的情况下出现问题

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/758577/ccs-tms320f28054f-problems-with-lab1b-and-lab1c-functions-with-no-source-code

器件型号:TMS320F28054F
主题中讨论的其他器件:MOTORWAREcontrolSUITE

工具/软件:Code Composer Studio

继续尝试通过电路板的 motorware labs 进行工作。  好消息是、我们找到了一种使电机运行 lab1b 和 lab1c 的方法。  坏消息是、我们必须绕过一个您不提供源代码的函数、因此我们会在您解释如何解决此问题之前、一直处于"不正确的状态"。  此外、我还为 lab1b 附加了一个图形输出、该输出显示了使用 AngleGen 生成的电压。  Tom 想知道它为什么有缺陷。  这是因为我们需要比100v2更好的仿真器吗?

首先、对于 lab1b、我们必须手动将 gMotorVars.SpeedRef_krpm 更改为0.5或更高版本、以使电机运行。  它在0.6或更高时运行得更好。  未经修改、它会将其设置为大约0.1、这是不起作用的。 发生什么事了?

其次、在 lab1c 中、我们必须将 GmotorVars.gMotorVars.SpeedRef_krpm 设置为0、以使电机运行、从而避免调用 CTRL_setUserMotorParams、从而将 KP 变量设置为0。 遗憾 的是、您不会向 CTRL_setUserMotorParams 提供源代码、因此我们不会通过用户参数进行计算来导致这种情况。  如果不向使用用户参数的函数提供源代码、这似乎并不正确。 您能给我们一个很好的线索、以便我们可以继续进行 lab2a 吗?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    正如 Sean 向您推荐并回答的、lab01b 和 lab01c 使用开环速度控制来测试硬件板的信号链完整性。
    对于数据记录功能、XDS100V2足够好、在您的情况下、电机似乎不能平稳旋转。 您可以在 user.h 中更改 v/f 系统配置曲线、并根据您的电机设置一个正确的 gMotorVars.SpeedRef_krpm、从而平稳地旋转电机、从而改善反馈电压的波形。 如果你将 gMotorVars.SpeedRef_KRPM 设定为一个较低的值、电机的输出电压不足以进行旋转。
    如果未在 MotorWare 中更改示例项目、则 Muse 会在 lab01c 中将 gMotorVars.SpeedRef_krpm 设置为合适的值 lab01b。 您需要在 lab01b 和 lab01c 中将 gMotorVars.Flag_enableUserParams 设置为"true"、默认情况下设置为"true"。 您需要在 user.h 中将电机参数(Rs、Ls)设置为定义值、并且无法将其设置为"NULL"。
    ctrl_setUserMotorParams()在 lab02a/b/c 中不被调用用于识别电机,仅用于在 gMotorVars.Flag_enableUserParams 设置为"true"时根据电机参数计算控制参数。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    感谢您的回复和提供的信息。  我们将在下周重点讨论建议1-3。 您能否提供有关 v/f 曲线的示例以供讨论? 这听起来很有希望。

    Lab1b 只需增加 gMotorVars.SpeedRef_krpm 即可与用户参数协同工作、但 lab1c 不会这样做。 即使在 lab1b 和 lab1c 中、也有没有源代码的隐藏函数(除非它们使用的是汇编语言、我没有注意到… 但这毫无意义、因为这些函数看起来并不重要时间)。   我们已经证明电路板可以运行电机、反馈值看起来合理。  可以观察电流 ADC 值、并使其看起来以及电压都正确。  电压 ADC 计数随电压的增加而增加、电流 ADC 计数从大约2000减少。  缩放和偏移应使用负电流刻度计算实际电压。 这似乎可以正常工作。  如果阻止我们查看源代码、我们将无法跟踪超过该值的计算。

     在我看来、由于重点关注 lab1b 和 lab1c、这两个实验应该有0%的隐藏源代码和100%的开源代码。  当聘用软件工程师使用 motorware 进行项目时、TI 最不能确保成功、因此我们可以全程检查计算结果以获得线索。  TI 遇到了避免在实验1b 和1c 中使用 motorware 的问题、为什么隐藏源代码的片段?

      

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

    在继续测试之前、我们将等待一个有关如何改变 v/f 曲线以在 lab1c 中获得合理电压输出的示例的回复。  由于不涉及任何源代码的函数、因此我们需要知道在启用用户参数时需要在 user.h 中更改什么以提高电压输出。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    lab01c 中不需要 v/f 配置文件、v/f 配置文件(在 vs_freq.c 和 vs_freq.h 中)仅在 lab01b 中使用。 lab01c 使用 I/f 控制、您只需设置 gMotorVars.IdSet_A、gMotorVars.IqSet_A 和 gMotorVars.SpeedRef_KRPM 即可确保电机运转良好。

    BTW、不再有源代码隐藏在 lab01b 和 lab01c 中、ROM 中只有 instaSPIN-FOC 快速代码无法找到源代码。 您应该在.c 或.h 文件中找到 lab01b 和 lab01c 中使用的所有其他源代码。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    感谢您的更新。 lab1c 中的 CTRL_setUserMotorParams 函数如何? 该函数的源代码在哪里?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

     识别电机参数后、InstaSPIN ROM 代码将调用 CTRL_setUserMotorParams 以配置电机电流控制器参数、无需用户进行调优。  这也是 instaSPIN 用户不需要 CTRL_setUserMotorParams 源代码的原因。  

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

    问题在于、它为运行电机生成的值太小、因此我们希望看到它对参数执行的计算。  我只是认为这些实验室应该是开放源码、即使在 ROM 中也是如此、这样我们就可以看到我们可能会做的事情。  有人告诉我、该公司正在发展、其他人正在编写一个不涉及 Motorware 的解决方案。  很高兴看到一个解决方案、以便我们可以使用它。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    同意你的意见。 如果您想使用开放源码设计您的解决方案、不妨看看 controlSUITE 中的一些示例参考、它们是完全开放源码、包括用于 ACIM 和 PMSM 的标量和 FOC。
    www.ti.com/.../controlsuite
    还有一个示例参考、如 lab01b 或 lab01c。
    C:\ti\controlSUITE\development_kits\HVMotorCtrl+PfcKit_v2.1\HVACI_Scalar

    对于 motorWare 中的 lab01b 和 lab01c、instaSPIN ROM 代码必须调用 CTRL_setUserMotorParams、以使用 user.h 中的电机参数计算控制器和估算器的参数 为了保持此软件的连续性、简单易行、我们使用了 ROM 代码的库接口、而不是其开源代码。