基于MATLAB的控制系統(tǒng)實時仿真平臺設計
DSP控制程序的構(gòu)建
本文引用地址:http://butianyuan.cn/article/146822.htm利用上文封裝的D/A模塊和MATLAB提供的DSP板A/D驅(qū)動模塊,再加上針對不同對象設計并完成全數(shù)字仿真驗證的控制算法模塊,可進行DSP控制程序模塊的構(gòu)建。
其中DSP的AD轉(zhuǎn)換模塊包括軟件啟動方式、EVAEVB以及外部引腳方式等多種啟動方式,而利用事件管理器(EV)中的通用定時器GP啟動ADC無疑是最直接的,借助通用定時器,利用其下溢、周期匹配和比較匹配等多種模式可產(chǎn)生觸發(fā)ADC信號,只需在MATLAB提供的C281x PWM模塊的ADC Start Event和Waveform period中做出相應設置即可,如圖4所示。需要注意的是,DSP的AD模塊完成輸入信號的模數(shù)轉(zhuǎn)換之后,會將結(jié)果存放于DSP處理器的結(jié)果寄存器中[6]。這就需要由CPU定時讀取結(jié)果寄存器,此間隔時間可在如圖5所示的ADC模塊參數(shù)設置的Sample time一項中予以指定。
工控機的自動代碼生成實現(xiàn)
xPC目標
xPC Target是MathWorks公司提供和發(fā)行的一個基于RTW體系框架的附加產(chǎn)品,可將Intel 80x86/Pentium計算機或PC兼容機轉(zhuǎn)變?yōu)橐粋€實時系統(tǒng),該目標系統(tǒng)與MATLAB/Simulnk無縫集成,支持大多數(shù)Simulink模塊的實時代碼生成,同樣提供了包括研華在內(nèi)的眾多I/O板卡的驅(qū)動模塊,在該目標環(huán)境下可對目標機運行程序進行在線調(diào)參,實現(xiàn)數(shù)據(jù)實時顯示和記錄,是用于產(chǎn)品原型開發(fā)、測試和配置實時系統(tǒng)的PC機解決途徑[7]。
針對xPC目標的工控機代碼生成
本系統(tǒng)中的被控對象仿真機使用研華工控機,并通過ISA總線的、包含有16路A/D通道和2路D/A通道的研華PCL-812PG數(shù)據(jù)采集卡與DSP控制器的A/D和D/A連接實現(xiàn)數(shù)據(jù)傳輸。
(1)要實現(xiàn)工控機的自動代碼生成,首先應在工控機中啟動xPC Target目標環(huán)境:MALTAB軟件為xPC目標環(huán)境提供了包括需要外加啟動盤的BootfloppyDosloader方式、CDBoot方式和通過網(wǎng)絡連接啟動的NetworkBoot方式等在內(nèi)的多種啟動方式。本系統(tǒng)以U盤為載體、采用Dosloader方式啟動目標環(huán)境,這就要先利用USBoot軟件將U盤制作為DOS啟動盤,再借助xPC目標瀏覽器(xPC Target Explorer)配置目標機相關(guān)參數(shù)(啟動方式、通信模式等)并將目標環(huán)境設置的相關(guān)文件拷貝到做好的DOS啟動盤上從而完成xPC Target目標啟動盤的制作。
(2)工控機應用程序開發(fā)
MATLAB為xPC目標系統(tǒng)提供了包括本系統(tǒng)所使用的研華PCL-812PG數(shù)據(jù)采集卡在內(nèi)的A/D、D/A、D/I、D/O、RS-232、ARINC429等模塊的Simulink驅(qū)動程序模塊。利用提供的A/D與D/A驅(qū)動模塊,結(jié)合被控對象模型即可構(gòu)建如圖6的被控對象仿真機應用程序模塊并進行代碼的生成和下載。同時,還可以通過xPC目標瀏覽器與目標機進行連接,對仿真時的數(shù)據(jù)進行記錄和導出。
實驗驗證
為了對所構(gòu)建的硬件在回路仿真系統(tǒng)性能進行驗證,本文以直流電機為對象,在利用系統(tǒng)辨識方法建立如式1的速度離散化模型(以電壓為輸入、以測速發(fā)電機轉(zhuǎn)速所對應的實測電壓為輸出)的基礎上,確定其離散PID控制器參數(shù)kp/ki/kd分別為0.5/4/0.01,并在PC機下進行了以幅值為2的階躍信號為輸入的MATLAB全數(shù)字仿真。從如圖7所示的仿真結(jié)果可以看出,閉環(huán)系統(tǒng)調(diào)節(jié)時間大約為1秒,沒有穩(wěn)態(tài)誤差,而且當系統(tǒng)在第3秒加入一個幅值為0.1的干擾時,系統(tǒng)在控制器的作用下能夠在0.5秒內(nèi)克服干擾的影響,證實了該控制算法的性能。
??????? ?
為了進一步驗證控制系統(tǒng)性能,將構(gòu)建的對象仿真機和控制器的應用程序借助RTW實現(xiàn)自動代碼生成和下載,并進行期望值為2V時的硬件在回路仿真,仿真結(jié)果如圖8所示。顯然,與全數(shù)字仿真結(jié)果相比,硬件在回路仿真的輸出仍能較好的跟蹤輸入信號,上升過程較平穩(wěn),調(diào)節(jié)時間1.5秒,比全數(shù)字仿真略長,穩(wěn)態(tài)值存在最大幅值2%的輕微波動。總體看來,控制效果較全數(shù)字仿真略有下降,而起因是由于硬件在回路仿真系統(tǒng)中,信號在DSP和工控機之間進行A/D和D/A轉(zhuǎn)換過程的精度和能量損失。
結(jié)論
本文在解決了S函數(shù)封裝、應用程序模塊構(gòu)建等問題的基礎上,以DSP與工控機為核心、構(gòu)建了能實現(xiàn)任何復雜對象控制器仿真驗證的、基于MATLAB/RTW和自動代碼生成技術(shù)的硬件在回路仿真系統(tǒng)。針對電機對象模型和控制算法的硬件在回路仿真結(jié)果證實了由于A/D、D/A轉(zhuǎn)換的精度損失,相比于全數(shù)字仿真該平臺性能有輕微下降,但硬件平臺的性能仍然是可靠有效的。
參考文獻:
[1] 齊振恒,孫中杰,李濤. RTW嵌入式代碼自動生成機制與代碼結(jié)構(gòu)分析[J].計算機測量與控制,2010,18,(3):639-642
[2] 侯躍恩.基于DSP的伺服控制系統(tǒng)設計與實現(xiàn)[D].武漢理工大學,2009
[3] 李根,唐臻宇,耿海翔,金佛榮.基于MATLAB/RTW的控制系統(tǒng)一體化新型設計方法[J].中國測試,2010,36,(1):75-78
[4] MATLAB User's Guide Version 7.5[R].The Math Works Inc,2007
[5] 程雪飛,王強,彭繼慎.基于S函數(shù)的專家PID控制器的實現(xiàn)[J].儀器儀表用戶,2006,13(2):86-87
[6] 蘇奎峰,呂強,常天慶,張永秀. TMS320X281X DSP原理及C程序開發(fā)[M].北京航空航天大學出版社,2008
[7] 進兵.基于xPC Target的無人機飛行控制軟件快速原型設計[D].南京航空航天大學,2009
pid控制相關(guān)文章:pid控制原理
c++相關(guān)文章:c++教程
pid控制器相關(guān)文章:pid控制器原理
汽車防盜機相關(guān)文章:汽車防盜機原理
評論