在现代电源的技术应用中,数字控制比传统的模拟控制具有更高的可靠性和灵活性。数字电源控制器使用非常少的模拟元件,不仅可以增加系统的平均无故障工作时间,还可以通过增加监视、保护和预警等功能提高系统的工作可靠性[1,3]。数字控制的运算特性使它更易于实现非线性控制和多环路控制等高级算法,同时还可以及时通过仿真验证,使设计工作变得相当灵活。但是传统的数字设计方案需要人工编写代码,当系统变得复杂时代码量很大, 而且也为测试和验证阶段带来很多困难。
相对于传统的数字设计,基于模型设计(MBD)则是通过建模和仿真来获得从需求到设计实现和测试,系统模型是开发过程的核心,并能根据模型实现代码的自动生成。Matlab作为一个高集成的开放式开发平台,在科学计算和建模方面处于领先地位,它可以通过使用可视化的模型进行搭建,实现快速原型开发,代码测试和验证,目前主要应用于汽车电子与航空航天领域,但是对以电力系统来说具有十分显著的优势,并得到了成功的应用[2,9]。本文首先对Matlab/Embedded Coder的多任务系统实现机制进行了分析,在此基础上对半桥DC/DC通讯电源的任务进行了优先级划分和时序协调,并以DSP TMS320F2812为例对半桥DC/DC通讯电源的控制系统进行了建模并对生成代码进行了处理器在环(PIL)验证,最后给出了样机测试结果。
1 电源控制系统工作机制
在多任务系统中,Embedded Coder采用了一种优先排序、预占先的多任务规划,以执行具有不同调度周期的任务[2,7]。生成的代码是以定时器中断的背景代码方式运行的,即以基本采样时钟为基准,系统模块以时间驱动方式周期运行;时间驱动执行模块是以后台代码的形式出现的,不同的任务模块代码将根据任务优先级以确定的时序执行[5]。在该方式中,不同的任务被配置为不同的中断调度周期,其中优先级较高的任务的调度周期较小。高优先级任务之间的可利用时间用于处理低优先级任务,这种处理方式减小了处理器的空闲时间和系统的开销。然而,这种执行方式缺乏灵活性,无法实时响应外部事件。特别是在电源控制领域,控制器必须根据采样的电压电流值实时地计算出PWM的占空比以实现对电压的控制。因此,为了提高系统实时性,必须以异步方式对硬件中断做出响应。因此,除了建立时间驱动任务外,还必须建立事件驱动中断任务。
2 控制系统建模与实现
本文设计的半桥数字电源控制系统是一个多任务处理系统,除了环路控制器外,还具有软启动、温度数据接收、故障关断以及CAN数据收发等功能。为了满足系统的实时性以及运行的可预测性要求,在系统中采用了时间驱动方式和异步中断方式。针对两种方式,将系统功能模块分为两类:时间驱动执行模型和事件驱动中断模型。
2.1 时间驱动任务建模
系统的运行流程如图1所示,其中时间驱动模块是以后台程序的方式运行的,具体分为电源启停及软启动、SPI温度接收及故障关断、CAN数据发送及GPIO状态指示等三个任务,三个任务的执行流程如图1所示。
![](file:///c:/docume~1/admini~1/locals~1/temp/ksohtml/wps_clip_image-16876.png)
图 1 时间驱动任务流程图
后台三个任务具有不同的优先级要求,其中电源启停优先级最高,该任务的中断周期设为1ms,信号用D1表示,该任务能根据接收到的启停指令对PWM最大占空比进行限制并设定参考电压。当接收到电源停止命令时,参考电压设置为0,PWM将输出低电平,IGBT将关断,主电路停止工作,这也是默认方式;当接收到电源启动命令时,参考电压设置为期望值28V,并调用软启动模型。软启动模型能够根据设定的电压步长和当前时刻母线电压对PWM占空比进行设置,可以限制变换器启动过程中输出电压上升速度过快。控制占空比由零逐渐增大,然后进入稳态,软启动算法如图2所示,其中Vset代表最终期望电压设置值28V,Vnet为工作过程中实际电压设置值,step则为电压的软启动步长,也是最终允许的期望电压波动幅度,E(k)=Vnet(k-1)-Vset为当前设置电压与最终期望电压差值。
......
|