關(guān)鍵字:虛擬儀器, 虛擬儀器價(jià)格, 虛擬儀器論壇, 虛擬儀器技術(shù), 虛擬儀器論文
摘要:通過(guò)模糊自整定PID控制器的設(shè)計(jì),本文提出了一種基于VHDL描述,、DSP Builder和Modelsim混合仿真、FPGA實(shí)現(xiàn)的智能控制器設(shè)計(jì)及測(cè)試新方法。首先,通過(guò)MATLAB仿真,得出智能控制器的結(jié)構(gòu)和參數(shù),。然后,,基于VHDL進(jìn)行智能控制器的數(shù)字化實(shí)現(xiàn)及其開(kāi)環(huán)測(cè)試,。在此基礎(chǔ)上,通過(guò)分析一般智能控制器的測(cè)試特點(diǎn),,采用DSP Builder構(gòu)建閉環(huán)測(cè)試系統(tǒng),,Modelsim運(yùn)行DSP Builder生成文件來(lái)驗(yàn)證QuartusII中所做VHDL設(shè)計(jì)的測(cè)試方法。實(shí)驗(yàn)表明,,該測(cè)試方法能有效模擬控制器的激勵(lì)輸入信號(hào),,適用于需閉環(huán)測(cè)試檢驗(yàn)控制品質(zhì)的智能控制器設(shè)計(jì)。
1 引 言
隨著市場(chǎng)需求的增長(zhǎng),,超大規(guī)模集成電路的集成度和工藝水平不斷提高,,在一個(gè)芯片上完成系統(tǒng)級(jí)的設(shè)計(jì)已成為可能。FPGA固有的并行運(yùn)算處理能力,,使得它能夠提供各種數(shù)字化所需要的大量復(fù)雜運(yùn)算,適合于設(shè)計(jì)一些對(duì)處理速度和實(shí)時(shí)性要求較高的智能控制器,。近幾年,,基于VHDL描述,F(xiàn)PGA實(shí)現(xiàn)的控制器設(shè)計(jì)研究比較活躍,,如Torralba等人完成了4輸入,、12個(gè)隸屬度、64條規(guī)則的模糊邏輯控制器的FPGA實(shí)現(xiàn)[1],,Cirstea等人基于FPGA設(shè)計(jì)模糊控制器,,成功的用于變速器的控制[2]。另外,,由于FPGA設(shè)計(jì)的靈活性和通用性,,使得基于FPGA的控制器開(kāi)發(fā)效率高,成本低,,上市時(shí)間短,。
由于FPGA在智能控制器方面的大量使用,設(shè)計(jì)后的測(cè)試便成了設(shè)計(jì)者在開(kāi)發(fā)過(guò)程中必須重點(diǎn)考慮的問(wèn)題,,同時(shí),,一種好的測(cè)試方法不僅能及早發(fā)現(xiàn)設(shè)計(jì)中存在的問(wèn)題,而且能提高設(shè)計(jì)的可靠性,。目前基于VHDL描述的智能控制器測(cè)試一般是通過(guò)開(kāi)環(huán)時(shí)序仿真來(lái)驗(yàn)證其邏輯設(shè)計(jì)的正確性,,而對(duì)于一些輸入激勵(lì)信號(hào)不固定或比較多的智能控制器來(lái)說(shuō),開(kāi)環(huán)時(shí)序仿真并不能確切模擬控制器的激勵(lì)輸入信號(hào),。由此,,本文在開(kāi)環(huán)時(shí)序仿真的基礎(chǔ)上提出一種基于QuartusII、DSP Builder和Modelsim的閉環(huán)時(shí)序仿真測(cè)試方法,,并借助于某一特定智能控制器的設(shè)計(jì)對(duì)該閉環(huán)測(cè)試方法進(jìn)行了較為深入的研究,。
2 FPGA設(shè)計(jì)與測(cè)試平臺(tái)
研究采用QuartusII4.0、 DSP Builder3.0以及Modelsim SE6.0作為FPGA的設(shè)計(jì)及測(cè)試平臺(tái),。
QuartusII4.0是Altera公司的第四代可編程邏輯器件集成開(kāi)發(fā)環(huán)境,,提供從設(shè)計(jì)輸入、設(shè)計(jì)編譯,、功能仿真,、設(shè)計(jì)處理、時(shí)序仿真到器件編程的全部功能,。同時(shí),,它可以產(chǎn)生并識(shí)別EDIF網(wǎng)表文件、VHDL網(wǎng)表文件和Verilog HDL網(wǎng)表文件,,并且為其它EDA工具提供了方便的接口,。可以在上面自動(dòng)運(yùn)行其它EDA工具,,包括Synplicity的Synplify/Synplify Pro,、Mentor Graphics子公司Exemplar Logic 的LeonardoSpectrum以及Synopsys的FPGA CompilerII等,。這些綜合軟件能以很高的效率將VHDL/Verilog設(shè)計(jì)軟件轉(zhuǎn)換為針對(duì)選定器件的標(biāo)準(zhǔn)網(wǎng)表文件,。此外,,QuartusII4.0里還集成了一個(gè)SOPC Builder開(kāi)發(fā)工具,支持SOPC開(kāi)發(fā)[3],。
DSP Builder以Matlab/Simulink的Blockset形式出現(xiàn),,可以在Simulink中進(jìn)行圖形化設(shè)計(jì)和仿真,同時(shí)通過(guò)Signal Compiler可以將Matlab/Simulink的設(shè)計(jì)文件(.mdl)轉(zhuǎn)換成相應(yīng)的VHDL文件(.vhd),,以及用于控制綜合與編譯的TCL腳本[4],。
Mentor Graphics公司的Modelsim是業(yè)界中比較好的仿真工具,其仿真功能強(qiáng)大,,支持模擬波形顯示,,且圖形化界面友好,具有結(jié)構(gòu),、信號(hào),、波形、進(jìn)程和數(shù)據(jù)流等窗口,。
通過(guò)綜合使用上述三種平臺(tái),,可以很好的規(guī)劃設(shè)計(jì)流程,充分利用各個(gè)工具的優(yōu)點(diǎn),,提高開(kāi)發(fā)效率,,所得的測(cè)試結(jié)果也更加可靠。
3 智能控制器的VHDL設(shè)計(jì)及測(cè)試特點(diǎn)
以模糊自整定PID控制器為例,,其位置式控制算法為:
ui = Kp ei+Ki T∑ei+Kd/T(ei-ei-1)+u0 3.1
其中:Kp = kp+tp×△Kp,、Ki = ki+ti×△Ki、Kd = kd+td×△Kd為PID控制器實(shí)時(shí)參數(shù),;△Kp,、△Ki、△Kd為模糊推理得出的修正值,。模糊推理過(guò)程采取Mamdani直接推理法,,采用質(zhì)心法求取相應(yīng)的最終精確值。
基于VHDL描述的模糊自整定PID控制器設(shè)計(jì)采用自頂向下設(shè)計(jì)方法,,在RTL級(jí)對(duì)各個(gè)單元模塊進(jìn)行設(shè)計(jì)描述,,用結(jié)構(gòu)VHDL將各個(gè)單元通過(guò)單元映射(PORT MAP)聯(lián)系起來(lái),組成整個(gè)控制器芯片,??刂破餍酒暮诵氖强刂婆c運(yùn)算單元,涉及基本的數(shù)據(jù)處理,、存儲(chǔ)和I/O控制,。
其中:control:控制模塊,,產(chǎn)生存儲(chǔ)器內(nèi)數(shù)據(jù)的讀寫(xiě)地址;ram:存儲(chǔ)模塊,,存儲(chǔ)外部采集來(lái)的數(shù)據(jù),;accum:累加模塊,累加10次,,讀進(jìn)存儲(chǔ)器的數(shù)據(jù),;max_min:求Max/Min模塊,對(duì)采集來(lái)的數(shù)據(jù)進(jìn)行最大最小值求解,;sub:減法模塊,,剔除Max/Min;average_8:濾波模塊,,對(duì)剔除后的數(shù)據(jù)進(jìn)行8次平均濾波,;compare:比較模塊,與給定值相比較,,產(chǎn)生偏差e,;delay:延遲模塊,產(chǎn)生偏差的變化率ec,;fpid:模糊自整定PID控制器模塊,,產(chǎn)生控制器的輸出信號(hào)。
本系統(tǒng)中,,A/D采用AD574A,,其轉(zhuǎn)換速度最大為35μs,轉(zhuǎn)換精度小于等于0.05%,。在用VHDL設(shè)計(jì)A/D的I/O模塊時(shí),,采用的是狀態(tài)機(jī)描述。狀態(tài)機(jī)分為5個(gè)狀態(tài):STATE0:實(shí)現(xiàn)A/D574的初始化,;STATE1:產(chǎn)生片選信號(hào),,啟動(dòng)轉(zhuǎn)換;STATE2:STATUS電平監(jiān)測(cè),,狀態(tài)切換,;STATE3:8位輸出數(shù)據(jù)有效;STATE4:由Lock信號(hào)對(duì)數(shù)據(jù)進(jìn)行鎖存,。
基于VHDL語(yǔ)言描述的智能控制器測(cè)試特點(diǎn)是:控制器模塊可以作為一個(gè)獨(dú)立模塊通過(guò)開(kāi)環(huán)時(shí)序測(cè)試基準(zhǔn)對(duì)其邏輯功能的正確性進(jìn)行測(cè)試,。但是,對(duì)于控制系統(tǒng)來(lái)說(shuō),,我們更關(guān)心的是在典型輸入信號(hào)作用下,,系統(tǒng)輸出的時(shí)間響應(yīng)過(guò)程,包括動(dòng)態(tài)過(guò)程和穩(wěn)態(tài)過(guò)程,,因此采用閉環(huán)時(shí)序測(cè)試顯得尤為必要,。
4 基于FPGA的智能控制器開(kāi)環(huán)時(shí)序測(cè)試
基于FPGA的智能控制器開(kāi)環(huán)時(shí)序測(cè)試機(jī)理是:通過(guò)連接激勵(lì)實(shí)體和在測(cè)模塊,,將在測(cè)模塊的輸出響應(yīng)值同期望值相比較來(lái)驗(yàn)證控制器設(shè)計(jì)是否符合設(shè)計(jì)要求,設(shè)計(jì)者可以用QuartusII軟件的波形編輯器產(chǎn)生作為仿真器激勵(lì)的向量波形文件(.vwf),,也可以使用基于文本的向量文件(.vec)作為仿真器的激勵(lì),。其中VWF使用圖形化的波形形式描述了仿真器的輸入向量和仿真的輸出結(jié)果,而VEC則使用一種特殊格式的文件為模塊中的輸入信號(hào)和向量添加激勵(lì)[5],,這是目前設(shè)計(jì)中最常采用的測(cè)試方法,。
基于Altera公司FPGA器件EP20K200EQC240-1的模糊自整定PID控制器閉環(huán)輸出時(shí)序仿真結(jié)果,。
其中:clk:系統(tǒng)時(shí)鐘,;clkc:控制器采樣時(shí)鐘;reset:系統(tǒng)復(fù)位信號(hào),;e:偏差,;ec:偏差的變化率;u:控制器輸出,。
時(shí)序仿真結(jié)果參數(shù):Total logic elements:1092 / 8,320 ( 25 % ),;Total memory bits:4096 / 106,496 ( 3% );Clk setup:38.86 MHz,;Clkc setup:221.39MHz,;Tsu:8.864ns;Tco:7.809 ns,。
控制器的激勵(lì)信號(hào)偏差e和偏差變化率ec是通過(guò)波形編輯器手工編輯獲得,,輸入比較繁瑣,它們值的獲取是借助于MATLAB的仿真曲線,,因此并不能完全模擬智能控制器的實(shí)時(shí)激勵(lì)信號(hào),。 為了能更好的模擬控制器的輸入行為,使測(cè)試結(jié)果更加可靠,,本文在上述測(cè)試基礎(chǔ)上,,提出一種新的基于FPGA設(shè)計(jì)工具QuartusII、DSP Builder以及Modelsim的智能控制器閉環(huán)時(shí)序測(cè)試方法,。
5 基于FPGA的智能控制器閉環(huán)時(shí)序測(cè)試
在自動(dòng)控制系統(tǒng)設(shè)計(jì)中,,控制器的設(shè)計(jì)與測(cè)試通常采用閉環(huán)控制系統(tǒng),通過(guò)觀察對(duì)象的輸出來(lái)判斷控制器性能是否符合設(shè)計(jì)的要求,。Altera公司推出的數(shù)字信號(hào)處理工具DSP Builder,,結(jié)合MathWorks的Matlab和Simulink,為在QuartusII中所做的設(shè)計(jì)提供了一種新的測(cè)試方法,。本次研究采用的測(cè)試流程如下:首先,,在Matlab的Simulink中用DSP Builder搭建測(cè)試模塊,運(yùn)行無(wú)誤后,,用Signal Compiler將(.mdl)文件轉(zhuǎn)換成Modelsim可以識(shí)別的TCL腳本文件和VHDL文件,,其次,,對(duì)生成的VHDL文件及TCL腳本進(jìn)行設(shè)置,最后,,在Modelsim中運(yùn)行測(cè)試文件,,查看測(cè)試結(jié)果。DSP Builder下模糊自整定PID控制器的模塊圖如圖3所示,。圖中fpid模塊為用戶自定義模塊,,是通過(guò)DSP Builder的SubSystemBuilder模塊導(dǎo)入的,使用該模塊可以方便的將QuartusII中VHDL設(shè)計(jì)文件的輸入輸出引腳信號(hào)引入Simulink系統(tǒng)中,。
運(yùn)行Signal Compiler,,生成在Modelsim中使用的TCL腳本文件,因?yàn)樵赟imulink中添加的用戶自定義模塊是以黑盒的形式出現(xiàn),,因此,,在該測(cè)試環(huán)境中要將模糊自整定PID控制器的各個(gè)子模塊文件添加到TCL腳本文件中,例如要將子模塊文件pid.vhd添加到TCL腳本文件中,,使用vcom -93 -explicit -work work "$workdir/pid.vhd"即可,。
使用DSP Builder時(shí)需要注意以下兩點(diǎn):
(1)如果沒(méi)有使用來(lái)自Rate Change庫(kù)中的鎖相環(huán)模塊PLL,,在Simulink設(shè)計(jì)轉(zhuǎn)換成硬件系統(tǒng)的過(guò)程中,,DSP Builder將使用同步設(shè)計(jì)規(guī)則,即在設(shè)計(jì)系統(tǒng)中的所有DSP Builder時(shí)序模塊(如圖3中的Delay1模塊)都以單一時(shí)鐘的上升沿同步工作,,這個(gè)時(shí)鐘頻率即為整個(gè)系統(tǒng)的采樣頻率,。對(duì)于這些模塊,其時(shí)鐘引腳都不會(huì)直接顯示在Simulink設(shè)計(jì)圖上,,但當(dāng)使用Signal Compiler將設(shè)計(jì)轉(zhuǎn)化為VHDL文件時(shí),,系統(tǒng)會(huì)自動(dòng)地把時(shí)序模塊的時(shí)鐘引腳都連在一起,并與系統(tǒng)的單一時(shí)鐘相接,。
?。?)將一個(gè)已經(jīng)定制完成的VHDL設(shè)計(jì)實(shí)體加入到DSP Builder設(shè)計(jì)系統(tǒng)中時(shí),即使在原設(shè)計(jì)中已經(jīng)使用了同步復(fù)位和時(shí)鐘信號(hào),,也必須在該實(shí)體中定義同步清零和時(shí)鐘輸入信號(hào),。而且,這兩個(gè)輸入信號(hào)必須與目標(biāo)器件的全局時(shí)鐘引腳和全局同步清零引腳相接,。如果實(shí)體不需要時(shí)鐘或全局同步清零腳,,也應(yīng)當(dāng)定義這些輸入信號(hào),只是不要連接,。
以被控對(duì)象G(s)=4.71×e-0.15s/(0.4s+1)(1.2s+1) 為例,,考慮到A/D、D/A的影響,加入零階保持器(1-e-TS)/S,,Modelsim中閉環(huán)控制系統(tǒng)的輸出曲線如圖4所示,,系統(tǒng)的給定值為127(相對(duì)增益為0.992),輸出值從0上升到峰值148(相對(duì)增益為1.156)后迅速回落,,最后穩(wěn)定在127,,測(cè)試結(jié)果與MATLAB的仿真結(jié)果基本相同。
6 結(jié)論
?。?)基于FPGA構(gòu)建智能控制器具有設(shè)計(jì)靈活,、能在線調(diào)整、可靠性高,,開(kāi)發(fā)周期短等優(yōu)點(diǎn),。特別適于中小型系統(tǒng)。
?。?)利用QuartusII進(jìn)行智能控制器的VHDL設(shè)計(jì),,通過(guò)DSP Builder和Modelsim對(duì)在QuartusII中所做的設(shè)計(jì)進(jìn)行閉環(huán)測(cè)試,解決了測(cè)試樣本的輸入源以及控制器的輸入樣本提取問(wèn)題,,能有效模擬控制器的輸入行為,提高了設(shè)計(jì)及測(cè)試的靈活性,,同時(shí),,測(cè)試結(jié)果可靠且更有說(shuō)服力。
?。?)使用DSP Builder和Modelsim使我們擺脫了以往的測(cè)試習(xí)慣,,控制器的激勵(lì)輸入信號(hào)可以方便的調(diào)用Simulink的模塊,對(duì)象也可以根據(jù)需要靈活改變,,不需要再用VHDL語(yǔ)言編寫(xiě),,而且Modelsim支持信號(hào)的模擬波形顯示,使我們能夠看到最直觀的圖形,。
?。?)測(cè)試在系統(tǒng)設(shè)計(jì)中占有舉足輕重的作用,它貫穿整個(gè)設(shè)計(jì)的始終,,采用閉環(huán)時(shí)序測(cè)試方法,,結(jié)合DSP Builder和Modelsim完成智能控制器各個(gè)階段的測(cè)試經(jīng)實(shí)驗(yàn)驗(yàn)證是一較好的測(cè)試方法,適合于像控制器這類需閉環(huán)檢驗(yàn)其控制品質(zhì)的設(shè)計(jì),。