1 引 言
Matlab" title="Matlab">Matlab具有強大的分析、計算和可視化功能, 利用MATLAB 提供的專業(yè)工具箱, 可以方便、靈活地實現(xiàn)對自動控制、信號處理、通信系統(tǒng)等算法的分析和仿真, 是算法設計人員和工程技術人員不可缺少的軟件工具。
數(shù)字信號處理器( DSP" title="DSP">DSP)作為一種可編程專用芯片, 是數(shù)字信號處理理論實用化的重要工具, 在自動控制、語言處理、圖像處理等技術領域得到了廣泛應用。但對于算法設計人員來講, 利用匯編語言和C語言進行功能開發(fā), 具有周期長、效率低的缺點, 不利于算法驗證和產品的快速開發(fā)。
由MathWorks公司和TI公司聯(lián)合開發(fā)的MATLAB L ink for CCS" title="CCS">CCS DevelopmentToo l(CCSlink)是MATLAB6. 5版本中增加的一個全新的工具箱, 它提供了MATLAB、CCS和DSP目標板的接口, 利用此工具可以像操作MATLAB 變量一樣來操作DSP器件的寄存器和存儲器, 極大的提高了DSP應用系統(tǒng)的開發(fā)進展。
2 M atlab與CCS及目標板間的連接
Matlab可通過3種方式與CCS、目標DSP進行連接、數(shù)據(jù)交換。CCSL ink 向用戶提供了3 種連接對象, 如圖1所示。
CCS IDE的連接對象: 該對象支持TI的C2000 /5000 /6000系列DSP, 利用此對象可創(chuàng)建CCS IDE和M atlab的連接。用戶可以編寫用于DSP程序的Ma tlab語言批處理腳本, 從Matlab 的命令窗中直接運行CCS IDE中的應用程序, 向硬件DSP的存儲器或寄存器發(fā)送或取出數(shù)據(jù), 檢查DSP的狀態(tài), 停止或啟動程序在DSP中的運行。
與RTDX(實時數(shù)據(jù)交換)的連接對象: 該對象提供Matlab和硬件DSP之間的實時通信通道。它允許用戶在主機和目標板之間進行實時的數(shù)據(jù)交換而不用考慮目標板程序的運行。RTDX連接對象實際上是CCS連接對象的一個子類, 在創(chuàng)建CCS連接對象的同時創(chuàng)建RTDX 連接對象, 它們不能分別創(chuàng)建。
圖1 CCSL ink的三種接口
嵌入式對象: 在Matlab 環(huán)境中創(chuàng)建, 該對象可以代表嵌入在目標C 程序中的變量, 由其直接對嵌入在目標DSP存儲器/寄存器中的變量進行操作。
3 ETT IC2000環(huán)境
由以上所述可知, CCSLink為T IDSP實時應用開發(fā)的調試和測試提供了強大的支持, 而ETT IC2000則為T IC2000 DSP實時應用開發(fā)的整個過程(概念設計、算法仿真、原代碼編寫、目標代碼生成、調試和測試)都提供了支持。利用ETTIC2000能夠從S imulink模型自動生成T I C2000 DSP的可執(zhí)行代碼, 從而在Simu link統(tǒng)一環(huán)境下就可以實現(xiàn)整個硬件的在線仿真。
應用ETTIC2000開發(fā)實時DSP處理的過程如下:
( 1)概念構思和DSP處理算法設計;( 2)在S imulink環(huán)境下, 利用DSP BLOCKSET,F(xiàn)IXED_POINT BLOCKSET, C2000 DSPLIB 和Simulink等庫中模塊構建算法模型, 并在S imulink環(huán)境下運行仿真;( 3)如果仿真效果滿意, 就可以在模型中加入所需的C2800 DSP Ch ip Support中的模塊。
( 4)設置REAL - T IME WORKSHOP中編譯連接( BU ILD)選項。
( 5)利用CCS中的調試工具、CCSLink或RTDX來調試目標DSP中的程序。
4 仿真系統(tǒng)的建立及代碼生成
4. 1 ADC 轉換及F IR濾波器處理程序設計
用Embedded target for T I C2000 工具包設計ADC 轉換及F IR 濾波。在新建的S imulink文件中,放入C2000 Target Preference中的F2812 eZdsp, 并對其中參數(shù)進行設置。
實現(xiàn)A /D 轉換的功能模塊是C28x ADC, A /D轉換模塊可以選擇模塊A、B 中的任意六個通道, 這里要注意數(shù)據(jù)格式的轉化。
FIR 濾波器設計有很多種, 利用M atlab 中的FDATooo l( F ilter Desiign&Analysis Too l)來設計是經常使用的一種。FDATooo l是通過指定濾波器的性能指標來快速設計F IR 或者IIR 濾波器, 它是一種圖形設計界面, 如圖2所示。
指定FIR濾波器為低通濾波器( Low pass) , 指定采樣頻率為6kH z, 低通頻率為1kH z, 截止頻率為2kHz, 菜單Analysis用來選擇不同的分析顯示方式,如幅度響應、相位響應、脈沖響應、階躍響應、濾波系數(shù)等。指定完成設計參數(shù)后單擊Overw rite generated filter b lock, 完成濾波器的設計。
圖2 數(shù)字濾波器設置對話框
4. 2 擴展卡爾曼濾波器的設計
擴展卡爾曼濾波器是通過內嵌S 函數(shù)完成的。
在RTW 中一般可以直接應用非內嵌C MEX S 函數(shù), 但是在實時情況下對時間要求比較嚴格, 而非內嵌S函數(shù)的S imstruct數(shù)據(jù)結構需要大量的存儲計算資源, 運行時調用S函數(shù)需要很大的系統(tǒng)開支, 此時就需利用TLC 技術將S 函數(shù)內嵌。TLC 是RTW的一個內部組成部分, 利用它可以自定義從S imulink模型生成的C 代碼, 并為S imulink模型圖生成優(yōu)化的內嵌程序代碼。通過自定義, 可以將自定義算法和現(xiàn)存的例程結合起來形成一個整體式的程序, 提高代碼質量, 減少代碼體積。
內嵌S函數(shù)的實現(xiàn)是通過生成一個TLC 文件mymode.l t lc完成的。當TLC 在閱讀mymode.l rtw時, 如果發(fā)現(xiàn)有S函數(shù)block, 并且在TLC 文件的搜索路徑中有相應的TLC 文件, 則S函數(shù)被內嵌。
4. 3 代碼生成
以上完成了仿真模型各個模塊的建立, 如圖3所示。
圖3 仿真系統(tǒng)圖
其中, 電壓和電流的C larke Transformation 模塊和C28x To Memory 模塊是C28x DMC Library 和C2800 DSP Core Support中自帶的模型, 在使用時只需要拖入仿真系統(tǒng)即可。
進入Simulink 的Conf iguration Parameters 對話框, 對Real- T im eW orkshop進行設置完成后, 點擊Bu ild即可生成對應的DSP工程文件, 并且DDSL ink自動打開CCS, 進行編譯調試, 如圖4所示。
圖4 CCSL ink自動調試DSP代碼
由Mat lab自動生成的DSP代碼能夠實現(xiàn)AD轉換、數(shù)字濾波及卡爾曼濾波計算, 但是由于程序中使用了很多缺省設置, 在運行中還有一些問題, 如中斷處理程序只對定時器中斷進行處理, 無法用圖形方式觀測變量值等, 需要進一步完善。
5 試驗結果及分析
把修改完善后的代碼加載到DSP實驗板上, 對電機的電壓和電流進行采樣, 通過圖5可以驗證濾波器的效果。
在利用擴展卡爾曼濾波進行速度估算時, 以異步電機在兩相靜止坐標系下的電流Ia、Iβ、轉子磁鏈Φa、Φβ、以及轉速n 為狀態(tài)變量, 進行一系列計算,這樣就可以很方便的觀測到磁鏈圓如圖6( a)和估算的速度曲線如圖6( b)。在計算過程中, 由于采樣噪聲、系統(tǒng)噪聲、電機參數(shù)隨溫度變化等原因, 造成估算值在一定范圍內浮動, 但是基本穩(wěn)定。
通過EKF完成了異步電機的速度在線辨識, 為以后建立異步電機無速度傳感器矢量控制系統(tǒng)奠定了基礎。
6 結束語
試驗證明, 應用Matlab對DSP進行實時調試和代碼生成, 有效地改變了傳統(tǒng)的設計方法。用M atlab快速建立T IDSP模型及直接生成C 語言程序的方法, 簡化了DSP 軟件的開發(fā)。在Embeddedtarget for TI C2000 工具箱中還包含其他工具, 如PWM 控制、CAN 總線控制及通用I /O 控制等。利用這些工具與Simu link中的其他工具相結合, 能夠完成復雜功能的DSP程序設計, 并且只需要進行少量修改, 就可以實現(xiàn)功能正確的C 語言程序設計,大大提高了程序開發(fā)效率。