进阶篇,内附代码:锂电池二阶模型-离线与在线参数辨识

锂电池二阶模型-在线参数辨识

  • 背景
  • 二阶等效电路模型介绍
  • 二阶模型的离线参数辨识
  • 二阶模型的RLS表达式
  • 递推代码
  • 已知问题

背景

锂电池一阶戴维南等效模型的参数辨识方法,已经在前面两期详细地讲解了一轮。

  1. 一阶模型-离线参数辨识
  2. 一阶模型-在线参数辨识

本期继续讲解一下如何进行二阶模型的离线与在线参数辨识。
此篇推文继续使用论文《基于RLS方法的磷酸铁锂电池模型辨识及SOC估计策略研究》中的方法,作者为西南交通大学-郑卫同学。
另外这一系列博客文章的图片绝大多数都是截自论文,但是因为CSDN上传时会自动加上水印-CSDN博客名,因此不代表编者想侵犯文章版权。转载时,请将本段话一并贴上,保护原论文作者权益。

二阶等效电路模型介绍

二阶RC等效电路模型是在一阶RC模型的基础上再增加一个并联的RC回路得到的拓扑结构,这种结构表示考虑了电池的电荷扩散阻抗。理论上,等效电路模型的阶数越高,则对电池动态特性的反应越精确,但是同时使得电路结构变得复杂,也增大了计算量。如图3-3所示,其中C1表示浓差极化电容,R1表示浓差极化电阻,C2表示电化学极化电容,R2表示电化学极化电阻。

话不多说,直接上图和公式,截图自论文内容。
在这里插入图片描述
在这里插入图片描述

二阶模型的离线参数辨识

参考一阶的参数识别原理,一组RC变为两组RC,拟合一下即可,见如下代码。
注:有一定概率识别出来的参数是负值。

% 执行该脚本前,请确认simulink模型与该脚本文件是否在同一路径
clear all;  % 清除工作区中的所有变量
close all; % 关闭所有已打开的图形窗口
clc;           % 清空命令窗口的内容% 打印脚本开始的信息(可选)
fprintf('Script started.\n');% 这里开始编写你的MATLAB脚本内容...% 步骤1: 运行模型,并提取所需数据用于其他步骤(模型的数据已经通过设置,输入到工作区)
modelname = 'Battery.slx'; 
sim(modelname);Ut      = ScopeData4.signals(2).values; % Scope中的数据索引似乎从1开始
Ibat = ScopeData4.signals(3).values; cutOffIndex = 1;
% 截取电流截至后的电压
for i = 2 :  size(Ibat, 1)if Ibat(i - 1) > 0 &&  Ibat(i) <= 0cutOffIndex = i + 1;break;end
endUtNoneCurrent = Ut(cutOffIndex : size(Ut, 1));
timeNoneCurrent = ScopeData4.time(cutOffIndex : size(Ut, 1)) - ScopeData4.time(cutOffIndex - 1); % 获取时间向量
startSoc = ScopeData4.signals(1).values(cutOffIndex);% 获取电流,用于计算R1
dischgCurrent = ScopeData4.signals(3).values(cutOffIndex - 2);   % 基于SOC获取OCV -- 见论文的拟合公式
ocv = -95.82*(startSoc^8)+549.26*(startSoc^7)-1219.4*startSoc^6+1387.01*startSoc^5-883.38*startSoc^4+320.4*startSoc^3-64.45*startSoc^2+6.89*startSoc+2.91;
% 定义自定义函数模型 
fun = @(param,x) ocv - param(1)*exp(-x/param(2)) - param(3)*exp(-x/param(4)); % 初始参数估计 
init_param = [0.002, 2000, 0.002, 20000]; 
% 使用lsqcurvefit函数进行非线性最小二乘拟合
[param, ~] = lsqcurvefit(fun, init_param, timeNoneCurrent, UtNoneCurrent); % 输出拟合结果 
disp(['拟合参数:', num2str(param)]); % 计算并输出拟合曲线 
y_fit = fun(param, timeNoneCurrent); 
% 绘制原始数据与拟合曲线图 
plot(timeNoneCurrent, UtNoneCurrent, 'o',timeNoneCurrent, y_fit, '-');
legend('原始数据', '拟合曲线'); 
xlabel('x'); ylabel('y');

二阶模型的RLS表达式

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/51094.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

多线程初阶(三)- 线程案例

目录 1.单例模式 &#xff08;1&#xff09;饿汉模式 &#xff08;2&#xff09;懒汉模式 前言 懒汉式1-synchronized加锁 懒汉式2-双重if保障 懒汉式3-volatile防止误判 2.生产者消费者模型 &#xff08;1&#xff09;阻塞队列 &#xff08;2&#xff09;优点 解耦…

鸿蒙OpenHarmony Native API【结构体】 头文件

OH_Drawing_BitmapFormat Overview Related Modules: [Drawing] Description: 结构体用于描述位图像素的格式&#xff0c;包括颜色类型和透明度类型 Since: 8 Version: 1.0 Summary Public Attributes Public Attribute NameDescriptioncolorFormatalphaFormat De…

PlantUML学习笔记-嵌入式系统设计常用图例

在嵌入式系统设计过程中&#xff0c;需要使用一些图例对系统框架及业务流程进行说明&#xff0c;以便于多人协同开发及后期的系统维护&#xff0c;提高团队开发效率。 1. 嵌入式设计开发常使用的图例&#xff1a; 1.1 用例图&#xff08;Use Case Diagram&#xff09; 用例图…

KamaCoder 99. 岛屿数量 + Leetcode 200. Number of Islands

99. 岛屿数量 题目描述&#xff1a; 给定一个由 1&#xff08;陆地&#xff09;和 0&#xff08;水&#xff09;组成的矩阵&#xff0c;你需要计算岛屿的数量。岛屿由水平方向或垂直方向上相邻的陆地连接而成&#xff0c;并且四周都是水域。你可以假设矩阵外均被水包围。 输…

【LeetCode】栈 - 20.有效的括号、150.逆波兰表达式求值、155.最小栈、栈的压入、弹出序列

Hi~&#xff01;这里是奋斗的明志&#xff0c;很荣幸您能阅读我的文章&#xff0c;诚请评论指点&#xff0c;欢迎欢迎 ~~ &#x1f331;&#x1f331;个人主页&#xff1a;奋斗的明志 &#x1f331;&#x1f331;所属专栏&#xff1a;数据结构 &#x1f4da;本系列文章为个人学…

【前端/js】使用js读取本地文件(xml、二进制)内容

目录 说在前面FileReaderDOMParser文本文件二进制文件 说在前面 浏览器版本&#xff1a;Microsoft Edge 126.0.2 (正式版本) (64 位) FileReader MDNFileReader 接口允许 Web 应用程序异步读取存储在用户计算机上的文件&#xff08;或原始数据缓冲区&#xff09;的内容&#x…

分布式光伏并网AM5SE-IS防孤岛保护装置介绍——安科瑞 叶西平

产品简介 功能&#xff1a; AM5SE-IS防孤岛保护装置主要适用于35kV、10kV及低压380V光伏发电、燃气发电等新能源并网供电系统。当发生孤岛现象时&#xff0c;可以快速切除并网点&#xff0c;使本站与电网侧快速脱离&#xff0c;保证整个电站和相关维护人员的生命安全。 应用…

模拟实现c++中的vector模版

目录 一vector简述&#xff1a; 二vector的一些接口函数&#xff1a; 1初始化&#xff1a; 2.vector增长&#xff1a; 3vector增删查改&#xff1a; 三vector模拟实现部分主要函数&#xff1a; 1.size,capacity,empty,clear接口&#xff1a; 2.reverse的实现&#xff1…

Golang | Leetcode Golang题解之第292题Nim游戏

题目&#xff1a; 题解&#xff1a; func canWinNim(n int) bool {return n%4 ! 0 }

【一图学技术】SDK和API有什么关系?

API&#xff08;应用程序编程接口&#xff09;&#xff1a; API是一组定义了软件组件之间交互的规则和协议。 它定义了如何请求某个功能或服务&#xff0c;并指定了数据的格式和传输方式。API 可以用于不同的编程语言和平台。 API提供了一种标准化的方式&#xff0c;使不同的应…

[译] 深入浅出Rust基金会

本篇是对 RustConf 2023中的Rust Foundation: Demystified这一视频的翻译与整理, 过程中为符合中文惯用表达有适当删改, 版权归原作者所有. 大家好,我是Sage Griffin,我的代词是they/them。我今天来这里是要谈谈Rust基金会。 要了解基金会实际做什么,我们需要理解美国国内税收…

6.3 面向对象技术-设计模式

设计模式 创建型模式 结构型模式

布尔盲注——多种方式实现及利用burpsuite爆破

目录 1、判断闭合符类型 2、爆数据库长度 3、查询库名 手动注入 burpsuite爆破 方法一&#xff1a;用ASCII码值转化爆破 方法二&#xff1a;left方法直接爆破字母 方法三&#xff1a;if方法爆破注入&#xff08;最简单&#xff09; 4、爆破表名 5、爆破具体值 当我们改变前端…

Java | Leetcode Java题解之第279题完全平方数

题目&#xff1a; 题解&#xff1a; class Solution {public int numSquares(int n) {if (isPerfectSquare(n)) {return 1;}if (checkAnswer4(n)) {return 4;}for (int i 1; i * i < n; i) {int j n - i * i;if (isPerfectSquare(j)) {return 2;}}return 3;}// 判断是否为…

夜不能寐?解锁失眠自救秘籍,让你重拾安睡之夜!

在这个快节奏的时代&#xff0c;失眠似乎成了许多人的“隐形伴侣”&#xff0c;悄悄侵蚀着我们的健康与幸福感。夜深人静&#xff0c;万籁俱寂之时&#xff0c;你却辗转反侧&#xff0c;难以入眠&#xff0c;第二天又拖着疲惫的身躯迎接新的挑战。别担心&#xff0c;今天我们就…

大脑自组织神经网络通俗讲解

大脑自组织神经网络的核心概念 大脑自组织神经网络&#xff0c;是指大脑中的神经元通过自组织的方式形成复杂的网络结构&#xff0c;从而实现信息的处理和存储。这一过程涉及到神经元的生长、连接和重塑&#xff0c;是大脑学习和记忆的基础。其核心公式涉及神经网络的权重更新…

二分法各种边界,大彻大悟

1要考虑四个角度的“边界”&#xff0c;如下图 2 先考虑角度a的第一种情况 如下图所示&#xff0c;对于左边的情况&#xff0c;因为当l3&#xff0c;r4的时候&#xff0c;mid等于3&#xff0c;已知target4, 如果lmid就陷入死循环&#xff0c;所以l。右边同理。 判断c1 c2的影…

热门音效、BGM哪里可以免费下载?

剪辑的奇妙世界等你探索&#xff01;在这个创意的领域里&#xff0c;音效是创造氛围、增强表现力的重要元素。我整理了8个优质的剪辑音效素材网站&#xff0c;它们提供了丰富多样的音效资源&#xff0c;无论是制作视频、音乐还是动画&#xff0c;都能为你提供所需的声音。 1、b…

大模型学习笔记十四:Agent模型微调

文章目录 一、大模型需要Agent技术的原因二、Prompt Engineering可以实现Agent吗&#xff1f;&#xff08;1&#xff09;ReAct原理展示和代码&#xff08;2&#xff09;ModelScope&#xff08;3&#xff09;AutoGPT&#xff08;4&#xff09;ToolLLaMA 三、既然AutoGPT可以满足…