在仿真的基础上,先进PWM算法需要进一步应用在实际硬件系统中。硬件控制器是实际系统中实现相关算法的核心部件,它实现的最基本功能就是从实际系统中采样反馈值,通过相应算法计算之后将以PWM为代表的执行信号发出给实际系统。软件算法实际上都是在“比特世界”中完成的,而硬件控制器是“比特世界”与真实世界的接口。图8-6所示是电力电子控制系统中的硬件控制器和控制对象的关系,硬件控制器的核心部分就是采样和输出,对应于模-数转换器(ADC)和PWM端口。
图8-6 电力电子控制系统中的硬件控制器
随着微电子技术和计算机技术的飞速发展,硬件控制器也经历了从低端到高端、从慢到快、从单核到多核的过程。教学科研中最常用的硬件控制器就是个人计算机(PC),但是在专门的工业应用中PC是不适用的,需要通过基于核心处理元件组成的最小系统实现信号处理和控制的功能。所构成的最小系统就是所谓的嵌入式系统。它的核心处理元件主要包括CPU、微处理器(MCU)和数字信号处理器(DSP)三种。其中CPU主要应用在PC上,具备多线程同时处理的功能;MCU又称为单片机,控制功能强但数字信号处理能力弱;而DSP则是为信号处理设计的高性能微处理器,是近年来实现高性能电力电子和运动控制系统的主要工具,也是本章的重点介绍对象。
DSP芯片主要包括执行运算操作的内核和完成外部接口的外设两大部分。DSP内核通过硬件加法器和乘法器等完成基本的运算功能,通过计算机的基本体系结构和流水线工作方式执行计算功能。但是这些功能还不足以完成闭环控制,DSP还需要有以ADC和PWM为主的外设功能完成与控制对象的连接。
另外,DSP可根据数字表示方式的不同分为定点和浮点两种。定点DSP是早期的主要类型,采用整形数实现数学运算,整形数的大小决定于所用字长,字的位数越多表示数的范围越大,比如16bit字长的数字范围是-32768~32767。一旦超出这一范围就会发生数据溢出,带来计算误差。而新型的浮点DSP采用浮点计数方式,数值范围大大增加,有效地避免了数据溢出。而且定点DSP的计数方式要求编程中需要对普通数字做特殊处理,但是浮点DSP中数的精度是一样的,表示容易,也易于编程。浮点DSP优势明显。
DSP最早出现在20世纪80年代初,进入21世纪之后开始主导包括控制、通信、视频等各个领域。在DSP的主要供应商中,美国德州仪器公司(Texas Instrument,TI)是一家占据重要位置的公司,它为不同的应用领域推出了多个系列的DSP产品。其中以C2000系列、C5000系列和C6000系列为主要产品。其中C2000系列DSP是专门为电力电子和电机控制设计的,具备丰富的外设功能,包含多路PWM和A-D通道;C5000和C6000系列DSP的数字信号处理能力更强大,更多应用在通信和视频信号处理中。
早期的C2000系列DSP中,TMS320F2407和TMS320F2812等都是典型的定点DSP,计算能力欠缺但控制外设功能丰富。高性能DSP控制系统中经常应用运算能力更强的C6000系列DSP,通过双口RAM等方式与C2000系列DSP组成双DSP系统,由C6000系列DSP实现复杂算法而C2000系列DSP实现采样和PWM控制。有的应用场合采用了浮点DSP加FPGA/CPLD的方式,由FPGA/CPLD完成PWM等功能,补偿了高性能浮点DSP缺乏电力电子控制外设接口的问题。但是这种双处理器的模式结构复杂,也降低了运算的效率,尤其会给本书中所介绍的需要实时改变调制方法的先进PWM带来挑战。直到2007年TI公司推出了C2000系列中第一种广泛应用的浮点型DSP:TMS320F28335,这种局面才被改变。这种DSP兼具浮点DSP计算能力强、编程方便和C2000系列DSP控制外设丰富的优点,单个DSP就能独立完成复杂的电力电子控制。自推出之后多年的发展,该款DSP已经成为电力电子和传动领域最广泛应用的处理器之一。
虽然TMS320F28335功能强大,但是一个单独的DSP芯片无法完成控制功能,还需要结合外围电路建立最小系统。图8-7展示了基于TI公司C2000系列DSP的最小系统。在DSP的外围集成了外部存储器、电源管理电路、通信接口、电动机转速/位置传感器接口(CAP/QEP)、PWM输出信号处理(门极驱动隔离)、A-D输入信号处理电路(传感器与信号调理电路)等功能模块,结合变流器和负载电动机,便能实现电动机的闭环控制了。
图8-7 基于TI公司C2000系列DSP的最小系统结构[3]
TI公司及其分销商为了推广其DSP的应用,为其主要的产品都提供了评估板(EVM板)。这些评估板是集成了基本外围电路(时钟、电源和存储器等)的最小系统,可以独立工作。这些EVM板对应了比较灵活的接插件,比如面包板插孔等,使用者可以直接用这些接口与变换器进行基本的连接。其中一种典型的EVM板就是控制卡,如图8-8a所示,如同计算机内存条一样,可以插在插槽上,通过插槽与面包板的接口对外连接。应用这种控制卡,可以开发出对应的载板,如图8-8b所示。载板上包括了数字和模拟信号处理等功能以及通信电路和电源等。基于这样的系统,使用者不需要对裸片进行系统开发就能完成应用,简化了系统开发的难度。
图8-8 典型的EVM板
a)TI公司TMS320F28335的控制卡 b)基于控制卡的最小系统
典型的控制系统需要有输出信号执行控制功能和反馈信号执行采样比较。以DSP芯片TMS320F28335为例,其包含许多功能子模块,如SCI子模块、SPI子模块、ADC子模块、eQEP子模块、ePWM子模块等,其中SCI和SPI子模块主要用以通信;ADC子模块负责进行模拟信号到数字信号的转换,即常用的采样模块;eQEP子模块主要用于处理电机控制中位置编码器的输出信号;而ePWM子模块负责执行控制功能并输出控制信号。
在DSP芯片中实现PWM控制主要通过其ePWM模块,它的原理是用数字信号模拟实际的载波,通过在每个中断周期修改相应比较值来实时更新PWM的脉宽及位置。每个ePWM模块由许多功能子模块组成,其中包含时间基准(TB)子模块、计数比较(CC)子模块、动作限定(AQ)子模块、死区控制(DB)子模块、事件触发(ET)子模块、PWM斩波控制(PC)子模块、错误控制(TZ)子模块。每个功能子模块都有各自的作用,最终功能复杂的PWM信号一般是通过组合配置前5个子模块的相关寄存器来实现的。
对于时间基准(TB)子模块,其作用是决定ePWM模块的事件时序,通过设定和配置相关寄存器实现以下功能:
1)通过时间基准周期寄存器(TBPRD)和时间基准计数寄存器(TBCTR)共同控制PWM的周期。
2)通过时间基准相位寄存器(TBPHS)可以修改当同步事件发生时的时间基准计数寄存器(TBCTR)的计数值,即更改数字化载波的初始位置。
3)通过时间基准控制寄存器(TBCTL)可以设定时间基准控制器的工作模式,有递增模式、递减模式和增减模式,可以定义数字化载波的形状,即锯齿波或对称三角波。图8-9给出了当TBPRD=4时的以上三种计数模式下的时间基准计数器的变化波形。
图8-9 三种计数模式下的时间基准计数器的变化波形
对于计数比较子模块,其输入为时间基准计数器的值,该值持续同计数器比较值A(CMPA)和计数器比较值B(CMPB)寄存器进行比较,当时间基准计数器(TBCTR)等于其中一个比较值时,比较寄存器单元产生一个相应事件,直接输出到动作限定(AQ)子模块。其原理类似于一个开关周期内调制波与载波比较的过程。而在计数比较的过程中,共有4种事件可以产生触发脉冲输出到动作限定子模块控制PWM动作。
1)CTR=CMPA:时间基准计数器等于计数比较寄存器A(在增减计数模式下每个开关周期可以产生2个触发脉冲)。
2)CTR=CMPB:时间基准计数器等于计数比较寄存器B(在增减计数模式下每个开关周期可以产生2个触发脉冲)。(www.xing528.com)
3)CTR=PRD:时间基准计数器等于周期寄存器的值(在任何计数模式下每个开关周期只能产生1个触发脉冲)。
4)CTR=Zero:时间基准计数器等于0(在任何计数模式下每个开关周期只能产生1个触发脉冲)。
对于动作限定子模块,其输入为计数比较子模块相关事件的触发脉冲,根据相关寄存器的配置可以实现触发事件改变PWM模块中两路信号(ePWMxA和ePWMxB)的状态,实现不同的转换动作,即PWM上升沿和下降沿。通过配置相关寄存器可以实现的具体操作如下。
2)置低:设置ePWMxA或ePWMxB输出低电平。
3)取反:转换当前ePWMxA或ePWMxB的输出电平状态。
4)无动作:保持当前的输出状态(虽然无动作,但是相应的事件可以触发中断和ADC起动)。
由动作限定子模块输出的ePWMxA和ePWMxB两路PWM信号,一般用于驱动一相桥臂的上、下两个开关管。而且在实际应用中必须在两路PWM信号之间插入死区时间以防止桥臂直通。死区控制子模块能在ePWMxA和ePWMxB两路PWM信号之间插入死区时间。常用的死区控制模式有:
1)上升沿延时Rising Edge Delayed(RED)。
2)下降沿延时Falling Edge Delayed(FED)。
3)高电平有效互补Active High Complementary(AHC)。
4)低电平有效互补Active Low Complementary(ALC)。
常见的死区功能子模块实现的死区控制模式对PWM波形的影响如图8-10所示。
事件触发子模块是PWM控制中较为重要的部分。DSP可以通过事件触发子模块产生功能信号用以触发中断。在事件触发子模块中,可以将不同的事件设置为功能信号的产生标志,常用的事件有:
1)时间基准计数器值等于零(TBCTR=0x0000)。
2)时间基准计数器值等于周期寄存器值(TBCTR=TBPRD)。
3)时间基准计数器值在递增或者递减情况下等于比较寄存器A的值(TBCTR=CMPA)。
4)时间基准计数器值在递增或者递减情况下等于比较寄存器B的值(TBCTR=CMPB)。
通过对上述各个功能子模块的介绍,DSP中PWM信号的发生原理可以总结如图8-11所示。
图8-10 死区控制模式下的PWM波形
图8-11 PWM信号发生原理流程图
首先需要配置时间基准子模块设定开关周期以及载波模式,同时可以设置两种触发事件,即时间基准计数寄存器的值等于零或者时间基准周期寄存器的值。然后实时比较时间基准计数寄存器的值与比较寄存器的值,当两者相等时,设置触发事件,以上触发事件都输入到动作限定子模块,通过设置相关动作达到控制PWM状态切换的效果。如果PWM信号需要插入死区时间,可以选择相关信号通过死区功能子模块产生各种形式的带死区时间的PWM信号,最终通过GPIO引脚输出。最后可以将触发信号输入到事件触发子模块中进行中断事件的设置,即产生中断信号,循环执行中断函数达到控制效果。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。