遗忘因子递推最小二乘参数估计(FFRLS)
基于遗忘因子的最小二乘法电池参数辨识
最小二乘法是系统辨识中最常用的一种估算方法。为了克服最小二乘法存在”数据饱和”的问题,我们通常采用含有遗忘因子的递推最小二乘法(Forgetting Factor Recursive Least Square,FFRLS)算法进行电池模型的参数辨识。
1、二阶RC数学模型的建立
一般来说,建立精准的电池模型我们需要考虑以下几点:该模型能够准确的描述电池的动态及静态特性;该模型复杂度较低,易于计算;该模型工程实现较为简单可行。综合考虑,我们选择二阶RC等效电路模型。为了对电池等效电路模型进行参数辨识,我们需要把电池模型转化为可应用最小二乘法辨识的数学形式。具体的递推公式可以参考电池SOC相关文献。
2、遗忘因子递推最小二乘法辨识
系统参数
Qn = 2.59*3600;
ff = 1;
N = length(Ut); % 数据长度
dt=1; % 【数据采样间隔】
计算SOC实验数据
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参数在线辨识算法
function [R0,R1,R2,C1,C2] = FFRLS(Ut,I,Qn,P,ff,cs0)N = length(Ut); %数据长度%SOC计算与OCV计算
soc = nan(1,N);
ocv = nan(1,N);
soc(1)=1;
ocv(1)=Ut(1);
for i=2:Nsoc(i)=soc(i-1)-I(i)/(Qn);ocv(i)=polyval(P,soc(i));
endev = zeros(1,N);
for i=1:Nev(i)=ocv(i)-Ut(i);
end%%%2.RLS递推最小二乘辨识
% cs0=[ 1.2761;
% -0.2899;
% 0.0365;
% -0.0449;
% 0.0095];% cs0=[ 1.1414;
% -0.1640;
% 0.0709;
% -0.0796;
% 0.0109];p0=10^(-1)*eye(5,5);
cs=[cs0,cs0,zeros(5,N-1)]; %被辨识参数矩阵的初始值及大小
e=zeros(5,N); %相对误差的初始值及大小
error1 = zeros(1,N);
%%%%2.2计算增益矩阵以及求辨识参数
for k=3:N %开始求K h1=[ev(k-1),ev(k-2),I(k),I(k-1),I(k-2)]';q=h1'*p0*h1+ff; %遗忘因子k1=p0*h1/q; %求出K(k)的值error1(k)=ev(k)-h1'*cs0; %求电压实验值和理论值误差cs1=cs0+k1*error1(k);e1=cs1-cs0; %求参数当前值与上一次的值的差值e2=e1./cs0 ; %求参数的相对变化e(:,k)=e2; %把当前相对变化的列向量加入误差矩阵的最后一列 cs0=cs1; %新获得的参数作为下一次递推的旧参数cs(:,k)=cs1; %把辨识参数c 列向量加入辨识参数矩阵的最后一列 p1=(p0-k1*h1'*p0)/ff; %求出 p(k)的值p0=p1; %递推
end %大循环结束%%%3.分离参数
a1=cs(1,1:N); a2=cs(2,1:N); a3=cs(3,1:N); a4=cs(4,1:N); a5=cs(5,1:N);
%==========================输出结果=============================
a0=1./(1-a1-a2);
R0=-a5./a2;
b1=-a2.*a0;
b2=a0.*(a1+2.*a2);
b3=a0.*(a3+a4+a5);
b4=-a0.*(a4+2.*a5);
dd=b2.*b2-4.*b1;
tt=[(b2+sqrt(dd))/2;(b2-sqrt(dd))/2];
t2=abs(tt(1,:));
t1=abs(tt(2,:));
R2=(t2.*b3+t1.*R0-b4)./(t2-t1);
R1=abs(b3-R0-R2);
C1=t1./R1;
C2=t2./R2;
3、辨识结果

端电压误差

SOC 估计 && SOC 误差

相关文章:
遗忘因子递推最小二乘参数估计(FFRLS)
基于遗忘因子的最小二乘法电池参数辨识 最小二乘法是系统辨识中最常用的一种估算方法。为了克服最小二乘法存在”数据饱和”的问题,我们通常采用含有遗忘因子的递推最小二乘法(Forgetting Factor Recursive Least Square,FFRLS)算法进行电池模型的参数辨识。 1、二…...
【redis进阶】基础知识简要回顾
1. 常见功能介绍 聚合统计 使用list集合的差集、并集来统计 排序统计 SortedSet(ZSet)统计,再利用分页列出权重高的元素 二值状态统计 BitMap存储,获取并统计 SETBIT uid:sign:3000:202008 2 1 GETBIT uid:sign:3000:202008 2…...
HTML5-3-表格
文章目录 属性边框属性标题跨行和跨列单元格边距 HTML 表格由 <table> 标签来定义。 tr:tr 是 table row 的缩写,表示表格的一行。td:td 是 table data 的缩写,表示表格的数据单元格。th:th 是 table header的缩…...
Spring Boot + Vue的前后端项目结构及联调查询
Spring Boot Vue的前后端项目结构及联调查询 当你刚开始学习前后端开发时,可能会感到有些困惑和不知所措。下面是一些建议,希望能为你的学习之旅提供一些启示: 建立坚实的基础知识:学习前后端开发的第一步是建立坚实的基础知识。…...
Transformer貌似也是可以使用state递归解码和训练的
import paddle import numpy as npclass HeadLoss(paddle.nn.Layer):def __init__(self):super(HeadLoss, self).__init__()...
振弦采集仪应用地铁隧道安全监测详细解决方案
振弦采集仪应用地铁隧道安全监测详细解决方案 随着城市化进程的不断加快,地铁作为一种高效、便捷、环保的交通方式已经成为现代城市不可或缺的一部分。因此,对地铁的安全性也越来越重视,一般二三线以上的城市在不断发展中,地铁做…...
2023 IntelliJ IDEA下载、安装教程, 附详细图解
文章目录 下载与安装IDEA推荐阅读 下载与安装IDEA 首先先到官网下载最新版的IntelliJ IDEA, 下载后傻瓜式安装就好了 官网下载地址:https://www.jetbrains.com/ 1、下载完后在本地找到该文件,双击运行 idea 安装程序 2、点击 Next 3、选择安装路径&…...
波卡生态重要动态一览:w3ndi 推出,首尔、新加坡、里斯本活动接踵而至
Web3 市场冷却,但新的社区合作与推进仍在发生,技术和产品依然不断迭代。OneBlock 为你介绍波卡生态近期值得你关注的动态,以及接下来重要的行业活动。 波卡生态重要进展 1、最新 Referendum#110,提议对验证器配置进行多项修改&a…...
成都瀚网科技有限公司:抖音商家怎么免费入驻?
随着抖音成为全球最受欢迎的短视频平台之一,越来越多的商家开始关注抖音上的商机。抖音商家的进驻可以帮助商家扩大品牌影响力和销售渠道。那么,如何免费进入抖音成为商家呢?下面就为大家介绍一下具体步骤。 1、抖音商家如何免费注册…...
vue Router从入门到精通
文章目录 介绍使用多级路由实例 路由的query参数传递参数接收参数实例 命名路由作用使用 params参数声明接收params参数传参接收参数实例 props配置实例 router-link的replace属性编程式路由导航作用使用实例 缓存路由组件两个新的生命周期钩子实例 路由守卫作用分类全局守卫独…...
【100天精通Python】Day56:Python 数据分析_Pandas数据清洗和处理(删除填充插值,数据类型转换,去重,连接与合并)
目录 数据清洗和处理 1.处理缺失值 1.1 删除缺失值: 1.2 填充缺失值: 1.3 插值: 2 数据类型转换 2.1 数据类型转换 2.2 日期和时间的转换: 2.3 分类数据的转换: 2.4 自定义数据类型的转换: 3 数…...
phpstudy本地快速搭建网站,并外网访问【无公网IP】
文章目录 使用工具1. 本地搭建web网站1.1 下载phpstudy后解压并安装1.2 打开默认站点,测试1.3 下载静态演示站点1.4 打开站点根目录1.5 复制演示站点到站网根目录1.6 在浏览器中,查看演示效果。 2. 将本地web网站发布到公网2.1 安装cpolar内网穿透2.2 映…...
WebSocket的那些事(5-Spring STOMP支持之连接外部消息代理)
目录 一、序言二、开启RabbitMQ外部消息代理三、代码示例1、Maven依赖项2、相关实体3、自定义用户认证拦截器4、Websocket外部消息代理配置5、ChatController6、前端页面chat.html 四、测试示例1、群聊、私聊、后台定时推送测试2、登录RabbitMQ控制台查看队列信息 五、结语 一、…...
【数据结构】单链表详解
当我们学完顺序表的时候,我们发现了好多问题如下: 中间/头部的插入删除,时间复杂度为O(N)增容需要申请新空间,拷贝数据,释放旧空间。会有不小的消耗。增容一般是呈2倍的增长,势必会有一定的空间浪费。例如当…...
dql的执行顺序
在 SQL 查询语言中,DQL(Data Query Language)是用于从数据库中检索数据的部分。SQL 查询的执行顺序通常按照以下步骤进行: FROM 子句:查询首先确定要从哪些表中检索数据。在 FROM 子句中列出的表格被称为源表ÿ…...
java的动态代理如何实现
一. JdkProxy jdkproxy动态代理必须基于接口(interface)实现 接口UserInterface.java public interface UserService {String getUserName(String userCde); }原始实现类:UseServiceImpl.java public class UserServiceImpl implements UserSerice {Overridepub…...
Java--日志管理
日志管理 作用: 设置日志级别,决定什么日志信息应该被输出、什么日志信息应该被忽略。 基本工具 见的日志管理用具有:JDK logging(配置文件:logging.properties) 和log4j(配置文件:log4j.properties) 。…...
Pygame中Sprite类的使用2
4 让僵尸动起来 让僵尸能够动起来,也就是让僵尸从屏幕右边走到屏幕左边,此时只需要使用while循环,改变僵尸图片的x轴坐标即可,代码如下所示。 while True:screen.fill((255,255,255))z1.rect.x - 5z1.draw(screen)z1.update()if…...
排队时延与流量强度
流量强度 设R为传输速率,a表示分组到达队列的平均速率,假定所有分组都是由L比特组成的,则比特到达队列的平均速率为La。比率 L a R \frac{La}{R} RLa被成为流量强度。 根据流量强度的定义,我们可以很直观的得出以下结论&#x…...
mysql:如何设计互相关注业务场景
目录 业务场景 业务问题: 数据库表设计: like(关注表): friend(朋友表) 并发场景下,SQL语句执行逻辑 比较 A 和 B 的大小,如果 A执行下面的逻辑:<&…...
国标GB28181视频监控平台EasyCVR破解偏远地区监控难题的应用实践
在数字化治理全面推进的当下,视频监控系统已然成为保障公共安全、提升基层管理效率的核心基础设施。但对于地形复杂、网络基础薄弱、设备条件参差不齐的偏远地区来说,传统视频监控方案部署面临重重困境,面对地理环境与技术条件的双重限制&…...
如何高效完成输入法词库转换:实用工具指南
如何高效完成输入法词库转换:实用工具指南 【免费下载链接】imewlconverter ”深蓝词库转换“ 一款开源免费的输入法词库转换程序 项目地址: https://gitcode.com/gh_mirrors/im/imewlconverter 你是否曾经因为更换输入法而烦恼词库无法迁移?是否…...
自动化代码审查:OpenClaw+nanobot分析Git提交差异
自动化代码审查:OpenClawnanobot分析Git提交差异 1. 为什么需要轻量级代码审查方案 作为独立开发者,我经常面临一个困境:既希望保持代码质量,又不愿意搭建复杂的CI/CD系统。传统的代码审查工具要么需要企业级部署,要…...
MDK分散加载文件(.sct)解析与嵌入式内存管理
MDK分散加载文件(.sct)剖析及应用1. 项目概述1.1 分散加载概念分散加载(Scatter Loading)是一种允许开发者精确控制代码和数据在存储器中布局的技术。通过分散加载文件,我们可以指定程序的特定部分(如代码段、数据段)在存储器的特定地址空间运…...
Phi-4-Reasoning-Vision商业应用:跨境电商产品图→合规标签→营销文案生成
Phi-4-Reasoning-Vision商业应用:跨境电商产品图→合规标签→营销文案生成 1. 项目背景与价值 跨境电商卖家每天面临三大核心挑战:产品图拍摄成本高、合规标签制作繁琐、多语言营销文案创作耗时。传统解决方案需要分别使用图像处理软件、标签生成工具和…...
别让AI被‘带坏’:手把手教你用开源工具复现大模型越狱攻击(附防御实战)
大模型安全攻防实战:从开源工具复现到防御策略部署 当ChatGPT在2022年底掀起AI浪潮时,很少有人预料到三年后的大模型会面临如此复杂的对抗攻击。作为一名长期从事AI安全测试的工程师,我亲眼见证了攻击手段从最初的简单提示注入发展到如今的神…...
STM32F103ZET6通过IIC驱动VL53L0X实现多模式激光测距
1. VL53L0X激光测距模块初探 第一次拿到VL53L0X这个小玩意儿时,我完全被它的精准度震惊了。这个比硬币大不了多少的模块,居然能实现毫米级的测距精度!VL53L0X是ST公司推出的新一代飞行时间(ToF)激光测距传感器,它采用940nm不可见激…...
Keil5嵌入式开发场景联想:Cosmos-Reason1-7B辅助生成硬件驱动注释与调试思路
Keil5嵌入式开发场景联想:Cosmos-Reason1-7B辅助生成硬件驱动注释与调试思路 1. 引言:从嵌入式调试到AI辅助编程 如果你用过Keil5这类嵌入式开发工具,肯定对那种感觉不陌生:面对着一行行寄存器配置代码,或者一个复杂…...
Oracle 11g在Windows上的快速部署:使用Docker容器简化安装与配置
Oracle 11g容器化部署实战:Windows平台高效开发环境搭建指南 对于需要频繁搭建Oracle测试环境的开发者而言,传统安装方式耗时且容易出错。本文将介绍如何利用Docker技术,在Windows系统上快速部署Oracle 11g数据库,实现开发环境的秒…...
从零开始:GitLab 自托管部署与 DevOps 环境搭建指南
1. 为什么选择自托管 GitLab? 对于中小型技术团队来说,代码管理是研发流程的核心命脉。我见过太多团队在初期使用第三方托管服务,随着业务增长却面临三大痛点:代码安全焦虑、定制化需求无法满足、CI/CD 集成受限。自托管 GitLab 就…...
