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