SPWM产生方法.ppt_第1页
SPWM产生方法.ppt_第2页
SPWM产生方法.ppt_第3页
SPWM产生方法.ppt_第4页
SPWM产生方法.ppt_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、调制法(1)-产生单相正弦交流电路,调制法(1)-产生单相正弦交流电,调制法(1)-产生单相正弦交流电,调制法(1)-产生单相正弦交流电,调制法(2)-产生三相正弦交流电,调制法(2)-产生三相正弦交流电,计算法-产生单相正弦交流电,计算法(1)-规则采用法,面积等效原理: SPWM信号占空比:,计算法(1)-规则采用法,i取值范围是0至N-1; N为一个调制波周期所含SPWM载波周期个数; ,是每个载波周期中间值对应的电角度。 TC值为: 缺点: 不是整数值。,计算法(2)-近似计算法,1、将一个交变周期分为36个PWM周期(每段对应10)的计算式如下: n取值:0至35.得正弦波数据表如下

2、所示: 1.0000,1.1736,1.3420,1.5000,1.6428,1.7660, /0_50度 1.8660,1.9397,1.9848,2.0000,1.9848,1.9397, /60_110度 1.8660,1.7660,1.6428,1.5000,1.3420,1.1736, /120_170度 1.0000,0.8264,0.6580,0.5000,0.3572,0.2340, /180_230度 0.1340,0.0600,0.0152,0.0000,0.0152,0.0600, /240_290度 0.1340,0.2340,0.3572,0.5000,0.6580,

3、0.8264; /300_350度,计算法(2)-近似计算法,2、 时间常数TC确定: 其中:Fn表示时钟频率,本设计Fn=4MHz;N=36为每个周期所分段数;f为所求基波信号频率。,计算法(2)-近似计算法,3、SPWM脉宽(任务周期)含主频周期数Dn的计算式为: 4、上述中断时间常数TC送单片机比较控制寄存器CCR0;脉宽数据dN存入36单元的一维数组,循环送入CCR1和CCR2比较控制寄存器。,计算法(2)-近似计算法,系统框图:,计算法(2)-近似计算法,逆变演示电路: TA1、TA2通过定时器发互补SPWM波。输出交流电峰-峰值应为2VDD。,计算法-产生三相正弦交流电,计算法-产

4、生三相正弦交流电,计算法(3)-异步近似计算法,SPWM信号中有两个频率,其一是正弦波调制也就是基波的频率,其二是载波也就是SPWM信号的频率。信号发生器的基波频率应是可设定调整的,以便逆便电路产生可调频的输出电压。信号发生器的载波频率应是不变的,以便逆变后的滤波电路消除高频杂波。,计算法(3)-异步近似计算法,定时器B的TB1、TB2和TB3三个输出端发出了固定载波频率、可调基波频率的三相SPWM信号。,(1)单片机主时钟频率fcp=8MHz,SPWM主频fs=10kHz,定时器中断时间间隔为0.1ms,定时器CCR0中断时间常数为fcp/fs=800。由于中断时间间隔小,要求中断服务程序必

5、须简洁,执行时间不能超过0.1ms。CCR0数据的写入和定时器B的TB1、TB2和TB3三个端子输出模式的设定,由定时器B初始化程序完成。,各SPWM周期的任务周期对应定时器计数值计算关系式如下: Di=10+1+sin(i10)780/2 i:数组序号,取值范围0-71。 所加常数10:保证SPWM占空比最小为10/800,最大为790/800。 N_1和Di(对应变量数组Buf_PWM )的计算在PWM初始化程序中完成,清单如下:,void init_TB(void) /设置TimerB输出PWM的工作模式 TBCCR0 = 800; /设置定时器B载波周期时间常数 P4DIR |= 0

6、x0e; / p1.2 output mode P4SEL |= 0 x0e; / p1.2 option select TBCCTL1 = OUTMOD_3+SLSHR_3; TBCCTL2 = OUTMOD_3+SLSHR_3; TBCCTL3 = OUTMOD_3+SLSHR_3; TBCTL = TBSSEL_2 + TBCLR+ SHR_0 ; TBCCTL0 = CCIE; / 中断使能CCR0 TBCTL |= MC0; / 设置递增模式 ,(2)逆变基波频率fj为按键设定值,一个基波周期含SPWM数为N_1=fs/fj。如一个50Hz基波(周期20ms)含200个SPWM脉冲(

7、周期100us)。,(3)设用36个点拟合正弦波,且SPWM占空比不能出现负值,正弦常数表计算公式为: NUM_SINi =1+sin(i10) 其中i分别为0、35。为了节省单片机执行时间,预先算得数据表以常量数组存于单片机ROM存储区。重叠两次存储目的是节省B相和C相提取数据时间。,const double NUM_SIN72= /正弦波 1.0000,1.1736,1.3420,1.5000,1.6428,1.7660, /0_50度 1.8660,1.9397,1.9848,2.0000,1.9848,1.9397, /60_110度 1.8660,1.7660,1.6428,1.50

8、00,1.3420,1.1736, /120_170度 1.0000,0.8264,0.6580,0.5000,0.3572,0.2340, /180_230度 0.1340,0.0600,0.0152,0.0000,0.0152,0.0600, /240_290度 0.1340,0.2340,0.3572,0.5000,0.6580,0.8264, /300_350度 1.0000,1.1736,1.3420,1.5000,1.6428,1.7660, /0_50度 1.8660,1.9397,1.9848,2.0000,1.9848,1.9397, /60_110度 1.8660,1.76

9、60,1.6428,1.5000,1.3420,1.1736, /120_170度 1.0000,0.8264,0.6580,0.5000,0.3572,0.2340, /180_230度 0.1340,0.0600,0.0152,0.0000,0.0152,0.0600, /240_290度 0.1340,0.2340,0.3572,0.5000,0.6580,0.8264; /300_350度,void init_PWM(void) int tmps; for (tmps = 0;tmps72;tmps+) Buf_PWMtmps = (int)(10+NUM_SINtmps*390); / N_1 =(int)(fs/fj); ,(4)定时器B中断服务程序中CCR1、CCR2和CCR3寄存器在Buf_PWM 数组中选取任务周期时间常数,采用变量k为索引,k的求法是: (只保留整数位) n为定时器所发SPWM序号(取值范围为0N_1-1);N_1为一个周期含SPWM数。,中断服务程序清单如下: interruptTIMERB0_VECTOR void Timer_B (void)/TimerB0中断服务程序 kkk=(int)( 36*nnn/N_1); TBCCR1 = Buf_PWMkkk; / ccr1 Pwm cycle TBCCR2 = Buf_PWMk

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论