基于Nios II多核的电池充电控制器设计与实现

2014-12-23 01:28陈黄捷靳伟伟
计算机工程与设计 2014年2期
关键词:处理器电池控制器

陈黄捷,马 彦,靳伟伟,陈 虹+

(1.吉林大学 汽车仿真与控制国家重点实验室,吉林 长春130025;2.吉林大学 控制科学与工程系,吉林 长春130025)

0 引 言

目前单核CPU 运算频率的提高已经接近瓶颈,人们开始通过多核协调工作来提高CPU 性能。相对于单核CPU,多核CPU 有着低功耗、高并行性等优势[1]。在FPGA 中,Altera公司的Nios II软核为常用的CPU 核。通过配置双Nios II软核可以将数据分布式并行处理,从而提高工作效率。文献 [2]为了提高系统处理速度,采用了双Nios II软核处理器设计了驾驶疲劳检测系统。文献 [3]使用嵌入双Nios II软核设计了视频点播系统,既减小了系统体积,也提高了处理速度。文献 [4]使用Nios II双核系统来对经纱张力进行控制,提升了运行速度,提高了系统的性能。本文使用加权PID 算法,并将其多核实现,对电池充电过程进行了实时仿真控制。

1 电池建模

目前常见的电池模型有RC (电容电阻)模型,PNGV模型、电化学模型等。文献 [5]讨论了电池RC 模型。文献 [6]研究了电池的PNGV 模型。文献 [7]深入研究了电池的电化学模型。本文采用的是电池RC 模型,因其相对于其他模型而言更简单并且能较精确地反映电池内部参数的变化情况。

电池的RC 模型如图1 所示[8]。其中,Cb为大电容,它存储的能量代表电池总电量,Ce为表面效应电容,Rd为充电时电池内部极化电阻,Rb为终端欧姆电阻,Re为表面效应电阻。Ib为输入电流,Ut为输出电压。Ucb为电容Cb两端电压,Uce为电容Ce两端电压。Ie为经过电阻Re的电流,Id为经过电阻Rd的电流。电容Cb、Ce是关于温度的函数,Rd、Rb和Re是温度与荷电状态 (state of charge,SOC)的函数。充电时各支路的电流方向为图1 箭头所指出方向。

图1 电池RC模型电路结构

根据图1的电路结构,由基尔霍夫电流电压定律可以推导出电池的充电数学模型

令Qg为当前时刻电池内部产生的能量,Qp为当前时刻由电池传递给周围空气的热量,Tair为有效的周围空气温度,Reff为有效热阻,mair为气流速率,Cair为热容量,Tamb为当前时刻周围空气温度,Tbat为当前时刻电池温度,mbat为电池质量,Cbat为电池热容量。电池RC 数学模型温度模块的数学公式为

2 加权PID 充电控制器设计及离线仿真

本文的控制目标为既快又准确的跟踪上SOC 期望值和温度给定曲线,且电流不至于过大而损坏电池。

2.1 加权PID充电控制器设计

加权PID 控制器,即将两PID 控制器的输出分别乘以相应的加权系数后再相加,得到的和再作为被控对象的输入。本文中的加权PID 控制器由SOC PID 控制器SOC_PID 和温度PID 控制器T_PID 组成,加权系数是根据温度和SOC升降所要求的控制效果来选取,加权PID 控制器结构如图2所示。

图2 加权PID 控制电池充电系统结构

PID 控制器加权系数根据如下原则进行选取:

(1)温度升高,使T_PID 控制作用增大,SOC_PID控制作用减小,以使温度不至于过高;

(2)温度降低,使T_PID 控制作用减小,SOC_PID控制作用增大,以使在温度合适的范围内加快充电速度,缩短充电时间;

(3)SOC 升 高,使T _PID 控 制 作 用 增 大,SOC _PID 控制作用相对平缓,因为此时电池已经快充满电,可以预见温度已经比较高,此时增大T_PID 控制作用使温度不至于过高;

(4)SOC 降 低,使T _PID 控 制 作 用 减 小,SOC _PID 控制作用增大,因为此时电池刚开始充电,可以预见此时温度比较低,增大SOC_PID 控制作用使温度在合适范围内尽可能快地加快电池充电速度。

这里首先说明一下为什么采用多轮清点来执行清点任务。对于无源标签来说,标签工作的能量需要由阅读器发送的电磁信号来提供,由于电磁场在空间的分布不是均匀的,因此有的地方信号强,有的地方信号弱,那么标签在信号弱的地方,就可能得不到足够的能量工作,这样该标签就无法被阅读器识别。在每一轮清点中,电磁场分布会因阅读器发送的电磁信号参数改变而改变,因此每一轮能够清点到的标签和不能清点到的标签都可能不同。采用多轮清点,可以增加覆盖范围内标签的识别率。

根据这一原则,选定电池模型的加权PID 系数为:

(1)SOC PID 加权系数

(2)温度PID 加权系数

其中,x,y 均为待定系数,将由下一节的仿真实验来确定最终的值。

2.2 Simulink离线仿真

系统仿真参数设置见表1。本文针对一个7Ah锂电池单体的充电过程进行仿真,采样时间设定为0.01s。控制目标为既快又准确地跟踪上SOC 期望值和温度曲线 (参考温度曲线是参照文献 [8]的温度结果曲线给定的),并且充电过程中电流不超过30A (假设电池能承受的最大电流为30A)。根据仿真实验,最终整定得到的PID 控制器各参数如表2所示。MATLAB/Simulink仿真曲线如图3所示。

表1 系统仿真参数

表2 加权PID 控制器各系数

图3 Simulink仿真结果曲线

由图3可知SOC大约在1300秒时跟踪上给定SOC 曲线,即电池在1300 秒时充满电。温度曲线全程跟踪得很好,基本按照控制要求变化。充电电流值一直在0 到30A内波动,符合充电要求。

3 控制器Nios II多核实现

Nios II处理器是Altera公司开发的基于哈佛结构的通用32位精简指令集计算机 (reduced instruction set computer,RISC)软核处理器,是一个完全基于通用FPGA 架构的软CPU 核[9]。

3.1 Nios II多核处理器的通信

多核处理器要同时工作,必然少不了相互间的数据交换,即各个核之间的通信问题。本节对两种目前比较高效的通信方式进行了讨论:Mutex 互斥核方案[10]和双端口RAM 方案。

(1)Mutex互斥核方案

此方案直接使用了SOPC Builder工具箱中的Mutex互斥核来协调多核之间的通信问题。Mutex互斥核方案中双核CPU、Mutex互斥核和RAM 均挂载在Avalon总线上。两个Nios II核通过争抢Mutex核来决定当前时刻对共享资源的占用,直至操作结束再释放Mutex核并进入下一次的争抢。使用Mutex核可以保证同一时刻只有一个核占有共享资源,从而保证数据的完整性。

当共享数据量较大或者CPU 核过多时,使用Mutex会导致控制逻辑复杂度增高,而且等待时延会增大,因此该方案不适合共享数据大的情况。另外,如果参与争抢Mutex核的两个Nios II核频率相差过大可能会导致频率低的Nios II核长时间得不到响应。

(2)双端口RAM 方案

双 端 口RAM 是SOPC Builder 工 具 箱 中 的On-Chip Memory,相对于单端口RAM 而言,它拥有两套完全独立的数据线、地址线和读写控制线,在同一时刻允许两个独立系统对其进行随机访问。并且其配有相应的访问仲裁控制模块,采用Busy逻辑控制,同一时刻只有一个CPU 能接收到Busy逻辑的允许访问信号,可以防止两个独立系统同时访问同一地址时造成的数据损坏的情况。此方案控制逻辑简单,只需正常的读写控制即可。适合大数据交换系统。表3对上述两方案进行了比较。

表3 Nios II多核通信方案的比较

根据本文研究内容的特点,由于有3个Nios II核相互通信,其中两个从Nios II核要并行工作,即分别实现上一章所介绍的加权PID控制器中的一个PID控制器,使用Mutex核方案势必会使得两个从Nios II核无法实现并行工作,此外还会增加控制的复杂性,因此本文选用双端口RAM 方案。

3.2 多核程序设计

本文使用了Altera 公司的DE3 FPGA 开发板和dSPACE 公司的半实物仿真软硬件工作平台,并使用RS232 串 行 通 信 接 口 (universal asynchronous receiver/transmitter,UART)来实现DE3 板和dSPACE 之间的通信,图4所示为本系统的SOPC Builder硬件配置图。

图4 SOPC Builder硬件配置

本文中SOPC系统软件实现流程如图5 所示。其中3个CPU 的通信结构如图6所示。CPU1的工作流程如图7所示,CPU2和CPU3的工作流程如图8所示。

在本系统中,CPU1 负责与UART 通信,CPU2 和CPU3负责加权PID 计算。当串口接收到数据时,CPU1将该数据存入双口RAM1 并置相应的标志位通知CPU2 和CPU3来取数。当CPU2和CPU3接收到通知后将数取来并分别进行相应的PID 运算,得出的结果存入双口RAM2并置位相应的标志位通知CPU1 来取数。CPU1 将取完数后将结果进行加权相加得到PID 加权结果,然后通过串口发送给dSPACE。

4 基于FPGA和dSPACE的实时仿真实验

为了对加权PID 多核实现方案进行实时仿真验证,本文搭建了基于FPGA 和dSPACE 实时仿真系统的实验平台。平台主要由DE3 FPGA 开 发板、dSPACE DS 1104 PPC 单板系统和两台PC机组成。其中FPGA 作为加权PID控制器的硬件实现,用来运算加权PID 算法;dSPACE DS 1104单板系统用来设计搭建电池数学模型,模拟被控对象电池的实时运行;PC1上运行的是Quartus II和Nios II IDE两个软件,分别用来运行SOPC 的硬件系统和软件系统,完成加权PID 控制器的设计,PC2 上运行的ControlDesk软件用来监控和测试实验结果。

图8 CPU2、3工作流程

将电池模型 (含温度)下载到dSPACE 中,将硬件配置和多核软件程序下载到FPGA 中后开始实时仿真。通过ControlDesk模块可以观察dSPACE 中各个变量的变化情况,即电池模型各个参数的变化情况,如图9 所示。实验中的参数设置同表1。仿真时间步长为0.01s。

在图9中,SOC跟踪曲线中#1∶1曲线表示的是给定SOC值,恒为1,#1∶2曲线表示反馈SOC 值,可以看出在1300秒左右的时候电池充电完毕,符合实验要求。温度跟踪曲线中#1∶1曲线表示给定温度值,#1∶2曲线表示温度跟踪值,曲线跟踪的情况较好,温度基本按照给定曲线变化。电流曲线中#1∶1曲线为电流曲线,电流一直在0到30A 的范围内波动。实验结果符合实验要求。

5 结束语

本文详细地研究了电池的物理结构、加权PID 控制的设计和Nios II处理器的体系结构及其多处理器间的通信等几大问题。在研究汽车电池建模的基础上,构建了一个加权PID 控制器控制电流给电池充电,并且把相应的程序嵌入到多核中实现。

参考以往的研究者研究电池充电实验得出的实验结果曲线,本文选取了充电效果较佳的电池SOC 曲线和电池温度曲线进行跟踪,将加权PID 算法下载到FPGA 中的Nios II多核中,同时将在MATLAB/Simulink 环境下搭建的电池模型下载到dSPACE实时仿真系统中来实现对两曲线的跟踪,使电池在相对稳定的温度上升和不高于30A 电流(假设电池能承受的最大电流为30A)的条件下尽可能快地充满电。在实现了本文加权PID 算法的基础上,未来可以将更复杂的算法嵌入到多核Nios II处理器中,从而使Nios II处理器发挥出更好的性能。

图9 实时仿真时电池模型参数变化

[1]CHENG Dan.Research on Nios II multi-core communication and application in hardware implementation of neural work[D].Changchun:Northeast Normal University,2010 (in Chinese).[程丹.Nios II多核通信及在网络硬件实现中的应用研究[D].长春:东北师范大学硕士学位论文,2010.]

[2]LING Chaodong,YANG Liangliang,LI Guogang.Design of multi-core driver fatigue state [J].Computer Engineering and Design,2009,30 (6):1410-1416 (in Chinese).[凌朝东,杨亮亮,李国刚.基于Nios II多核驾驶疲劳检测系统设计 [J].计算机工程与设计,2009,30 (6):1410-1416.]

[3]QI Shengbo,TIAN Xuewen.Application of double-core Nios II in embedded system [J].Microcontroller & Embedded Systems,2008,8 (2):28-31.(in Chinese).[綦声波,田学文.双Nios II软核在嵌入式系统中的应用 [J].单片机与嵌入式系统应用,2008,8 (2):28-31.]

[4]LV Yubin,CUI Gejin.Design of wrap tension control system based on double Nios [J].Applied Science and Technology,2007,34 (6):49-52 (in Chinese).[吕愉斌,崔葛瑾.基于双Nios软核的经纱张力控制系统设计 [J].应用技术,2007,34(6):49-52.]

[5]LI Chao,SHANG Anna.Research on second-order RC circuit model of Ni-MH battery for EV [J].Chinese Journal of Power Sources,2011,35 (2):195-197 (in Chinese).[李超,商安娜.电动汽车用氢镍电池二阶RC模型的研究 [J].电源技术,2011,35 (2):195-197.]

[6]ZHANG Bin,GUO Liandui,LI Hongyi,et al.PNGV model anslysis of LiFePO4Li-ion battery for electric vehicle[J].Chinese Joural of Power Sources,2009,33 (5):417-421 (in Chinese).[张宾,郭连兑,李宏义,等.电动汽车用磷酸铁锂离子电池的PNGV 模型分析 [J].电源 技 术,2009,33 (5):417-421.]

[7]Giacomo Marangoni.Battery management system for Li-ion batteries in hybrid electric vehicles [D]. University of PADOVA,2010.

[8]Yan Jingyu,Xu Guoqing,Qian Huihuan,et al.Battery fast charging strategy based on model predictive control[C]//Vehicular Technology Conference Fall,2010:1-8.

[9]LI Lanying.Design principles and applications of Nios II embedded soft core SOPC [M].Beijing:Beihang University Press,2006 (in Chinese).[李兰英.Nios II嵌入式软核SOPC 设计原理及应用 [M].北京:北京航空航天大学出版社,2006.]

[10]CUI Xueran.Design and application of multiprocessor based on Nios II[D].Harbin:Harbin University of Science and Technology,2008 (in Chinese).[崔雪然.基于Nios II的多处理器设计及应用 [D].哈尔滨:哈尔滨理工大学,2008.]

猜你喜欢
处理器电池控制器
电池很冤
“一粒盐电池”
把电池穿身上
穿在身上的电池
Imagination的ClearCallTM VoIP应用现可支持Cavium的OCTEON® Ⅲ多核处理器
ADI推出新一代SigmaDSP处理器
模糊PID控制器设计及MATLAB仿真
MOXA RTU控制器ioPAC 5542系列
倍福 CX8091嵌入式控制器
4V三输出同步降压型控制器