APP下载

基于SPWM控制DC-AC变换器的代码生成技术

2021-07-07巨生云

上海电机学院学报 2021年3期
关键词:全桥单相嵌入式

巨生云,蒋 赢

(上海电机学院电气学院,上海201306)

单相全桥DC-AC电压型逆变电路在不间断电源、分布式发电以及微型电网中起着重要作用,得到广泛应用。同时,随着数字控制技术的不断发展成熟,特别是高性能数字信号处理器(Digital Signal Processing,DSP)的出现,使数字控制系统逐渐取代传统的模拟系统[1-3]。在传统模拟电力逆变系统中,除开关控制电路和滤波电路较为复杂外,传统的DSP程序开发过程也较为复杂且时间花费较长,其开发过程包括算法设计、建立数学模型、代码编写等。在代码开发过程中必须保证所有环节准确无误,只要其中任意一个环节存在问题,就需要做大量的工作去查找问题甚至重新设计,使开发的难度和时间成本很高。这就需要一种只注重控制算法本身而不是编程语言的新型设计方法解决这一问题。而基于模型设计(Model-Based Design,MBD)只关注算法本身,利用仿真软件可以将仿真模型通过转代码的方式转成DSP可读的程序,可大大降低开发过程的难度和时间,此方法已在各个领域取得广泛应用[4]。

已有学者对MBD的代码生成技术进行研究,取得了一些研究成果[5-8]。文献[5]以Matlab为开发平台,以DSP永磁同步电机矢量控制为例,在Simulink下建立系统的仿真模型和代码模型,并自动生成嵌入式C代码,最后将代码输入DSP控制系统中进行软件测试。文献[6]利用Matlab、Simulink、Real-Time Workshop、DSP Blocksets工具箱和TI公司的开发工具CCS IDE,在Simulink环境下,用图形化的方式设计DSP程序,实现代码的自动生成。文献[7]利用Matlab建模和仿真功能,将嵌入式系统开发Matlab/Stateflow/RTW和代码测试相结合,实现了基于行为模型建模的自动代码生成和测试机制,通过项目开发验证了此机制的实用性。文献[8]提出了一种基于符号执行的Return-to-dl-resolve自动化实现方法,该方法为ELF可执行文件提供符号执行环境,对程序崩溃点的符号状态进行约束,通过约束求解器对约束进行求解,实现了Return-to-dl-resolve利用代码自动生成系统R2dlAEG。

本文以单相全桥DC-AC电压逆变电路为研究对象,提出了一种MBD的控制算法。以正弦脉宽调制(Sinusoidal Pulse Width Modulation,SPWM)为例在Matlab/Simulink中模拟仿真,生成单极性半波SPWM控制波形,并且在嵌入式编码器(Embedded Coder)中自动生成嵌入式代码,通过DSP集成开发环境将自动生成的嵌入式代码运行到以TMS320F2 8335为核心的控制电路,最后将SPWM控制信号接入DC-AC逆变电路进行实验验证。

1 单相全桥DC-AC逆变主电路

1.1 单相全桥逆变原理

单相全桥逆变电路广泛应用于电气各个领域,也是电力变换最基本的逆变模型[9-10],如图1所示。图中,Uo为输入直流电压;R1、R2、R3为电阻;Uc为全桥逆变后的交流电压;Ic为流过电感的电流;K1、K2、K3和K4为4个同型号的MOS管。DCAC逆变电路输出端接入LC滤波电路,L和C分别为电感和电容,Ud为滤波后输出的正弦电压。电压型全桥逆变电路可以看成由两个半桥电路组合而成,共4个桥臂,分别为K1、K2、K3和K4。桥臂K1和K4为一对,桥臂K2和K3为一对,成对桥臂同时导通,两对桥臂交替导通180o,同桥臂的两个MOS管(K1、K2或K3、K4)不能同时导通。

图1 DC-AC逆变主电路

图2所示为单相全桥逆变工作过程。其中,UG1、UG2、UG3、UG4分别为MOS管K1、K2、K3和K4的控制信号。0~t1时刻K1和K4导通,输出电压Uc=Uo,电流从负值迅速降低为0,然后电流转为正电流并迅速上升。在t1~t2时刻K2和K3导通,K1和K4关断,输出电压Uc=-Ud,因存在LC,电流不能突变,电流会先从正值逐渐降低为零,然后反向增加。同理可得t2~t3,t3~t4的工作过程。

图2 单相全桥逆变工作过程

1.2 SPWM控制原理及方法

由固定周期及占空比的PWM控制单相全桥逆变电路,输出电压会存在多次谐波,同时还需复杂的滤波处理。通过SPWM控制信号控制单相全桥逆变电路可以得到类似正弦波的方波信号。根据等面积法则,其效果类似于正弦波,通过简单的LC滤波后即可得到标准的正弦波电压。其工作过程如图3所示。

图3 SPWM逆变电路工作过程

图3中,t1~t2时刻为两个控制信号之间的死区时间,根据DSP的时钟计数特性,选用自然采样法生成SPWM控制信号。SPWM调制时,调制波和载波进行比较,当调制波大于载波时输出电压信号,调制波小于载波时关闭通路。同时,在单相全桥DC-AC逆变电路中,如果同一桥臂的两个MOS管同时导通,即使导通时间很短暂,也会产生极大的短路电流,这样就会烧毁整个控制电路。通过同一桥臂两个MOS管的控制信号之间产生死区时间间隔,这样就能消除同桥臂短路的隐患。采用如图4所示的方法产生同频反相的死区SPWM控制信号。图中,Ut为单极性三角载波;Us1、Us2为调制波;td为死区时间。得到180°的Us1和小于180°的Us2调制波,通过自然采样法可生成同频反相的死区SPWM控制信号。

图4 SPWM控制信号的产生

2 SPWM控制信号的自动代码生成

2.1 MBD的准备与开发流程

MBD以Matlab为开发平台,可实现Simulink模型到嵌入式C代码的自动转化,通过CCS将代码运行于DSP进行底层开发与驱动,显著提高开发效率,降低开发难度。整个开发过程中,开发者需在电脑中安装Matlab、CCS、Control SUITE等软件,并且进行关联配置。目前,MathWorks公司与德州仪器(TI)联合推出了Embedded Target for TI C2000DSP,使 用 了 将Matlab/Simulink与Texas Instruments eXpress DSO工具、TIC2000DSP处理器集成在一起,并进行系统开发的方法,通过实时工作站(RTW)和TI的开发工具将Simulink模型转变为实时嵌入式C代码[11]。在Matlab/Simulink库中添加C2000处理器的支持包Embedded Coder Support Package for Texas Instruments C2000 Processors。该支持包中含有DSP TMS320F2833x的各个模块,如ePWM、eCAP、eQEP、DMA等模块。

MBD以实时软件为开发平台,快速地实现算法建模、DSP底层驱动集成、自动代码生成、集成测试等,使开发者能够更快捷、低成本地进行开发[12]。根据目标模型的设计要求和目标,确定整体的设计流程。首先确定单相全桥逆变主电路,仿真模拟控制信号SPWM,根据设计需求和定义,确定优化控制算法。然后建立控制算法的Simulink模型,直至仿真结果满意再建立DSP处理器的Simulink模型,将Matlab和CCS关联配置,配置CCS集成开发环境,利用Embedded Coder(自动代码生成工具)将修正后的模型快速地自动生成DSP可读嵌入式C代码。最后通过Texas Instruments XDS100v2 USB2.0仿真器运行到TMS320F28335 DSP芯片中,进行目标板实时自动测试和验证。MBD开发流程[5]如图5所示。

图5 MBD开发流程

2.2 建立SPWM目标模型

TMS320F28335 DSP中的每个ePWM模块都是一个独立的小模块,且每个PWM模块均可单独使用,故F28335最多可以有18路PWM输出。每一组ePWM模块都包含:时基模块TB、技术比较模块CC、动作模块AQ、死区产生模块DB、PWM斩波模块PC、错误联防模块TZ和事件触发模块ET等7个模块[13]。由于DSP结构的特殊性,时基模块选用向上-下计数模式(up-down),利用up-down的计数模式来代替调制正弦波的载波。在F28335比较计数模块CC中,通过外部控制算法可以生成动态的比较寄存器的值CMPA(WA)和CMPB(WB)模拟20 kHz的正弦波,在ePWM模块C283x/C2833x中进行相应设置,即可完成SPWM目标模型的建立,如图6所示。

图6 SPWM的目标模型

图6中,正弦调制波生成频率为20 kHz的正弦波,在调制波生成模块中利用输入的正弦波生成两个反向且具有死区的正弦半波,最后在SPWM生成模块中通过自然采样法生成所需的单极性半波SPWM控制信号。

2.3 ePWM模块配置

微处理器TMS320F28335的系统时钟频率为150 MHz,PWM控制周期为1/15 000 s[14-15],并且具有外设丰富、存储空间大、处理速度快等优点。

通过一系列的算法控制,WA和WB分别输入同频、相位相差180°,且存在死区的正弦数字信号。其中设置Timer period(TMS320F28335 DSP定时器周期寄存器的时钟周期)可模拟单极三角载波,使用下式确定该值:

式中:fsys=150 MHz为TMS320F28335 DSP的CPU时钟频率;fpwm=400 kHz为三角载波的频率。利用DSP的特性将这两个信号作为ePWM1A和ePWM1B的比较信号。当F28335工作时,每一个计时周期里时基计数器的值(CTR)都会与比较寄存器的值(CMP)有两次相交的点,在该时刻通过设置CAU(向上计数时,计数器等于计数比较器A)、CAD(向下计数时,计数器等于计数比较器A)、CBU(向上计数时,计数器等于计数比较器B)和CBD(向下计数时,计数器等于计数比较器B)的动作方式,控制高低电平的输出,形成所需的单极性半波SPWM控制信号。

2.4 DSP代码自动生成及运行

自动代码生成并运行到TMS320F28335之前需对Simulink进行相应设置。实验使用Matlab 2019b及Code Composer Studio 6.2.0软件。在Simulink中搭建基于DSP的SPWM仿真模型后,点击Model Settings,将Solver selection中的Type类型选为Fixed-step,并在Code Generation中将Target selection的System target file类型改为ert.tlc;同时在Linker command file的c28335.cmd文件中修改并写入自己配置的仿真器类型。相关配置设置后,选用Embedded Coder APPS,使用其Generate code and build功能进行自动代码的生成,如图7所示。

图7 SPWM控制波形自动代码生成

自动代码生成之后,在电脑和TMS320F28-335 DSP控制芯片之间使用Texas Instruments XDS100v2 USB仿真器关联配置。同时打开CCS软件,选择Import CCSProject导入自动生成CCS工程,进行编译。通过Target Configurations测试目标芯片是否连接成功,成功后进入CCS Debug模式将.out文件运行于F28335芯片中即可。

3 仿真与实验验证

3.1 Simulink仿真验证

主电路采用单向DC-AC逆变电路。输入直流电源U1=12 V,电阻R1=0.01Ω,R2=4Ω,RL滤波器中的电感L=14.1μH,电容C=5.07μF。单极性半波SPWM控制信号采用自然采样法的方式生成,调制波采用频率为20 kHz的正弦波,载波采用频率为400 kHz的单极性三角波,调制比为0.9,通过比较环节即可生成单极性半波SPWM控制信号。

在DC-AC逆变仿真中,UG1控制K1、K4同时导通,UG4控制K2、K3同时导通,最后经过RL滤波器输出标准的正弦波电压。单极性半波SPWM控制信号模拟仿真如图8所示,DC-AC逆变输出信号如图9所示。

图8 单极性半波SPWM控制仿真信号

图9 DC-AC仿真波形

由图9可见,电压整体贴近正弦波,通过SPWM控制DC-AC全桥逆变电路在理论上是可行的。

3.2 自动代码生成的实验验证

自动代码生成并调试后,运行于TMS320F28 335 DSP控制板,通过连接示波器可得到SPWM控制波形如图10所示。

图10 SPWM控制波形

由图10可见,DSP生成的SPWM波形峰峰值为3.7 V,同时两个控制波形之间存在明显的死区,说明基于DSP的单极性半波SPWM代码自动生成技术是可以实现并且应用的。与传统的DSP直接编程相比,MBD自动代码生成技术无需人工编写DSP嵌入式代码,这不仅可以有效降低开发难度和开发周期,同时还能提高代码开发的效率和准确率。

4 结 语

通过MBD和电力电子学科的紧密结合,研究了以MBD方式开发SPWM控制信号,并应用于DC-AC逆变电路。实验结果表明,通过MBD自动生成SPWM嵌入式代码,控制DC-AC逆变电路是可行的,同时也验证了代码的有效性。开发过程中使用Simulink提供的开发支持包、函数库及DSP底层驱动,快速完成了系统建模工作,有效解决了开发者代码编写难度大的问题,整体缩短了DSP系统开发的时间和难度。可见,DSP代码的MBD开发技术具有开发效率高、难度低和代码可靠性高等优点,应用价值高且前景广泛。

猜你喜欢

全桥单相嵌入式
基于单相回路及热泵回路的月球居住舱热控系统对比分析
Focal&Naim同框发布1000系列嵌入式扬声器及全新Uniti Atmos流媒体一体机
宽范围输入输出离子电推进屏栅电源的设计
细谈DAM 10 kW中波发射机的RF功放模块
TS系列红外传感器在嵌入式控制系统中的应用
嵌入式PLC的设计与研究
嵌入式单片机在电机控制系统中的应用探讨
单相智能电能表的故障剖析及防范
全桥LLC谐振变换器研究
SemihexTM单相感应电动机阻容制动的仿真研究