降低电池的非线性状态估计系统
这个例子展示了如何估计的状态非线性系统使用一个无味卡尔曼滤波仿真软件®。万博1manbetx这个例子还说明如何开发一个基于事件的卡尔曼滤波更新系统参数更精确的状态估计。这个例子还需要Simscape™和Stateflow®。
概述
考虑一个电池使用以下等效电路模型[1]
模型由一个电压源,一系列电阻和一个钢筋混凝土块组件和。电池充电和放电周期之间交替。在本例中,您估计电荷状态(SOC)的电池模型使用测量电流,电压,电池的温度。你认为电池是一个非线性的系统,并使用一个无味卡尔曼滤波估计SOC。电池的容量会降低每排放收费周期,提供一个不准确的SOC估算。你使用一个基于事件的线性卡尔曼滤波器来估计电池容量,当电池充电和放电之间的转换。然后使用估计显示电池的健康状况的能力。
仿真软件万博1manbetx模型包含三个主要组件:一个电池模型,一个无味卡尔曼滤波块和一个基于事件的卡尔曼滤波器。
open_system (“BatteryExampleUKF /”)
电池模型
电池热效应模型是使用Simscape软件实现。
电池模型的状态转移方程给出:
在哪里和热SOC-dependent电阻器和电容器在钢筋混凝土块,电容器的电压吗,输入电流,电池温度,是电池容量(单位:啊),然后呢噪音是一个过程。
输入电流是随机生成的脉冲,当电池放电和持续当电池充电。
的测量方程:
在哪里测量输出电压,串联电阻,是电压源的电动势,是测量噪声。
在模型中,和二维查找表依赖SOC和电池温度。查找表中的参数识别使用实验数据[1]。
估计电荷状态(SOC)
使用无味卡尔曼滤波块,您指定的测量和状态转换函数使用MATLAB®或仿真软件功能。万博1manbetx这个例子演示了模型的使用功能。万博1manbetx因为无味卡尔曼滤波器是离散时间过滤器,首先使离散状态方程。在本例中,采用欧拉离散化。让采样时间。对于一般的非线性系统,系统可以被离散为:
电池的非线性系统的状态向量:
。
应用欧拉离散化给以下方程:
离散状态转换方程是在仿真软件中实现函数命名万博1manbetxbatteryStateFcn
。函数的输入x
状态向量,输出的函数xNext
下一个步骤的状态向量,计算使用离散状态转移方程。功能,您需要指定信号的维度和数据类型x
和xNext
。在这个例子中,信号的维度x
和xNext
2,数据类型是双。额外的输入batteryStateFcn
估计是温度、容量和电流。注意额外输入输入所需的状态转移方程和不无味卡尔曼滤波块。
同样,测量功能也在仿真软件中实现功能命名万博1manbetxbatteryMeasurementFcn
。
配置无味卡尔曼滤波块参数如下:
在系统模型选项卡中,指定块参数如图所示:
你指定以下参数:
在状态转换函数:
batteryStateFcn
。
仿真软件的名称前面定义函数,实现万博1manbetx了离散状态转换方程。
过程噪声:
添加剂
协方差,定常。添加剂
意味着噪音项添加到最后直接信号。
噪声对SOC和过程估计基于电池系统的动态特性。电池的额定容量30啊,经历了放电或充电周期平均电流振幅15。因此,一个放电或充电过程需要大约2小时(7200秒)。最大的变化是100%对SOC和4伏左右。
最大的变化在SOC和每一步是和,在那里滤波器的采样时间。在这个例子中,将1秒。
因此,这个过程噪音是:
。
初始状态:。
SOC的初始值是假定为100%(完全充电电池),而初始值被设置为0,因为我们没有任何先验信息的。
最初的协方差:
最初的协方差表示有多准确和可靠的初始猜测。假设SOC的最大初始估计误差是10%和1 v。最初的协方差矩阵设置。
无香味的转换参数:参数指定基于[2]
-α:1。确定sigma x点周围的传播。设置α1更大的传播。-β:2。用于将分布的先验知识。β的名义值是2。卡帕:0。中等尺度参数。卡帕的名义值是0。
测量功能:
batteryMeasurementFcn
。
仿真软件的名称前面定义函数,实现万博1manbetx了测量功能。
测量噪声:
添加剂
协方差,定常1 e - 3。
测量噪声V
根据测量设备精度估计。电压对电池电压测量计约1%的准确率。电池电压4 v左右。同样,我们有。因此,。
样品时间:。
估计电池退化
电池退化建模通过减少产能。在这个例子中,电池容量将减少1啊/排放收费周期说明降解的影响。自降解能力是无法提前知道,设置的状态方程一个随机游走:
,
在哪里是排放收费的循环次数,噪音是一个过程。
时电池配置为自动充电容量在30%时,切换到卸货能力是90%。使用此信息来测量电池容量通过整合当前在充电或放电周期(库仑数)。
测量方程是:
在哪里是测量噪声。
电池的状态转换和测量方程退化状态空间形式:可以放在下面
在哪里和等于1。
对于上面的线性系统,使用卡尔曼滤波器来估计电池容量。估计从线性卡尔曼滤波器用于提高SOC估计。在这个例子中,使用一个基于事件的线性卡尔曼滤波器来估计。自测量一次充电和放电周期,启用了线性卡尔曼滤波器只有在充电或放电结束。
配置块参数如下:
在模型参数选项卡中,指定工厂模型和噪声特点:
模型来源:
输入端口
。
实现一个基于事件的卡尔曼滤波器,启用了状态方程只有当事件发生。换句话说,状态方程是基于事件的。对于线性系统,设置状态方程
。
一个:。在这个例子中,。因此,等于1。
C:1、从。
初步估计源:
对话框
。您指定的初始状态初始状态x [0]
初始状态x [0]:30。这是电池的额定容量(30啊)。
问:
这是过程噪声的协方差。因为能力的退化率大约是1啊/排放收费周期,设置过程噪声是1。
R:0.1。这是测量噪声的协方差。假设的能力测量误差小于1%。的电池容量30啊,测量噪声。
样品时间:Ts。
在选项选项卡中,添加一个输入端口启用
控制测量更新。启用端口用于更新电池容量估计在充电或放电事件,而不是不断地更新。
注意,设置启用
0没有禁用使用状态方程预测。因此,配置状态方程是基于事件的。通过设置一个基于事件和Q的卡尔曼滤波器,使用时禁用状态方程预测启用
设置为0。
结果
模拟系统,负载电池参数存储在文件中BatteryParameters.mat
。包括文件包含电池参数,,。
负载BatteryParameters.mat
模拟系统。
sim卡(“BatteryExampleUKF”)
在每一个时间步,SOC的无味卡尔曼滤波提供了一种估计,基于电压测量。真正的SOC估计SOC的阴谋,以及它们之间的区别。
%同步两个时间序列[RealSOC, EstimatedSOC] =同步(RealSOC EstimatedSOC,“十字路口”);图;次要情节(2,1,1)情节(100 * RealSOC,“b”,“线宽”,1.5);持有在情节(100 * EstimatedSOC,“r——”,“线宽”1);标题(“电荷状态”);包含(“时间(s)”);ylabel (“SOC (%)”);传奇(“实际”,“UKF估计”,“位置”,“最佳”,“定位”,“水平”);轴紧次要情节(2,1,2)DiffSOC = 100 * (RealSOC - EstimatedSOC);情节(DiffSOC。时间、DiffSOC.Data“线宽”,1.5);包含(“时间(s)”);ylabel (' \δSOC (%) ',“翻译”,“泰克斯”);传奇(“真正的SOC和SOC估计的区别”,“位置”,“最佳”)轴紧
一个初始估计误差后,真正的SOC的SOC收敛迅速。最后的估计误差在0.5%的误差。因此,无味卡尔曼滤波器给出了准确的SOC估计。
在每一个排放收费过渡,电池容量估计提高SOC估计。电池系统输出指示器信号通知过程电池是什么。放电过程是由1充电时指示信号过程中由1。在这个例子中,指标的变化信号是用来确定何时启用或禁用卡尔曼滤波器的估计能力。我们把真正的估计能力以及充放电指示信号。
图;次要情节(2,1,1);情节(RealCapacity“b”,“线宽”,1.5);持有在情节(EstimatedCapacity“r——”,“线宽”,1.5);包含(“时间(s)”);ylabel (的能力(啊));传奇(“实际”,“KF估计”,“位置”,“最佳”);次要情节(2,1,2);情节(DischargeChargeIndicator.Time DischargeChargeIndicator.Data,“b”,“线宽”,1.5);包含(“时间(s)”);ylabel (“允许信号”);
在一般情况下,卡尔曼滤波器是能够跟踪真正的能力。之间有一半周期延迟估计能力和实际能力。这是因为电池容量下降一个完整的排放收费周期结束的时候发生的。而库仑计算给出了持续放电或充电周期的测量能力。
总结
这个例子展示了如何使用无味卡尔曼滤波块锂电池进行非线性状态估计。此外,步骤开发一个基于事件的卡尔曼滤波器对电池容量估计。新估计的能力用于提高SOC无味卡尔曼滤波估计。
参考
[1]Huria,塔伦等。“失恋电与热的依赖模型描述和仿真的高功率锂电池。”Electric Vehicle Conference (IEVC), 2012 IEEE International. IEEE, 2012.
[2]Wan,埃里克。,和Rudolph Van Der Merwe. "The unscented Kalman filter for nonlinear estimation." Adaptive Systems for Signal Processing, Communications, and Control Symposium 2000. AS-SPCC. The IEEE 2000. Ieee, 2000.