资源简介
基于一型糖尿病人的血糖浓度参数,建立血糖浓度的物理模型及AR模型,利用Matlab编程实现。
代码片段和文件信息
clear;
close all
clc;
N=1458;
TrueVal=(ones(1N))‘;
Val=(ones(1N))‘;
fid = fopen(‘yout.txt‘‘r‘) ; %fopen打开文献
TrueVal = fscanf(fid‘%f‘); %fscand格式化输入空格或者换行时,结束
TrueVal=TrueVal‘;
fclose(fid); %把缓冲区内最后剩余的数据输出到磁盘文件中,并释放文件指针和有关的缓冲区。
ProcNConvQ = 0.01;%过程噪声
Wq=sqrt(ProcNConvQ)*randn(1N); %返回一个1*n的矩阵
MeasNConvR =0.3; %测量噪声
Wr = sqrt(MeasNConvR)*randn(1N);
MeasureValue_Array = TrueVal+Wr; %
ErrCov_i_prev = 1;
XState_i_prev = 4;
for i=1:N
MeasureValue_i = MeasureValue_Array(i);
XAhead_i = XState_i_prev; % X(k|k-1)=X(k-1|k-1)公式3.3.46
ErrCovAhead_i = ErrCov_i_prev + ProcNConvQ; % P(k|k-1)=P(k-1|k-1) + ProcNConvQ 1e-5 公式3.3.49
KalGain_i = ErrCovAhead_i / (ErrCovAhead_i + MeasNConvR); % Kg(k)= P(k|k-1) / (P(k|k-1) + MeasNConvR)公式3.3.48
XState_i_current = XAhead_i+KalGain_i * (MeasureValue_i - XAhead_i); % X(k|k)= X(k|k-1)+Kg(k) (Z(k)-X(k|k-1))公式3.3.45
ErrCov_i_current = (1-KalGain_i) * ErrCovAhead_i; % P(k|k)=(1-Kg(k))P(k|k-1)公式3.3
评论
共有 条评论