自适应迭代扩展卡尔曼滤波算法AIEKF估计SOC VS 扩展卡尔曼估计SOC
自适应迭代扩展卡尔曼滤波算法(AIEK)
自适应迭代扩展卡尔曼滤波算法(AIEK)是一种滤波算法,其目的是通过迭代过程来逐渐适应不同的状态和环境,从而优化滤波效果。
该算法的基本思路是在每一步迭代过程中,根据所观测的数据和状态方程,对滤波器的参数进行自适应调整,以便更好地拟合实际数据的分布。具体而言,该算法包括以下步骤:
初始化:首先,为滤波器的初始参数设定一个初始值,这些参数包括状态转移矩阵、测量矩阵、过程噪声协方差和测量噪声协方差等。
预测:根据当前的状态方程和滤波器参数,对下一个状态进行预测,并计算预测误差。
校正:根据预测结果和实际观测数据,对预测进行修正,以便更好地拟合实际数据的分布。
参数更新:根据校正结果,自适应地调整滤波器参数,以便在下一个迭代过程中更好地拟合数据。
该算法具有自适应性和迭代性,能够逐渐适应不同的状态和环境,从而优化滤波效果。在实际应用中,可以根据具体问题选择不同的滤波器参数调整方法和迭代策略,以获得更好的滤波效果。
加载待辨识工况数据
load FUDS.mat; %导入数据
Ut = FUDS.Voltage; %测量电压
I = FUDS.Current; %测量电流
cs0=[ 1.2761;-0.2899;0.0365;-0.0449;0.0095];
计算SOC实验数据
soc_act = nan(1,N);
ocv = nan(1,N);
soc_act(1)=1;
ocv(1)=Ut(1);
for i=2:Nsoc_act(i)=soc_act(i-1)-I(i)/(Qn);nihe=[1.936,-7.108,9.204,-4.603,1.33,3.416];ocv(i)=polyval(nihe,soc_act(i));
end
FFRLS参数在线辨识算法
[R0,R1,R2,C1,C2] = FFRLS(Ut,I,Qn,nihe,ff,cs0);% 辨识参数图
t=1:N;figure;
set(gcf,'Units','centimeters','Position',[2 2 19.6 8]);
plot(t,R0,'r.-','LineWidth',1);
legend('R0(Ω)');figure;
set(gcf,'Units','centimeters','Position',[2 2 19.6 8]);
plot(t,R1,'g-.','LineWidth',1);
legend('R1(Ω)');figure;
set(gcf,'Units','centimeters','Position',[2 2 19.6 8]);
plot(t,C1,'b-','LineWidth',1);
legend('C1(F)');figure;
set(gcf,'Units','centimeters','Position',[2 2 19.6 8]);
plot(t,R2,'c--','LineWidth',1);
legend('R2(Ω)');figure;
set(gcf,'Units','centimeters','Position',[2 2 19.6 8]);
plot(t,C2,'m-','LineWidth',1);
legend('C2(F)');
EKF滤波算法
SOCest_init=0.9;
P0=1e-3; %状态误差协方差初值
Q=1e-8; %过程噪声期望值
R=1; %观测噪声期望值[SOC_ekf,volt]=EKF(I,Ut,dt,Qn,SOCest_init,N,Q,R,nihe,P0,R0,R1,R2,C1,C2);
error_V_EKF= Ut'-volt;
error_SOC_EKF= soc_act-SOC_ekf; %滤波处理后的误差
AIEKF滤波算法
X_aiekf=zeros(3,N); %定义状态向量x
X_aiekf(:,1)=[0;0;SOCest_init];%状态向量x初值设定
Q=1e-8;
R=1;
P0=0.01*eye(3);%定义协方差
f=0.1;
M=30; %误差积累值窗口系数
[SOC_aiekf,Um]=AIEKF(I',Ut',X_aiekf,f,M,Q,R,N,P0,R0,R1,R2,C1,C2,Qn,nihe);error_V_AIEKF= Ut'-Um;
error_SOC_AIEKF= soc_act-SOC_aiekf; %滤波处理后的误差
绘图
t=1:N;
figure;
set(gcf,'Units','centimeters','Position',[2 2 19.6 8]);
plot(t,Ut,'r',t,volt,'b',t,Um,'g');
legend('端电压真实值','端电压EKF估计值','端电压AIEKF估计值'); figure;
set(gcf,'Units','centimeters','Position',[2 2 19.6 8]);
plot(t,error_V_EKF,'b',t,error_V_AIEKF,'g');
legend('EKF端电压误差','AIEKF端电压误差'); % SOC估计结果图
figure
hold on;box on;
plot(SOC_aiekf,'b');%AIEKF
plot(SOC_ekf,'k'); %EKF
plot(soc_act,'r');
legend('AIEKF','EKF','参考值')
xlabel('时间(s)')
ylabel('SOC')
axis([0 12000 0 1])figure
hold on;box on;
plot(100*error_SOC_EKF,'k');
plot(100*error_SOC_AIEKF,'b');
legend('EKF','AIEKF')
xlabel('时间(s)')
ylabel('SOC误差百分数(%)')
axis([0 12000 -10 15])
仿真结果
FUDS工况下参考SOC曲线
DST工况下参考SOC曲线
FUDS工况下SOC估计对比图(EKF与参考值)
FUDS工况下SOC估算绝对误差曲线图
DST工况下SOC估计对比图(EKF与参考值)
DST工况下SOC估算绝对误差曲线图
FUDS工况下SOC估算曲线图(参考值 EKF AIEKF)
SOC估算不同算法绝对误差曲线图
DST工况下SOC估算曲线图(参考值 EKF AIEKF)
SOC估算不同算法绝对误差曲线图
相关文章:
自适应迭代扩展卡尔曼滤波算法AIEKF估计SOC VS 扩展卡尔曼估计SOC
自适应迭代扩展卡尔曼滤波算法(AIEK) 自适应迭代扩展卡尔曼滤波算法(AIEK)是一种滤波算法,其目的是通过迭代过程来逐渐适应不同的状态和环境,从而优化滤波效果。 该算法的基本思路是在每一步迭代过程中&a…...
2023-亲测有效-git clone失败怎么办?用代理?加git?
git 克隆不下来,超时 用以下格式: git clone https://ghproxy.com/https://github.com/Tencent/ncnn.git 你的网站前面加上 https://ghproxy.com/ 刷的一下就下完了!!...
An Empirical Study of GPT-3 for Few-Shot Knowledge-Based VQA
本文是LLM系列文章,针对《An Empirical Study of GPT-3 for Few-Shot Knowledge-Based VQA》的翻译。 GPT-3对基于小样本知识的VQA的实证研究 摘要引言相关工作方法OK-VQA上的实验VQAv2上的实验结论 摘要 基于知识的视觉问答(VQA)涉及回答需…...
2023高教社杯数学建模B题思路分析 - 多波束测线问题
# 1 赛题 B 题 多波束测线问题 单波束测深是利用声波在水中的传播特性来测量水体深度的技术。声波在均匀介质中作匀 速直线传播, 在不同界面上产生反射, 利用这一原理,从测量船换能器垂直向海底发射声波信 号,并记录从声波发射到…...
02-docker network
Docker网络 Docker网络是什么 Docker 网络是 Docker 容器之间进行通信和连接的网络环境。在 Docker 中,每个容器都有自己的网络命名空间,这意味着每个容器都有自己的网络接口、IP 地址和网络配置 Docker网络启动后,会在宿主机中建立一个名…...
栈和队列经典笔试题
文章目录 栈和队列的回顾💻栈🩳队列👟 栈和队列经典笔试题🔋有效的括号🎸用队列实现栈 🕯用栈实现队列🔭设计循环队列🧼 安静的夜晚 你在想谁吗 栈和队列的回顾💻 栈&am…...
No5.9:多边形内角和公式
#!/usr/bin/python # -*- coding: UTF-8 -*-#指定了编码,中文就能正常展示 # codingutf-8def calc_degree(n):#n代表边形的总数degree (n - 2) * 180#多边形内角和公式return degreeprint(calc_degree(3))#三角形的内角和 print(calc_degree(4))#四边形的内角和【小…...
EditPlus 配置python 及Anaconda中的python
若不是pycharm vscode 太大,太占内存,谁会想到用Notepad,EdirPlus 配置python呢!!! 话不多说,首先你自己安装好EditPlus。开始 菜单栏 选择 工具 -> 配置自定义工具 组名:python 命令:d:\*…...
linux 编译 llvm + clang
1. 需要下载以下三个压缩包,下载源码:Release LLVM 15.0.7 llvm/llvm-project GitHub clang-15.0.7.src.tar.xzcmake-15.0.7.src.tar.xzllvm-15.0.7.src.tar.xz 2. 解压后将 clang 源码放入 llvm/tools/ 下 3. 将解压后的 cmake-15.0.7…...
Mybatis 框架 ( 四 ) QueryWrapper
4.5.Wrapper条件构造器 Wrapper : 条件构造抽象类,最顶端父类 AbstractWrapper : 用于查询条件封装,生成 sql 的 where 条件 QueryWrapper : Entity 对象封装操作类,不是用lambda语法 UpdateWrapper &am…...
数据结构和算法之二分法查找
二分法查找,也称作二分查找或折半查找,是一种在有序数组中快速查找特定元素的算法。它采用分治法思想,通过将问题划分为规模更小的子问题,并且通过对子问题的查找来解决原问题。 二分法查找的思路是不断地将数组一分为二…...
系统日期如何在页面展示,框架是react或者vue3
安装插件dayjs或者moment.js 2.使用setInterval(useInterval)或者requestAnimationFrame react项目中useInterval的代码示例: import React, {useState } from react; import { useInterval } from "ahooks"; import moment fro…...
(二十二)大数据实战——Flume数据采集之故障转移案例实战
前言 本节内容我们完成Flume数据采集的故障转移案例,使用三台服务器,一台服务器负责采集nc数据,通过使用failover模式的Sink处理器完成监控数据的故障转移,使用Avro的方式完成flume之间采集数据的传输。整体架构如下:…...
前端小案例3:Flex弹性布局行内元素宽度自适应
前端小案例3:Flex弹性布局行内元素宽度自适应 项目背景:需要在一行上展示空调设备的三个模式(制冷、制热、通风)或者两个模式(制冷、制热);因为不同产品的模式数量不同,因此需要让模…...
纳尼?小说还要用看的?这可以听!无广!
这是一款听书软件,可以自定义书源,自己设置书架,页面简单易操作,无广告。 支持直接搜索书名,链接,图文,本地文件等方式听书 拥有30多主播声音,分类细致 支持倍速、添加BGM等...
【微服务部署】四、Jenkins一键打包部署NodeJS(Vue)前端项目步骤详解
本文介绍使用Jenkins一键将NodeJS(Vue)前端项目打包并上传到生产环境服务器,这里使用的是直接打包静态页面,发送到远程服务器Nginx配置目录的方式,首先确保服务器环境配置好,安装Nginx,运行目录…...
【前端】禁止别人调试自己的前端页面代码
无限debugger 前端页面防止调试的方法主要是通过不断 debugger 来疯狂输出断点,因为 debugger 在控制台被打开的时候就会执行由于程序被 debugger 阻止,所以无法进行断点调试,所以网页的请求也是看不到的代码如下: /** * 基础禁止…...
UDP的可靠性传输
UDP系列文章目录 第一章 UDP的可靠性传输-理论篇(一) 第二章 UDP的可靠性传输-理论篇(二) 文章目录 UDP系列文章目录前言1.TCP 和UDP格式对比2.UDP分片原理3.UDP 传输层应该注意问题4.MTU5.UDP 分片机制设计重点 一、ARQ协议什么…...
科研笔记:TPAMI submission guideline
1 author information Author Information - IEEE Transactions on Pattern Analysis and Machine Intelligence | IEEE Computer Society Digital Library 1.1 会议期刊extension 当一个TPAMI的提交基于之前的会议论文时,IEEE要求期刊论文是之前出版物的“实质…...
Python文件操作(02):打开文件、读文件、关闭文件
一、读文本文件 打开文件读文件内容关闭文件 1、在读取文件内容后进行解码操作 """ 1. 打开文件- 路径:相对路径:当前项目(读文件.py)所在的目录下查找需要读取的文件绝对路径:文件--右键--Copy Pat…...
C语言访问Mysql
文章目录 C语言访问Mysql1. 环境设置2. mysql接口介绍(1) 初始化mysql_init()(2) 链接数据库mysql_real_connect(3) 下发mysql命令mysql_query()(4) 获取执行结果mysql_store_result(5) 释放结果集mysql_free_result()(6) 获取结果行数mysql_num_rows(7) 获取结果列数mysql_num…...
软件设计师(十)网络与信息安全基础知识
计算机网络是由多台计算机组成的系统,与传统的单机系统、多机系统相比有很大的区别。 一、网络概述 计算机网络是计算机技术与通信技术相结合的产物,它实现了远程通信、远程信息处理和资源共享。 1、计算机网络的概念 计算机网络的定义是利用通信设备…...
蓝桥杯官网填空题(换零钞)
题目描述 本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。 X 星球的钞票的面额只有:100 元,5 元,2 元,1 元,共 4 种。 小明去 X 星旅游,他手里只有 2 张…...
JavaFX之Stage
Stage(舞台),它代表了一个顶级窗口,是JavaFX应用程序的主要容器。Stage可以包含多个场景(Scene),每个场景可以包含各种用户界面元素(如按钮、文本框等)。Stage提供了许多…...
深度翻页导出导致慢SQL,mysqlCPU飙升优化方案
慢SQL原因分析: 1.深度翻页 2.多表JOIN 3. 大IN 4. id倒排序 本文针对深度翻页的优化进行探讨 方案1: 将limit offset, pageSize的方式改成 id > xx limit pageSize. 这样能走Id索引,提高速度。 缺点:不能使用多线程…...
小谈设计模式(1)—总序
小谈设计模式(1)—总序 开始操作设计模式总论设计模式是什么组成要素模式名称问题描述解决方案效果描述 设计模式有什么作用提供可重用的解决方案提高代码的可读性和可维护性促进代码的可扩展性提高代码的灵活性和可重用性促进团队合作和沟通作用总结 为…...
【c++】stringstream基础:实现数据类型转换和字符串分割
传统实现整型转换为字符串需要使用itoa或者sprintf,对于itoa和atoi的使用可以看文章: atoi和itoa极简无废话概述 但是用这两个函数进行转换时,所需要的空间事先不确定,所以可能造成程序崩溃,今天介绍的stringstream可…...
Java基础学习笔记-5
前言 Java编程语言是一门广泛应用于软件开发领域的高级编程语言。它的强大特性和跨平台性使其成为许多开发者的首选语言。本文将介绍一些Java编程的关键概念,包括函数重载、可变参数、值传递、递归等,这些概念是Java编程的基础,对于理解和掌…...
合同交付类项目如何高效管理?
美国项目管理协会(PMI)保罗格蕾斯曾说:“当今社会,一切都是项目,一切也将成为项目。”在“万事皆项目”的背景下,企业在运营过程中会产生大量的项目型业务活动,例如:举办市场活动、产品研发、进行企业内训、采购招标、工程建设等等。那么按照…...
两性养生网站源码 生活类减肥网站源码 健康网模板源码 支持QQ登录和百度主动推送
本套模板非常适合生活类,两性类,减肥类等等类型的网站,这类型网站比较好做流量,因为客户群体众多, 可以自行改内容为其他类型网站模板总体非常简洁漂亮,配色合理,视觉舒服,并且配合…...
营销型企业网站建设教案/百度引擎的搜索方式是什么
首先创建二叉树,然后对二叉树遍历进行了单元测试。只要将相应的注释取消,便可以成功运行。 /******************************************** 二叉树遍历前序、中序、后序的递归和非递归实现 ********************************************/ #include<…...
全国少工委进入公众号/阜阳seo
题目链接:https://leetcode.com/problems/remove-duplicates-from-sorted-array/ 解题思路: 要求对一个排序数组的数字去重,而且不能申请额外的数组,返回不重复的数字。 这个思路比较简单,首先循环从第二个元素开始&am…...
修改wordpress菜单/360推广官网
环形结构上的动态规划问题,是一种特殊的区间动态规划问题。由于存在“环形后效性”,所以不满足动态规划算法的“无后效性”约束条件。故常将环形结构上的动态规划问题,通过“断环为链”策略转化为线性动态规划问题求解。所谓“无后效性”&…...
素材网站哪个好/中山口碑seo推广
SPFA 代替 Dijkstra 计算最短路 题目 题目链接 题解 SPFA 一般时间复杂度为 O(m)O(m)O(m),最坏情况下为 O(nm)O(nm)O(nm),本质是对 Bellman_ford 算法的优化。可以用于计算正、负边权的最短路,但不能取代 Bellman_ford 计算有步数限制的最…...
乌鲁木齐市做平台网站/免费seo教程资源
👏👏👏 哈喽!大家好,我是【学无止境小奇】,一位热爱分享各种技术的博主!😍😍😍 ⭐【学无止境小奇】的创作宗旨:每一条命令都亲自执行过…...
网站调用字体库/灰色关键词排名方法
问题: Python操作数据库出现链接超时断开问题: pymysql.err.OperationalError: (2006, "MySQL server has gone away (ConnectionAbortedError(10053, 你的主机中的软件中止了一个已建立的连接。, None, 10053, None))") 原因: …...