0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

通过在单片机AT90C8535上实现直接PWM软件计算的方法

电子设计 来源:网络整理 作者:佚名 2019-11-26 07:59 次阅读

1 、引言

随着家用电器产品变频技术的发展,单相电机的变频调速已成为一种可行的方法,在这种调 速系统中,脉宽调制(PWM)技术仍然是提高调速性能的主要手段。虽然PWM技术的实现方法很多,然而,为了降低产品的制造成本,采用微机控制软件实 现PWM控制具有成本低、调制方式灵活等特点,比较适合于家用电器产品的要求。本文针对 洗衣机电机的调速要求,提出了采用直接PWM(DPWM)软件计算的方法,并在AVR系列单片机AT90C8535上实现,该方法可以很容易地实现电机的恒V/f比调速,其PWM算法简单,易于实现,是一种较为实用的方法。

2、 直接PWM技术的算法

常用PWM技术的基本原理是利用高频载波与控制波进行比较,从而产生经过调制的PWM波。为 满足逆变电源的需要,减小输出电压的谐波含量,载波信号采用对称的三角波实现PWM 输出波形的对称双边调制,使输出电压不含偶次谐波。

用软件产生PWM波形的算法有很多方法,如:采样SPWM法、均值PWM法、直接PWM法等,其中SPWM法有三种不同形式:对称规则采样SPWM、非对称规则采样SPWM、平均对称规则采样SPWM,以平均对称规则采样SPWM的算法简单,应用较为广泛。SPWM的主要缺点就是电源电压利 用率不够高,即输出电压不高。均值PWM法的基本思想是根据等面积PWM控制方式的原理,选 择最佳脉冲中心线位置,使得其PWM波形的谐波成分量小,均值PWM法具有微机实现简单方便 的优点,且对各次谐波的抑制均有很好的效果。直接PWM法与均值PWM法类似,也是使相同时 间间隔内的PWM波 的面积与调制波的面积相等,其主要的优点是,在调制比固定时,控制规 律正比于调制深度而反比于输出频率,特别使用于电机的控制,因此本文选择直接PWM法。

直接PWM法的调制原理如图1所示,假定一个周期内PWM波的脉冲数(即载波比)为2N,将参考 正弦波Umsin ωt的整个周期T分为2N等份,则每个区间的长度(即载波周期)为Ts=T/2N,在第i个区间正弦波的面积为:

通过在单片机AT90C8535上实现直接PWM软件计算的方法

通过在单片机AT90C8535上实现直接PWM软件计算的方法

设输出PWM波的幅值为E,若采用单极性调制,则第i个区间内的PWM波形所围面积为:

通过在单片机AT90C8535上实现直接PWM软件计算的方法

若采用双极性调制,则第i个区间内的PWM波形所围面积为:

通过在单片机AT90C8535上实现直接PWM软件计算的方法

式中,Tpi为脉冲的宽度,考虑到有Ts=Tpi+2Tgi,令Sri=Spi,由式(1)和式(2)整理可得:

通过在单片机AT90C8535上实现直接PWM软件计算的方法

式中M=Um/E为调制深度,由式(4)或式(5)可分别计算出PWM的脉冲换相点公式为 :

通过在单片机AT90C8535上实现直接PWM软件计算的方法

由图1可知,等面积PWM法生成的PWM波形在T/2处是点对称的,因而可推导出:

通过在单片机AT90C8535上实现直接PWM软件计算的方法

在上述计算公式中,式(8)为单极性PWM调制,式(9)为双极性调制。在计算过程中,虽然δi的表达式包含有三角函数的计算,但它仅与N有关,一旦N确定后,可事先将计算好的δi存入内存中,需要时通过查表方式获取即可。从k的表达式可以看出,k正比于调制深度而反比于基波频率ω。这对于电机的变频调速系统,通常使U/f比为常数来达到恒转矩 控制,即只需使k值为一个常数即可。

3 、单片机实现PWM技术的设计

采用单片机实现PWM,为了保证能够满足变流电路的控制性能要求,设计时必须处理好以下 几个技术问题。

3.1 载波比

采用微机生成PWM波时,必须事先确定好载波比N(或2N)。如果输出频率的变化范围较大,那 么在整个频率范围内采用同一个载波比的同步调制方案,难以兼顾高频和低频输出时的性能。较大的载波比往往会造成高频时PWM开关频率过高,导致开关器件的开关损耗增加,而较小的载波比又会造成低频时PWM波过于稀疏,使电流脉动增大、谐波分量增加等缺点。因此 采用分段同步调制是较合理的方法,即在不同的频率段选择不同的载波比,使变频器在整个频率变化范围内,都有一个较为合理的PWM开关频率,以获得较好的控制性能。然而载波比的选择和切换时必须注意两点:

(1)切换时不出现电压的突变。

(2)在各切换临界点处需设置一个滞环区,以避免输出频率落在临界切换点附近时造成载波 频率反复变化而引起的振荡现象。

3.2 PWM波的开关频率极限

由于PWM波是通过单片机CPU实时计算的,因此所选择PWM算法的数据处理量大小以及CPU的处 理速度是影响输出PWM波开关频率极限的主要因素。设计时必须保证单片机能输出的PWM波的最高开关频率满足逆变器要求,当然对逆变器的最低工作频率要求是很容易满足的。

3.3 PWM波的输出频率和调制深度指令

在变频调速系统中,由于逆变器的输出频率是可调的,因而要求PWM算法的输出频率和调制 深度都能根据实际需要变化以适应电机恒V/f比或恒功率控制的要求。一般,逆变器的输出频率指令可通过A/D转换输入到单片机中,调制深度M可以用软件计算完成,也可采取类似的方法读入CPU。

3.4 桥臂互锁及死区时间

为了保证逆变器同一桥臂上下两管同时导通而引起的短路,两驱动信号间必须留有一定的死 区时间,以防止一管还未完全关断时另一管便开始导通的短路故障。此要求可以在单片机PWM波的计算程序中加以考虑。然而这样做往往会增加单片机的数据处理工作量,而且仅靠软件实现上下桥臂开关管的互锁和死区延迟也不可靠,因此,为保证电路的安全性,建议最好在硬件电路设计上充分考虑并实现此项要求。

3.5 初始状态及故障封锁

任何一款型号的CPU,工作前总存在复位状态,此时CPU各I/O输出口全“1”或全“0”,设 计时应避免在此复位状态时造成所有开关管都被驱动导通的危险,因此应将CPU复位时的初 始电平值设置成开关管驱动信号无效状态。此外,当发生故障时,也可以通过输出故障封锁信号来关闭驱动信号。

4、PWM波的单片机控制

在本文分析的洗衣机电机控制中,逆变器的输出频率由给定电位器调节,经A/D转换输入至 单片机,由单片机根据给定输出频率的大小计算逆变器电压,以适应变频调速的恒V/f 比控制要求。控制芯片采用AT90S8535单片机。

AT90S8535是40脚封装的RISC结构低功耗CMOS 8位单片机,具有8K字节的Flash,512字节的EE PROM,512字节RAM,32个多功能的I/O口,3个内部定时/计数器,8通道10位A/D转换器,2个外部中断源,可编程的串行通讯,可编程的看门狗定时器等资源,适合于许多要求集成度高、成本低的应用场合,其引脚配置如图2所示。

通过在单片机AT90C8535上实现直接PWM软件计算的方法

设逆变器输出压频变化关系曲线是已知的,当逆变器的输出频率确定后,PWM控制的载波比 和调制深度指令也随之确定。单片机的资源分配为:39脚的PA1作为A/D采样输入口,采样输出频率;PC0~PC3作为PWM输出的驱动信号,设置为输出口;17脚的INT1外部中断作为电路 故障信号(如过流、过压、短路等)的输入脚,同时该脚也作为“解除闭锁”控制位的输入脚,其作用在于:当故障发生时,由外部中断输入引脚的信号变化向CPU提出中断请求,CPU响应中断,在执行中断服务程序中输出PWM封锁信号并实现闭锁,直到解除闭锁控制位有效时,才撤销PWM封锁信号,使PWM波能够正常输出。由于AT90S8535芯片的复位时端口的初始状态是“高”,因此封锁信号和驱动信号均设置成“低”电平为无效状态,此时端口输出信号使所有功率开关管处于关断状态。PWM波的载波周期由片内T0定时器来完成,PWM波换相所需的时间由片内T1定时器来实现。采用AT90S8535单片机实现的单相PWM波形发生器的硬件连接关系如图3所示。

通过在单片机AT90C8535上实现直接PWM软件计算的方法

5 、单片机控制软件设计

按上述算法分析,软件只计算PWM波的切换时间,在CPU中由定时中断服务程序完成PWM脉冲 波的换相。其具体过程:PWM的载波周期Ts由载波周期定时器定时,当定时到时,向C PU发出中断申请,CPU响应中断并执行中断服务程序,此中断服务程序的主要任务是将保存 在内存中的PWM开关定时数据(在上一个载波周期计算出来的PWM换相定时时间)送PWM波定时器,并启动此定时器工作,然后再计算下一个载波周期的PWM数据并保存。

PWM波定时器根据载波周期定时中断服务程序送来的开关数据进行定时控制,在中断服务程 序中完成对PWM的换相并输出至端口。

主程序的主要任务是,对逆变器输出频率指令f的采样或计算,并计算与频率指令对应的调 制深度指令、载波比、载波周期定时常数等,为载波周期定时中断服务程序的计算提供实时指令。然而在变频切换时,由于电压跟随频率的变化而改变,变频瞬间容易产生电流冲击。通常解决办法是在基波电压过零时(即0°、180°),变频瞬间无电流冲击,但该方法会造成频 率变化响应过程较慢,特别是低频时响应时间过长。因此最好能设计成在任何一个载波周期结束时刻都可以进行频率切换,为防止电流冲击的产生,此时应使频率切换前后的基波电压不仅与频率和相位有关,还和调制比有关,使得计算频率变化前后基波电压相等的条件相当费时,因此在实现过程中,一般按相位相等的原则进行频率切换。即在新旧频率切换时,根据脉冲计数器所表示的相位关系进行等相位切换。假定旧频率时的载波比为N1,频率变化的切换时刻计数器值为P1,新频率时载波比为N2,切换时新频率计数器的值P2应为:

通过在单片机AT90C8535上实现直接PWM软件计算的方法

求出P2后再进行切换。

实现PWM算法的整个控制程序流程如图4所示。

通过在单片机AT90C8535上实现直接PWM软件计算的方法

通过在单片机AT90C8535上实现直接PWM软件计算的方法

6 、实验与结论

按照上述设计方法,研制了单片机控制系统的软硬件,并进行了实验,其输出波形如图5所 示。实验证明,该方法简单可行,控制性能良好,具有一定的实用价值。

通过在单片机AT90C8535上实现直接PWM软件计算的方法

此外,三相PWM发生器的实现方法与单相也是相似的,不同之处在于三相PWM发生器需要3个 PWM波换相定时器,再加上载波周期定时器,共需4个定时器。至于三相PWM发生器的软件设计,其基本的设计方法与单相的是相同的,这里不再讨论。

责任编辑:gt


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

    关注

    5997

    文章

    43945

    浏览量

    620457
  • 控制系统
    +关注

    关注

    41

    文章

    5946

    浏览量

    108567
  • PWM
    PWM
    +关注

    关注

    114

    文章

    4885

    浏览量

    209794
收藏 人收藏

    评论

    相关推荐

    AVR系列单片机C语言编程及应用实例

    设计2.3.1 程序设计方法2.3.2 应用程序举例第3章 AT90LS8535单片机C编程3.1 支持高级语言编程的AVR系列单片机3.
    发表于 07-11 09:32

    AVR单片机应用设计,pdf版下载

    和设计方法。学习了这种功能较全的单片机,对于AVR系列其他型号单片机的应用就可以举一反三。 AVR单片机具有高速度、高保密性、低功耗的特点。AT90
    发表于 04-27 20:53

    AVR单片机GCC程序设计

    兼容AT89C2051,而AT90S8515的引脚则兼容51单片机设计中很容易的替代51单片机。但是到目前,AT
    发表于 04-27 21:11

    基于单片机的AT89C51的直流电机PWM调速系统

    基于单片机的AT89C51的直流电机PWM调速系统文章设计了以单片机AT89C51和L298控制的直流电机脉宽调制(
    发表于 12-07 16:34

    AVR单片机C语言编程及应用实例

    方式2.2.3 伪指令2.2.4 指令类型及数据操作方式2.3 应用程序设计2.3.1 程序设计方法2.3.2 应用程序举例第3章 AT90LS8535单片机C编程3.1 支持高级语
    发表于 03-19 21:28

    AVR单片机AT90系列介绍

    第二章以AT90S8515为例,详细叙述了AVR单片机的硬件结构,第四章详细叙述了AVR单片机的指令系统,相关器件简明指令表附录4。本章
    发表于 03-07 15:27

    如何用软件方法实现单片机的重启?

    单片机重启可以通过哪几种方法实现?如何用软件方法实现
    发表于 07-14 06:15

    【原创分享】单片机延时的两种实现方法

    单片机延时大家程序中都会用到,那么怎么实现呢?通常我们有软件实现,就是语句循环;或者硬件实现通过
    发表于 10-08 15:32

    单片机如何实现按键复位?如何实现软件复位

    单片机型号:STC12C5A60S2问题1:单片机未能响应,烧录程序时,ISP烧写软件一直显示“正在连接”,如何解决?方法:检查是否选择下图
    发表于 11-19 08:37

    介绍MSP430单片机C语言编程基础及软件编程方法

    。初学者完全可以不深入了解汇编指令系统的情况下,直接开始C语言的学习。本章介绍MSP430单片机软件工程的开发基础,主要讲解MSP430
    发表于 12-21 06:22

    基于单片机软件实现直流电机PWM调速系统

    介绍了基于单片机PWM实现直流电机调整的基本方法,直流电机调速的相关知识,及PWM调整的基本原理和实现
    发表于 09-22 07:56

    AT90S4434_8535中文资料.pdf

    AT90S4434/8535 是一款基于AVR RISC 的低功耗CMOS 的8 位单片机通过在一个时钟周期内执行一条指令AT90S4434
    发表于 04-07 14:56 26次下载

    AT90S8535单片机计算机的串行通信

    AT90S8535单片机计算机的串行通信
    发表于 09-03 09:19 3次下载
    AT<b class='flag-5'>90S8535</b><b class='flag-5'>单片机</b>与<b class='flag-5'>计算</b>机的串行通信

    如何使用AT90S8535单片机实现数据采集系统的设计

    利用AT90S8535单片机开发数据采集模块,每路信号使用 Photomos光继电器进行信号隔离,模块的抗干扰能力强。系统适合在环境恶劣的工业现场进行信号的采集,具有精度高、可靠性好、采集速度快等优点
    发表于 03-02 11:34 10次下载
    如何使用AT<b class='flag-5'>90S8535</b><b class='flag-5'>单片机</b><b class='flag-5'>实现</b>数据采集系统的设计

    基于51单片机双极型PWM软件实现

    电子发烧友网站提供《基于51单片机双极型PWM软件实现.doc》资料免费下载
    发表于 10-30 09:26 0次下载
    基于51<b class='flag-5'>单片机</b>双极型<b class='flag-5'>PWM</b>的<b class='flag-5'>软件</b><b class='flag-5'>实现</b>