这个例子展示了如何估计的状态非线性系统使用一个无味卡尔曼滤波仿真软件®。金宝app这个例子还说明如何开发一个基于事件的卡尔曼滤波更新系统参数更精确的状态估计。示例运行与控制系统工具箱™或系统辨识工具箱™。这个例子不需要预测维修工具箱™。
考虑一个电池使用以下等效电路模型[1]
模型由一个电压源,一系列电阻和一个钢筋混凝土块和。电池充电和放电周期之间交替。在本例中,您估计电荷状态(SOC)的电池模型使用测量电流、电压和温度的电池。你认为电池是一个非线性系统,使用一种无味卡尔曼滤波器估计SOC。电池的容量会降低每排放收费周期,提供一个不准确的SOC估算。使用一个基于事件的线性卡尔曼滤波器来估计电池容量,当电池充电和放电之间的转换。估计能力反过来可以用来指示电池的健康状况。
仿真软件金宝app模型包含三个主要组件:一个电池模型,一个无味卡尔曼滤波块和一个基于事件的卡尔曼滤波器。在以下部分中给出进一步的解释。
open_system (“BatteryExampleUKF /”)
电池模型与热影响使用Simscape语言实现。
电池模型的状态转移方程给出:
在哪里和热且依赖于SOC的电阻和电容的钢筋混凝土块,电容器的电压吗,输入电流,电池温度,是电池容量(单位:啊),然后呢噪音是一个过程。
输入电流是随机生成的脉冲,当电池放电和持续充电电池时,如下图所示。
的测量方程:
在哪里是测量的电压输出,串联电阻,是电压源的电动势,是测量噪声。
在模型中,和二维查找表依赖SOC和电池温度。查找表中的参数识别使用实验数据[1]。
使用无味卡尔曼滤波块,或Matlab仿真软件的功能状态和测量方程需要定义。金宝app这个例子演示了使用仿真软件处理功能无味卡尔曼滤波器是离散时间过滤器,首先使金宝app离散状态方程。在本例中,采用欧拉离散化。让采样时间。对于一般的非线性系统,系统可以离散
电池的非线性系统的状态向量
。
应用欧拉离散化给以下方程:
离散状态转换方程作为一个仿真软件实现函数命名“batteryStateFcn”所示。金宝app函数的输入x
状态向量,而函数输出xNext
下一个步骤的状态向量,计算使用离散状态转换方程。您需要指定信号的维度和数据类型x
和xNext
。在这个例子中,信号的维度x
和xNext
2,数据类型是双。额外的输入温度,估计能力,电流。注意额外输入输入所需的状态转移方程,而不是UKF块。
测量功能也实现为一个仿真软件功能命名为“batteryMeasurementFcn”如下所示。金宝app
配置块参数如下:
在系统模型选项卡中,指定块参数如图所示:
你指定以下参数:
在状态转换函数:batteryStateFcn
。
仿真软件的名称前面定义函数,实现金宝app了离散状态转换方程。
过程噪声:添加剂
与协方差时变,。的添加剂
意味着噪音项添加到最后直接信号。
噪声对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
。
仿真软件的名称前面定义函数,实现金宝app了测量功能。
测量噪声:添加剂
协方差,定常1 e - 3。
基于测量设备的测量噪声估计的准确性。电压对电池电压测量计约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
模拟系统。
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 (的指示信号);
在一般情况下,卡尔曼滤波器是能够跟踪真正的能力。之间存在半周期延迟估计能力和实际能力。这延迟是由于测量的时间。电池容量降低计算一个完整的排放收费周期结束的时候发生。库仑计算给出了容量测量基于前面的放电或充电周期。
这个例子展示了如何使用仿真软件无味卡尔曼滤波块锂电池进行非线性状态估金宝app计。此外,步骤开发一个基于事件的卡尔曼滤波器对电池容量估计。新估计的能力用于提高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. IEEE, 2000.