《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 可編程邏輯 > 設(shè)計(jì)應(yīng)用 > 基于Xilinx System Generator的PID算法快速硬件實(shí)現(xiàn)
基于Xilinx System Generator的PID算法快速硬件實(shí)現(xiàn)
來源:電子技術(shù)應(yīng)用2011年第11期
錢偉康1,倪元鴻1,謝凱年2,蔣 艷1
1.上海理工大學(xué) 光電信息與計(jì)算機(jī)工程學(xué)院,上海200093; 2.上海賽靈思電子科技有限公司 大學(xué)計(jì)劃部大中華區(qū),上海201203
摘要: 介紹了利用Xilinx System Generator平臺(tái)構(gòu)建模型化數(shù)字PID控制算法,并通過FPGA將數(shù)字PID算法結(jié)合傳感器與實(shí)際硬件控制對(duì)象快速建立控制模型,構(gòu)成完整的閉環(huán)控制。通過對(duì)控制效果的實(shí)驗(yàn)驗(yàn)證,證明了其控制方法的可行性。
中圖分類號(hào): TP273
文獻(xiàn)標(biāo)識(shí)碼: B
文章編號(hào): 0258-7998(2011)11-0048-04
Simpler realization of PID algorithm based on Xilinx system generator
Qian Weikang1,Ni Yuanhong1,Xie Kainian2,Jiang Yan1
1.College of Optoelectronic Information and Computer Engineering,University of Shanghai for Science and Technology, Shanghai 200093,China; 2.Shanghai Xilinx Technology Company(XUP China), Shanghai 201203,China
Abstract: This paper introduced how to create the digital PID control algorithm model and form a complete closed-loop control system through digital PID algorithm combining with the sensor and actual hardware control object based on Xilinx System Generator tools and FPGA. Finally, the experiment results of control effect proved the feasibility of the control method.
Key words : FPGA;system generator;PID algorithm


1 Xilinx System Generator簡介
    Xilinx System Generator 是專門為數(shù)字信號(hào)算法處理而推出的模型化設(shè)計(jì)平臺(tái),可以快速、簡單地將DSP系統(tǒng)的抽象算法轉(zhuǎn)換成可綜合的、可靠的硬件系統(tǒng),彌補(bǔ)了大部分對(duì)C語言以及Matlab工具很熟悉的DSP工程師對(duì)于硬件描述語言VHDL和Verilog HDL認(rèn)識(shí)不足的缺陷[1]。
    System Generator作為一個(gè)硬件設(shè)計(jì)工具包安裝在Matlab軟件中,提供了相當(dāng)豐富的應(yīng)用子模塊[2]。設(shè)計(jì)者如同使用Matlab中其他模塊一樣,通過拖拽和連接就可以將子模塊搭建成一個(gè)完整的應(yīng)用系統(tǒng)。
2 增量式PID數(shù)字算法原理
    在PID控制算法的應(yīng)用中有位置式和增量式兩種[3-4]。位置式PID控制算法中因運(yùn)用了誤差的累加,控制的輸出量與過去所有時(shí)間的狀態(tài)有關(guān),所以位置式PID控制算法的累積誤差相對(duì)較大。而增量式PID控制算法中的調(diào)整量只是與當(dāng)前及前兩個(gè)狀態(tài)有關(guān),并且增量式PID算法只是控制每次的輸出增量,而且一般執(zhí)行機(jī)構(gòu)都帶有記憶功能,一旦控制器出錯(cuò),能保持住原位,不會(huì)嚴(yán)重影響到系統(tǒng)的工作。
    PID數(shù)學(xué)模型:

3 在System Generator中建立PID算法模型
    根據(jù)公式(4)的增量式數(shù)字PID模型,可在Xilinx System Generator工具包中調(diào)用相關(guān)子函數(shù)模塊來構(gòu)建整個(gè)函數(shù)[5],如圖1所示。

    設(shè)計(jì)中使用了自定義函數(shù)模塊(Mcode),該模塊是Xilinx System Generator中提供給DSP設(shè)計(jì)者的可編程邏輯模塊,可以使用Matlab語言編寫符合設(shè)計(jì)者要求的子函數(shù)。Mcode模塊分別支持控制邏輯、狀態(tài)邏輯、二位除法運(yùn)算以及定點(diǎn)數(shù)運(yùn)算等邏輯運(yùn)算,并可靈活地定義輸入輸出的個(gè)數(shù)以及輸出數(shù)據(jù)的類型。最終在生成硬件邏輯時(shí)自動(dòng)將Mcode中的代碼轉(zhuǎn)換成VHDL/Verilog硬件描述語言。另外,由于生成的是邏輯控制,對(duì)設(shè)計(jì)者來說運(yùn)用起來十分便利,并且該模塊中的代碼在生成為硬件邏輯以后,幾乎是并行直接輸出,速度和效率都非常高。如圖2所示,在Mcode模塊中寫入了代碼之后,會(huì)生成對(duì)應(yīng)的自定義函數(shù)模塊。

4 控制對(duì)象與控制算法的級(jí)聯(lián)
    在PID算法模塊構(gòu)建完成以后,需要嵌入到實(shí)際的控制對(duì)象中以達(dá)到預(yù)期的控制目的。
    實(shí)驗(yàn)采用的是一階RC控制對(duì)象,該對(duì)象在實(shí)驗(yàn)中可以明顯有效地將控制效果反映出來。PID閉環(huán)控制系統(tǒng)框圖如圖3所示。對(duì)于一階RC控制對(duì)象,選擇電壓作為輸出的控制量,在設(shè)計(jì)中加入了A/D 以及D/A轉(zhuǎn)換模塊來完成采樣和控制量的輸出。
    實(shí)驗(yàn)平臺(tái)采用Xilinx公司的Spartan3E Start Kit,其中帶有兩路14 bit的A/D(LTC1407)輸入以及4路16 bit

    (2)在PID算法的輸入與輸出端搭建數(shù)據(jù)轉(zhuǎn)換模塊。由于通過A/D采樣得到的數(shù)據(jù)和D/A輸出的數(shù)據(jù)都是二進(jìn)制,而PID算法模塊中使用的是十進(jìn)制數(shù)據(jù),并且小數(shù)點(diǎn)的位數(shù)也不一樣,所以需要在PID算法的輸入和輸出端插入數(shù)據(jù)轉(zhuǎn)換模塊。另外還必須加入Gateway in和Gateway out來實(shí)現(xiàn)數(shù)據(jù)的前端輸入和后端輸出。PID控制器完整模型如圖5所示。

 

 

    (3)用System Generator生成PID算法工程文件后導(dǎo)入到ISE工程中。雙擊圖5中的System Generator模塊,選擇HDL\netlist和生成路徑后點(diǎn)擊Generator,就能自動(dòng)生成相應(yīng)的VHDL/Verilog硬件語言代碼。在工程的頂層文件下把生成的sgp工程添加進(jìn)去,例化后嵌入到工程中。
    (4)在頂層文件中由狀態(tài)機(jī)安排好各個(gè)模塊之間的時(shí)序。
    (5)綜合工程,分析時(shí)鐘時(shí)序是否滿足工程要求,工程時(shí)序分析如表1所示。需要時(shí)可添加時(shí)鐘管理器(DCM)確保時(shí)序的正常進(jìn)行。


    (6)連線并把BIT文件下載到開發(fā)板中,用示波器察看實(shí)際效果。
5 實(shí)驗(yàn)數(shù)據(jù)分析
    實(shí)驗(yàn)中使用了D/A 4路輸出信號(hào)中的2路:A路輸出控制量;B路輸出1 V~2 V的方波電壓作為給定值,同時(shí)方波電壓接到另一個(gè)完全相同的一階RC電路上,讓其與通過PID調(diào)節(jié)后的被控對(duì)象作對(duì)比。圖6(a)~圖6(d)表示了頻率為100 Hz時(shí),在不同參數(shù)條件下的實(shí)驗(yàn)結(jié)果。

    從實(shí)驗(yàn)結(jié)果可知,在FPGA中構(gòu)建的PID控制器完全能達(dá)到預(yù)期的效果,而且實(shí)驗(yàn)結(jié)果是通過示波器觀測到的實(shí)測結(jié)果,證明了在FPGA中實(shí)現(xiàn)算法硬件化是可行的,并且控制算法在硬件中運(yùn)行的實(shí)測數(shù)據(jù)和仿真出來的模擬數(shù)據(jù)相比,實(shí)測數(shù)據(jù)更有說服力。
    用FPGA作為嵌入式算法平臺(tái),在算法運(yùn)行速度上與其他嵌入式算法平臺(tái)相比有著特定的優(yōu)勢,利用Xilinx的System Generator工具能夠快速簡單地完成算法構(gòu)建并可直接完成硬件實(shí)現(xiàn)。雖然本文采用的是一階RC電路作為控制對(duì)象,即使換成是二階或者是耦合控制對(duì)象同樣能夠達(dá)到比較理想的控制效果。特別是對(duì)于大運(yùn)算量的算法(如矩陣運(yùn)算等),在FPGA資源充裕的情況下,可以達(dá)到其他控制器無法達(dá)到的處理速度,而且基于FPGA的可編程性,對(duì)于算法的修正、升級(jí)和驗(yàn)證都十分靈活,更使算法的硬件實(shí)現(xiàn)變得實(shí)用。缺點(diǎn)是FPGA對(duì)于時(shí)序較為嚴(yán)格,在工程中需要對(duì)整個(gè)工程的時(shí)序進(jìn)行分析,以確保滿足時(shí)序要求,而且如果是自己編寫一些執(zhí)行機(jī)構(gòu)的驅(qū)動(dòng),仍需要將驅(qū)動(dòng)部分也考慮進(jìn)去,必要時(shí)需要添加約束。
參考文獻(xiàn)
[1] 孟憲元,錢偉康.FPGA嵌入式系統(tǒng)設(shè)計(jì)[M].北京:電子工業(yè)出版社,2007.
[2] 紀(jì)志成.FPGA數(shù)字信號(hào)處理設(shè)計(jì)教程—System Generator入門與提高[M].西安:西安電子科技大學(xué)出版社,2008.
[3] 彭小衛(wèi).基于System Generator的Gardner 算法設(shè)計(jì)與實(shí)現(xiàn)[J].電子設(shè)計(jì)工程,2010(7):16-18.
[4] 蔡曉寧.數(shù)字PID控制器的硬件優(yōu)化設(shè)計(jì)[J].中國科學(xué)院研究生院學(xué)報(bào),2010(9):690-694.
[5] Shi Changchun,Hwang James,McMILLAN S,et al.A system level resource estimation tool for FPGAs[C].14th International Conference,F(xiàn)PL 2004,Leuven,Belgium,2004:424-433.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。