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.

[参考译文] TMS320F28027:FOC 电机控制中的电流谐波消除

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/830355/tms320f28027-current-harmonic-cancellation-in-foc-motor-control

器件型号:TMS320F28027
主题中讨论的其他器件:controlSUITETIDM-HV-1PH-DCACMOTORWAREC2000WARE

在我的驱动器控制(传感 FOC)设计中,我已经在定制布局上使用 F28027控制器达到了一个非常有希望的点,值得一提的是没有 InstaSpin–这是一款“经典”的 F28027控制器。 数学转换主要基于 InstaSpin 的开源软件部分和“controlSUITE 电机应用程序块”,并提供如上所述的良好结果。

但是、相电流显示了第5和第7谐波/谐波、这会由于电流失真而限制系统的最大可用功率。 我假设 TI 已经处理了电机控制领域中的"谐波消除"问题。 我已经从文献中找到了一些有关消除谐波的方法。 示例包括用于谐波的 AFC 控制器、或者、如参考设计 TIDM-HV-1PH-DCAC 中所述、使用2P2Z 补偿器。

最后,我还在开始时就这一议题作了详细阐述。


1.是否有专门用于在电机控制领域实现的理想源代码?

2.如果我使用一个补偿器、如参考文献中所示 设计(TIDM-HV-1PH-DCAC)、如何确定谐波消除的系数?

TI 提供 PID 控制器的调优指南、是否有与补偿器类似的文献?

4.是否有其他方法可以消除谐波?

 

我很高兴在这里发起了一场有趣的讨论,并期待着这一交流。

此致 Benjamin

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

    第5次和第7次谐波中的大部分通常是由于死区补偿。 如果你处理这个问题,你应该看到很多的安慰。

    对于您的其他查询、

    2 ->我们尚未尝试、因此我不想承诺任何事情。 您可以自由地尝试并查看其运行情况。

    3 ->将留待他人回答

    4 ->您无法完全消除、而是将其最小化。 除了死区补偿之外、您还可以提高开关频率/添加外部无源器件、但它们的成本不是最佳的。

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

    请注意第三点。

    TIDM-HV-1PH-DCAC 参考设计使用来自 DCL 的多个2P2Z 补偿器(称为"DF22"补偿器)来消除谐波、方法是将它们配置为 PR 控制器。 这是因为电网连接逆变器的频率是固定的、因此补偿器不会改变。 我们在电机控制中没有这种情况、因此我不确定如何应用类似的方法。

    DCL 中当前没有补偿器调优指南文档、但可能应该有。 我将为此添加一个增强请求。 原则上、这是一个极点-零点选择问题、然后将频率映射到系数。 DCL 中有支持功能、可实现后者。

    此致、

    Richard

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

    遗憾的是、我目前对补偿器的背景知识太少。 但是、我从文件"voltagesourceinvlcfltr.c" (TIDM-HV-1PH-DCAC 参考设计)第359行中看到、此处确定/计算了控制器系数。 值得注意的是、使用了定义"AC_FREQ"。

    KIV_5H = KIV_5H;
    wrcV_5h = WRCV_5h;
    woV_5h = 2.0*pi_value* ac_FREQ*5;
    computeDF22_PRcontrollerCoeff (&gv_R5、0、KIV_5H、wV_5H、
    ISR_CONTRAL_FREQUENCY、wrcV_5h); 

    在第一种方法中、我可以想象插入电速度而不是 AC_FREQ、并在每个中断中的实际补偿器调用之前重新计算系数。

    我已经使用死区补偿测试了该方法、但在我的情况下、对谐波的影响非常低。

    InstaSpin 是否已经有方法从相电流中消除谐波? 如果是、可以在"opensource"部分中找到它吗?

    此致、

    Benjamin

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

    很遗憾、您无法做到这一点。  补偿器包含内部动态数据、如数字滤波器、因此每个新输出都取决于先前的输入和输出。  如果每次重新计算之前的内部数据无效时重新计算系数。  无法知道您将得到什么。

    更复杂的是、您提到的参考设计是针对包含浮点单元的器件(F2837x 和 F28004x)编写的。  很抱歉、直到您上次发布帖子时、我才意识到您当前使用的器件是定点器件、因此您将无法使用 DCL。

    我认为未来的道路是继续使用 MotorWare 中为此器件提供的功能。  例如、如果您需要其他滤波函数、可以在以下位置使用 C2000Ware 中的定点滤波器函数:

    C:\ti\c2000\C2000Ware_2_00_00_02\libraries\DSP\FixedPoint

    我将在 InstaSpin 部件上向一位同事汇报。

    此致、

    Richard

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

    "不幸的是、您无法做到这一点。  补偿器包含内部动态数据、如数字滤波器、因此每个新输出都取决于先前的输入和输出。  如果每次重新计算之前的内部数据无效时重新计算系数。  我们无法知道您会得到什么。" 感谢您的解释。

    关于数字格式主题:幸运的是、我非常熟悉 TI 的开发环境和各种应用程序。 第一步是理解。 在大多数情况下、我可以自行将功能转换为 IQ 格式、也可以使用库将其转换为您已经提到的格式。

    即使我在编写这个答案时、我也注意到了 InstaSpin 提供的振动补偿库。 是否可以将它们用于相电流和谐波消除? 我期待着一位负责任的同事的回答。 非常感谢!

    此致、

    本。

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

    是否有有关 InstaSpin 器件的更新?

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

    这是一个不同的概念、InstaSPIN 中的振动补偿示例用于通过在  某些应用中添加前馈控制来减少机械振动、例如空调压缩机。 它不能用于相电流和谐波消除。

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

    你好。 同时,两个星期过去了,不幸的是,我的问题第1点尚未得到明确的答复。 我想请你作出答复。 非常感谢。

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

    死区补偿是抵消谐波失真的主要方法。 其次、我要说、如果您可以增加电流环路的带宽、那么它可能会将失真降至最低。 但是、要做到这一点、反馈感应信号应非常干净、并且尽可能远离噪声(我们对此没有量化的 SNR)。 因此、我们无法提供专用示例代码来最大程度地减少第5次和第7次谐波。

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

    非常感谢您给出了这一清晰的答案、尽管我希望能够显示除死区补偿之外的其他方法。 如前所述、我已经开始了第一个死区补偿测试、影响非常小。