基于MATLAB的控制系統實(shí)時(shí)仿真平臺設計
硬件在回路平臺的實(shí)現
本文引用地址:http://dyxdggzs.com/article/146822.htm平臺結構
圖1是控制系統硬件在回路仿真平臺的結構框圖,整個(gè)平臺由一臺PC機、一臺工控機和一臺DSP及相關(guān)通信和數據采集設備組成。
(1)PC機為宿主機,運行Windows系統和MATLAB軟件,宿主機在仿真前完成控制算法的設計,在Simulink下進(jìn)行控制器的軟件在回路仿真驗證,對控制算法模塊和對象模塊進(jìn)行分離并執行自動(dòng)代碼生成,通過(guò)以太網(wǎng)完成鏈接、下載;仿真過(guò)程中,宿主機對控制器和對象仿真機進(jìn)行實(shí)時(shí)監控、在線(xiàn)調參和數據記錄;仿真結束后進(jìn)行數據的整理分析。
(2)工控機作為目標機,由工業(yè)控制計算機及配套的ISA總線(xiàn)結構的數據采集卡組成,運行的是對象數學(xué)模型來(lái)模擬被控對象的運行過(guò)程。為了保證程序執行的實(shí)時(shí)性,同時(shí)更方便、快速地組建仿真系統并滿(mǎn)足監控仿真過(guò)程的需求,發(fā)動(dòng)機仿真機采用xPC目標環(huán)境。
(3)控制器是基于TMS3202812 DSP芯片的開(kāi)發(fā)板,運行控制算法,通過(guò)D/A模塊向工控機發(fā)送控制信號并通過(guò)A/D模塊從工控機接收對象的狀態(tài)。
本文主要的研究工作就是圍繞著(zhù)基于DSP和xPC Target的平臺的構建和實(shí)現展開(kāi)。
DSP的自動(dòng)代碼生成實(shí)現
平臺中的F2812 DSP開(kāi)發(fā)板包括16路A/D轉換通道,其擁有12位分辨率、80ns轉換時(shí)間、0~3V量程;在板集成4個(gè)12位分辨率、 10V量程的D/A通道。針對該DSP開(kāi)發(fā)板,MATLAB/RTW工具箱提供了包括A/D、D/I、D/O等相關(guān)元件在內的驅動(dòng)程序支持包Target Support Package TC2,能夠通過(guò)自動(dòng)代碼生成技術(shù)完成生成編譯和下載。
在此過(guò)程中,有兩部分關(guān)鍵工作:
S函數的封裝
由于2812系列DSP芯片本身沒(méi)有D/A轉換模塊,MATLAB/Simulink并未提供2812系列DSP的D/A驅動(dòng)程序模塊。這就要根據DSP開(kāi)發(fā)板生產(chǎn)商提供的C代碼的D/A模塊驅動(dòng)程序,利用S-functions進(jìn)行封裝,以便得到通用的、能直接使用的Simulink模塊?! ?/p>


S函數提供了一個(gè)C、C++、Ada、Fortran等代碼和Simulink模塊之間的接口,用來(lái)實(shí)現對模塊的編程。通過(guò)S-函數創(chuàng )建的模塊具有與Simulink模型庫中的模塊相同的特征[5]。其基本步驟如下:
(1)編寫(xiě)S函數接口文件,也就是將廠(chǎng)商提供的C形式的D/A驅動(dòng)代碼按照S-Function要求的格式進(jìn)行改寫(xiě),相關(guān)函數及流程如圖2。
(2)接口文件的編譯:將編寫(xiě)好的接口文件保存為DSPDA.cpp,使用命令MEX DSPDA.cpp進(jìn)行編譯,生成DSPDA.mexw32文件,如圖3所示。
(3)S函數封裝:此步驟需將Simulink->User-Defined Functions的S-Function模塊與S函數接口文件名進(jìn)行關(guān)聯(lián),并在S-Function Parameters中添入D/A模塊的3個(gè)輸入參數(通道選擇、電壓范圍選擇和采樣時(shí)間)。
(4)添加自定義模型庫:創(chuàng )建slblocks.m文件,并利用blkStruct.Name和blkStruct.OpenFcn函數完成程序的編寫(xiě),將S函數模塊添加到Simulink模塊庫。
pid控制相關(guān)文章:pid控制原理
c++相關(guān)文章:c++教程
pid控制器相關(guān)文章:pid控制器原理
汽車(chē)防盜機相關(guān)文章:汽車(chē)防盜機原理
評論