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.

[参考译文] TMS320F280049C:InstaFOC 伺服控制

Guru**** 2538950 points
Other Parts Discussed in Thread: TMS320F280049C, TMDXIDDK379D, C2000WARE

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1119758/tms320f280049c-instafoc-servo-control

器件型号:TMS320F280049C
主题中讨论的其他器件: TMDXIDDK379DC2000WARE

您好!

我只需要确认无传感器 FOC 控制的限制。

我们目前正在测试由 TMS320F280049C Launchpad 和 C2000电机控制 SDK 4.00中的无传感器 FOC 示例解决方案控制的原型 PMSM 逆变器(基于 Infineon 驱动程序)。 外部 PID 控制器关闭伺服环路、并通过发送至 Launchpad 以进行扭矩控制的 PWM 信号来控制电机。

即使在相当低的速度下、一切似乎都能正常工作、但是对于伺服控制、我认为 我们需要添加一个传感器(A/B/Z 编码器-> QEP)来实现低速/零速控制。

您能否确认这是正确的、并且 InstaSPIN-MOTION 传感软件是否可以与外部 PID 控制器配合使用、也就是说、它只使用编码器信息进行换向、并让外部控制器处理位置/速度。

如果有任何建议/示例、我们将不胜感激。

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

    是的、您可以将基于编码器的传感 FOC 用于低速、但 F280049C 不支持 InstaSPIN-MOTION、您必须在 F280049C 上实施另一种/您自己的运动/伺服控制算法。

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

    大家好、感谢大家的回应、在短暂休息后立即回到这个项目。

    电机由一个外部 PID 控制器控制、此控制器用一个转矩信号驱动电机(F280049C 使用 ECAP 读取 PWM 信号)并通过编码器获得反馈。

    我修改了实验06 (扭矩控制)、以包含基于伺服驱动器和 CAN 示例的正交传感器。 校准编码器(检测到索引)后、可找到编码器电角与估算器电角(EST_getAngle_est_rad ())之间的偏移量。 然后、在极低速(0.3 - 0.4 rad/s)下使用该偏移来计算 ISR 中编码器位置的相量角(angleFoc_rad)。 编码器还会更新主循环中的速度参考(motorVars.speed_Hz)。

    这是可行的、但在电机的完全旋转过程中扭矩不一致;在某些段中、扭矩是良好的、而在其他段中、扭矩是非常微弱的、甚至无法保持静止的位置。 我怀疑这是因为计算出的偏移并不完美。

    经过这么长时间的解释后,我的问题是,我是否以正确的方式处理了这个问题? 我已将该方法基于 InstaSPIN-FOC 和 InstaSPIN-MOTION 手册的第18节、与带有 CAN 示例的伺服驱动器结合使用、两者都不是理想的。

    第18节中是否有引用当前 SDK 的更新版本/等效版本、或者有更好的 F280049C 含传感器 FOC 示例?

    谢谢、

    AK。

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

    如果您使用的电机具有位置编码器、则无需实施用于电机控制的基于无传感器的 InstaSPIN-FOC。 InstaSPIN-MOTION 不支持 F28004x 器件。

    是的、您可以参考具有 CAN 示例的伺服驱动器。 您也可以参阅电机控制 SDK 中的 FCL 示例、如下所示。

    C:\ti\c2000\C2000Ware_MotorControl_SDK_ \solutions\tmdxiddk379d\f28004x\ccs

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

    谢谢、我将介绍该项目。

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

    您好!

    我最终解决了有关低速/零速控制的问题。 问题是实验06 (我用作转矩控制的基础)不使用用户 Park_run ()函数(获取从 angleFoc_rad 派生的相量),它使用 EST_getIdq_a ()调用,该调用使用估算器内部的 Park 函数。

    从编码器更新 angleFoc_rad 仅影响 IPark 变换、Park 变换始终使用来自估算器的角度、这在低速/零速下不可靠。