基于 zonotopic 卡尔曼滤波的故障诊断方法
在系统建模、状态估计和故障诊断领域,有效的滤波算法至关重要。本文将介绍 CZKF 算法和 ZKF 算法,并分析它们在不同状态下的性能表现,同时以锂电池系统为例进行具体说明。
1. 无故障状态下的算法比较
在具有约束条件的系统中,为了全面分析 CZKF 算法的有效性和可行性,将其与 ZKF 算法在状态估计方面进行比较。从相关图表可以看出,在系统状态达到稳定之前,系统不受约束,此时 CZKF 算法与 ZKF 算法效果相同,两种算法得到的估计状态集的上下界曲线相似,在时间 k = 5 时,CZKF 算法(黑线)和 ZKF 算法(品红线)的 zonotopic 集重合。
当系统快速达到稳定后,在时间 k = 9 加入系统约束。此后,CZKF 算法对应的估计状态集上下界之间的间隔明显小于 ZKF 算法,且 CZKF 算法对应的 zonotopic 集始终包含在 ZKF 算法对应的 zonotopic 集内,这表明系统约束在系统状态估计中起到了有效作用,使得 CZKF 算法的状态估计 zonotopic 集更小,即 CZKF 算法由于约束条件的存在而不那么保守。
以下是无故障状态下算法比较的流程:
graph TD;
A[系统开始运行] --> B[系统状态未稳定];
B --> C[CZKF算法=ZKF算法];
C --> D[系统状态稳定];
D --> E[加入系统约束];
E --> F[CZKF算法估计状态集更优];
2. 加性传感器故障情况
假设系统在 k = 100、k = 150 和 k = 200 时分别出现三种不同的加性传感器故障,具体故障值如下:
- f(k) = [ 1.5 1 ]T (100 ≤ k < 150)
- f(k) = [ 40 5 ]T (150 ≤ k < 200)
- f(k) = [ 5 60 ]T (200 ≤ k ≤ 250)
为了减少 ˆfa(k) 的不确定性,在仿真中适当限制 ˆfa(k) 在 ˆXf (k) 中的选择范围,这里 ˆfa(k) 是一个以 ˆpf (k) 为中心、[0.1· ˆGf (k)] 为生成矩阵的 zonotopic 集内的任意值。使用 CZKF - FE 算法和 ZKF - FE 算法进行加性传感器故障估计,故障估计结果如下:
| 算法 | 故障检测情况 | 状态估计情况 | 故障估计情况 |
| ---- | ---- | ---- | ---- |
| CZKF - FE | 能及时检测到故障 | 估计状态集上下界基本不变,能准确估计系统状态 | 故障估计曲线在故障发生时不为零,接近真实故障值 |
| ZKF - FE | 在第一次故障时漏检 | 估计状态集上下界在 k = 100 - 150 发生变化,受故障输出影响 | 在 k = 100 - 150 故障估计曲线为零,无法估计故障 |
从图表分析可知,在无故障状态下,CZKF - FE 算法和 ZKF - FE 算法的估计输出 zonotopic 集都包含系统的真实输出值,表明系统无故障。在整个状态估计和故障估计过程中,CZKF - FE 算法的估计 zonotopic 集都包含在 ZKF - FE 算法的估计 zonotopic 集内,说明 CZKF - FE 算法不那么保守。
当第一次加性传感器故障发生时,CZKF - FE 算法的估计输出 zonotopic 集不包含系统真实输出,表明检测到传感器故障;而 ZKF - FE 算法由于保守性大,估计输出集仍然包含真实输出,导致故障漏检。在第二和第三次故障状态下,两种算法的估计输出集都不包含真实输出,表明都检测到系统故障。
在整个故障工作过程中,CZKF - FE 算法得到的估计状态上下界与正常工作状态相比基本不变,能及时检测到故障,且加性传感器故障对系统状态估计结果无影响,仍能获得准确的状态估计值。同时,CZKF - FE 算法估计状态上下界之间的间隔更小,能更准确地包含系统的真实状态。
3. 乘性传感器故障情况
假设系统在 k = 100 和 k = 150 时分别出现两种不同的乘性传感器故障,具体故障值如下:
- f(k) = [ 1.1 0 ; 0 1.2 ] (100 ≤ k < 150)
- f(k) = [ 1.5 0 ; 0 1.8 ] (150 ≤ k ≤ 200)
为了减少仿真的不确定性,选择 ˆfai(k)(1, …, ny) 作为以 (ˆf + i (k) + ˆf - i (k)) / 2 为中心、0.1· (ˆf + i (k) - ˆf - i (k)) / 2 为距离的区间内的任意值。使用 CZKF - FE 算法和 ZKF - FE 算法进行乘性传感器故障估计,分析表明两种算法都能在 k = 100 时检测到系统故障,且能判断在 k = 100 和 k = 150 时出现了不同故障值的故障。
根据 CZKF - FE 算法得到的估计 zonotopic 集的中心,可以得出系统在 k = 100 - 150 期间存在故障值约为 [ 1.1 0 ; 0 1.2 ] 的乘性传感器故障,在 k = 150 - 200 期间存在故障值约为 [ 1.5 0 ; 0 1.8 ] 的乘性传感器故障,这表明该算法能准确估计传感器故障值,具有较高的故障估计精度。同时,CZKF - FE 算法的故障估计集上下界之间的间隔小于 ZKF - FE 算法,说明 CZKF - FE 算法在故障估计的保守性方面具有很大优势。
4. 锂电池系统应用
在锂电池研究中,Thevenin 模型因其结构简单和完整性常被用于等效电路模型的研究。在此基础上添加 RC 电路可形成二阶 RC 电路模型。
在锂电池电路中,各参数含义如下:
- R1 和 R2 是极化内阻
- C1 和 C2 是极化电容
- U1 和 U2 是极化现象产生的电压
- Uoc 是电池的开路电压
- U 是电池的端电压
- I 是电池电流
- R0 是欧姆内阻
根据基尔霍夫电压定律,端电压 U = Uoc - R0I - U1 - U2。同时,根据电路工作原理,可得到以下电压动态特性:
- ˙U1 = - (1 / (R1C1))U1 + (1 / C1)I
- ˙U2 = - (1 / (R2C2))U2 + (1 / C2)I
当电池高功率工作时,会释放大量热量,导致电池内部温度升高,电池核心温度高于表面温度。因此,估计电池温度和可能的温度传感器故障对确保电池正常运行具有重要的实际意义。根据热生成和热传导原理,可建立两状态热子模型:
- Cc ˙Tc = (Ts - Tc) / Rc + Qgen
- Cs ˙Ts = - (Ts - Tc) / Rc + (Te - Ts) / Ru
其中,Cs 是电池内部材料的热容系数,Cc 是电池表面的热容系数,Rc 是电池核心与表面之间的热阻,Ru 是电池表面与冷却空气之间的对流阻力,Qgen = I(Uoc - U) = I(R0I + U1 + U2) 是电池核心的加热功率。以加热功率 Qgen 和环境温度 Te 为输入,核心温度 Tc 和电池表面温度 Ts 为状态。离散化后,热模型的状态空间方程可表示为:
- x(k + 1) = Ax(k) + Bu(k) + w(k)
- y(k) = Cx(k) + v(k)
其中,w(k) 和 v(k) 是系统未知但有界的过程干扰和测量噪声,x = [Tc Ts]T,u = [Qgen Te]T,y = [Tc Ts]T,∆t 表示采样时间,且:
- A = [ 1 - (∆t / (RcCc)) ∆t / (RcCc) ; ∆t / (RcCs) 1 - (∆t / (RcCs)) - (∆t / (RuCs)) ]
- B = [ ∆t / Cc 0 ; 0 ∆t / (RuCs) ]
- C = [ 1 0 ; 0 1 ]
当锂电池在无故障状态下工作时,设置参数如下:
- R1 = 0.0298Ω
- C1 = 1787.7F
- R2 = 0.03819Ω
- C2 = 5.26F
- I = 5A
- R0 = 0.0501Ω
- Rc = 1.98◦C/W
- Ru = 1.718◦C/W
- Cc = 63.5J/◦C
- Cs = 4.5J/◦C
- Te = 18◦C
- ∆t = 1s
- w(k) 和 v(k) 满足 ∥w(k)∥∞ ≤ 0.1 和 ∥v(k)∥∞ ≤ 0.1
系统的初始状态、过程噪声和测量噪声满足:
- ˆx(0) ∈ X = [ [ 18 18 ]T, [ 4 0 ; 0 4 ] ]
- w(k) ∈ W = [ [ 0 0 ]T, [ 0.5 0 ; 0 0.5 ] ]
- v(k) ∈ V = [ [ 0 0 ]T, [ 1 0 ; 0 1 ] ]
对于精度要求较高的锂电池操作系统,核心温度通常限制在一定范围内,且在正常运行状态下,核心温度和表面温度满足特定的差分条件。当锂电池系统稳定时,核心温度 Tc ∈ [28.6◦C, 29.4◦C],核心温度与表面温度的差值为 5.85◦C ± 0.1◦C。
4.1 无故障状态
对于锂电池系统的热模型,使用 CZKF 算法和 ZKF 算法进行系统状态估计。相关图表显示,两种算法都能实现系统的状态估计。当系统稳定时,在 CZKF 算法中加入系统约束,可使系统的真实值更紧密地包含在估计 zonotopic 集内,因此 CZKF 算法的性能不那么保守。
4.2 加性传感器故障
假设锂电池系统在 k = 2000、k = 3000 和 k = 4000 时分别出现三种不同的加性传感器故障,具体值如下:
- f(k) = [ 10 0 ]T (2000 ≤ k < 3000)
- f(k) = [ 10 5 ]T (3000 ≤ k < 4000)
- f(k) = [ 5 -5 ]T (4000 ≤ k ≤ 5000)
选择 ˆfa(k) 作为以 ⟨ˆp f (k), [0.1· ˆGf (k)]⟩ 为中心的 zonotopic 集内的任意值。使用 CZKF - FE 算法和 ZKF - FE 算法对锂电池系统热模型的加性传感器故障进行故障估计。从故障估计曲线可知,两种算法都能及时检测到故障并快速跟踪故障的真实值,可判断系统在 k = 2000、k = 3000 和 k = 4000 时出现了三种不同的加性传感器故障。同时,由于约束条件,CZKF - FE 算法的故障估计集上下界之间的间隔小于 ZKF - FE 算法,能更紧密地包含系统的真实故障值。
4.3 乘性传感器故障
假设锂电池系统在 k = 2000 和 k = 3000 时分别出现两种不同的乘性传感器故障,具体值如下:
- f(k) = [ 2 0 ; 0 1.5 ] (2000 ≤ k < 3000)
- f(k) = [ 1.5 0 ; 0 2.2 ] (3000 ≤ k ≤ 4000)
选择 ˆfai(k) (i = 1, …, ny) 作为以 (ˆf + i (k) + ˆf - i (k)) / 2 为中心、0.1· (ˆf + i (k) - ˆf - i (k)) / 2 为距离的区间内的任意值。使用 CZKF - FE 算法和 ZKF - FE 算法对锂电池系统热模型的乘性传感器故障进行估计。通过对故障估计曲线的分析可知,系统在 k = 2000 和 k = 3000 时出现了两种不同的乘性传感器故障。同样,CZKF - FE 算法的故障估计结果区间更紧密。需要注意的是,在乘性传感器故障估计中引入了区间运算的除法,根据系统方程,不同的乘性传感器故障会导致系统输出不同,从而影响故障估计的区间计算,不同乘性传感器故障状态下故障估计区间的大小不一致。
综上所述,CZKF 算法在系统状态估计和传感器故障估计方面具有明显优势,尤其是在有约束条件的情况下,能更准确地估计系统状态和故障,为系统的稳定运行提供了有力保障。
基于 zonotopic 卡尔曼滤波的故障诊断方法
5. 算法性能总结与对比
为了更清晰地展示 CZKF 算法和 ZKF 算法在不同情况下的性能差异,我们对前面的内容进行总结和对比,如下表所示:
| 状态情况 | 算法 | 故障检测能力 | 状态估计准确性 | 故障估计准确性 | 保守性 |
| ---- | ---- | ---- | ---- | ---- | ---- |
| 无故障状态 | CZKF | 正常 | 能紧密包含真实值,受约束后更优 | - | 低 |
| | ZKF | 正常 | 包含真实值,但区间较大 | - | 高 |
| 加性传感器故障 | CZKF - FE | 及时准确 | 基本不受故障影响,区间小 | 能准确估计,接近真实值 | 低 |
| | ZKF - FE | 首次故障漏检 | 受故障输出影响,区间大 | 首次故障无法估计 | 高 |
| 乘性传感器故障 | CZKF - FE | 及时准确 | - | 能准确估计故障值,区间小 | 低 |
| | ZKF - FE | 能检测故障 | - | 估计区间大 | 高 |
从表格中可以明显看出,无论是在无故障状态还是在传感器故障状态下,CZKF 算法及其扩展算法 CZKF - FE 都表现出了更好的性能。在故障检测方面,CZKF - FE 能及时准确地检测到故障,而 ZKF - FE 在加性传感器首次故障时出现漏检情况。在状态估计和故障估计准确性上,CZKF 及其扩展算法能更紧密地包含真实值,估计区间更小,这意味着其结果更精确。同时,由于约束条件的存在,CZKF 算法的保守性更低,能更有效地利用系统信息。
6. 操作步骤与流程
为了帮助读者更好地理解如何应用这些算法进行系统状态估计和故障诊断,下面给出具体的操作步骤和流程。
6.1 系统建模
- 确定系统的状态变量、输入变量和输出变量。例如在锂电池系统中,状态变量为核心温度 Tc 和电池表面温度 Ts,输入变量为加热功率 Qgen 和环境温度 Te,输出变量同样为核心温度 Tc 和电池表面温度 Ts。
- 根据物理原理建立系统的状态空间方程。如锂电池热模型的状态空间方程为:
- (x(k + 1) = Ax(k) + Bu(k) + w(k))
-
(y(k) = Cx(k) + v(k))
其中 (A)、(B)、(C) 矩阵根据系统参数和采样时间确定,(w(k)) 和 (v(k)) 为过程干扰和测量噪声。
6.2 算法选择与初始化
- 根据系统是否有约束条件选择合适的算法。如果系统有约束条件,优先选择 CZKF 算法;如果没有约束条件,ZKF 算法也可使用。
- 初始化系统的初始状态、过程噪声和测量噪声的范围。例如在锂电池系统中,设置初始状态 (\hat{x}(0) \in X),过程噪声 (w(k) \in W),测量噪声 (v(k) \in V)。
6.3 状态估计与故障诊断
graph TD;
A[开始] --> B[采集系统输入输出数据];
B --> C[根据算法进行状态预测];
C --> D[判断是否有约束条件];
D -- 是 --> E[在 CZKF 算法中加入约束进行状态更新];
D -- 否 --> F[使用 ZKF 算法进行状态更新];
E --> G[判断是否有故障发生];
F --> G;
G -- 是 --> H[使用 CZKF - FE 或 ZKF - FE 算法进行故障估计];
G -- 否 --> I[继续下一次状态估计];
H --> I;
I --> B;
- 采集系统的输入输出数据,根据选择的算法进行状态预测。
- 判断系统是否有约束条件,如果有则在 CZKF 算法中加入约束进行状态更新;如果没有则使用 ZKF 算法进行状态更新。
- 判断系统是否发生故障,可通过比较估计输出的 zonotopic 集和系统真实输出值来判断。如果估计输出集不包含真实输出值,则认为系统发生故障。
- 当检测到故障时,使用 CZKF - FE 或 ZKF - FE 算法进行故障估计。
- 重复上述步骤,进行下一次的状态估计和故障诊断。
7. 总结与展望
通过对 CZKF 算法和 ZKF 算法在不同状态下的性能分析以及在锂电池系统中的应用研究,我们可以得出以下结论:
- CZKF 算法在系统状态估计和传感器故障估计方面具有显著优势,尤其是在有约束条件的情况下,能更准确地估计系统状态和故障,保守性更低。
- 在传感器故障检测和估计方面,CZKF - FE 算法能及时准确地检测到故障,并能更精确地估计故障值,相比 ZKF - FE 算法表现更优。
未来,我们可以进一步研究如何优化 CZKF 算法,提高其在复杂系统中的适应性和性能。例如,可以探索更有效的约束条件处理方法,或者结合其他先进的滤波技术,进一步提升算法的准确性和鲁棒性。同时,还可以将这些算法应用到更多的实际系统中,如工业自动化系统、智能电网等,为这些系统的故障诊断和状态估计提供更可靠的解决方案。
总之,基于 zonotopic 卡尔曼滤波的故障诊断方法为系统的安全稳定运行提供了有力的支持,具有广阔的应用前景和研究价值。
101



被折叠的 条评论
为什么被折叠?



