clear all
clc
K=20;
T=1;
ts=0.1; %采样时间
N=10; %集合10个样本
x1=zeros(1,100); %采样100个点,存放真值
x2=zeros(1,100);
y=zeros(1,100);
X1=zeros(1,10); %存放10个样本
X2=zeros(1,10);
%Y=zeros(1,10);
X=zeros(2,10);
Y=zeros(2,100); %存放集合卡尔曼估计出来的值
%r1=[ -1.3499 3.0349 0.7254 -0.0631 0.7147 -0.2050 -0.1241 1.4897 1.4090 1.4172];
%r2=[ -1.3499 3.0349 0.7254 -0.0631 0.7147 -0.2050 -0.1241 1.4897 1.4090 1.4172];
r1=1*randn(1,10); %随机产生10个样本
r2=1*randn(1,10);
v=1*randn(1,100); %测量噪声
w=1*randn(1,100); %过程噪声
%w=[0.0888 -0.1147 -0.1069 -0.0809 -0.2944 0.1438 0.0325 -0.0755 0.1370 -0.1712 -0.0102 -0.0241 0.0319 0.0313 -0.0865 -0.0030 -0.0165 0.0628 0.1093 0.1109 -0.0864 0.0077 -0.1214 -0.1114 -0.0007 0.1533 -0.0770 0.0371 -0.0226 0.1117 -0.1089 0.0033 0.0553 0.1101 0.1544 0.0086 -0.1492 -0.0742 -0.1062 0.2350 -0.0616 0.0748 -0.0192 0.0889 -0.0765 -0.1402 -0.1422 0.0488 -0.0177 -0.0196 0.1419 0.0292 0.0198 0.1588 -0.0804 0.0697 0.0835 -0.0244 0.0216 -0.1166 -0.1148 0.0105 0.0722 0.2585 -0.0667 0.0187 -0.0082 -0.1933 -0.0439 -0.1795 0.0840 -0.0888 0.0100 -0.0545 0.0304 -0.0600 0.0490 0.0739 0.1712 -0.0194 -0.2138 -0.0840 0.1355 -0.1072 0.0961 0.0124 0.1437 -0.1961 -0.0198 -0.1208 0.2908 0.0825 0.1379 -0.1058 -0.0469 -0.0272 0.1098 -0.0278 0.0702 -0.2052];
%v=[0.0888 -0.1147 -0.1069 -0.0809 -0.2944 0.1438 0.0325 -0.0755 0.1370 -0.1712 -0.0102 -0.0241 0.0319 0.0313 -0.0865 -0.0030 -0.0165 0.0628 0.1093 0.1109 -0.0864 0.0077 -0.1214 -0.1114 -0.0007 0.1533 -0.0770 0.0371 -0.0226 0.1117 -0.1089 0.0033 0.0553 0.1101 0.1544 0.0086 -0.1492 -0.0742 -0.1062 0.2350 -0.0616 0.0748 -0.0192 0.0889 -0.0765 -0.1402 -0.1422 0.0488 -0.0177 -0.0196 0.1419 0.0292 0.0198 0.1588 -0.0804 0.0697 0.0835 -0.0244 0.0216 -0.1166 -0.1148 0.0105 0.0722 0.2585 -0.0667 0.0187 -0.0082 -0.1933 -0.0439 -0.1795 0.0840 -0.0888 0.0100 -0.0545 0.0304 -0.0600 0.0490 0.0739 0.1712 -0.0194 -0.2138 -0.0840 0.1355 -0.1072 0.0961 0.0124 0.1437 -0.1961 -0.0198 -0.1208 0.2908 0.0825 0.1379 -0.1058 -0.0469 -0.0272 0.1098 -0.0278 0.0702 -0.2052];
for k=1:100
u(k)=1;
end
x10=0;
x20=K;
R=1;
H=[1,0];
X0=[x10+r1;x20+r2]; %初始集合
X1=X0(1,:); %赋初值
X2=X0(2,:);
x1(1,1)=x10;
x2(1,1)=x20;
y(1,1)=0;
for t=1:100
he1=0;
he2=0;
he3=0;
he4=0;
% 一阶系统(把K扩展为状态)
x1(1,t+1)=x1(1,t)-ts/T*x1(1,t)+x2(1,t)*ts/T*u(t)+w(t);
x2(1,t+1)=x2(1,t)+w(t);
y(1,t+1)=x1(1,t+1)+v(t);
for k=1:N
X1(1,k)=X1(1,k)-ts/T*X1(1,k)+X2(1,k)*ts/T*u(k); %集合预报
X2(1,k)=X2(1,k);
y1(1,k)=y(1,t)+v(t); %有噪声的测量
%Y(1,k+10)=X1(1,k+1);
end
for i=1:10
he1=he1+X1(1,i);
he2=he2+X2(1,i);
end
xp1=1*(he1)/N;
xp2=1*(he2)/N;
xp=[xp1;xp2]; %集合平均
X=[X1;X2];
for j=1:10
XP(:,j)=(X(:,j)-xp); %偏差矩阵
end
B=XP*XP'*inv(N-1); %背景误差协方差
Kg=B*H'*inv(H*B*H'+R); %增益矩阵
X=X+Kg*(y1-H*X); %集合修正
for a=1:10
he3=he3+X(1,a);
he4=he4+X(2,a);
end
Y(1,t)=he3/N; %EnKF估计输出
Y(2,t)=he4/N;
error(1,t)=(x2(1,t)-Y(2,t))/x2(1,t);
end
figure(1)
t = 1 : 100;
subplot(2,1,1)
plot(t,x2(1,t),'b.',t,Y(2,t),'r.');hold on;
% set(gca,'FontSize',10); set(gcf,'Color','White');
xlabel('采样'); ylabel('x2 state');
legend('真实值', 'EnKF估计值');
%figure(2)
%t = 1 : 100;
subplot(2,1,2)
plot(t,error(1,t),'k-');hold on;
% set(gca,'FontSize',10); set(gcf,'Color','White');
xlabel('采样'); ylabel('相对误差');
%legend('真实值', 'EnKF估计值');
% figure(3)
% t = 1 : 100;
% %subplot(2,1,1)
% plot(t,x1(1,t),'b.',t,Y(1,t),'k-');hold on;
% % set(gca,'FontSize',10); set(gcf,'Color','White');
% xlabel('采样'); ylabel('x1 state');
% legend('真实值', 'EnKF估计值');


阿里matlab建模师
- 粉丝: 5004
- 资源: 2908
最新资源
- 三段式电流保护Matlab Simulink仿真模型与实验:原理、相间距离保护及整定分析(多版本含操作指南),三段式电流保护Matlab Simulink仿真模型与实验:涵盖模型仿真文件、操作说明、保
- 批量下载源码:编译的Python whl包生成及其自动化源码获取方法,编译的Python二进制whl包批量下载源码解析与实现,编译的二进制Python的whl包批量下载源码 ,编译的二进制; Pyth
- 基于CFD的轴流风叶流体力学分析:高效能设计的策略与探讨,利用CFD计算流体力学分析轴流风叶的性能及优化设计,cfd 计算流体力学 分析轴流风叶 ,关键词:CFD;计算流体力学;轴流风叶;流场分析;气
- Matlab Simulink三闭环直流电机调速系统仿真:深度解析位置环、速度环与电流环的PI控制及PWM调制技术,附H桥正反转控制及详尽说明文档(R2022a版本),Matlab Simulink三
- 基于形状的跨平台模板匹配技术:Windows、Linux、ARM平台通用的C++实现与OpenCV、HALCON的替代方案,自研跨平台C++模板匹配技术:Windows、Linux、ARM通用,基于形
- 基于OpenCV的跨平台形状模板匹配:C++与C#在Windows与Linux下的应用与实现,适用于ARM等不同架构 ,基于OpenCV的跨平台模板匹配算法:C++与C#实现,支持Windows、Li
- 基于灰狼优化的高斯过程回归算法的锂电池SOH估算学习案例:利用NASA锂离子电池老化数据集的实验分析与MATLAB代码实现,基于Matlab的灰狼优化GPR算法锂电池SOH估算学习案例,电池SOH估
- 污水流量远程监测系统的设计
- 杏鲍菇栽培环境因子远程监测系统及模糊PID控制器的设计
- 医院室内空气质量实时监测系统
- 油浸式变压器三维温度场建模及在线温度监测系统研究
- 血液透析治疗仪的控制系统研究
- LCC-MMC三端混合直流系统:基于PSCAD的仿真研究与分析,LCC-MMC三端混合直流系统仿真分析与优化研究:基于PSCAD软件的模拟研究,LCC-MMC三端混合直流系统pscad仿真 ,LCC
- 诱芯诱捕器自动计数系统的研发
- 基于HTML+JavaScript等技术的心理咨询平台设计源码
- 光伏储能并网三端口仿真研究:DC升压与充放电管理、双PI控制及直流母线电压恒定策略探讨,“光伏储能并网三端口仿真:DC升降压、充放电管理、双向转换与稳压控制”,光伏 储能 并网 三端口 仿真 光伏 :
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈


