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.

TMS320F28377D: TMDSIDDK_v2.0 PWM生成与相位关系

Part Number: TMS320F28377D
    EPwm1Regs.CMPA.bit.CMPA = (INV_PWM_HALF_TBPRD*svgen1.Tc)+INV_PWM_HALF_TBPRD;
    EPwm2Regs.CMPA.bit.CMPA = (INV_PWM_HALF_TBPRD*svgen1.Ta)+INV_PWM_HALF_TBPRD;
    EPwm3Regs.CMPA.bit.CMPA = (INV_PWM_HALF_TBPRD*svgen1.Tb)+INV_PWM_HALF_TBPRD;
EPwm1Regs理论上对应的是A相,为什么在代码中对应svgen1.Tc?
  • 您好,

    已经收到了您的案例,调查需要些时间,感谢您的耐心等待。

  • 您好,我使用ti 28377D芯片官方IDDK电机控制项目的时候遇到问题
    在抱轴阶段,设定电角度为0,采集A相B相电流,并经过Clark变换、Park变换,使用PI控制Id=0.1,Iq=0,输出经过逆Park变换和SVPWM
    当生成的A相PWM控制A相开关管、B相PWM控制B相开关管、C相PWM控制C相开关管时无法正常闭环且电流非常大
    生成的A相PWM控制C相开关管、B相PWM控制A相开关管、C相PWM控制B相开关管就能正常运行
    生成的A相PWM控制B相开关管、B相PWM控制C相开关管、C相PWM控制A相开关管也能正常运行
    已经确认A相PWM与所采集的A相电流在硬件上是对应的,我不理解为什么会这样,可以帮忙解答吗?

  • 在传统和理论上,您在3/2转换中是正确的,相位A与alpha轴对齐,由此产生的EPwm1Regs对应于相位A。然而,此代码库使用不同的轴进行DQ转换,因此在脉冲宽度映射上造成了这种差异 

  • // Clarke transform macro (with 2 currents)
    //==========================================
    #define CLARKE_MACRO(v)                                     \
    v.Alpha = v.As;                                             \
    v.Beta = _IQmpy((v.As +_IQmpy2(v.Bs)),_IQ(ONEbySQRT3));

    #define PARK_MACRO(v)                                           \
                                                                    \
        v.Ds = _IQmpy(v.Alpha,v.Cosine) + _IQmpy(v.Beta,v.Sine);    \
        v.Qs = _IQmpy(v.Beta,v.Cosine) - _IQmpy(v.Alpha,v.Sine);

    您好,在代码库中,3/2转换似乎是相位A与alpha轴对齐,如何理解您所说的代码库使用不同的轴进行DQ转换

  • 如果您使用完全相同的硬件,您可能会发现电流感应仅对V和W相进行采样,并且不管它是SDFM感应还是LEM感应,相位V (而不是相位U)与 α 轴对齐。

    这与通用电机实验室解决方案中的FOC实施有所不同,其中相位A/U设置为与 α 轴对齐。

    IDDK硬件示意图

    3/2使用SDFM感应转换 

    3/2变换LEM感应,"cura_PPBRESULT"是相位V的ADC结果,可在fcl_initADC()和configureADC()中找到。