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.

[参考译文] LAUNCHXL-F280049C:SDK 偏移计算

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1112204/launchxl-f280049c-sdk-offsetscalculation

器件型号:LAUNCHXL-F280049C

电机 SDK v3.01 (FOC)

存在 runOffsetsCalculation ()的问题,当配置了 user.h 的中断时,会将 runOffsetCalculation ()保持锁定在 ePWM 50%的占空比输出信号(A、B、C 相)中,定义如下所示。

#define USER_NUM_PWM_TICKS_PER_ISR_TICK (6)

 如此多的 mainISR()中断周期中调用 runOffsetCalculation ()内部 ADC 偏移似乎有点奇怪。 是否最好将偏移调用放置在 mainISR()节拍周期之外?

您会认为 mainISR() 只调用一次  runOffsetsCalculation (),但让 SCIAprintf()显示多少,它实际上是高度可重入的。

偏移调用重新进入的不利影响也会导致 ePWM 过流跳闸事件故障、如果跳闸事件发生、则每次在环路中都必须清除该故障。  

我猜的是 mainISR()中断的 ePWM 节拍计数较慢,等待时间也需要缩短。

offsetCalcCount++;

if (offsetCalcCount >= offsetCalcWaitTime)

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

    导致偏移运行问题的原因是延长了 mainISR() ISR 时间,为循环无限运行提供了奇怪的偏移。

      大于3个 ePWM 周期的变通方法需要分别减少偏移计算等待时间计数值。

    #define USER_NUM_PWM_TICKS_PER_ISR_TICK (6)

    uint32_t offsetCalcWaitTime = 1250;//!<电流/电压的等待时间设置
    //!<偏移校准、单位:ISR 周期