您好,先生,
我正在研究BLDC电机控制应用。 我正在将TMS320F2808 DSP控制器用于此应用。
工作代码从2407迁移到2808,以控制BLDC电机需要6个PWM脉冲。
根据生成PWM脉冲的顺序,从霍尔传感器获得3个信号。
PWM脉冲的命名如下所示
Epwm1A -> R (顶部), Epwm1B-> R (底部) Epwm2A -> Y (顶部), Epwm2A -> Y (底部), Epwm3A -> B (顶部) Epwm3B -> B (底部)
霍尔传感器序列
A B C PWM模式
o 1. Y (顶部)和 R (底部)
o 1 1 1 Y (顶部)和 B (底部)
0 1 0 R (顶部)和 B (底部)
1 1 0 R (顶部)和 Y (底部)
1 0 0 B (顶部)和 Y (底部)
1 0 1 B (顶部)和 R (底部)
要获得上述 PWM模式,我使用以下操作设置
案例1.(0 0 1):
EPwm1Regs.AQCSRC.bit.CFFA = 2;
EPwm1Regs.AQCSFRC.bit.CSFB = 0;
EPwm2Regs.AQCSFRC.bit.CSFA = 0;
EPwm2Regs.AQCSFRC.bit.CSFB = 2;
EPwm3Regs.AQCSFRC.bit.CSFB = 2;
EPwm3Regs.AQCSRC.bit.CFFA = 2;
EPwm2Regs.AQCTLA.bit.CAU = AQ_CLEAR;
EPwm2Regs.AQCTLA.bit.CAD = AQ_SET;
EPwm1Regs.AQCTLB.bit.CAU = AQ_SET;
EPwm1Regs.AQCTLB.bit.CAD = AQ_Clear;
EPwm1Regs.CMPA.Half.CMPA=EPwm1Regs.CMPB=((PWM_BY_4)-占空比);
EPwm2Regs.CMPA.Half.CMPA=EPwm2Regs.CMPB=((PWM_BY_4)+占空比);
案例2. (0 1 1 1):
EPwm1Regs.AQCSRC.bit.CFFA = 2;
EPwm1Regs.AQCSFRC.bit.CSFB = 2;
EPwm2Regs.AQCSFRC.bit.CSFA = 0;
EPwm2Regs.AQCSFRC.bit.CSFB = 2;
EPwm3Regs.AQCSRC.bit.CFFA = 2;
EPwm3Regs.AQCSFRC.bit.CSFB = 0;
EPwm2Regs.AQCTLA.bit.CAU = AQ_CLEAR;
EPwm2Regs.AQCTLA.bit.CAD = AQ_SET;
EPwm3Regs.AQCTLB.bit.CAU = AQ_SET;
EPwm3Regs.AQCTLB.bit.CAD = AQ_Clear;
EPwm2Regs.CMPA.Half.CMPA=EPwm2Regs.CMPB=((PWM_BY_4)+占空比);
EPwm3Regs.CMPA.Half.CMPA=EPwm3Regs.CMPB=((PWM_BY_4)-占空比);
在case1中,Y (顶部)和R (底部)脉冲被释放,所有其他脉冲被强制为高,
同样,在case2中,Y (顶部)和B (底部)脉冲被释放 ,所有其它 脉冲被强制设置为高,
问题是当从R (底部)更改为B (底部)时,会出现延迟,这是延迟问题
当所有序列中相应的底部脉冲发生变化时,将会出现,但当顶部脉冲发生变化时,不会有延迟
由于此问题,BLDC电机中的电流波形不正确。
下图是其中一个序列的顶部脉冲
如果我们观察到发生切换时的脉冲模式,则会出现两个顶部脉冲,没有延迟。
下图是相同序列的底部脉冲
如果我们观察到发生切换时的脉冲模式,则会延迟两个底部脉冲,正好是PWM_BY_4的一半。
由于这种延迟,当我们观察到负区的电流波形时,负峰值处的电流会突然骤降,几乎为零
同样 ,当我反转操作限定符集和清除位时,在顶部脉冲中会观察到问题。
图示为当顶部脉冲延迟时获得的电流波形下方
如果我们观察到正循环和负循环,则由于顶部脉冲中的延迟问题,正循环的中间会出现几乎为零的突然骤降
同样, 当底部脉冲延迟时,负周期的中间会出现几乎为零的突然骤降
比较值在 零或周期加载到阴影寄存器,占空比是PWM_by 4的90 %。 当我使用具有相同代码和相同驱动器和电机的TMS320f2407 DSP时,不会发生此问题
请帮助我解决这个问题
谢谢,顺祝商祺
Madhu Sagar M D