主题中讨论的其他器件:SFRA、 C2000WARE
工具与软件:
尊敬的 TI 专家:
尝试实现 BLDC 电机的位置控制。 所使用的通道数量 LAUNCH-XL-F280039C 在单个 MCU 上使用快速电流环路(FCL)和 SFRA 的双轴电机驱动的参考设计示例、其中包含位置环路 BUILD_LEVEL5。 该示例本质上是为构建的 LAUNCH-XL-F280049C 优点很多。
我们尝试精简代码以使用一个电机、并且我们已更改链接器 cmd 文件以适应 x39C。 我们将从闪存(XIP)运行代码。
现在我们位于 BUILD_LEVEL_5中。 我们编辑了 refPosGen()和 buildLevel5_M1() 结构
- 变量 motorVars[0].positionRef 接收用户输入。
- 包含(输入值-实际值)的全局变量错误
- p 电机->RC。 TargetValue 是返回变量、其十进制值作为 PID 环路的输入。
请注意、当我们尝试运行电机时 motorVars[0].ptrFCL->lsw = ENC_CALIBRATION_DONE、 提供输入值时、电机会以不同的方式响应。
- 两个 IF 循环 单独运行时的总噪声。 可以正常工作、但当同一代码反复刷写(以检查可重复性)时、电机每次都以不同的速度运行。 此外、对于 (err > 0.05)、对变量进行循环 pMotor->speedLoopPrescaler = 200 的结果很好、但对于 (err > 0.05)循环变量 pMotor->speedLoopPrescaler = 130。 代码之间没有太大差异、所以为什么此变量需要不同的值?
- 当运行两个循环时、每次重新刷写相同的代码时、两个循环都只起作用。
- 当(err > 0.05)环路工作时、电机沿逆时针方向旋转、错误值大于0.05。 当给出其他值导致 err <-0.05时、电机仍继续沿相同方向旋转、但其旋转次数比经过压缩的旋转次数要少。 并且与其它环路一样(当重新闪烁时)、但电机方向为顺时针。
我们怀疑速度的差异是由于编译器优化所致、因此我们将编译器优化级别保持为0、但仍以相同的方式继续。
对于此变速的任何见解以及该变速还有什么取决于。 还有其他任何影响方向的东西/地方吗?
谢谢、此致
Raghu