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.

主站蜘蛛池模板: 亚洲色精品国产一区二区三区| 欧美综合激情| 日本一区二区三区精品国产| 亚洲视频色图| 中文字幕丝袜一区二区| 亚洲人成网站观看在线观看| 成人久久精品一区二区三区| 亚洲天堂777| 一级片免费网站| 国产经典三级在线| 欧美亚洲国产精品第一页| 成年人免费国产视频| 毛片大全免费观看| 黄色在线网| 国产va在线观看免费| 欧美性久久久久| 国产亚洲视频在线观看| 欧美国产日韩在线观看| 欧美国产精品不卡在线观看 | 高潮毛片免费观看| 精品久久蜜桃| 亚洲综合婷婷激情| 久久精品aⅴ无码中文字幕| 91色在线观看| 国产午夜精品一区二区三| 尤物精品视频一区二区三区| 日韩在线播放欧美字幕| 中文字幕无码电影| 国产资源免费观看| 91丨九色丨首页在线播放 | 九色在线观看视频| 亚洲热线99精品视频| 麻豆精品在线播放| 国产欧美日韩免费| 这里只有精品在线播放| 夜夜操国产| 国产在线91在线电影| 2021精品国产自在现线看| 中文字幕第1页在线播| 欧美区日韩区| 国产国模一区二区三区四区| 蝴蝶伊人久久中文娱乐网| a毛片基地免费大全| 免费 国产 无码久久久| 亚洲伊人电影| 久久国产亚洲偷自| 色屁屁一区二区三区视频国产| 五月婷婷丁香色| 国产麻豆福利av在线播放| 国内精品小视频福利网址| 亚洲av成人无码网站在线观看| 精品无码国产一区二区三区AV| 99久久人妻精品免费二区| 欧美激情视频二区三区| 欧美一区二区三区香蕉视| 国产一区二区福利| 亚洲色精品国产一区二区三区| 日本成人在线不卡视频| 2024av在线无码中文最新| 亚洲午夜天堂| 亚洲黄网在线| 熟女日韩精品2区| 日韩麻豆小视频| 亚洲国产精品日韩av专区| 国产乱码精品一区二区三区中文| a亚洲视频| 久久夜色精品国产嚕嚕亚洲av| 国产精品久久久久久久久| 国产欧美在线观看一区| 亚洲欧美日韩中文字幕在线| 午夜欧美在线| 成年片色大黄全免费网站久久| 色135综合网| 黄色网站在线观看无码| 欧美69视频在线| 国内嫩模私拍精品视频| 91福利一区二区三区| 国产欧美专区在线观看| 性视频一区| 国产福利一区视频| 成人毛片在线播放| 国产午夜精品鲁丝片|