新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 自頂向下基于DSP Builder的PID控制系統(tǒng)開發(fā)

自頂向下基于DSP Builder的PID控制系統(tǒng)開發(fā)

作者: 時(shí)間:2007-08-28 來源:網(wǎng)絡(luò) 收藏
在控制領(lǐng)域中,控制足最早發(fā)展起來的控制策略之一,由于其算法簡(jiǎn)單、魯棒性好和可靠性高,被廣泛應(yīng)用于工業(yè)過程控制。此外,隨著控制理論的發(fā)展,專家系統(tǒng)、模糊邏輯、神經(jīng)網(wǎng)絡(luò)、灰色系統(tǒng)理論和傳統(tǒng)的控制策略相結(jié)合又派生出各種新型的類控制器,形成龐大的PID家族,很多算法大大改進(jìn)了傳統(tǒng)P1D控制器的性能。然而,這些算法在工業(yè)中的實(shí)際應(yīng)用范圍卻遠(yuǎn)遠(yuǎn)落后于傳統(tǒng)PID算法,其中一個(gè)原因就足傳統(tǒng)的單片機(jī)加分立元件構(gòu)成的工業(yè)在實(shí)施更新更復(fù)雜的算法時(shí),算法的復(fù)雜性或使得系統(tǒng)硬件設(shè)計(jì)調(diào)試更加復(fù)雜,或使得單片機(jī)內(nèi)軟件代碼行增多,延時(shí)加大,周期變長(zhǎng)。穩(wěn)定性和可靠性在新系統(tǒng)設(shè)計(jì)時(shí)成為不能忽視的一個(gè)問題。

  而近年來,微電子技術(shù)的迅速發(fā)展,使得集成電路設(shè)計(jì)和工藝水平有了很大的提高,隨著超深亞微米技術(shù)的發(fā)展,使得原先由許多IC組成的電子系統(tǒng)集成在一個(gè)單片硅片上成為可能,構(gòu)成所謂的片上系統(tǒng)(System 0n Chip,SOC),同時(shí)也促進(jìn)了相應(yīng)EDA工具的蓬勃發(fā)展。

  控制算法的極大豐富和微電子領(lǐng)域工藝技術(shù)及EDA工具的飛速發(fā)展,使得我們可以將兩個(gè)領(lǐng)域的應(yīng)用優(yōu)勢(shì)集合在一起,在EDA工具的幫助

下便捷快速地在FPGA上可靠地實(shí)現(xiàn)各種新型算法,完成整個(gè)從行為算法級(jí)(系統(tǒng)級(jí))到物理結(jié)構(gòu)級(jí)的全部設(shè)計(jì),從而達(dá)到將各種新型PID算法廣泛應(yīng)用于實(shí)際工業(yè)的目標(biāo)。

2離散PID控制算法

2.1 PID算法

  比例、積分、微分(PID)控制是控制系統(tǒng)中技術(shù)最成熟,運(yùn)用最廣泛的一種控制方式。其基本原理是根據(jù)反饋控制系統(tǒng)的偏差值按比例、積分、微分函數(shù)關(guān)系進(jìn)行運(yùn)算,所得結(jié)果輸出給執(zhí)行機(jī)構(gòu),執(zhí)行機(jī)構(gòu)根據(jù)偏差值的運(yùn)算結(jié)果來控制被控對(duì)象。
  e(t)為控制器的輸入即控制系統(tǒng)的給定量與輸出量的偏差;u(t)為控制器的輸出;Kp為比例系數(shù);Tl為積分時(shí)間常數(shù);TD為微分時(shí)間常數(shù)。 在連續(xù)時(shí)間域中,PID控制器算法的表達(dá)式為:

離散PID表達(dá)式

2.2 PID算法的離散化

  由于計(jì)算機(jī)控制只能根據(jù)采樣時(shí)刻的偏差值計(jì)算控制量,因此需對(duì)上式進(jìn)行離散化處理。按模擬PID控制算法式(1),以一系列的采樣時(shí)刻點(diǎn)kT代表連續(xù)時(shí)間t,以矩形法數(shù)值積分(和式)近似代替積分,以一階向后差分(增量)近似代替微分,即:

離散PID表達(dá)式

可得離散PID表達(dá)式:

離散PID表達(dá)式

式中,積分系數(shù)K1=KP/Tl,微分系數(shù)KD=KPTD,T為采樣周期,k為采樣序號(hào),k=1,2,…,e(k一1)和e(k)分別為第(k一1)和第k時(shí)刻所得的偏差信號(hào)。

2.3 PID控制系統(tǒng)框圖

  一般控制系統(tǒng)的PID系統(tǒng)控制框圖如圖1所示。其中,source為系統(tǒng)設(shè)定值,feedback為系統(tǒng)反饋值,e(t)為反饋誤差,u(t)為PID控制器輸出值。圖中"PID控制算法"框圖子系統(tǒng)即需要我們?cè)谒惴?jí)用 進(jìn)行自頂的設(shè)計(jì)仿真。

PID控制系統(tǒng)框圖

3 的PID控制系統(tǒng)FPGA設(shè)計(jì)步驟與

3.1 Simulink工具箱的A1tera 組件

  在利用FPGA進(jìn)行系統(tǒng)的應(yīng)用上,已有了全新的設(shè)計(jì)工具和設(shè)計(jì)流程。DSP Builder。就是Altera公司推出的一個(gè)面向DSP之類的芯片級(jí)開發(fā)的系統(tǒng)級(jí)工具。他是作為Matlab的一個(gè)Simulink工具箱(Tool Box)出現(xiàn)的,他使得用FPGA設(shè)計(jì)專用芯片系統(tǒng)完全可以通過Simulink的圖形化界面進(jìn)行,只要簡(jiǎn)單地對(duì)DSP Builder工具箱中的模塊進(jìn)行調(diào)用即可。值得注意的是,DSP Builder中的基本模塊是以算法級(jí)的描述出現(xiàn)的,易于用戶從系統(tǒng)或者算法級(jí)進(jìn)行理解,甚至不需要十分了解FPGA本身和硬件描述語言。這為傳統(tǒng)控制系統(tǒng)領(lǐng)域的工程師開發(fā)FPGA/ASIC的可靠控制系統(tǒng)芯片自頂的算法級(jí)設(shè)計(jì)提供了便利的條件。

3.2 在Matlab中用DSP Builder完成頂層算法設(shè)計(jì)

  設(shè)計(jì)方法可以從與硬件完全無關(guān)的系統(tǒng)級(jí)開始,首先利用Matlab強(qiáng)大的系統(tǒng)設(shè)計(jì)、分析能力和DSP Builder提供的模塊(或IP核)完成頂層系統(tǒng)設(shè)計(jì)及系統(tǒng)仿真測(cè)試。

  根據(jù)圖1的原理,在Matlab中進(jìn)行設(shè)計(jì)仿真,Simulink頂層設(shè)計(jì)模型如圖2所示。

Simulink頂層設(shè)計(jì)模型


在頂層設(shè)計(jì)模型中,除"PID控制子系統(tǒng)"外,其他部分均采用一般Simulink組件設(shè)計(jì)。為了在驗(yàn)證仿真時(shí)更貼近實(shí)際系統(tǒng),給被控對(duì)象加上可調(diào)延時(shí)深度的延時(shí)即節(jié)。信號(hào)發(fā)生器給出系統(tǒng)設(shè)定值,對(duì)一般實(shí)際應(yīng)用的控制系統(tǒng)而言,可以使用典型的矩形波,這里用數(shù)個(gè)矩形波與正弦波的疊加來仿真系統(tǒng)設(shè)定值的給出。

  模型中的"PID控制子系統(tǒng)"實(shí)現(xiàn)PID算法部分。該子系統(tǒng)經(jīng)仿真設(shè)計(jì)后,將通過DSP Builder中的SignalCompiler轉(zhuǎn)換為FPGA的HDL 語言設(shè)計(jì),所以這部分除了仿真觀察所需的示波器等外需全部采用DSP Builder組件來設(shè)計(jì),否則Signal Compiler編譯時(shí)不能識(shí)別。

為了簡(jiǎn)單地說明如何用DSP Builder自頂的設(shè)計(jì)FPGA的控制系統(tǒng),這里用普通的位置式PID算法進(jìn)行舉例。位置式PID算法的PID控制子系統(tǒng)設(shè)計(jì)框圖如圖3所示。

PID控制子系統(tǒng)設(shè)計(jì)框圖

在圖3中,輸入誤差信號(hào)采用了16位精度。而為了實(shí)現(xiàn)比例、積分、微分系數(shù)的精確可調(diào),在這里PID系數(shù)采用了8位精度,使系數(shù)至少可以精確到百分位。同時(shí),在系統(tǒng)設(shè)計(jì)過程中為了盡量避免浮點(diǎn)數(shù)的運(yùn)算,這里將PID系數(shù)取成整型,先放大數(shù)據(jù)值到24位,而在并行加法器運(yùn)算單元后用IOBus中的總線轉(zhuǎn)換器單元對(duì)累加后的數(shù)據(jù)進(jìn)行位數(shù)轉(zhuǎn)換,實(shí)現(xiàn)FPGA中的浮點(diǎn)數(shù)運(yùn)算。

  Matlab仿真結(jié)果如圖4所示。其中,source為系統(tǒng)設(shè)定值,feedback為系統(tǒng)反饋值。

Matlab仿真結(jié)果

  波形仿真成功后,需要將Matlab中圖形化的頂層設(shè)計(jì)模型轉(zhuǎn)換成能夠被FPGA開發(fā)軟件識(shí)別的HDL語言描述文件。在圖2中,打開Signal Compiler模塊,配置相關(guān)參數(shù),可以將DSP Builder 設(shè)計(jì)的"PID

控制子系統(tǒng)"編譯成VHDL及Veirlog語言的RTL表述和工具命令語言Tcl腳本。根據(jù)編譯信息前面的設(shè)計(jì)模型,直到編譯報(bào)告中Convert Mdl to VHDL,Synthesis,Quartus II Fitter三項(xiàng)狀態(tài)均為PASSED,即可獲得ModelSim所需的tb_SystemName.tcl功能仿真文件腳本和Quartus所需的SystemName.qpf 項(xiàng)目文件和SystemName.vec 仿真波形文件。

3.3在ModelSim中實(shí)現(xiàn)HDL代碼功能仿真

  在ModelSim菜單中執(zhí)行Tools一>Execute Macro,打開前述Signal Compiler編譯生成文件tb_System-Name.tcl(VHBL)或tb_vo_SystemName.tcl(Verilog),調(diào)試成功后,仿真得到圖5結(jié)果。功能仿真結(jié)果與Matlab中基本一致,證明頂層設(shè)計(jì)基本成功。

3.4 在Quartus中實(shí)現(xiàn)FPGA開發(fā)

  在Quartus中打開前述Signal Compiler編譯生成文件SystemName.qpf。設(shè)定相應(yīng)器件Device,在Tcl Scripts中運(yùn)行SystemName_quartus.tcl配置此工程項(xiàng)目變量,然后編譯。調(diào)試成功后,載入SystemName.vec波形仿真文件運(yùn)行時(shí)序仿真工具,得到圖6結(jié)果,與圖5基本相符,證明設(shè)計(jì)成功。

ModelSim仿真結(jié)果
Quartus

4結(jié) 語

  這里給出了一個(gè)最初用于FPGA的系統(tǒng)級(jí)設(shè)計(jì)工具DSP Builder在自動(dòng)控制領(lǐng)域的應(yīng)用,目前在已出版的國(guó)內(nèi)期刊及論文庫中似乎還沒有相關(guān)文獻(xiàn)談到這個(gè)交叉領(lǐng)域的應(yīng)用。

  在控制領(lǐng)域里,當(dāng)各種復(fù)雜的新型PID算法應(yīng)用于實(shí)際控制系統(tǒng)中時(shí),由于傳統(tǒng)單片機(jī)與分立元件電路系統(tǒng)的局限性,硬件指標(biāo)和軟件復(fù)雜度都使得新的應(yīng)用及研發(fā)設(shè)計(jì)進(jìn)展緩慢;普通FPGA/CPLD沒計(jì)又存在著沒計(jì)周期長(zhǎng)、可重復(fù)利用性差等缺點(diǎn)。我們將日益完善的SoC設(shè)計(jì)工具應(yīng)用于自動(dòng)控制領(lǐng)域,不僅在算法設(shè)計(jì)上有了新的方便快捷的設(shè)計(jì)工具,同時(shí)籍由FPGA硬件本身的優(yōu)點(diǎn)也可以解決單片機(jī)及分立元件存在的電磁干擾、系統(tǒng)復(fù)雜度高等各類問題,從而大大提高將各種新型PID算法廣泛應(yīng)用于實(shí)際工業(yè)控制系統(tǒng)的可行性。

  在系統(tǒng)設(shè)計(jì)中進(jìn)一步的探討:由于設(shè)計(jì)是從與硬件完全無關(guān)的Matlab系統(tǒng)級(jí)仿真開始,因此便于傳統(tǒng)控制領(lǐng)域工程師們可以迅速地將算法級(jí)的構(gòu)思應(yīng)用于控制系統(tǒng)設(shè)計(jì)中,從而可以將有限的精力專注于系統(tǒng)級(jí)算法的設(shè)計(jì),而避免陷入重復(fù)繁瑣的電路設(shè)計(jì)中去,縮短從人腦構(gòu)思到實(shí)際系統(tǒng)實(shí)現(xiàn)的時(shí)間周期。其中單個(gè)設(shè)計(jì)MDL文件甚至可以考慮封裝成"算法包"的形式進(jìn)行資源重復(fù)利用,以實(shí)現(xiàn)功能單元的便捷增減和縮短產(chǎn)品開發(fā)時(shí)間。這里可能存在著控制領(lǐng)域里可重用算法及相應(yīng)"包"的接口標(biāo)準(zhǔn)。這種情況或許和SOC領(lǐng)域IP核的現(xiàn)象有部分類似,本文就不再多述。



評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉