陳黃捷,馬 彥,靳偉偉,陳 虹+
(1.吉林大學(xué) 汽車仿真與控制國家重點(diǎn)實(shí)驗(yàn)室,吉林 長春130025;2.吉林大學(xué) 控制科學(xué)與工程系,吉林 長春130025)
目前單核CPU 運(yùn)算頻率的提高已經(jīng)接近瓶頸,人們開始通過多核協(xié)調(diào)工作來提高CPU 性能。相對于單核CPU,多核CPU 有著低功耗、高并行性等優(yōu)勢[1]。在FPGA 中,Altera公司的Nios II軟核為常用的CPU 核。通過配置雙Nios II軟核可以將數(shù)據(jù)分布式并行處理,從而提高工作效率。文獻(xiàn) [2]為了提高系統(tǒng)處理速度,采用了雙Nios II軟核處理器設(shè)計(jì)了駕駛疲勞檢測系統(tǒng)。文獻(xiàn) [3]使用嵌入雙Nios II軟核設(shè)計(jì)了視頻點(diǎn)播系統(tǒng),既減小了系統(tǒng)體積,也提高了處理速度。文獻(xiàn) [4]使用Nios II雙核系統(tǒng)來對經(jīng)紗張力進(jìn)行控制,提升了運(yùn)行速度,提高了系統(tǒng)的性能。本文使用加權(quán)PID 算法,并將其多核實(shí)現(xiàn),對電池充電過程進(jìn)行了實(shí)時仿真控制。
目前常見的電池模型有RC (電容電阻)模型,PNGV模型、電化學(xué)模型等。文獻(xiàn) [5]討論了電池RC 模型。文獻(xiàn) [6]研究了電池的PNGV 模型。文獻(xiàn) [7]深入研究了電池的電化學(xué)模型。本文采用的是電池RC 模型,因其相對于其他模型而言更簡單并且能較精確地反映電池內(nèi)部參數(shù)的變化情況。
電池的RC 模型如圖1 所示[8]。其中,Cb為大電容,它存儲的能量代表電池總電量,Ce為表面效應(yīng)電容,Rd為充電時電池內(nèi)部極化電阻,Rb為終端歐姆電阻,Re為表面效應(yīng)電阻。Ib為輸入電流,Ut為輸出電壓。Ucb為電容Cb兩端電壓,Uce為電容Ce兩端電壓。Ie為經(jīng)過電阻Re的電流,Id為經(jīng)過電阻Rd的電流。電容Cb、Ce是關(guān)于溫度的函數(shù),Rd、Rb和Re是溫度與荷電狀態(tài) (state of charge,SOC)的函數(shù)。充電時各支路的電流方向?yàn)閳D1 箭頭所指出方向。
圖1 電池RC模型電路結(jié)構(gòu)
根據(jù)圖1的電路結(jié)構(gòu),由基爾霍夫電流電壓定律可以推導(dǎo)出電池的充電數(shù)學(xué)模型
令Qg為當(dāng)前時刻電池內(nèi)部產(chǎn)生的能量,Qp為當(dāng)前時刻由電池傳遞給周圍空氣的熱量,Tair為有效的周圍空氣溫度,Reff為有效熱阻,mair為氣流速率,Cair為熱容量,Tamb為當(dāng)前時刻周圍空氣溫度,Tbat為當(dāng)前時刻電池溫度,mbat為電池質(zhì)量,Cbat為電池?zé)崛萘?。電池RC 數(shù)學(xué)模型溫度模塊的數(shù)學(xué)公式為
本文的控制目標(biāo)為既快又準(zhǔn)確的跟蹤上SOC 期望值和溫度給定曲線,且電流不至于過大而損壞電池。
加權(quán)PID 控制器,即將兩PID 控制器的輸出分別乘以相應(yīng)的加權(quán)系數(shù)后再相加,得到的和再作為被控對象的輸入。本文中的加權(quán)PID 控制器由SOC PID 控制器SOC_PID 和溫度PID 控制器T_PID 組成,加權(quán)系數(shù)是根據(jù)溫度和SOC升降所要求的控制效果來選取,加權(quán)PID 控制器結(jié)構(gòu)如圖2所示。
圖2 加權(quán)PID 控制電池充電系統(tǒng)結(jié)構(gòu)
PID 控制器加權(quán)系數(shù)根據(jù)如下原則進(jìn)行選取:
(1)溫度升高,使T_PID 控制作用增大,SOC_PID控制作用減小,以使溫度不至于過高;
(2)溫度降低,使T_PID 控制作用減小,SOC_PID控制作用增大,以使在溫度合適的范圍內(nèi)加快充電速度,縮短充電時間;
(3)SOC 升 高,使T _PID 控 制 作 用 增 大,SOC _PID 控制作用相對平緩,因?yàn)榇藭r電池已經(jīng)快充滿電,可以預(yù)見溫度已經(jīng)比較高,此時增大T_PID 控制作用使溫度不至于過高;
(4)SOC 降 低,使T _PID 控 制 作 用 減 小,SOC _PID 控制作用增大,因?yàn)榇藭r電池剛開始充電,可以預(yù)見此時溫度比較低,增大SOC_PID 控制作用使溫度在合適范圍內(nèi)盡可能快地加快電池充電速度。
這里首先說明一下為什么采用多輪清點(diǎn)來執(zhí)行清點(diǎn)任務(wù)。對于無源標(biāo)簽來說,標(biāo)簽工作的能量需要由閱讀器發(fā)送的電磁信號來提供,由于電磁場在空間的分布不是均勻的,因此有的地方信號強(qiáng),有的地方信號弱,那么標(biāo)簽在信號弱的地方,就可能得不到足夠的能量工作,這樣該標(biāo)簽就無法被閱讀器識別。在每一輪清點(diǎn)中,電磁場分布會因閱讀器發(fā)送的電磁信號參數(shù)改變而改變,因此每一輪能夠清點(diǎn)到的標(biāo)簽和不能清點(diǎn)到的標(biāo)簽都可能不同。采用多輪清點(diǎn),可以增加覆蓋范圍內(nèi)標(biāo)簽的識別率。
根據(jù)這一原則,選定電池模型的加權(quán)PID 系數(shù)為:
(1)SOC PID 加權(quán)系數(shù)
(2)溫度PID 加權(quán)系數(shù)
其中,x,y 均為待定系數(shù),將由下一節(jié)的仿真實(shí)驗(yàn)來確定最終的值。
系統(tǒng)仿真參數(shù)設(shè)置見表1。本文針對一個7Ah鋰電池單體的充電過程進(jìn)行仿真,采樣時間設(shè)定為0.01s??刂颇繕?biāo)為既快又準(zhǔn)確地跟蹤上SOC 期望值和溫度曲線 (參考溫度曲線是參照文獻(xiàn) [8]的溫度結(jié)果曲線給定的),并且充電過程中電流不超過30A (假設(shè)電池能承受的最大電流為30A)。根據(jù)仿真實(shí)驗(yàn),最終整定得到的PID 控制器各參數(shù)如表2所示。MATLAB/Simulink仿真曲線如圖3所示。
表1 系統(tǒng)仿真參數(shù)
表2 加權(quán)PID 控制器各系數(shù)
圖3 Simulink仿真結(jié)果曲線
由圖3可知SOC大約在1300秒時跟蹤上給定SOC 曲線,即電池在1300 秒時充滿電。溫度曲線全程跟蹤得很好,基本按照控制要求變化。充電電流值一直在0 到30A內(nèi)波動,符合充電要求。
Nios II處理器是Altera公司開發(fā)的基于哈佛結(jié)構(gòu)的通用32位精簡指令集計(jì)算機(jī) (reduced instruction set computer,RISC)軟核處理器,是一個完全基于通用FPGA 架構(gòu)的軟CPU 核[9]。
多核處理器要同時工作,必然少不了相互間的數(shù)據(jù)交換,即各個核之間的通信問題。本節(jié)對兩種目前比較高效的通信方式進(jìn)行了討論:Mutex 互斥核方案[10]和雙端口RAM 方案。
(1)Mutex互斥核方案
此方案直接使用了SOPC Builder工具箱中的Mutex互斥核來協(xié)調(diào)多核之間的通信問題。Mutex互斥核方案中雙核CPU、Mutex互斥核和RAM 均掛載在Avalon總線上。兩個Nios II核通過爭搶Mutex核來決定當(dāng)前時刻對共享資源的占用,直至操作結(jié)束再釋放Mutex核并進(jìn)入下一次的爭搶。使用Mutex核可以保證同一時刻只有一個核占有共享資源,從而保證數(shù)據(jù)的完整性。
當(dāng)共享數(shù)據(jù)量較大或者CPU 核過多時,使用Mutex會導(dǎo)致控制邏輯復(fù)雜度增高,而且等待時延會增大,因此該方案不適合共享數(shù)據(jù)大的情況。另外,如果參與爭搶Mutex核的兩個Nios II核頻率相差過大可能會導(dǎo)致頻率低的Nios II核長時間得不到響應(yīng)。
(2)雙端口RAM 方案
雙 端 口RAM 是SOPC Builder 工 具 箱 中 的On-Chip Memory,相對于單端口RAM 而言,它擁有兩套完全獨(dú)立的數(shù)據(jù)線、地址線和讀寫控制線,在同一時刻允許兩個獨(dú)立系統(tǒng)對其進(jìn)行隨機(jī)訪問。并且其配有相應(yīng)的訪問仲裁控制模塊,采用Busy邏輯控制,同一時刻只有一個CPU 能接收到Busy邏輯的允許訪問信號,可以防止兩個獨(dú)立系統(tǒng)同時訪問同一地址時造成的數(shù)據(jù)損壞的情況。此方案控制邏輯簡單,只需正常的讀寫控制即可。適合大數(shù)據(jù)交換系統(tǒng)。表3對上述兩方案進(jìn)行了比較。
表3 Nios II多核通信方案的比較
根據(jù)本文研究內(nèi)容的特點(diǎn),由于有3個Nios II核相互通信,其中兩個從Nios II核要并行工作,即分別實(shí)現(xiàn)上一章所介紹的加權(quán)PID控制器中的一個PID控制器,使用Mutex核方案勢必會使得兩個從Nios II核無法實(shí)現(xiàn)并行工作,此外還會增加控制的復(fù)雜性,因此本文選用雙端口RAM 方案。
本文使用了Altera 公司的DE3 FPGA 開發(fā)板和dSPACE 公司的半實(shí)物仿真軟硬件工作平臺,并使用RS232 串 行 通 信 接 口 (universal asynchronous receiver/transmitter,UART)來實(shí)現(xiàn)DE3 板和dSPACE 之間的通信,圖4所示為本系統(tǒng)的SOPC Builder硬件配置圖。
圖4 SOPC Builder硬件配置
本文中SOPC系統(tǒng)軟件實(shí)現(xiàn)流程如圖5 所示。其中3個CPU 的通信結(jié)構(gòu)如圖6所示。CPU1的工作流程如圖7所示,CPU2和CPU3的工作流程如圖8所示。
在本系統(tǒng)中,CPU1 負(fù)責(zé)與UART 通信,CPU2 和CPU3負(fù)責(zé)加權(quán)PID 計(jì)算。當(dāng)串口接收到數(shù)據(jù)時,CPU1將該數(shù)據(jù)存入雙口RAM1 并置相應(yīng)的標(biāo)志位通知CPU2 和CPU3來取數(shù)。當(dāng)CPU2和CPU3接收到通知后將數(shù)取來并分別進(jìn)行相應(yīng)的PID 運(yùn)算,得出的結(jié)果存入雙口RAM2并置位相應(yīng)的標(biāo)志位通知CPU1 來取數(shù)。CPU1 將取完數(shù)后將結(jié)果進(jìn)行加權(quán)相加得到PID 加權(quán)結(jié)果,然后通過串口發(fā)送給dSPACE。
為了對加權(quán)PID 多核實(shí)現(xiàn)方案進(jìn)行實(shí)時仿真驗(yàn)證,本文搭建了基于FPGA 和dSPACE 實(shí)時仿真系統(tǒng)的實(shí)驗(yàn)平臺。平臺主要由DE3 FPGA 開 發(fā)板、dSPACE DS 1104 PPC 單板系統(tǒng)和兩臺PC機(jī)組成。其中FPGA 作為加權(quán)PID控制器的硬件實(shí)現(xiàn),用來運(yùn)算加權(quán)PID 算法;dSPACE DS 1104單板系統(tǒng)用來設(shè)計(jì)搭建電池?cái)?shù)學(xué)模型,模擬被控對象電池的實(shí)時運(yùn)行;PC1上運(yùn)行的是Quartus II和Nios II IDE兩個軟件,分別用來運(yùn)行SOPC 的硬件系統(tǒng)和軟件系統(tǒng),完成加權(quán)PID 控制器的設(shè)計(jì),PC2 上運(yùn)行的ControlDesk軟件用來監(jiān)控和測試實(shí)驗(yàn)結(jié)果。
圖8 CPU2、3工作流程
將電池模型 (含溫度)下載到dSPACE 中,將硬件配置和多核軟件程序下載到FPGA 中后開始實(shí)時仿真。通過ControlDesk模塊可以觀察dSPACE 中各個變量的變化情況,即電池模型各個參數(shù)的變化情況,如圖9 所示。實(shí)驗(yàn)中的參數(shù)設(shè)置同表1。仿真時間步長為0.01s。
在圖9中,SOC跟蹤曲線中#1∶1曲線表示的是給定SOC值,恒為1,#1∶2曲線表示反饋SOC 值,可以看出在1300秒左右的時候電池充電完畢,符合實(shí)驗(yàn)要求。溫度跟蹤曲線中#1∶1曲線表示給定溫度值,#1∶2曲線表示溫度跟蹤值,曲線跟蹤的情況較好,溫度基本按照給定曲線變化。電流曲線中#1∶1曲線為電流曲線,電流一直在0到30A 的范圍內(nèi)波動。實(shí)驗(yàn)結(jié)果符合實(shí)驗(yàn)要求。
本文詳細(xì)地研究了電池的物理結(jié)構(gòu)、加權(quán)PID 控制的設(shè)計(jì)和Nios II處理器的體系結(jié)構(gòu)及其多處理器間的通信等幾大問題。在研究汽車電池建模的基礎(chǔ)上,構(gòu)建了一個加權(quán)PID 控制器控制電流給電池充電,并且把相應(yīng)的程序嵌入到多核中實(shí)現(xiàn)。
參考以往的研究者研究電池充電實(shí)驗(yàn)得出的實(shí)驗(yàn)結(jié)果曲線,本文選取了充電效果較佳的電池SOC 曲線和電池溫度曲線進(jìn)行跟蹤,將加權(quán)PID 算法下載到FPGA 中的Nios II多核中,同時將在MATLAB/Simulink 環(huán)境下搭建的電池模型下載到dSPACE實(shí)時仿真系統(tǒng)中來實(shí)現(xiàn)對兩曲線的跟蹤,使電池在相對穩(wěn)定的溫度上升和不高于30A 電流(假設(shè)電池能承受的最大電流為30A)的條件下盡可能快地充滿電。在實(shí)現(xiàn)了本文加權(quán)PID 算法的基礎(chǔ)上,未來可以將更復(fù)雜的算法嵌入到多核Nios II處理器中,從而使Nios II處理器發(fā)揮出更好的性能。
圖9 實(shí)時仿真時電池模型參數(shù)變化
[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多核通信及在網(wǎng)絡(luò)硬件實(shí)現(xiàn)中的應(yīng)用研究[D].長春:東北師范大學(xué)碩士學(xué)位論文,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多核駕駛疲勞檢測系統(tǒng)設(shè)計(jì) [J].計(jì)算機(jī)工程與設(shè)計(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).[綦聲波,田學(xué)文.雙Nios II軟核在嵌入式系統(tǒng)中的應(yīng)用 [J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,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īng)紗張力控制系統(tǒng)設(shè)計(jì) [J].應(yīng)用技術(shù),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].電源技術(shù),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].電源 技 術(shù),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 設(shè)計(jì)原理及應(yīng)用 [M].北京:北京航空航天大學(xué)出版社,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的多處理器設(shè)計(jì)及應(yīng)用 [D].哈爾濱:哈爾濱理工大學(xué),2008.]