亚洲国产高清在线观看视频_日韩欧美国产aⅴ另类_奇米影视7777久久精品_欧美 国产 亚洲 卡通 综合

您的位置:首頁 > 熱點(diǎn) >

基于MATLAB的控制系統(tǒng)實(shí)時仿真平臺設(shè)計

硬件在回路平臺的實(shí)現(xiàn)

平臺結(jié)構(gòu)

圖1是控制系統(tǒng)硬件在回路仿真平臺的結(jié)構(gòu)框圖,整個平臺由一臺PC機(jī)、一臺工控機(jī)和一臺DSP及相關(guān)通信和數(shù)據(jù)采集設(shè)備組成。

(1)PC機(jī)為宿主機(jī),運(yùn)行Windows系統(tǒng)和MATLAB軟件,宿主機(jī)在仿真前完成控制算法的設(shè)計,在Simulink下進(jìn)行控制器的軟件在回路仿真驗(yàn)證,對控制算法模塊和對象模塊進(jìn)行分離并執(zhí)行自動代碼生成,通過以太網(wǎng)完成鏈接、下載;仿真過程中,宿主機(jī)對控制器和對象仿真機(jī)進(jìn)行實(shí)時監(jiān)控、在線調(diào)參和數(shù)據(jù)記錄;仿真結(jié)束后進(jìn)行數(shù)據(jù)的整理分析。

(2)工控機(jī)作為目標(biāo)機(jī),由工業(yè)控制計算機(jī)及配套的ISA總線結(jié)構(gòu)的數(shù)據(jù)采集卡組成,運(yùn)行的是對象數(shù)學(xué)模型來模擬被控對象的運(yùn)行過程。為了保證程序執(zhí)行的實(shí)時性,同時更方便、快速地組建仿真系統(tǒng)并滿足監(jiān)控仿真過程的需求,發(fā)動機(jī)仿真機(jī)采用xPC目標(biāo)環(huán)境。

(3)控制器是基于TMS3202812 DSP芯片的開發(fā)板,運(yùn)行控制算法,通過D/A模塊向工控機(jī)發(fā)送控制信號并通過A/D模塊從工控機(jī)接收對象的狀態(tài)。

本文主要的研究工作就是圍繞著基于DSP和xPC Target的平臺的構(gòu)建和實(shí)現(xiàn)展開。

DSP的自動代碼生成實(shí)現(xiàn)

平臺中的F2812 DSP開發(fā)板包括16路A/D轉(zhuǎn)換通道,其擁有12位分辨率、80ns轉(zhuǎn)換時間、0~3V量程;在板集成4個12位分辨率、 10V量程的D/A通道。針對該DSP開發(fā)板,MATLAB/RTW工具箱提供了包括A/D、D/I、D/O等相關(guān)元件在內(nèi)的驅(qū)動程序支持包Target Support Package TC2,能夠通過自動代碼生成技術(shù)完成生成編譯和下載。

在此過程中,有兩部分關(guān)鍵工作:

S函數(shù)的封裝

由于2812系列DSP芯片本身沒有D/A轉(zhuǎn)換模塊,MATLAB/Simulink并未提供2812系列DSP的D/A驅(qū)動程序模塊。這就要根據(jù)DSP開發(fā)板生產(chǎn)商提供的C代碼的D/A模塊驅(qū)動程序,利用S-functions進(jìn)行封裝,以便得到通用的、能直接使用的Simulink模塊?! ?/p>

S函數(shù)提供了一個C、C++、Ada、Fortran等代碼和Simulink模塊之間的接口,用來實(shí)現(xiàn)對模塊的編程。通過S-函數(shù)創(chuàng)建的模塊具有與Simulink模型庫中的模塊相同的特征[5]。其基本步驟如下:

(1)編寫S函數(shù)接口文件,也就是將廠商提供的C形式的D/A驅(qū)動代碼按照S-Function要求的格式進(jìn)行改寫,相關(guān)函數(shù)及流程如圖2。

(2)接口文件的編譯:將編寫好的接口文件保存為DSPDA.cpp,使用命令MEX DSPDA.cpp進(jìn)行編譯,生成DSPDA.mexw32文件,如圖3所示。

(3)S函數(shù)封裝:此步驟需將Simulink->User-Defined Functions的S-Function模塊與S函數(shù)接口文件名進(jìn)行關(guān)聯(lián),并在S-Function Parameters中添入D/A模塊的3個輸入?yún)?shù)(通道選擇、電壓范圍選擇和采樣時間)。

(4)添加自定義模型庫:創(chuàng)建slblocks.m文件,并利用blkStruct.Name和blkStruct.OpenFcn函數(shù)完成程序的編寫,將S函數(shù)模塊添加到Simulink模塊庫。

標(biāo)簽: MATLAB 實(shí)時仿真 DSP 201307

相關(guān)閱讀

延津县| 连城县| 龙南县| 徐闻县| 章丘市| 六枝特区| 宝丰县| 池州市| 福泉市| 宁河县| 西城区| 宁强县| 许昌县| 湖州市| 平利县| 临沭县| 运城市| 文水县| 义乌市| 漳平市| 星座| 若尔盖县| 辰溪县| 泸水县| 马山县| 永丰县| 仁布县| 巴青县| 阿拉尔市| 汤阴县| 舒兰市| 南岸区| 玉林市| 罗定市| 金塔县| 鹰潭市| 昔阳县| 克什克腾旗| 灵寿县| 泌阳县| 高唐县|