船舶核动力装置模糊故障诊断实验报告

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

已知船舶核动力装置中蒸汽发生器常见的故障有:蒸汽出口阀卡死(G1);汽轮给水泵进汽调节阀故障(G2);汽轮给水泵叶轮、口环等损坏(G3);汽轮给水泵轴承烧毁(G4);给水加热器泄漏(G5);主给水调节阀自控失调(G6);U型蒸汽发生器传热管破损(G7)。

标准故障发生时个特征参数如表1所示:
表1 标准故障发生时各特征参数值
*注:Z1, Z2,…,Z13表示各传感器反馈的参数特征值。

0.5 为正常运行值, 1.0为上限关机值, 0.0为下限关机值, 0.75与0.25则是上下报警值对应的状态。

本次实验需要通过编制模糊聚类算法,根据故障发生时,各传感器反馈的特征参数值,判断故障发生的具体部位,亦或按故障发生的可能性大小排列故障类型,从而方便快速诊断故障原因及类型。

二、实验原理
由于模糊聚类、灰色系统理论与粗糙集理论的理论基础不同,它们在处理不确定型复杂系统时有很强的互补性,所以在本实验中,它们被结合起来,应用于设备故障诊断中。

如图1所示,在故障诊断过程中,首先利用模糊c均值聚类对样本的参数进行离散化处理,求得各类别的聚类中心,接着基于粗糙集理论对设备特征参数进行约简,去除冗余参数,定量确定各特征参数的重要程度,然后根据约简的特征参数和各参数的重要程度,利用灰色关联分析的方法确定各种标准故障状态与目前设备状态的关联度,从而找到设备的故障所在之处。

图1故障诊断流程图
1、根据学习样本集,对条件属性值进行无量纲化处理,通过模糊c 均值聚类对条件属性值离散化处理,从而形成决策表。

模糊c 均值聚类算法最初由Bezkek 提出。

考虑一个样本集X ={x 1,x 2,…,x n },其中x i ={x i1, x i2,…, x ik }为k 维向量,将样本集X 依据亲疏关系分成c 个模糊子类,最后得到的分类结果是c 个聚类中心p i (i =1,2,…,c )和一个隶属度矩阵U 。

P =(p 1, p 2,…, p c ) U=[ij μ]i =1,2,..,c ;j =1,2,…,n
ij μ为样本x j 属于分类i 的隶属度,满足以下规则。

1
1c
ij
i μ
==∑ (1-1)
1
0n
ij j n μ=<<∑ (1-2)
FCM 算法的目标函数为:
211(,)()||||n
c
m m ij j i j i J U P x p μ===-∑∑ (1-3)
其中m ∈[1,∞]
模糊c 均值聚类算法是一个通过公式(1-4)和(1-5)不断迭代使目标函数最小的过程。

ij μ=22111()/()
0100,0
c
m m ij ij ij p ij tj d d d d t i d --=⎧≠⎪⎪

=⎨
⎪∃≠=⎪⎪⎩
∑ (1-4)
p i =
1
1
/n
n
m
m
ij
j ij j j x μ
μ==∑∑ 0<i <c (1-5)
在公式(1-4)中,d ij =2||||j i x p -,通过不断迭代,最终得到c 个聚类和每个聚类的聚类中心p i 。

学习样本条件属性值离散化处理具体过程的描述如下:
①设定聚类数c 、指数权重m 以及停止阀值ε,初始化隶属度矩阵U (0),令变量l =0;
②通过U (l)和公式(1-5)计算模糊聚类中心p i (l ) ③通过p i (l )和公式(1-4)计算新的隶属度矩阵U (l +1); ④计算∆=||U (l +1)- U (l )||=(1)
()max max ||l l ij
ij i
j
μμ+-,如∆〉ε,则令l =l +1,则
转至第②步,否则停止迭代,根据最后的隶属度矩阵,将样本分成c 类。

2、利用粗糙集理论的约简能力,进行约简,形成最小条件属性集。

在学习样本集中,样本各属性的值被离散化后,可以很容易地构成一个决策系统,在决策系统中,有些条件属性可以从其它条件属性推导出来,相互之间存在着依赖关系,对于分类来说,这些条件属性是冗余的。

我们需要对条件属性进行约简,形成最小条件属性集。

定义1 决策系统S ={U , A },其中A =C ∪D ,且C ∩D =∅,C 为条件属性集,D 为决策属性集,U ={x 1,x 2,…,x n },C ={c 1,c 2,…,c m },D ={d },可分辨矩阵是n ×n 矩阵,其第i 行第j 列元素M D (i,j )为:
M D (i,j )=()()
{|()()}()()0i j k k k i k j i j d x d x c c C c x c x d x d x ≠∈∧≠⎧⎨=⎩
(1-6)
定义2 可分辨矩阵M D 唯一地确定一个分辨函数F ,分辨函数是一个布尔函数,如果区分对象x 和y 的所有属性集合c(x ,y )={ c 1,c 2,…,c k }≠∅,指定一个布尔函数c 1∨c 2∨…∨c k ,用c(,)x y ∑来表示,可分辨函数F 定义为: F=
(,)(,)x y U U
c x y ∈⨯∑∏ (1-7)
很明显,可分辨函数的极小析取范式中的所有合取式是条件属性C 的所有决策属性D 的简化集。

条件属性约简的具体过程的描述如下:
①对于由若干样本组成的学习集(即决策系统)的可分辨矩阵第i 行第j 列元素d ij 的值分为下面两种情况来确定。

若样本i 和样本j 的决策属性值相同,则d ij 的值为0,否则d ij 的值为所有能区分样本i 和样本j 的条件属性集,很明显,可分辨矩阵是对称方阵。

②在求得可分辨矩阵后,运用公式(1-7)可以求解出可分辨矩阵的可分辨函数,可分辨函数的极小析取范式中的所有合取式就是最小条件属性集。

3、形成最小条件属性集后,需要判断各条件属性的重要性。

定义3 属性子集P ⊆A 的信息熵H(P)为:
H(P)=1()ln ()m
i i i P X P X =-∑ (1-8)
其中:U /IND(P )={X 1,X 2,…,X m },P(X i )=||
||
i X U (i=1,2,…,m ),|U |表示集合U 的“势”,|X i |表示集合X i 的“势”。

定义4 信息系统S ={U ,A },属性a ∈A 的重要性定义为:
S A (a)=|H(A)-H(A-{a})| (1-9) 当S A (a)大于0时,属性a 在A 中是必要的,等于0时,是冗余的。

在形成最小条件属性集后,分别对最小条件属性集中的每个属性按照公式(1-8)和(1-9)来求得每个属性的重要性。

4、计算测试样本与各标准故障模式的关联度,从而判断故障原因。

首先,在按公式(1-8)和(1-9)确定了各属性的重要性后,可按下式确定在关联度计算中各属性的权重。

i a w =
1
()
()
A i n
A
k k S a S
a =∑ (1-10)
然后,按公式(1-10)计算测试样本与标准故障模式i 的关于属性a k 的关联系数()i k a ξ,在这里以各个聚类中心作为各标准故障模式的标准值。

这样,测试样本与标准故障模式i 的关联度可按下式计算。

r i =
1
.()k
n
a i k k w
a ξ=∑ (1-11)
在计算了测试样本与所有标准故障模式的关联度后,可以根据测试样本与所有标
准故障模式的关联度的大小来判断故障所在之处。

四、基于MATLAB 的模糊故障诊断
根据上述实验原理,以MATLAB 为编程工具,进行故障模拟诊断。

首先针对每种故障诊断原因,建立一个故障原因两两比较的模糊矩阵,通过故障原因两两比较模糊矩阵,确定故障诊断对故障原因的隶属度,从而建立模糊模糊诊断矩阵。

1.以数量积法为例,模糊相似矩阵建立方法如下:
function[R]=F_JlR(cs,X)%定义函数 %模糊聚类分析建立模糊相似矩阵:
[R]=F_JlR(cs,X) %X,数据矩阵 %cs=1,数量积法 [n,m]=size(X);%获得矩阵的行列数 R=[];
if(cs==1)maxM=0;pd=0;%数量积法 for(i=1:n)for(j=1:n) if(j~=i)x=0;
for(k=1:m)x=x+X(i,k)*X(j,k); end
if(maxM<x)
maxM=x;
end
end
end
end
if(maxM<0.000001)
return;
end
for(i=1:n)
for(j=1:n)
if(i==j)
R(i,j)=1;
else
R(i,j)=0;
for(k=1:m)
R(i,j)=R(i,j)+X(i,k)*X(j,k);
end
R(i,j)=R(i,j)/maxM;
if(R(i,j)<0)
pd=1;
end
end
end
2.由模糊相似矩阵求传递闭包
function [A]=fuzzy_cdbb(R) %由模糊相似矩阵求传递闭包js0=0;
while(1)
A=Max_Min(R,R);
js0=js0+1; if(A==R)
break;
else
R=A;
end
end
end
3.模糊矩阵的合成
unction[C]=Max_Min(A,B) %模糊矩阵的合成,先取小后取大C=[];
[m,s1]=size(A);
[s2,n]=size(B);
if(s1~=s2)
disp('A的列不等于B的行');
else
for(i=1:m)
for(j=1:n)
C(i,j)=0;
for(k=1:s1)
x=0;
if(A(i,k)<B(k,j))
x=A(i,k);
else
x=B(k,j);
end
if(C(i,j)<x)
C(i,j)=x;
end
end
end
end
end
end
4.求截矩阵并输出聚类结果
function[Alamd]=fuzzy_lamdjjz(A)%求矩阵的lamd截矩阵并输出聚类结果[m,n]=size(A);
p=m*n;%矩阵A中总的元素个数
C=A(1:p);%把矩阵变成一个行向量
D=sort(C);%把向量C中的元素从小到大排序
for(i=1:p)
for(j=i+1:p)
if(D(i)==D(j))
D(j)=0;%把向量C中相同元素只保留一个其他的变为零end
end
end
E=sort(D);%将D按从小到大进行排序
x=0;
for(i=1:p)
if(E(i)==0)
x=x+1;%统计E中零的个数
end
end
F=E(p:(-1):(x+1));%从E中挑出非零元素并按从大到小的顺序排列
s=length(F);
for(i=1:s)
disp('-------------------');
lamd=F(i)%顺次从F中从大到小取lamd
disp('所对应的截矩阵是');
Alamd=A>=F(i)%得到lamd截矩阵
[C]=fuzzy_jl(Alamd)%得到聚类结果
end
5.实验结果
某SG 运行过程中表现出征兆群为0.5,0.25, 0.29, 0.75, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5,0.25, 0.75, 0.75.将这组数据输入到已训练好的网络中, 神经网络通过聚类功能输出诊断结果:此SG 运行过程中发生的故障为SG 传热管破损。

五、实验总结
通过本次基于模糊聚类算法的故障自诊断实验,对人工智能这门课程有了更全面认知的同时,也使我们对当前故障诊断智能算法有了初步的认识,为今后的研究学习打下了基础,同时,针对基于MATLAB的故障自诊断算法实现也有了一次锻炼,通过相关的资料文献阅读,对当前人工智能领域,尤其是故障自诊断相关的知识有了更进一步的学习。

相关文档
最新文档