课程设计基于89C52单片机SPWM波形发生器摘要本系统由89C52单片机控制模块、滤波和稳压模块组成
利用Matlab计算SPWM脉冲序列占空比,采用查表方式,控制双极性SPWM控制脉冲序列的输出
关键字:单片机Matlab查表SPWM1设计目的和要求1
1设计目的设计并制作一套单相SPWM触发脉冲电路,掌握SPWM算法和硬件实现方法,理解驱动电路功能
2任务要求①采用双极调制算法,产生一个7脉冲SPWM触发脉冲,并用单片机数字化近似实现;②完成拓展硬件电路,软件编程和调试;③具有2ms死区设计;④低次谐波较少;2设计方案本系统以89C52单片机为控制核心,由查表法通过定时器产生SPWM波,系统设计框图如下:单片机主控电路模块图1设计框图3理论分析和计算3
1查表产生SPWM波理论分析SPWM采用频率数倍于正弦波的三角波调制正弦波,可得到近似于正弦波的输出
三角波的频率越高,即载波比越高,谐波的频率就越高,输出端滤波器就更容易去除谐波
查表就是通过计算得到脉冲序列中每一个矩形脉冲周期内高低电平持续时间,c语言编程时用数组来表示,通过编写对应程序来查表进而控制输出端口高低电平时间及转换,从而产生SPWM波
双极性pwm转换电路电源模块spwm波输出+5V图2SPWM原理图3
2利用Matlab计算SPWM脉冲序列占空比MATLAB是一个高级的数学分析与运算软件,具有强大的计算功能
SPWM控制通过MATLAB进行分析和设计,可取得事半功倍的效果
采用MATLAB可方便地得到正弦波与三角波的交点
在判断交点时,可通过交点的数学定义来判断
所谓交点,就是在交点附近时刻两函数之差值的绝对值趋于0或许某一精度,而在交点附近的极小区域,离交点越远,差值的绝对值逐渐增大
1Matlab计算程序以下子程序为计算交点的MATLAB程序
基波数据L2=4*sin(2*pi*f*x