Matlab與DSP混合實現(xiàn)無傳感器矢量控制
在傳統(tǒng)的開發(fā)過程中,總是先用 MATLAB進行仿真。當(dāng)仿真結(jié)果滿意時再把算法修改成 C/C++語言,再在硬件的 DSP目標(biāo)板上實現(xiàn)。發(fā)現(xiàn)偏差,需要再用 Matlab對算法進行修正,再在 DSP上編寫修正的算法程序。如此過程反復(fù)進行,在 DSP的開發(fā)工具、 Matlab工作空間之間來回多次切換,非常不便,當(dāng)系統(tǒng)比較復(fù)雜時,還需要分步驗證各個中間結(jié)果和最終結(jié)果。如果能夠把 Matlab和 DSP集成開發(fā)環(huán)境 CCS及目標(biāo) DSP連接起來,利用 Matlab的分析能力來調(diào)試 DSP代碼,那么操作 TI DSP的存儲器或者寄存器就可以像操作 Matlab變量一樣簡單。工具包 Matlab Link for CCS Development Tools的使用,可以使上述問題迎刃而解,利用此工具箱,在 Matlab環(huán)境下,就可以完成對 CCS的操作,即整個目標(biāo) DSP對于 Matlab像透明的一樣,所有操作只利用 Matlab命令和對象來實現(xiàn),簡單、方便、快捷。以下用調(diào)試上述無速度傳感器矢量控制系統(tǒng)的例子來說明 Matlab-DSP集成開發(fā)環(huán)境在控制系統(tǒng)中的應(yīng)用。在 Matlab命令窗口中輸入 Simulink,打開 Simulink模塊窗,建立異步電動機矢量控制變頻調(diào)速系統(tǒng)的模型,如圖 2所示,結(jié)構(gòu)簡單明了,全部實現(xiàn)模塊化,容易擴展,可以根據(jù)實際需要,改變每一模塊的參數(shù)。
接下來設(shè)置仿真參數(shù)和 Real-Time Workshop選項,編譯仿真模型。并利用 MATLABLink for CCS Development Tools建立與目標(biāo) DSP的連接。利用 CCSLink工具,可以把數(shù)據(jù)從 CCS中傳送到 Matlab工作空間中,也可以把 Matlab中的數(shù)據(jù)傳送到 CCS中,而且通過 RTDX(實時數(shù)據(jù)交換技術(shù)),可以在 Matlab和實時運行的 DSP硬件之間建立連接,在它們之間實時傳送數(shù)據(jù)而不使正在 DSP上運行的程序停止,這項功能可以在程序運行期間為我們提供一個觀察 DSP實時運行狀態(tài)的窗口,大大簡化了調(diào)試工作。Matlab、CCSlink、CCS和硬件目標(biāo) DSP的關(guān)系如圖 3所示。
我們可以在 Matlab中修改一個參數(shù)或變量,并把修改值傳遞給正在運行的 DSP,從而可以實時地調(diào)整或改變處理算法,并通過觀察探針點數(shù)據(jù)來調(diào)試程序。最后把 CCSlink和 Embedded Target for C2000 DSP Platform. 相結(jié)合,可以直接由調(diào)試好的 Simulink模型生成 DSP2812 的可執(zhí)行代碼,并加載到 DSP目標(biāo)板中,這樣我們就可以在同一的 Matlab環(huán)境中完成系統(tǒng)算法的設(shè)計、仿真、調(diào)試、測試,并最終在 DSP2812目標(biāo)板上運行。
評論