发明名称 基于人工免疫系统的无线传感器网络故障诊断方法
摘要 本发明公布了一种基于人工免疫系统的无线传感器网络故障诊断方法,通过采集无线传感器网络特征数据模式,运用人工免疫识别自体/非自体原理,实现故障诊断。整个人工免疫系统由免疫对象、数据库、免疫检测和免疫计算四大部分组成。免疫对象由特征模式数据组成,数据库用于保存正常状态和已知故障状态下的模式数据,免疫检测完成故障的诊断,免疫计算用于实现抗体的克隆和变异,优化抗体分布空间,区别故障类型。该方法具有的快速异常识别、良好的自适应性、动态平衡性及强大的信息处理能力,可有效地解决无线传感器网络中故障模式多、多故障模式共存、故障不可预见性等诊断难题,提高了诊断的快速性和准确性。
申请公布号 CN101415256B 申请公布日期 2010.07.28
申请号 CN200810236291.9 申请日期 2008.11.28
申请人 南京航空航天大学 发明人 袁慎芳;陈拥军;吴键;张英杰;杨伟伟;李耀曾;周恒保
分类号 H04W84/18(2006.01)I;H04L12/28(2006.01)I 主分类号 H04W84/18(2006.01)I
代理机构 南京经纬专利商标代理有限公司 32200 代理人 魏学成
主权项 一种基于人工免疫系统的无线传感器网络故障诊断方法,其特征在于该方法包括如下步骤:A.)启动无线传感器网络、初始化传感器节点,采用TinyOS发送采集命令;B.)传感器节点执行采集命令并将采集的监测对象的数据和传感器节点能耗反馈给簇头节点;C.)簇头节点将步骤B所述的监测对象的数据融合成数据包,簇头节点并将数据包和步骤B所述的传感器节点能耗经过基站发送给计算机;D.)采用计算机读取步骤C所述的数据包中监测对象数据值的大小并以读取的监测对象的数据、传感器节点能耗以及监测对象的数据融合构成的数据包大小信息构建数据库,数据库包括两种模式即正常输入模式和已知故障输入模式,数据库的构建如下:无线传感器网络的传感器节点数为N,正常输入模式的模式数为a,已知故障输入模式的模式数为b,正常输入模式时的数据包大小为rp、传感器节点能耗为re、监测对象的数据为rt,已知故障输入模式时的数据包大小为fp、传感器节点能耗为fe、监测对象的数据为ft,则正常输入模式和已知故障输入模式分别表示为: <mrow> <msub> <mi>IN</mi> <mi>a</mi> </msub> <mo>=</mo> <msub> <mfenced open='[' close=']'> <mtable> <mtr> <mtd> <msub> <mi>rp</mi> <mn>11</mn> </msub> </mtd> <mtd> <msub> <mi>rp</mi> <mn>12</mn> </msub> </mtd> <mtd> <mo>.</mo> <mo>.</mo> <mo>.</mo> </mtd> <mtd> <msub> <mi>rp</mi> <mrow> <mn>1</mn> <mi>N</mi> </mrow> </msub> </mtd> </mtr> <mtr> <mtd> <msub> <mi>re</mi> <mn>11</mn> </msub> </mtd> <mtd> <msub> <mi>re</mi> <mn>12</mn> </msub> </mtd> <mtd> <mo>.</mo> <mo>.</mo> <mo>.</mo> </mtd> <mtd> <msub> <mi>re</mi> <mrow> <mn>1</mn> <mi>N</mi> </mrow> </msub> </mtd> </mtr> <mtr> <mtd> <msub> <mi>rt</mi> <mn>11</mn> </msub> </mtd> <mtd> <msub> <mi>rt</mi> <mn>12</mn> </msub> </mtd> <mtd> <mo>.</mo> <mo>.</mo> <mo>.</mo> </mtd> <mtd> <msub> <mi>rt</mi> <mrow> <mn>1</mn> <mi>N</mi> </mrow> </msub> </mtd> </mtr> <mtr> <mtd> <mo>.</mo> </mtd> <mtd> <mo>.</mo> </mtd> <mtd> <mo>.</mo> </mtd> <mtd> <mo>.</mo> </mtd> </mtr> <mtr> <mtd> <mo>.</mo> </mtd> <mtd> <mo>.</mo> </mtd> <mtd> <mo>.</mo> </mtd> <mtd> <mo>.</mo> </mtd> </mtr> <mtr> <mtd> <mo>.</mo> </mtd> <mtd> <mo>.</mo> </mtd> <mtd> <mo>.</mo> </mtd> <mtd> <mo>.</mo> </mtd> </mtr> <mtr> <mtd> <msub> <mi>rp</mi> <mrow> <mi>a</mi> <mn>1</mn> </mrow> </msub> </mtd> <mtd> <msub> <mi>rp</mi> <mrow> <mi>a</mi> <mn>2</mn> </mrow> </msub> </mtd> <mtd> <mo>.</mo> <mo>.</mo> <mo>.</mo> </mtd> <mtd> <msub> <mi>rp</mi> <mi>aN</mi> </msub> </mtd> </mtr> <mtr> <mtd> <msub> <mi>re</mi> <mrow> <mi>a</mi> <mn>1</mn> </mrow> </msub> </mtd> <mtd> <msub> <mi>re</mi> <mrow> <mi>a</mi> <mn>2</mn> </mrow> </msub> </mtd> <mtd> <mo>.</mo> <mo>.</mo> <mo>.</mo> </mtd> <mtd> <msub> <mi>re</mi> <mi>aN</mi> </msub> </mtd> </mtr> <mtr> <mtd> <msub> <mi>rt</mi> <mrow> <mi>a</mi> <mn>1</mn> </mrow> </msub> </mtd> <mtd> <msub> <mi>rt</mi> <mrow> <mi>a</mi> <mn>2</mn> </mrow> </msub> </mtd> <mtd> <mo>.</mo> <mo>.</mo> <mo>.</mo> </mtd> <mtd> <msub> <mi>rt</mi> <mi>aN</mi> </msub> </mtd> </mtr> </mtable> </mfenced> <mrow> <mn>3</mn> <mi>a</mi> <mo>&times;</mo> <mi>N</mi> </mrow> </msub> <mo>,</mo> </mrow> <mrow> <msub> <mi>IN</mi> <mi>b</mi> </msub> <mo>=</mo> <msub> <mfenced open='[' close=']'> <mtable> <mtr> <mtd> <msub> <mi>fp</mi> <mn>11</mn> </msub> </mtd> <mtd> <msub> <mi>fp</mi> <mn>12</mn> </msub> </mtd> <mtd> <mo>.</mo> <mo>.</mo> <mo>.</mo> </mtd> <mtd> <msub> <mi>fp</mi> <mrow> <mn>1</mn> <mi>N</mi> </mrow> </msub> </mtd> </mtr> <mtr> <mtd> <msub> <mi>fe</mi> <mn>11</mn> </msub> </mtd> <mtd> <msub> <mi>fe</mi> <mn>12</mn> </msub> </mtd> <mtd> <mo>.</mo> <mo>.</mo> <mo>.</mo> </mtd> <mtd> <msub> <mi>fe</mi> <mrow> <mn>1</mn> <mi>N</mi> </mrow> </msub> </mtd> </mtr> <mtr> <mtd> <msub> <mi>ft</mi> <mn>11</mn> </msub> </mtd> <mtd> <msub> <mi>ft</mi> <mn>12</mn> </msub> </mtd> <mtd> <mo>.</mo> <mo>.</mo> <mo>.</mo> </mtd> <mtd> <msub> <mi>ft</mi> <mrow> <mn>1</mn> <mi>N</mi> </mrow> </msub> </mtd> </mtr> <mtr> <mtd> <mo>.</mo> </mtd> <mtd> <mo>.</mo> </mtd> <mtd> <mo>.</mo> </mtd> <mtd> <mo>.</mo> </mtd> </mtr> <mtr> <mtd> <mo>.</mo> </mtd> <mtd> <mo>.</mo> </mtd> <mtd> <mo>.</mo> </mtd> <mtd> <mo>.</mo> </mtd> </mtr> <mtr> <mtd> <mo>.</mo> </mtd> <mtd> <mo>.</mo> </mtd> <mtd> <mo>.</mo> </mtd> <mtd> <mo>.</mo> </mtd> </mtr> <mtr> <mtd> <msub> <mi>fp</mi> <mrow> <mi>a</mi> <mn>1</mn> </mrow> </msub> </mtd> <mtd> <msub> <mi>fp</mi> <mrow> <mi>a</mi> <mn>2</mn> </mrow> </msub> </mtd> <mtd> <mo>.</mo> <mo>.</mo> <mo>.</mo> </mtd> <mtd> <msub> <mi>fp</mi> <mi>aN</mi> </msub> </mtd> </mtr> <mtr> <mtd> <msub> <mi>fe</mi> <mrow> <mi>a</mi> <mn>1</mn> </mrow> </msub> </mtd> <mtd> <msub> <mi>fe</mi> <mrow> <mi>a</mi> <mn>2</mn> </mrow> </msub> </mtd> <mtd> <mo>.</mo> <mo>.</mo> <mo>.</mo> </mtd> <mtd> <msub> <mi>fe</mi> <mi>aN</mi> </msub> </mtd> </mtr> <mtr> <mtd> <msub> <mi>ft</mi> <mrow> <mi>a</mi> <mn>1</mn> </mrow> </msub> </mtd> <mtd> <msub> <mi>ft</mi> <mrow> <mi>a</mi> <mn>2</mn> </mrow> </msub> </mtd> <mtd> <mo>.</mo> <mo>.</mo> <mo>.</mo> </mtd> <mtd> <msub> <mi>ft</mi> <mi>aN</mi> </msub> </mtd> </mtr> </mtable> </mfenced> <mrow> <mn>3</mn> <mi>b</mi> <mo>&times;</mo> <mi>N</mi> </mrow> </msub> <mo>;</mo> </mrow>E.)当步骤D所述的数据库构建完成,则启动人工免疫系统,进入步骤F;当步骤D所述的数据库构建未完成,则返回步骤A,继续数据的采集;F.)人工免疫系统进行自检,当人工免疫系统完好则进入步骤G;当人工免疫系统不完好,则报告出错信息;G.)人工免疫系统启动故障检测后提取步骤D所述数据库中正常输入模式和已知故障输入模式作为样本,经归一化处理得到唯一的特征向量来表征正常输入模式和已知故障输入模式,即全部特征向量都在[0,1]N的形态空间中,N表示空间维数;H.)生成检测器,包括如下步骤:i.)将步骤G所述的表征正常输入模式的特征向量经过模糊c均值聚类获得聚类自体中心的坐标为SMi,半径为SRi;初始设定检测器中心的坐标为DMj,半径为DRj,则初始设定的检测器与最近的聚类自体间的距离为: <mrow> <msub> <mi>d</mi> <mi>ij</mi> </msub> <mo>=</mo> <munderover> <mi>min</mi> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> <mo>,</mo> <mi>j</mi> <mo>=</mo> <mn>1</mn> </mrow> <mrow> <mi>i</mi> <mo>=</mo> <mi>P</mi> <mo>,</mo> <mi>j</mi> <mo>=</mo> <mi>Q</mi> </mrow> </munderover> <mo>|</mo> <mo>|</mo> <msub> <mi>DM</mi> <mi>j</mi> </msub> <mo>-</mo> <msub> <mi>SM</mi> <mi>i</mi> </msub> <mo>|</mo> <mo>|</mo> <mo>,</mo> </mrow>SMi表示第i个聚类自体中心的坐标,SRi表示第i个聚类自体半径,i为的取值范围为1到P,P表示聚类生成自体类别数;DMj表示第j个检测器中心的坐标,DRj表示第j个检测器半径,j的取值范围为1到Q,Q表示检测器的数量;将初始设定检测器经过自适应遗传: <mrow> <mi>F</mi> <msub> <mrow> <mo>(</mo> <msub> <mi>SR</mi> <mi>i</mi> </msub> <mo>,</mo> <msub> <mi>d</mi> <mi>ij</mi> </msub> <mo>)</mo> </mrow> <mi>max</mi> </msub> <mo>=</mo> <mfrac> <mrow> <msub> <mi>d</mi> <mi>ij</mi> </msub> <mo>-</mo> <msub> <mi>SR</mi> <mi>i</mi> </msub> </mrow> <msub> <mi>SR</mi> <mi>i</mi> </msub> </mfrac> </mrow>得到最优检测器;ii.)把生成的最优检测器加入到聚类自体中;iii.)当Q个最优检测器生成完毕,则进入步骤J;当Q个最优检测器未生成完毕,则返回步骤i;I.)将步骤G所述的表征已知故障输入模式的特征向量经过模糊c均值聚类得到记忆抗体;J.)将故障输入模式进行归一化后作为抗原,步骤H所述的最优检测器为抗体,以抗原为中心,把抗体分成不同的分布区域,根据抗体与抗原间的亲和度Aff=(1-dEC)3的大小执行免疫计算,对抗体进行克隆、变异处理,dEC为抗原与抗体间的欧几里德距离;①当0≤Aff<R1,则抗体不作任何改变,其中R1为抗原与抗体最小亲和度Affmin;②当R1≤Aff<R2,则生成变异后的抗体以替代原来的抗体: <mrow> <msub> <mi>B</mi> <mrow> <mi>n</mi> <mo>+</mo> <mn>1</mn> </mrow> </msub> <mo>=</mo> <mfrac> <mrow> <munderover> <mi>&Sigma;</mi> <mrow> <mi>j</mi> <mo>=</mo> <mn>1</mn> </mrow> <msub> <mi>M</mi> <mi>B</mi> </msub> </munderover> <msub> <mi>B</mi> <mi>nj</mi> </msub> <mo>+</mo> <mi>Ag</mi> </mrow> <mrow> <msub> <mi>M</mi> <mi>B</mi> </msub> <mo>+</mo> <mn>1</mn> </mrow> </mfrac> <mo>,</mo> </mrow>其中Bnj为当前抗体,Bn+1为变异后的抗体,MB为此区域内的抗体数,Ag为抗原, <mrow> <mi>R</mi> <mn>2</mn> <mo>=</mo> <mfrac> <mrow> <mi>R</mi> <mn>3</mn> </mrow> <mn>2</mn> </mfrac> <mo>,</mo> </mrow>R3为抗原与所有抗体间亲和度的平均值 <mrow> <mi>R</mi> <mn>3</mn> <mo>=</mo> <mfrac> <mrow> <munderover> <mi>&Sigma;</mi> <mrow> <mi>j</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>Q</mi> </munderover> <msub> <mi>Aff</mi> <mi>j</mi> </msub> </mrow> <mi>Q</mi> </mfrac> <mo>;</mo> </mrow>③当R2≤Aff<R3,则抗体执行如下变异:Bn+1=Bn+μ(Ag-Bn),其中,Bn为当前的抗体,Bn+1为变异后的抗体,Ag为抗原,μ为变异系数,取值范围为0≤μ≤1,R3为抗原与所有抗体间亲和度的平均值 <mrow> <mi>R</mi> <mn>3</mn> <mo>=</mo> <mfrac> <mrow> <munderover> <mi>&Sigma;</mi> <mrow> <mi>j</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>Q</mi> </munderover> <msub> <mi>Aff</mi> <mi>j</mi> </msub> </mrow> <mi>Q</mi> </mfrac> <mo>,</mo> </mrow>Q为抗体数;④当Aff≥R3,则将抗原分别与正常输入模式和已知故障输入模式进行匹配:当抗原与正常输入模式匹配,则抗原为自体模式,返回步骤J对新的抗原执行诊断;当抗原与已知故障输入模式匹配,则抗原为已知故障输入模式,检测器保持不变,返回步骤J对新的抗原执行诊断;当抗原与正常输入模式和已知故障输入模式都不匹配,则该抗原为未知故障,在区域R1≤Aff<R2内一个随机位置克隆一个特征抗体得到克隆抗体,并在区域Aff≥R3中随机选取一个抗体将其删除,进入步骤K;K.)将步骤J生成的变异后的抗体或克隆抗体进行标注并加入记忆抗体,返回步骤J对新的抗原执行诊断。
地址 210016 江苏省南京市白下区御道街29号