跟老胡学软件_开关磁阻电机电压斩波控制及DSP编程实现(原创)

    拙文抛砖引玉,欢迎交流。文中若有错误,欢迎批评指正。本文原创,转载请注明出处。新浪微博、新浪博客、、知乎同名,欢迎关注。

背景:

    正在做的开关磁阻电机项目,控制芯片采用的是TMS320F28069,功率电路采用的是不对称半桥结构,以一相绕组为例,如图1所示。

跟老胡学软件_开关磁阻电机电压斩波控制及DSP编程实现(原创)_第1张图片
图1.一相绕组功率电路拓扑  

分析:

    图1中包含两个功率开关管、两个续流二极管,开关管由上往下依次为S1、S2,二极管由左往右依次为D1、D2,上方的横线表示母线高电势线路,下方横线表示母线零电势线路,两者电势差即母线电压Us。

    开关磁阻电机电压斩波控制即是相绕组两端电压的调节,也可以通过电压调节的方式实现相电流斩波控制。通过以下操作,可以实现相绕组两端电压的灵活控制:

    (1)S2持续导通、S1持续断开,此时相绕组两端电压为0;

    (2)S1被占空比大于0、小于100%的驱动信号控制,频繁交替导通、断开,而S2持续断开,此时相绕组两端电压为0、-US交替,平均电压受占空比控制;

    (3)S1被占空比大于0、小于100%的驱动信号控制,频繁交替导通、断开,而S2持续导通,此时相绕组两端电压为0、US交替,平均电压受占空比控制;

    以第一种情况举例,S2长时间导通、S1长时间关断,很有可能造成S2温度过高而S1温度较低,S2就容易损坏。较好的解决办法是交替执行“S2导通、S1断开”与“S1导通、S2断开”,这两种方式均可以实现相绕组两端电压为0。

    第二、第三中情况同理,可以看出这两种情况都需要S1、S2都需要驱动信号占空比可调,这就要求S1、S2的驱动信号必须由DSP的PWM模块提供,而不能是GPIO(引脚只能输出高电平或低电平)。

    假设S1由PWM1A驱动,S2由PWM1B驱动。为实现PWM1A、PWM1B占空比独立控制,可以配置CMPA寄存器、CMPB寄存器分别控制PWM1A、PWM1B的占空比。

    以CMPA为例(CMPB同理),CMPA数值直接决定了PWM1A的占空比,但是从CMPA数值变动至PWM1A占空比变化存在时间差,原因是CMPA传导到占空比只能发生在TBCTR=0或者TBCTR=TBPRD时刻(TBCTR、TBPRD是PWM的TB子模块内容,具体可以参阅TMS320F28069用户手册);紧急情况需要占空比由非零值立即变为0,此时就需要使用TZ子模块,其中由引脚输入的TZ1~TZ3信号、CPU提供的TZ4信号、DSP自带的外设模块提供的TZ5信号、DSP时钟提供的TZ6信号、软件强制触发信号(TZFRC)都可以将占空比由非零值立即变为0,消除了上述的时间差问题。但是三相绕组、6个开关管,就需要6个TZ信号,明显不够用(TZ4~TZ6不满足条件),所以TZ子模块排除。

    TZ信号不够用,可以采用AQ模块,其寄存器AQSFRC位OTSFA、位OTSFB写入1,可以分别强制将PWM1A、PWM1B变为低电平,也可以解决上述时间差问题。但是需要注意的是,PWM1A、PWM1B变为低电平之后,待下一个PWM周期开始,PWM1A、PWM1B又会恢复原先受占空比控制的PWM波。具体如图2所示。

跟老胡学软件_开关磁阻电机电压斩波控制及DSP编程实现(原创)_第2张图片
图2

总结:

    本文分析并给出了开关磁阻电机不对称半桥结构下的相绕组两端电压调节方式,基于TMS320F28069芯片具体实现了PWMxA、PWMxB的占空比独立控制,对于占空比调节的延迟也给出了具体解决办法。

你可能感兴趣的:(跟老胡学软件_开关磁阻电机电压斩波控制及DSP编程实现(原创))