基于TMS320F28335SPWM波形发生设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
摘要
随着计算机技术、微处理器技术以及电力电子技术的发展,基于数字信号处理器(Digital Signal Processor简称DSP)的脉宽调制(Pulse Width Modulation简称PWM)技术被广泛的应用于变频器,风力发电以及电机调速系统中。
在各种PWM 控制方式中,正弦脉宽调制(Sinusoidal PWM)因其算法简单、硬件实现容易、谐波较小以及能动态的修改幅值和频率等优点得到了广泛的应用。
由于数字信号处理技术的发展以及高性能DSP芯片的不断推出,越来越多的SPWM波形的产生都是基于DSP芯片来实现的,这不仅大大简化了硬件电路以及软件的设计,同时在精度和稳定性方面也得到了极大的提高。
本文介绍了采用TI公司推出的TMS320F28335,利用其ePWM模块,基于规则采样法的原理来产生单相SPWM波形的设计,并在示波器上观察了相关波形,同时利用RC低通滤波电路,验证了产生的SPWM波是正确的。
关键词:TMS320F28335;ePWM模块;SPWM
1、实验容
一、学习TMS320F28335的ePWM 模块的工作原理及其使用方法;
二、单相SPWM 波形产生的设计,并验证生成的SPWM 的正确性;
三、设计带死区的SPWM 波形;
2、实验器材
合众达28335控制板、面包板、电阻、电容、杜邦线、示波器(TDS 2012B )等
3、实验原理
3.1 SPWM 调制与实现原理
如图 3.1所示,为了输出逆变器所需要的正弦波,将等腰三角形作为载波(Carrier wave),正弦波为调制波(Modulation wave),正弦调制波与三角载波的交点确定了逆变器开关器件的通断时刻,从而获得了一系列等幅不等宽的矩形脉冲波形,按照面积等效原理,每一个矩形波的面积与相应位置的正弦波面积相等,因此,该序列脉冲与期望的正弦波等效,这就是正弦脉宽调制原理。
本文采用的是双极性方式,即在正弦调制波的半个周期,三角载波在正负之间变化。
0U wt
wt
0r U c
U 12d U -12d +o U of
U
图3.1 双极性SPWM 调制原理
SPWM 数学模型的建立有多种方法:面积等效法、自然采样法以及对称规则采样法。
自然采样法虽然能真实反映脉冲序列产生和结束的时刻,但是计算相对复杂。
对称规则采样法是从自然采样法演变而来,因其计算简单,误差较小,被广泛应用于实际工程项目中。
本文所采用的就是对称规则采样法,如图3.2所示;
图3.2 规则采样法
在三角波的负峰时刻D t 对正弦信号波采样而得到D 点,过D 点作一水平直线和三角波分别交于A 点和B 点,在A 点时刻A t 和B 点时刻B t 控制开关器件的通断。
在每个载波周期用同样的方法采集输出脉冲,即得到正弦脉宽调制波形序列。
设正弦调制波的函数为:
t w a u r sin r = (3-1)
Ur 为正弦调制波的峰值;a 为调制度,01a <<,r w 为正弦调制信号波角频率;
根据图3.2中三角形相似的原理可得:
222
sin 1C r T t
w a =+δ
(3-2) 即 )sin 1(2
D r c t w a T +=δ (3-3)
3.2 正弦表生成原理
本文程序中CMPA 寄存器的值所采用的是查表法,即将事先求得的正弦值存在一个数组里,下面简要介绍一下程序中正弦表的产生原理及方法。
基于上
述的SPWM 调制与实现原理,利用公式3-3,一般而言50*2
π=r w (即频率一般为50Hz );同时在本程序中,周期寄存器的值为3750,调制比a=0.8;即公式3-3可以表示为:
))t *100sin(8.01(*1875D π-=δ (3-4)
一个周期里取400个点,在MATLAB 里计算可以得到程序中的正弦表,即用其代表调制波正弦波。
4、软件程序设计
由于产生的SPWM 波形是一组占空比连续变化的脉冲序列,在编写程序的时候必须考虑到实时更新比较寄存器的值。
系统软件编程包括主程序和中断子程序,主程序实现以下功能:系统初始化、周期寄存器的初值给定、中断方式设定等。
中断程序的功能是:更新比较寄存器的值以及清除中断标志。
系统流程如图
4.1所示。
图4.1 程序流程图 有两种方法可以实现中断程序中比较寄存器的赋值: (1)实时计算法;(2)查表更新法。
实时计算法的优点在于计算精度相对较高,实时性以及程序的灵活性较好;缺点在于,实时计算电平翻转时间点耗费大量的CPU 时间,与中断程序快进快出的原则有悖,且有可能会因为处理中断程序的时间过长而导致脉冲丢失。
查表更新法的原理是预先计算出各个频率下每个载波周期中的比较值,以数组的形式存储起来,在中断程序中直接调用数组。
虽然此法增大了存储空间,但是这种以空间换取速度以及稳定性的方法具有较好实际应用效果。
5、硬件电路
本次实验主要运用了合众达公司的28335控制板的ePWM 模块,其相关硬件电路如图5.1所示;
图5.1 ePWM模块硬件电路图产生的SPWM波的RC滤波电路如图5.2所示;
图5.2 RC滤波电路
实物连接图,如图5.3所示;
图5.3 实物连接图
6、实验结果及分析
1)、第一次设置死区时间为0us,运行程序,用示波器的通道CH1和CH2分别观测ePWM1A和ePWM1B的波形,可以看到PWM波的幅值为3.3V,频率为20KHz的方波,如图6.1所示;
图6.1 无死区20KHz 方波信号
结果分析:程序中计数模式为递增递减计数,周期寄存器的值设置的为3750,时钟频率设置为等于系统频率,即150MHz ,即载波三角波的频率为:
z 2010150/13750216KH f =⨯⨯⨯=)
( 由于每个PWM 波的周期等于每个载波的周期,即每个PWM 波的频率也应为20KHz ,这与示波器观测的结果一致,理论与实际相符合,结果正确。
2)、由于在示波器中不能验证产生的SPWM 波的正确性,所以我采用了RC 滤波电路来验证其正确性。
即将产生的SPWM 波通过图5.2所示的RC 低通滤波电路滤波后,我们得到了如图6.2所示的正弦波:
图6.2 SPWM波经滤波后得到的正弦波
结果分析:由理论分析可知,在每个周期得到的SPWM波经过RC低通滤波电路后可以得到一个正弦波的,并且得到的正弦波的频率和之前正弦调制波的频率相等,即为50Hz,从图中可以清楚的观察到产生的正弦波的频率为50Hz,即理论与实验相符合,结果正确。
3)、由于在实际电路中,比如半桥逆变电路,为了防止上下两个开关管的直通,SPWM波一般是带有死区的,并且死区时间一般是整个PWM波周期的4%,因此我进行了接下来的实验,将死区时间设置为2us,即给EPwm1Regs.DBFED = 300;EPwm1Regs.DBRED = 300;运行程序,波形如图6.3所示;
图6.3 带死区的SPWM波形
结果分析:从图6.3中可以清楚的看到死区时间为2us,与设定值一致,即实验结果正确。
7、遇到的问题及解决方法
在本次实验中,我遇到了一些问题,有些问题现在想想确实很基础,很可笑,现在简要说说,我是刚接触DSP,刚学,刚开始遇到这些问题时,心里很烦,有时候难以进行下去,宁老师您说的那种信念很重要“遇到问题,不要烦躁,冷静思考,就当成是在考验自己,这样才能提升自己的能力”。
1)、在最开始自己建工程文件时,遇到了这个问题:
解决方法:首先在百度上查询这个错误的意思,然后按照百度给的提示在
工程的source下面添加了DSP2833x_ADC_cal.asm、DSP2833x_CodeStartBranch.asm和DSP2833x_usDelay.asm三个文件,程序就可以正常编译了。
2)、在进行程序设计方面,特别是调制波程序的设计时,根据查阅的资料,有两种方法产生正弦调制波,一种是直接使用正弦函数,在程序中计算;第二种是将计算好的数值存在数组里面,建立一个正弦函数表;开始不知道如何产生这个正弦函数表。
解决办法:重新复习相关理论知识,对称规则采样法的理论知识后发现,可以在MATLAB里面,通过简单的命令语句就能实现正弦表的计算。
3)、生成的SPWM波,在示波器中无法看出其正确与否,因为其占空比一直动态变化着,由于自身理论知识不足,这个问题让我犯难了。
解决办法:请教同学后,说将产生的SPWM波,通过一个RC滤波电路就可以验证其正确性了。
/*************************************************************** **************/ /* 片上ROM中的正弦函数查表法
*//***************************************************************** ************/
s16 SINE_TABLE[]= {
0x00000,0x00324,0x00647,0x0096A,0x00C8B,0x00FAB,0x012C7,0x01 5E1,0x018F8,0x01C0B,0x01F19,0x02223,0x02527,0x02826,0x02B1E,0x02E1 0,0x030FB,0x033DE,0x036B9,
0x0398C,0x03C56,0x03F16,0x041CD,0x0447A,0x0471C,0x049B3,0x04 C3F,0x04EBF,0x05133,0x0539A,0x055F4,0x05842,0x05A81,0x05CB3,0x05 ED6,0x060EB,0x062F1,
0x064E7,0x066CE,0x068A5,0x06A6C,0x06C23,0x06DC9,0x06F5E,0x0 70E1,0x07254,0x073B5,0x07503,0x07640,0x0776B,0x07883,0x07989,0x0 7A7C,0x07B5C,0x07C29,
0x07CE2,0x07D89,0x07E1C,0x07E9C,0x07F08,0x07F61,0x07FA6,0x07 FD7,0x07FF5,0x07FFE,0x07FF5,0x07FD7,0x07FA6,0x07F61,0x07F08,0x07 E9C,0x07E1C,0x07D89,
0x07CE2,0x07C29,0x07B5C,0x07A7C,0x07989,0x07883,0x0776B,0x0 7640,0x07503,0x073B5,0x07254,0x070E1,0x06F5E,0x06DC9,0x06C23,0x0 6A6C,0x068A5,0x066CE,
0x064E7,0x062F1,0x060EB,0x05ED6,0x05CB3,0x05A81,0x05842,0x05 5F5,0x0539A,0x05133,0x04EBF,0x04C3F,0x049B3,0x0471C,0x0447A,0x04 1CD,0x03F16,0x03C56,
0x0398C,0x036B9,0x033DE,0x030FB,0x02E10,0x02B1E,0x02826,0x02 527,0x02223,0x01F19,0x01C0B,0x018F8,0x015E1,0x012C7,0x00FAB,0x00C 8B,0x0096A,0x00647,
0x00324,0x00000,0x0FCDC,0x0F9B9,0x0F696,0x0F375,0x0F056,0x0E D39,0x0EA1F,0x0E708,0x0E3F5,0x0E0E7,0x0DDDD,0x0DAD9,0x0D7DA,0x 0D4E2,0x0D1F0,0x0CF05,
0x0CC22,0x0C947,0x0C647,0x0C3AA,0x0C0EA,0x0BE33,0x0BB86,0x 0B8E4,0x0B64D,0x0B3C1,0x0B141,0x0AECD,0x0AC66,0x0AA0C,0x0A7BE,0 x0A57F,0x0A34D,0x0A12A,
0x09F15,0x09D0F,0x09B19,0x09932,0x0975B,0x09594,0x093DD,0x09 237,0x090A2,0x08F1F,0x08DAC,0x08C4C,0x08AFD,0x089C0,0x08895,0x0 877D,0x08677,0x08584,
0x084A4,0x083D8,0x0831E,0x08277,0x081E4,0x08164,0x080F8,0x080 9F,0x0805A,0x08029,0x0800B,0x08002,0x0800B,0x08029,0x0805A,0x08 09F,0x080F8,0x08164,
0x081E4,0x08277,0x0831E,0x083D8,0x084A4,0x08584,0x08677,0x08 77D,0x08895,0x089C0,0x08AFD,0x08C4B,0x08DAC,0x08F1F,0x090A2,0x 09237,0x093DD,0x09594,
0x0975B,0x09932,0x09B19,0x09D0F,0x09F15,0x0A12A,0x0A34D,0x0A 57F,0x0A7BE,0x0AA0B,0x0AC66,0x0AECD,0x0B141,0x0B3C1,0x0B64D,0x0 B8E4,0x0BB86,0x0BE33,
0x0C0EA,0x0C3AA,0x0C674,0x0C947,0x0CC22,0x0CF05,0x0D1F0,0x 0D4E1,0x0D7DA,0x0DAD9,0x0DDDD,0x0E0E7,0x0E3F5,0x0E708,0x0EA1E, 0x0ED38,0x0F055,0x0F375, 0x0F696,0x0F9B9,0x0FCDC,0x00000 };。