戊狗图片:基于TMS320F2812的三相SPWM波的实现--xhat的笔记

来源:百度文库 编辑:偶看新闻 时间:2024/04/29 06:00:19
基于TMS320F2812的三相SPWM波的实现 摘要:针对SPWM波调制在逆变变频电源中的广泛应用,介绍了采用高性能数字信号处理器(DSP)TMS320F2812的片内外设事件管理器的功能生成三相SPWM波的方法,给出了整个程序流程图,主要功能程序源码和实验结果。该方法采用不对称规则采样算法,程序实现主要采用查表法。实验结果表明,该方法简既能满足一定控制精度要求,又能满足实时性要求,可以很好地控制115V/400Hz逆变电源的输出。
  关键词:DSP;TMS320F2812;SPWM;采样法;逆变电源
  中图分类号:TN914文献标识码:B
  文章编号:1004373X(2008)0313103
  RealizationofThree—phaseVoltageSourceSPWMonTMS320F2812
  YUANLi1,LIBin1,JIANGZaifang2
  (1.FacultyofElectricalEngineeringandInformationTechnology,HebeiUniversityofScienceandTechnology,Shijiazhuang,050054,China)
  2.FacultyofInformationEngineeringandAutomation,KunmingUniversityofScienceandTechnology,Kunming,650224,China)
  Abstract:ThepaperaimsattheapplicationofSPWMintheinverterpowersupplyandintroducesthemethodforgeneratingSPWMwaveformbyusingTMS320F2812eventmanager.Theflowchart,soundcodeandexperimentalresultsareprovided.Thedissymmetricalsamplingalgorithmandlooking—uptableareused.Experimentshowsthatthemethodcanmeetthecontrolprecisionandthereal—time.Itcancontroltheoutputvoltageofthe115V/400Hzinverterpowersupply.
  Keywords:DSP;TMS320F2812;SPWM;samplingalgorithm;inverterpowersupply
  
  1引言
  
  SPWM技术目前已经在实际中得到非常普遍的应用,尤其在逆变电路中的应用最为广泛,经过长期的发展,大致可分成电压SPWM、电流SPWM和电压空间矢量SPWM。其中电压和电流SPWM是从电源角度出发的SPWM,而电压空间矢量SPWM是从电动机角度出发的SPWM。
  本文以400Hz三相逆变电源的研发为依托,介绍利用TMS320F2812生成电压SPWM的技术。产生电压SPWM波的方法可分为硬件法和软件法两类,硬件法最实用的是采用专用集成电路,如SA4828,HEF4752,SLE4520等,软件法是使电路成本最低的方法,他通过实时计算来生成SPWM波,实时计算对控制器的运算速度要求非常高,高性能的DSP(数字信号处理器)无疑是能满足这一要求的性价比最理想的选择。
  
  2SPWM基本原理
  
  PWM(PulseWidthModulation)控制就是对脉冲的宽度进行调制的技术,即通过对一系列脉冲的宽度进行调制,来等效地获得所需要波形。SPWM波形(SinusoidalPWM)就是脉冲的宽度按正弦规律变化而和正弦波等效的PWM波形。
  产生SPWM波的原理是:用一组等腰三角波与一个正弦波进行比较,其相交的时刻(即交点)作为开关管“开”或“关”的时刻,这组等腰三角形波称为载波,而正弦波称为调制波,如图1所示。正弦波的频率和幅值是可控制的,改变正弦波的频率,就可以改变电源输出电压的频率,改变正弦波的幅值,也就改变了正弦波与载波的交点,使输出脉冲系列的宽度发生变化,从而改变电源输出电压的大小。
  图1SPWM波生成方法
  
  3软件设计
  
  3.1TMS320F2812的事件管理器模块
  TMS320F2812是TI公司推出的高速数字信号处理芯片,器件上集成了多种先进的外设,为电机及其他运动控制领域应用的实现提供了良好的平台,控制生成SPWM主要利用的是片上的事件管理器模块(EVA和EVB),该模块具有以下主要功能:
  (1)5个独立的PWM输出,其中3个由比较单元产生,2个由通用定时器产生。另外还有3个由比较单元产生的PWM互补输出;
  (2)由比较单元产生的PWM死区可编程;
  (3)能够产生可编程的非对称、对称和空间矢量PWM波形;
  (4)比较寄存器和周期寄存器可自动装载,减少CPU的开销。
  
  3.2SPWM波的生成
  3.2.1总体思路
  本文利用的是EVA模块,当定时器T1处于连续递增/递减计数模式时,计数寄存器(T1CNT)中的数值的变化轨迹就是等腰三角形,也就相当于产生了一系列的等腰三角形波,当比较寄存器(CMPRx,x=1,2,3)中的值与计数寄存器中的值相等时,对应的引脚(PWMx,x=1,2,3,4,5,6)上的电平就会发生跳变,从而输出一系列的等高的方波信号,如图2所示。至于输出的方波的宽度,就和比较寄存器中的值一一对应,因此,只要使比较寄存器中的值按正弦规律变化,就可以得到SPWM波形。
  图2在连续递增/递减模式下的PWM输出
  3.2.2算法分析
  通过实时计算生成电压SPWM需要数学模型,建立数学模型的方法有多种,比如谐波消去法、等面积法、采样型SPWM法以及他们派生出来的各种方法。本文介绍的生成SPWM波采用的是不对称规则采样法,不对称规则采样法是用阶梯波去逼近正弦波,每个载波周期内采样两次,既在三角波的顶点对称轴位置采样,又在三角波的底点对称轴位置采样,由于这样采样所形成的阶梯波与三角波的交点不对称,故称其为不对称规则采样法,如图3所示。此法所形成的阶梯波与正弦波的逼近程度大大提高,所以谐波分量的幅值更小,在实际中得到了较多的应用。
  图3中所示,Us是三角载波峰值,Tc是三角载波周期,t1和t2分别是两次采样时刻,他们决定了SPWM波上的“开”、“关”时间分别是ton1,toff1和ton2,toff2。根据三角形相似关系式推导可得:
  
  式中M=UM/US,即正弦波峰值与三角波峰值之比,M称为调制度。N=fc/f=1/(Tcf),即三角波频率fc与正弦波频率f之比,N称为载波比。k为偶数时代表顶点采样,k为奇数时代表底点采样。以上是生成单相SPWM波的数学模型,要生成三相SPWM波,必须使用三条正弦波和同一条三角波求交点,三相正弦波依次相差120°,所以在顶点采样时三相的脉宽分别是:
  [newpage]  
  图3不对称规则采样法生成SPWM波
  3.2.3程序流程图
  程序有主程序和定时器下溢中断子程序组成,主程序是一个无限循环结构,他的主要工作是系统的初始化,根据中断子程序中给出的比较寄存器的值生成SPWM波。流程图如图4所示。中断子程序的主要功能是计算比较寄存器的值,流程图如图5所示。
  3.2.4程序编写
  本例程的载波频率为12kHz,调制波频率为400Hz,DSP时钟频率为150MHz,载波周期Tc=1/(12×150×109)=12388个计数周期。
  主程序:
  voidmain(void)
  {//step1:初始化系统控制寄存器,PLL,看门狗,时钟等
  InitSysCtrl();
  EALLOW;
  GpioMuxRegs.GPAMUX.all=0x003F;//使能PWM输出的引脚
  EDIS;
  DINT;
  IER=0x0000;
  IFR=0x0000;//禁止和清除所有CPU中断
  InitPieCtrl();//初始化Pie控制寄存器位默认状态
  InitPieVectTable();//初始化PIE中断向量表vectortable;
  InitPeripherals();
  //step2:设置EVA的各寄存器
  EvaRegs.T1PR=(int)(TC/2);//6194个计数周期,即0X1832
  EvaRegs.T1CNT=0X0000;
  EvaRegs.CMPR1=(int)(TC/2);
  EvaRegs.CMPR2=(int)(TC/2);
  EvaRegs.CMPR3=(int)(TC/2);
  EvaRegs.ACTRA.all=0x0666;//1,3,5高有效。2,4,6低有效
  EvaRegs.DBTCONA.all=0X0FF8;//死区时间1.6微秒
  EvaRegs.COMCONA.all=0XAA00;//使能比较,下溢重载
  EvaRegs.T1CON.all=0X0842;//连续增减计数模式
  //设置中断:
  EvaRegs.EVAIFRA.all=0XFFFF;
  EvaRegs.EVAIFRB.all=0XFFFF;
  EvaRegs.EVAIFRC.all=0XFFFF;//清EVA所有中断标志位
  EvaRegs.EVAIMRA.all=0X0200;
  EvaRegs.EVAIMRB.all=0X0000;
  EvaRegs.EVAIMRC.all=0X0000;
  EALLOW;//更新中断向量
  PieVectTable.T1UFINT=&T1UFINT_IS;
  EDIS;
  IER|=M_INT2;
  PieCtrl.PIEIER2.bit.INTx6=1;//开2.6级定时器1下溢中断
  EINT;
  ERTM;
  for(;;);
  }
  中断子程序主要是计算功能,按图5所示的流程图一步步编写即可,程序不再列出。至于在计算中用到的正弦sin值,为了保证控制的实时性,最好把用到的sin值事先计算出来做成一个数组放在DSP的数据存储器中,存放位置及长度需在.cmd文件中进行设置。
  图4主程序流程图
  图5定时器下溢中断子程序流程图
  
  4实验结果
  
  按照以上思路编写出的软件经过调试编译,运行良好,SPWM波形正常,如图6(a)、图6(b)所示。脱离仿真环境后和逆变电路连接在一起,驱动IGBT工作,逆变出的三相正弦波波形良好。
  图6实验结果
  
  5结语
  
  利用此方法由TMS320F2812生成的SPWM波已经在400Hz/115V的逆变电源中应用,电源运行正常,输出的电压频率幅值都在允许范围内。结果证明该方法的准确性高,完全可行,尤其在变频变压电源的控制中有很好的应用。
  
  参考文献
  [1]王晓明,王玲.电动机的DSP控制—TI公司DSP应用[M].北京:北京航空航天大学出版社,2004.
  [2]苏奎峰,吕强,耿庆锋,等.TMS320F2812原理与开发[M].北京:电子工业出版社,2005.
  注:本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文。
  (作者:袁 莉 李 斌 蒋在芳-字数:3231)