999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Matlab、VC++與PCAuto組態軟件混合編程方法的Kalman濾波器實現

2018-06-11 09:31:46王野
科學與財富 2018年11期

王野

摘 要:Matlab是功能強大的工程計算和數據分析軟件,VC++是面向對象的快速開發工具,PCAuto組態軟件是面向監控與數據采集(Supervisory Control and Data Acquisition, SCADA)的軟件平臺工具。三者結合,可以取長補短,能開發出處理復雜矩陣運算且界面友好、滿足工程領域需要的應用軟件。本文探討了三者混合編程的詳細實現過程,通過一個Kalman濾波實例,說明了實現混合編程方法的過程和實用性。

關鍵詞:Kalman濾波;VC++;Matlab;PCAuto;混合編程

1 引言

濾波問題是如何從被噪聲污染的觀測信號中過濾噪聲,盡可能消除或減小噪聲影響,求未知真實信號或系統狀態的最優估計。由于信號和噪聲往往是多維非平穩隨機過程,因此1960年初Kalman[1,2]用時域上的狀態空間方法提出了Kalman濾波理論,提出了便于計算機上遞推實現的Kalman濾波算法,解決了多維非平穩隨機信號的濾波問題。我們基于Kalman濾波算法用Matlab實現仿真,通過VC將Matlab與組態軟件進行互聯,最終通過組態軟件來實現Kalman濾波器。

2 理論依據

考慮用如下狀態空間模型描寫的動態系統

其中t為離散時間,系統在時刻t的狀態為x(t)∈Rn,y(t)∈Rm為對狀態的觀測信號,方差為Q的輸入白噪聲w(t)∈Rr,方差為R的觀測白噪聲v(t)∈Rm,且w(t)和v(t)不相關。?椎,,H分別為已知的適當維矩陣。由[1,2]我們易知該系統的最優狀態濾波方程組為:

3 用Matlab實現Kalman濾波器仿真

在系統(1)和(2)中取?椎= 0.9 0-0.5 0.2,?祝=12,H=[1 1],Q=0.81, R=1。基于Kalman濾波原理(3)-(8), 通過Matlab在計算機上實現Kalman濾波器的仿真。

具體m文件源代碼如下:

for i=1:bushu

[x1(:,i+1)]=mult(fai,x(:,i));

[wa]=mult(tao,w(i));

[x(:,i+1)]=add(x1(:,i+1),wa);

[hx]=mult(H,x(:,i+1));

[y(i)]=add(hx,v(i));

[xjian(:,i+1),p]=kkmm(n,fai,tao,H,Q,R,p,xjian(:,i),y(i));

End

其中,調用了mult(),add(),kkmm()這三個函數,這些都是預先編寫好的。kkmm.m是整個程序的主要部分,即Kalman濾波算法。運行結果如圖1和圖2所示,其中實現表示真實狀態,虛線表示估計狀態。

4 VC++與Matlab混合編程的應用

VC++[3]具有很多的優點,但對于一些比較復雜的工程計算程序,編寫起來比較困難。Matlab語言是一種高級矩陣語言,對于一些復雜的運算有直接的函數可以調用,提高了編程的效率。

4.1 應用實例(Kalman濾波器)

建立一個基于對話框的MFC應用程序Kalman,通過制作一個曲線控件[3],可以清楚地看到xi(t)和 i(t|t)走勢。

其中,使用了WM_TIMER響應函數。運行結果如圖3所示,其中黃線表示真實狀態x(t)紅線表示估計狀態 (t|t)。

5 實現VC++與組態軟件的數據通訊

建立一個基于對話框的MFC程序VMP,按照本文4.2節提到的方法,將Kalman濾波器添加到當

前工程中。其中響應函數CVMPDlg::OnTimer(UINT nIDEvent)的主要源代碼如下:

for(int i = 0;i

{ CString strTagPar,strVal;

XEstrTagPars.GetSubStr(i,strTagPar);

pTagPars[i].vt = VT_BSTR;

pTagPars[i].bstrVal = strTagPar.AllocSysString();

XEstrVals.GetSubStr(i,strVal);

pVals[i].vt = VT_BSTR;

pVals[i].bstrVal = strVal.AllocSysString();}

m_pDbCom->SetStringData(iTagParCount,pTagPars,pVals);

for (i = 0; i < iTagParCount; i++)

{ SysFreeString(pTagPars[i].bstrVal);

SysFreeString(pVals[i].bstrVal);}

delete pTagPars; delete pVals;

然后(t|t)可以通過上述源代碼進行數據傳遞,將數據從Matlab通過VC++傳到組態軟件當中去。

6 結論

通過上述方法,可以將Kalman濾波器應用到現場中,廣泛應用在信號處理、通信、目標跟蹤和控制等領域。VC++是Matlab與組態軟件結合的橋梁,從而擴大了Matlab的應用范圍。因此如何在特定的情況下使用最好的實現方法非常重要,隨著數據接口的進一步改善,混合編程將在工程應用中發揮其越來越重大的作用。

參考文獻

[1]Kalman R E. A New Approach to Linear Filtering and Predictioning Problems.Trans.ASME,J.Basic Eng.,1960,82D:34-45.

[2]鄧自立,王欣,高媛.建模與估計(第二版)[M].北京:科學出版社,2016.

[3]王東華,李櫻.VisualC++6.0從入門到精通[M].北京:人民郵電出版社,2016.

[4]江澤林,劉維.實戰MATLAB文件與數據接口技術[M].北京:北京航空航天大學出版社,2014.

[5]張瓊瓊,馬躍,王志成.組態式人機界面編輯與仿真技術[J].計算機系統應用,2015(04),26-31.

[6]鄧云偉,杜衛星,楊光玲.基于組態軟件和FP23智能儀表的溫度監控系統設計[J].價值工程.2013(20),208-210.

主站蜘蛛池模板: 欧美日韩成人| 99在线免费播放| 国产精品自在线天天看片| 亚洲欧美天堂网| 国产91麻豆免费观看| 成人精品视频一区二区在线| 啪啪啪亚洲无码| 亚洲av无码片一区二区三区| 国产真实乱子伦视频播放| 午夜高清国产拍精品| 欧美色亚洲| 亚洲欧洲一区二区三区| 久996视频精品免费观看| 91精品福利自产拍在线观看| 国产二级毛片| 亚洲一区色| 在线观看无码av五月花| 亚洲第一页在线观看| 9丨情侣偷在线精品国产| 免费看av在线网站网址| 亚洲αv毛片| 日韩精品无码免费一区二区三区| 日韩精品一区二区深田咏美| 日韩精品少妇无码受不了| 国产日韩欧美成人| 日本午夜网站| 婷婷六月在线| 91精品网站| 日韩av在线直播| 日韩乱码免费一区二区三区| 久久青青草原亚洲av无码| 免费在线a视频| 欧美精品黑人粗大| 亚洲精品成人片在线观看 | 91在线日韩在线播放| 国产剧情国内精品原创| 欧美人在线一区二区三区| 国产欧美在线观看精品一区污| 香蕉久人久人青草青草| 亚洲欧美h| 欧美日韩专区| 国产探花在线视频| 91午夜福利在线观看| 亚洲伦理一区二区| 2019国产在线| 亚洲视频影院| 日韩无码视频播放| 91久久精品国产| 色色中文字幕| 99久久精品国产综合婷婷| 亚洲中文字幕日产无码2021| 欧美综合中文字幕久久| 亚洲国产理论片在线播放| 国产综合精品一区二区| 国产无码性爱一区二区三区| 久久久噜噜噜| 日日噜噜夜夜狠狠视频| 少妇精品在线| 成人中文在线| 久久午夜影院| 亚洲开心婷婷中文字幕| 91久久青青草原精品国产| 欧美一区二区精品久久久| 成人欧美在线观看| 成人亚洲天堂| 亚洲大尺码专区影院| 中文字幕中文字字幕码一二区| 91啪在线| 国产最爽的乱婬视频国语对白| 日本欧美在线观看| 国产成人毛片| 色老二精品视频在线观看| 98精品全国免费观看视频| 欧美日韩高清在线| 色综合色国产热无码一| 欧美成人看片一区二区三区| 9966国产精品视频| 强奷白丝美女在线观看| 亚洲成aⅴ人在线观看| 午夜a视频| 亚洲天堂日韩av电影| 丁香婷婷在线视频|