




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、擴展卡爾曼濾波器的s函數(shù)編寫 function sys,x0,str,ts = sekfs(t,x,u,flag)switch flag,case 0, sys,x0,str,ts=mdlInitializeSizes;case 2, sys=mdlUpdate(t,x,u);case 3, sys=mdlOutputs(t,x,u);case 1,4,9, sys=;otherwise error('Unhandled flag = ',num2str(flag);endfunction sys,x0,str,ts=mdlInitializeSizessizes = sims
2、izes;sizes.NumContStates = 0;sizes.NumDiscStates = 3;sizes.NumOutputs = 1;sizes.NumInputs = 1;sizes.DirFeedthrough = 0;sizes.NumSampleTimes = 1; sys = simsizes(sizes);x0 = 4.5000 15.0000 15.0000;str = ;ts = 1e-6;function sys=mdlUpdate(t,x,u) global Qon;Qon=1; R=1e-2; Q=Qon*diag(1e-2 1e-2 1e-2);G_bas
3、al = 4.5; % mmol/LX_basal = 15; % mU/LI_basal = 15; % mU/LP1 = 0.028735; % min-1P2 = 0.028344; % min-1P3 = 5.035e-5; % mU/LV1 = 12; % Ln = 5/54; % minD = 5;To=1e-6;% for i=1:3% for j=1:3% P(i,j)=x(3*i+j);% end% endP=0.01 0 0; 0 0.01 0;0 0 0.01;xp=zeros(3,size(x,2);xp(1,1) = x(1)+(-P1 * (x(1) - G_bas
4、al) - (x(2)- X_basal) * x(1) + D)*To;xp(2,1) = x(2)+(-P2 * (x(2) - X_basal) + P3 * (x(3) - I_basal)*To;xp(3,1) = x(3)+(-n * x(3) + u(1) / V1)*To;F= -P1-x(2),-x(1),0 ;0,-P2,P3;0,0, -n; P=F*P*F'+Q;H=1,0,0;K=P*H'*inv(H*P*H'+R);D=u(1);H=xp(1,1);xp=xp+K*(D-H);P=P-K*H*P;%sys=xp(1,1);xp(2,1);xp
5、(3,1);for i=1:3 sys(i)=xp(i,1);end% for i=1:3% for j=1:3% sys(i,j)=P(3*i+j);% end% endfunction sys=mdlOutputs(t,x,u)sys =x(1);Error in 'untitled/S-Function' while executing M-File S-function 'sekfs', flag = 2 (update), at time 0. MATLAB error message: Inner matrix dimensions must agr
6、ee.哪里錯了?最佳答案 H=1,0,0;K=P*H'*inv(H*P*H'+R);D=u(1);H=xp(1,1);xp=xp+K*(D-H);P=P-K*H*P;H是一個3*1的矩陣,但在下面H=xp(1,1),這時又變成一個數(shù)了,后面xp=xp+K*(D-H);沒有問題。但是P=P-K*H*P;這里就出現(xiàn)了矩陣維數(shù)不對。你換過來就行了。你的調(diào)用要是在for循環(huán)體中,那么你的輸入?yún)?shù)比如x是否進行矩陣維數(shù)擴展,即表示成x(1,k)這種形式?(這條可能就是產(chǎn)生問題的最主要原因)另外x和u的維數(shù)是否正確?我看這個函數(shù)程序中的x應(yīng)該是3維的列向量還有你函數(shù)中xp=zeros(3,
7、size(x,2);這句所生成的是一個三維的列向量,那么下面的xp(1,1).xp(3,1)這些調(diào)用是否合理等都需要認(rèn)真考慮function sys,x0,str,ts = str_sim(t,x,z,flag,T,n,R1,xinit,Pinit)%EKFS Extended Kalman filter S-function for rekursive identification% This M-file is designed to be used in a Simulink S-function block.% It implements an extended Kalman filt
8、er for joint state estimation% and parameter tracking. Sofar, only output error SISO models are % supported% Input: theta% Output: (dummy)%switch flag, % % Initialization % % case 0, % M鰆ligen kan jag komma p?n錱on smart initialisering h鋜. x0 = xinit(:); Pinit(:); % init the state vector ts = T,0; sy
9、s(1) = 0;% 0 continuous states sys(2) = length(x0);% enough discrete states to hold x and P sys(3) = 3*n; % All states as outputs sys(4) = 2; % inputs: z = y u sys(5) = 0;% 0 roots sys(6) = 1;% Direct feedthrough sys(7) = 1;% 1 sample time % % Update % % case 2, xs = x(1:3*n,1); P = zeros(3*n,3*n);
10、P(:) = x(3*n+1:end,1); % Measurement update y = z(1); u = z(2); R = 1; H = 1 zeros(1,n-1+2*n); K = P*H'/(H*P*H'+R); % only SISO models supported xs = xs + K*(y-H*xs); % Time update Q = eye(2*n)*R1; a = xs(n+1:2*n); A = -a(:) eye(n-1);zeros(1,n-1); F = A -xs(1)*eye(n) u*eye(n);zeros(2*n,n) ey
11、e(2*n); G = zeros(n,2*n); eye(2*n); P = F*(P-K*H*P)*F'+G*Q*G' xs(1:n) = -xs(n+1:2*n) eye(n-1);zeros(1,n-1)*xs(1:n) + xs(2*n+1:3*n)*u; sys = xs(:);P(:); % % Outputs % % case 3, xs = x(1:3*n,1); P = zeros(3*n,3*n); P(:) = x(3*n+1:end,1); % Measurement update y = z(1); u = z(2); R = 1; H = 1 ze
12、ros(1,n-1+2*n); K = P*H'/(H*P*H'+R); % only SISO models supported xs = xs + K*(y-H*xs); sys = x(1:3*n,:); % % GetTimeOfNextVarHit % % case 4, sys = ; % % Unexpected flags % % otherwise sys = ;end% THIS PROGRAM IS FOR IMPLEMENTATION OF DISCRETE TIME PROCESS EXTENDED KALMAN FILTER% FOR GAUSSIA
13、N AND LINEAR STOCHASTIC DIFFERENCE EQUATION.% By (R.C.R.C.R),SPLABS,MPL.% (17 JULY 2005).% Help by Aarthi Nadarajan is acknowledged.% (drawback of EKF is when nonlinearity is high, we can extend the% approximation taking additional terms in Taylor's series).clc; close all; clear all;Xint_v = 1;
14、0; 0; 0; 0;wk = 1 0 0 0 0;vk = 1 0 0 0 0;for ii = 1:1:length(Xint_v) Ap(ii) = Xint_v(ii)*2; W(ii) = 0; H(ii) = -sin(Xint_v(ii); V(ii) = 0; Wk(ii) = 0; endUk = randn(1,200);Qu = cov(Uk);Vk = randn(1,200);Qv = cov(Vk);C = 1 0 0 0 0;n = 100;YY XX = EKLMNFTR1(Ap,Xint_v,Uk,Qu,Vk,Qv,C,n,Wk,W,V);for it = 1
15、:1:length(XX) MSE(it) = YY(it) - XX(it);endtt = 1:1:length(XX);figure(1); subplot(211); plot(XX); title('ORIGINAL SIGNAL');subplot(212); plot(YY); title('ESTIMATED SIGNAL');figure(2); plot(tt,XX,tt,YY); title('Combined plot'); legend('original','estimated');fi
16、gure(3); plot(MSE.2); title('Mean square error');web -browser function YY,XX = EKLMNFTR1(Ap,Xint_v,Uk,Qu,Vk,Qv,C,n,Wk,W,V);Ap(2,:) = 0;for ii = 1:1:length(Ap)-1 Ap(ii+1,ii) = 1;endinx = 1;UUk = Uk(inx); 0; 0; 0; 0;PPk = (Xint_v*Xint_v');VVk = Vk(inx); 0; 0; 0; 0;Qv = V*V'for ii = 1:1
17、:length(Xint_v)XKk(ii,1) = Xint_v(ii)2; % FIRST STEPendPPk = Ap*PPk*Ap' % SECOND STEPKk = PPk*C'*inv( (C*PPk*C') + (V*Qv*V') ); % THIRD STEPfor ii = 1:1:length(Xint_v)XUPK(ii,1) = XKk(ii)2 + UUk(ii); % UPPER EQUATIONS.Zk(ii,1) = cos(XUPK(ii) + VVk(ii); % UPPER EQUATIONS.endfor ii = 1
18、:1:length(XKk)XBARk(ii,1) = XKk(ii) + Kk(ii)*(Zk(ii) - (cos(XKk(ii) ; % FOURTH STEPendII = eye(5,5);Pk = ( II - Kk*C)*PPk; % FIFTH STEP%-%-for ii = 1:1:nUUk = Uk(ii+1); 0; 0; 0; 0;PPk = XBARk*XBARk'VVk = Vk(ii+1); 0; 0; 0; 0;XKk = exp(-XBARk); % FIRST STEPPPkM = Ap*PPk*Ap' % SECOND STEPKk = PPkM*C'*inv( (C*PPkM*C') + (V*Qv*V') ); % THIRD STEPfor nn = 1:1:length(XBARk)XUPK(nn) = exp(-XKk(nn) + UUk(nn); % UPPER EQUATION
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 英語-福建省莆田市2025屆高中畢業(yè)班第二次教學(xué)質(zhì)量檢測試卷(莆田二檢)試題和答案
- 不銹鋼雨篷施工方案
- 碎石填坑施工方案
- 第二單元課題3 制取氧氣-教學(xué)設(shè)計-2024-2025學(xué)年九年級化學(xué)人教版上冊
- 2025年茫茫沙漠大班科學(xué)標(biāo)準(zhǔn)教案
- 與駕校有合同范例
- 交通標(biāo)志線合同范例
- 公司工資合同范例
- 強化員工培訓(xùn)的年度實施計劃
- 生物課本與現(xiàn)實生活的聯(lián)系計劃
- GB/T 45191-2025桑蠶一代雜交種
- 2025年黑龍江省高職單招《語文》備考重點試題庫(含真題)
- 《抖音營銷教程》課件
- 食材配送服務(wù)方案投標(biāo)文件(技術(shù)標(biāo))
- 貴州省安順市2025屆高三年級第四次監(jiān)測考試2月語文試題及參考答案
- 2025屆山東核電校園招聘正式啟動筆試參考題庫附帶答案詳解
- 2025年度教育培訓(xùn)機構(gòu)股權(quán)合作協(xié)議范本
- 2025屆江蘇省無錫市江陰實驗中學(xué)中考聯(lián)考?xì)v史試題含解析
- 光伏電站設(shè)備故障預(yù)防措施
- 2024年蘇州職業(yè)大學(xué)高職單招語文歷年參考題庫含答案解析
- 2025天津高考英語作文題目及范文
評論
0/150
提交評論