background image

    在设计软件框架时,本着模块化、子程序化的设计思想,根据程序所实现功能的不同,将
其分为

4 个模块:主程序模块、周期中断模块、ADC 中断模块和 CAP 中断模块。图 6 为控制

系统的主流程图。
    在主程序模块中,对各个模块进行初始化,调节计算程序和其他程序。初始化程序中先将
6 个复用的 I/O 引脚设置为 PWM 波输出引脚,再对其他寄存器进行初始化。在完成所有的
初始化工作后,使能以下所需中断。

CAP 中断对输出电流电压的极性进行判断,用变量

Flag_I 和 Flag_U 作为标志,以判断逆变器的工作模式;A/D 中断中将采样值转换成算法
运算所需的实际值,与参考信号做比较,得到误差信号;

T2 周期中断实时根据所更新的误

差信号对脉冲宽度进行调整,更新比较寄存器中的数值。主要寄存器的设置如下:

    PWM 信号的产生用到了 EVA 的两个通用计时器和全比较单元。其中,通用定时器 GP1
用于产生对称三角载波;

GP2 用于触发定时器中断程序,以调整占空比。PWM 波形的产生

所需要的对事件管理器用寄存器主要有以下几个:
    (1)设置周期寄存器 T1PR 和 T2PR
    设定功率管的开关频率为 20 kHz,则三角波载波频率为 20 kHz,系统时钟频率为 150 
MHz。T1 定时器的计数方式采用连续增减模式,则 T1PR 的值可由以下式子计算得到。
    
    解得 T1PR=3 750。
    GP2 触发定时器的中断频率为 20 kHz,系统时钟频率为 150 MHz,T2 定时器的计数方式
采用连续增模式,则

T2PR=7 500。

    (2)设置当前全比较寄存器 CMPRx 的值(采用对称规则采样法)
    设三角载波的幅值为 1,周期为 Tc。正弦信号为 ur=sinωrt,若采用对称规则采样法,则得
到的正弦脉冲宽度为

δ=Tcsinωrti。其中,ti 为三角载波过零点。为了减小 CPU 的负担及满足

实时性的需求,

SPWM 逻辑驱动信号采用查表法产生。将控制系统中所需的正弦基准信号

制作成一个正弦数据表供查用,根据以上设计参数,一个周期内需要

400 点,故占空比的

宽度值

Duty 为:

    Duty=T1PR×2sin[n]
    若比较方式控制寄存器 ACTRA 配置 PWM1~PWM6 均为高有效时,根据全桥双向电流
源高频链逆变器的控制方式,

VM1 和 VM

4 的 控 制 脉 冲 由 CMPR1 控 制 , 设 变 量 ; 若 当 VM1 和 VM4 需 要 高 频 斩 波 时 ,
CMPR1=T1PR-CMP ; 若 当

VM1

VM4

CMPR1=0xFFFF 。CMPR2,CMPR3 均可以用这样的方式设置。

    3 实验结果分析

    对系统进行实验分析,实验样机参数为:输入直流电压为 24 V,输出电压为 220 V 正弦
交 流 电 , 输 出 额 定 容 量 为

250  VA 。 VM1 ~ VM4 采 用 MOSFET , 型 号 为 IRF2807 ;

VM5,VM6 采用 MOSFET,型号为 IRFPF50。高频变压器的磁芯为 PC40 EE42/21/20,
初级绕组为

8 匝,采用 AWG#18 导线 5 根并绕;次级绕组为 127 匝,采用 AWG#20 导线。

如图

7 所示。 

    可以看出,在纯阻性负载的情况下,uo,io 的极性相同,VM5 和 VM6 处于工频开关状
态,两个开关管一直处于互补工作状态,能量仅从输入电源流向负载。在阻感性负载时,

io