深入了解賽靈思System Generator中的時間參數(shù)
基于模型的設計(MBD)因其在縮小實時系統(tǒng)抽象的數(shù)學建模和物理實現(xiàn)之間差距方面的光明前景而備受關注。通過使用相同的源代碼進行算法分析、架構(gòu)探討、行為模擬和硬/軟件設計,MBD有望縮短系統(tǒng)設計周期。
無需通曉硬件描述語言(HDL),為DSP提供的Xilinx System Generator即可讓控制工程師在熟悉的Simulink環(huán)境中設計系統(tǒng),然后在FPGA中實施。為此,必須將受控系統(tǒng)(通常稱之為設備)的數(shù)學模型參數(shù)值(如連續(xù)/離散時間傳遞函數(shù)或狀態(tài)空間描述)與FPGA系統(tǒng)時鐘頻率和數(shù)字控制器的采樣率關聯(lián)起來。
FPGA中的數(shù)字控制器
之前,在實施FPGA時,控制器設計人員在首次驗證控制策略和參數(shù)并進行控制器和設備模型的高級模擬(如使用Simulink)后,可能還會使用一種低級的HDL。HDL控制器設計與Simulink模擬之間的對應性將由HDL測試平臺加以驗證。為在閉環(huán)系統(tǒng)中驗證控制器設計,該測試平臺必須包括設備模型。對于缺乏HDL和FPGA技術(shù)專業(yè)背景的設計人員及大多數(shù)控制工程師而言,要實現(xiàn)上述這一切卻并非易事。在這種情況下,如Xilinx System Generator之類的高級建模和設計環(huán)境正是理想之選。
System Generator中的PID控制器
鑒于許多控制器仍基于傳統(tǒng)的比例-積分-微分(PID)結(jié)構(gòu),借用一個PID控制器來演示本文的觀點。同時,本文概述的方法也可較好地處理超前滯后補償器、狀態(tài)空間觀測器或者自適應控制器等其他常用的控制組件。圖1所示為采用源自賽靈思模塊集的模塊而設計的PID控制器。
圖1 基于System Generator模塊且支持抗飽和功能的PID控制器
這里沒有使用賽靈思的累加器模塊,而是采用基本的加法器和寄存器構(gòu)建塊來實現(xiàn)集成。這樣做可以插入如圖1所示的抗飽和邏輯,以便在控制器輸出的積分部分達到執(zhí)行器規(guī)定的飽和限值時,凍結(jié)累加器寄存器中的內(nèi)容??癸柡瓦壿嬁墒筆ID控制器成為非線性系統(tǒng),并對系統(tǒng)的總體動態(tài)產(chǎn)生積極的影響。
圖2所示的模塊參數(shù)菜單可用來配置各種信號的控制參數(shù)和字寬。
圖2 PID控制器的定制參數(shù)菜單
另外,設計人員還能在此啟用或停用抗飽和函數(shù)。利用該菜單,無需修改低級HDL代碼即可方便地進行實驗。
圖3所示為整體系統(tǒng)模型,其不僅包含控制器,還有基于標準Simulink模塊的設備和模擬測試平臺。借助該模型,設計人員可采用連續(xù)或離散時間傳遞函數(shù)進行設備建模,而在HDL測試平臺中則只能使用離散時間函數(shù)。值得一提的是,采用System Generator方法,就可以通過同一個高級模型完成從系統(tǒng)建模、模擬、驗證直至實施的任何工作。
[!--empirenews.page--]
控制參數(shù)
第一個控制參數(shù)是模擬時間單位TSim。該參數(shù)無須在設計中明確地輸入。該參數(shù)代表的是對 Simulink模擬中基礎時間單位的隱含假設。因此,其僅對模擬有所影響。在Simulink以及System Generator環(huán)境中,模擬時間單位通常被假定為1s。例如,System Generator Wavescope模塊的顯示就使用這個慣例。不過正如在下面所見到的,TSim也可以滿足需要的其它任何時間單位。
隨后還需要在System Generator中以納秒為單位設置FPGA時鐘周期TCLK參數(shù)。該參數(shù)代表的是主系統(tǒng)時鐘輸入到FPGA的周期,而所有其它時鐘和時鐘啟動均由此導出。因此,其設置只會影響硬件實施。例如,對于廣受青睞的賽靈思Spartan-3E入門套件,F(xiàn)PGA時鐘周期為20ns(50MHz)。
而Simulink系統(tǒng)周期Psys則代表著Simulink模擬和硬件實施之間的全局連接。設計人員必須設定這個參數(shù),因為它在System Generator中影響Simulink模擬和硬件實施。在模擬過程中,該值決定了相對于模擬時間單位而言,對模型的System Generator模塊調(diào)用、但卻不必要地進行更新的頻度。對于硬件實施,該參數(shù)規(guī)定了相對于控制器采樣率的超頻量。與System Generator的文檔不同,將Simulink的系統(tǒng)周期定義為無單位量,即FPGA時鐘周期與假定的模擬時間單位之比:
這樣就可以假定前面提及的任意模擬時間單位。
對于設計中System Generator部分的某個具體信號的采樣周期Psam,既可進行明確設置(如在 Gateway-In單元中),也可從Up Sample或者Down Sample等采樣率調(diào)整模塊中獲得。在進行明確設置時,需要輸入以假定的時間單位為單位的具體數(shù)值。其設置對Simulink模擬和硬件實施都有影響。在模擬過程中,該數(shù)值決定了在模塊真正可以改變狀態(tài)之前必須調(diào)用該模塊的次數(shù)。同樣,在硬件實施中,該數(shù)值代表著時鐘邏輯啟用后的時鐘周期的數(shù)量。由于在 System Generator設計中,所有的時鐘啟用信號都源自主FPGA的時鐘輸入,因此每個啟用周期必須是FPGA時鐘周期的整數(shù)倍。
[!--empirenews.page--]
分析參數(shù)
在第二類時間參數(shù),即分析參數(shù)中,首先要考慮的是采樣時間(ST)模塊。該參數(shù)在系統(tǒng)實施中不使用硬件資源,僅用于Simulink模型中的分析目的。ST模塊顯示的tsam值指的是硬件實施中用于相關信號的時鐘啟用周期,其單位是FPGA時鐘周期。
當設計人員在System Genertaor中的Icon Display屬性框中選擇下一項分析參數(shù),即采樣頻率時,該模型中的每個Xilinx模塊都會以MHz為單位顯示采樣頻率Fsam,并用于該單元的實施。采樣率與其它時間參數(shù)的關系如下:
其中TCLKenb是實施中啟用的相關時鐘的周期。
從上面的第二個等式可以清楚地看出,每個采樣周期Psam都必須是Simulink系統(tǒng)周期Psys的整數(shù)倍,之所以如此,是因為僅有這些時鐘啟用信號是從FPGA系統(tǒng)時鐘衍生出來的。第三個等式表明ST時鐘顯示的值是以FPGA時鐘周期為單位的時鐘啟用周期。
選擇時間參數(shù)的詳細指南
上述控制系統(tǒng)示例詳細說明了如何選擇時間變量,該流程具體可分為以下五個步驟。
確定設備
采用合適的傳遞函數(shù)對設備建模。在本例中,將設備當作PT2元進行建模,將增益系數(shù)K設定為2,時間常數(shù)T設定為20ms,衰減系數(shù)d設定為0.2。因此,如圖3(a)所示,該設備為一個振蕩元。
圖3在無控、有PID控制和無抗飽合以及有抗飽和的情況下,輸入命令后得到的整體系統(tǒng)模型(頂部)和設備輸出
選擇模擬時間單位
此時,可以選擇基礎模擬時間單位Tsim,這樣設備的傳遞函數(shù)就有了便利的數(shù)值參數(shù)。在本例中,將Tsim設定為10ms。在上述參數(shù)設定完畢后,便得到如下設備傳遞函數(shù):
設置Simulink系統(tǒng)周期
在擁有模擬時間單位后,將隨之根據(jù)可用的硬件平臺FPGA時鐘周期TCLK設置Simulink系統(tǒng)周期Psys。在Spartan-3E入門套件中,系統(tǒng)時鐘頻率為50MHz,設定TCLK為20ns,得到:
確定采樣頻率
根據(jù)經(jīng)驗法則,數(shù)字控制器的采樣率必須至少是設備截止頻率的20倍。本示例設備的截止頻率大約是30Hz,因此將采樣頻率設定為Fsam=1kHz。
設定采樣周期
最后,在控制器前面的Gateway-In模塊中設定采樣周期參數(shù)Psam。在本例中,設置如下:
有了這些設置,就可以進行模型模擬,調(diào)整控制器參數(shù)并合成控制器邏輯。不過,有時FPGA時鐘周期TCLK會顯著小于基礎時間單位Tsim,如在控制器是一個時鐘頻率比控制器本身要求高很多的更大規(guī)模設計的一個組成部分時。如此一來,由于在控制器真正處理下一個數(shù)據(jù)樣本之前需要模擬大量無效的時鐘周期,模擬時間會變得無比漫長。而這種情況下,可以在不影響設備一致性的同時,在模擬和實施中設置不同的Psys。之所以能這樣做,是因為Psys值僅對設備的 System Generator部分有所影響。
更具體地說,可以在模擬控制系統(tǒng)時設置Psys=Psam。這樣可確保只在必要時,即只有在模塊真正改變狀態(tài)的時候才會調(diào)用System Generator模塊。在生成FPGA實施前,只需改回原來的Psys值即可。
結(jié)語
閉環(huán)控制系統(tǒng)的MBD要求設備傳遞函數(shù)的絕對時間測量指標與設計環(huán)境的時間參數(shù)保持一致。通過使用為DSP提供的Xilinx System Generator工具,本文為該問題提供了一個系統(tǒng)化的解決方法。