采用MATLAB对SPWM进行辅助设计

电源设计应用

436人已加入

描述

采用MATLAB对SPWM进行辅助设计

1概述

传统的SPWM采用频率数倍于正弦波的三角波调制正弦波,可得到近似于正弦波的输出。三角波的频率越高,即载波比越高,谐波的频率就越高,输出端滤波器就更容易去除谐波。在输出频率固定的场合,如正弦波逆变电源,其输出频率固定在50Hz左右,这种场合采用软件设计可降低系统的成本,一般将数据存入存储器,通过CPU的定时器中断调用可完成SPWM控制。在变频场合,如三相交流异步电机的驱动,由于需要输出三相变频的SPWM信号,一般采用8254可编程定时器,以减少CPU的工作量。

SPWM设计采用传统方法得到的正弦波较理想,由于三角波是超越方程,正弦信号用单片机产生也较困难,因此,传统方法较难实现。现在有许多新方法产生,这些方法实现简单但对生成的正弦波影响不大,如对称规则采样法,双缘调制法等。

MATLAB是一个高级的数学分析与运算软件,具有强大的计算功能。SPWM控制通过MATLAB进行分析和设计,可取得事半功倍的效果。

以下的分析若无特殊说明,均基于双极型调制,基频为50Hz的SPWM控制。

2SPWM数据的计算

采用MATLAB可方便地得到正弦波与三角波的交点。在判断交点时,可通过交点的数学定义来判断。所谓交点,就是在交点附近时刻两函数之差值的绝对值趋于0,而在交点附近的极小区域,离交点越远,差值的绝对值逐渐增大。以下子程序为计算交点的MATLAB程序。x为基波数据,y为载波数据,m为交点时刻数据。

fori=2:n

if(abs(x(i)-y(i))<=abs(x(i+1)-y(i+1)))&(abs(x(i)-y(i))<=abs(x(i-1)-y(i-1)))

m(j)=i;

j=j+1

end;

end;

3各种SPWM算法的分析

(1)传统的SPWM法

将50Hz的正弦波与10kHz的三角波相交,将采样的数据存为n。

计算功率频谱程序

l=fft(n,1024);

p=l.*conj(1)/1024;

f=l:1024;

plot(f,p,`b');

由以上程序可得输出频谱图,如图1所示。

图1中横轴为数字频率,数字n对应的频率f=50n

将三角波频率提高4倍,输出频谱图如图2所示。

可见,随着三角波频率的提高,输出的电压中谐波频率也随之提高。

matlab

图1m=0.94,f=2.5kHz对应的输出频谱

matlab

图2m=0.94,f=10kHz对应的输出频谱

matlab

图3经典SPWM法输出频谱

matlab

图4对称规则采样法的输出频谱

matlab

图5a=0.93,f=5kHz,td=3μs双极性调制对应输出频谱

matlab

图6a=0.93,f=5kHz,未考虑死区时间

(2)对称规则采样法

对称规则采样法就是在三角波的中线时刻对应的正弦波值为基准作一平行于横轴的直线,该直线与三角波相交的两点即作为SPWM的控制点。因这两个控制点是对称的,故称为对称规则采样法。采用该方法得到的数据与自然采样法很接近,但计算量却大大简化。以单极性SPWM调制为例,采用MATLAB分析比较两种方法对应的输出波形。对应条件:调制系数m=0?97,三角波频率:1?6k。图3及图4示意出采用该法对应的输出频谱。

可见,采用对称采样法后,基频会有所提高,而谐波成分大大减少。

4死区时间对SPWM的影响

由于采用SPWM调制的电源其主电路一般采用桥式结构,为防止上下桥臂同时导通,在切换过程中设置一死区时间,一般为几个μs。在这段时间内,输出电压为零。死区时间对输出波形的影响与调制频率有关,频率越高,影响越大。假设这段时间长度为3μs,调制频率为5k,采用双极性调制,通过MATLAB进行仿真,得图5及图6所示的波形。

由图5及图6可见,在双极性调制下,死区时间对输出的影响较小。

将调制方法改为单极性调制,同以上参数,仿真结果如图7及图8所示。

由图7及图8可见,在单极性调制下,死区时间明显减小了基波的幅值,降低了直流电压利用率,在未考虑中断延迟时间实际应用中,设计定时常数应考虑死区时间的影响。一般应予在扣除。

matlab

图7a=0.93,f=5kHz,td=3μs单极性调制对应输出频谱

matlab

图8a=0.93,f=kHz,未考虑死区时间

单极性调制对应输出频谱

matlab

图9a=0.95,f=10kHz对应的输出频谱

中断延迟时间Td=10μs

 matlab

图10a=0.95,f=10kHz对应的输出频谱

5中断程序时间的影响及其对策

在单片机采用本身定时器以实现SPWM控制时,由于将定时常数写入定时器需要在定时中断服务程序中完成,从中断响应到定时器进行下一次记数开始有一段时间,我们称为中断延迟时间。一般情况下,计算出中断延迟时间,然后在定时常数中予以扣除,就可以消除中断延迟时间对输出的影响。但在一些场合,如调制系数大于0?9,正弦波与三角波幅值几乎相等的那一段,此时的定时常数非常短,小于中断延迟时间,无法进行扣除,就是说,定时常数的时间必须大于中断延迟时间。当调制系数接近于1或调制比很高的情况下,中断延迟时间对输出有较大影响,表现在输出的电压幅值无法进一步增大。采用MATLAB仿真的波形如图9及图10所示。

可见,由于中断延迟时间的影响,随着调制比的进一步增加,基频并未得到有效的增强,而谐波成分的幅值却得到增加。

为降低中断延迟时间的影响,提高直流电压的利用率,在定时常数对应时间小于中断延迟时间的区域,可以采用降低调制比,但保留调制系数不变的方法,实际上是降低开关频率,增加了中断时间,从而降低中断延迟时间的影响,使基波的幅值得到提高。

6结语

SPWM是DC/AC变换中常用的控制方法。采用MATLAB进行辅助设计,可极大地减少工作量,并可对各种SPWM方法进行仿真,由于无寄生电路参数的影响,这种仿真更能说明各种方法的优劣。本文还对SPWM变换实际工作时死区时间和中断延迟时间的影响进行了分析,并提出解决方法。

200多个MATLAB经典教程和MATLAB论文请查看matlab教程

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分