CN104168579B - 一种基于区域判定的多精度节点定位方法 - Google Patents
一种基于区域判定的多精度节点定位方法 Download PDFInfo
- Publication number
- CN104168579B CN104168579B CN201410400684.4A CN201410400684A CN104168579B CN 104168579 B CN104168579 B CN 104168579B CN 201410400684 A CN201410400684 A CN 201410400684A CN 104168579 B CN104168579 B CN 104168579B
- Authority
- CN
- China
- Prior art keywords
- beaconing nodes
- dummy block
- node
- rsqb
- lsqb
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Mobile Radio Communication Systems (AREA)
- Measurement Of The Respiration, Hearing Ability, Form, And Blood Characteristics Of Living Organisms (AREA)
Abstract
本发明公开了一种基于区域判定的多精度节点定位方法,其步骤包括:步骤一,计算信标节点的指纹信息差异值;步骤二,初始聚类中心与剩余信标节点聚类;步骤三,判断信标节点的部署方式;步骤四,非均匀部署的第一级虚拟块划分;步骤五,均匀部署的第一级虚拟块划分;步骤六,第二级非均匀部署的虚拟块划分;步骤七,第二级均匀部署的虚拟块划分;步骤八,建立基于全网信标节点分布特征的定位树;步骤九,未知节点的定位。本发明方法对监测区域内信标节点的密度要求不高,能实现细粒度定位,能更加方便、灵活地获取野生动物的生存数据,从而进行有效保护。
Description
技术领域
本发明涉及无线传感器网络的应用技术,特别是在野生动物保护和监测中基于区域判定的多精度节点定位方法。
背景技术
在野生动物保护中,我们需要使用无线传感器网络(WSN)更准确、实时、动态地获取野生动物种群数量、环境信息及个体活动规律。无线传感器网络由大量独立分布的传感器节点构成,传感器对物理环境数据进行采集,然后将这些物理环境的测量数据转换为信号,通过节点间的协作方式汇聚到基站或数据中心。由于无线传感器网络监测所得的数据具有很强的位置相关性,缺少位置信息的数据很大程度是没有用处的,因此节点定位技术是无线传感器网络中的一项基础技术。但实际上只有少量信标节点可以自主地获得自身位置,多数的节点自身不具备定位能力,所以需要通过其他方式定位。
将WSN应用于野生动物活动监测时,网络节点的部署通常受野生动物活动习性、区域地形等因素的影响,很多情况下都不是均匀部署。我们需要在这种情况下,建立符合实际场景的节点定位模型,并保证节点定位的精度。传统的室外定位方法通常都是在较小范围、较少节点的网络中进行,而野外环境复杂多变、范围广,传统的定位方法并不能很好的适应野外大规模部署的无线传感器网节点的定位需求。另外,以前的定位方法没有考虑节点定位的实际意义,在野生动物保护中动物学家更加关注野生动物活动在哪个区域,例如树林、河流、洞穴等等,仅仅得到动物所处的物理位置坐标很大程度并不符合需求。
发明内容
在野外监测区域对WSN节点的定位与通常环境中的定位显著不同,针对现有的定位方法不能很好地满足野外大规模WSN节点定位的现状,本发明提出了基于区域划分的以实际任务为驱动的多精度节点定位方法,在节点部署均匀情况未知的前提下,对如何建立有效的节点定位模型以及如何在不同部署情况下完成具有物理意义节点定位的问题进行了探索,提出了基于区域判定的多精度节点定位方法。
为了实现上述任务,本发明采取的技术方案是一种基于区域判定的多精度节点定位方法,包括以下步骤:
一种基于区域判定的多精度节点定位方法,包括以下步骤:
步骤一,计算信标节点的指纹信息差异值
采集监测区域的地形地貌特征按照比例在计算机中绘制地貌特征图,并标注出所有的R个信标节点;在不同的地形区域中选取r个信标节点作为初始聚类中心,计算R个信标节点的指纹信息,继而计算出每一个信标节点与其他所有信标节点的指纹信息差异值;
步骤二,初始聚类中心与剩余信标节点聚类
分别计算初始聚类中心中每一个信标节点与其余R-r个信标节点之间指纹信息差异值的欧氏距离,如果计算出两个信标节点的欧式距离小于给定的相似度阈值,则将这两个信标节点聚为一类;
步骤三,判断信标节点的部署方式
将步骤二中聚为一类的所有信标节点所在区域作为第一级虚拟块,然后将每个第一级虚拟块划分为多个网格单元,根据每个网格单元内信标节点的分布情况,判定每个第一级虚拟块是均匀部署的第一级虚拟块还是非均匀部署的第一级虚拟块;如均不是,则将该虚拟块划分后再进行判断;
步骤四,非均匀部署的第一级虚拟块划分
在非均匀部署的第一级虚拟块中,随机选取一个信标节点作为初始信标节点,计算以初始信标节点为圆心,以设定的长度为半径的圆范围内信标节点的个数,如初始信标节点的圆内的信标节点个数满足设置要求,则将该初始信标节点生成一个聚类,这个聚类称为第二级非均匀部署的虚拟块;然后判断以初始信标节点圆内每一个信标节点为圆心,以设定的长度为半径的圆内信标节点的个数是否满足设置要求,如满足,则将该信标节点加入到第二级非均匀部署的虚拟块中;
步骤五,均匀部署的第一级虚拟块划分
将均匀部署的第一级虚拟块划分成四个大小相同的区域,落在每个区域内的信标节点聚为一类,称为第二级均匀部署的虚拟块;
步骤六,第二级非均匀部署的虚拟块划分
对每个第二级非均匀部署的虚拟块按照步骤四相同的方法划分得到第三级非均匀部署的虚拟块;继而再划分成第四级非均匀部署的虚拟块;
步骤七,第二级均匀部署的虚拟块划分
对每个第二级均匀部署的虚拟块按照步骤五相同的划分成第三级均匀部署的虚拟块,继而再划分成第四级均匀部署的虚拟块;
步骤八,建立基于全网信标节点分布特征的定位树
以每一级、每一个虚拟块中的信标节点的指纹信息计算出每一级、每一个虚拟块的指纹平均值,然后以每个虚拟块的指纹平均值作为结点值,建立树形结构,树形结构的根节点为监测区域;
步骤九,未知节点的定位
待定位的未知节点接收到来自监测区域内R个信标节点的RSSI值构成其指纹信息F,用户将未知节点的指纹信息以及该节点需要的定位精度发送给数据中心,数据中心计算未知节点的指纹信息与定位精度对应的一级树形结构中,所有虚拟块的节点值之间的欧氏距离,最小的欧式距离对应的虚拟块即为该未知节点所处区域。
进一步地,步骤一的具体过程如下:
步骤S10,采集监测区域的地形地貌特征,在计算机中绘制出监测区域的地貌特征图;
步骤S11,将监测区域中的信标节点的位置对应地绘制在地貌特征图中,并建立坐标系,记信标节点的总数为R;
步骤S12,在地貌特征图中不同地形区域选取r个信标节点作为初始聚类中心,分别编号为1,2,....,r;除了初始聚类中心以外的R-r个剩余信标节点的编号为r+1,r+2,...,R;
步骤S13,记第1个信标节点接收到第1个信标节点至第R个信标节点的RSSI值为f11,f12,...,f1R,第2个信标节点接收到第1个信标节点至第R个信标节点的RSSI值为f21,f22,...,f2R,以此类推,第R个信标节点接收到第1个信标节点至第R个信标节点的RSSI值为fR1,fR2,...,fRR,其中f11=0,f22=0,......,fRR=0;则每个信标节点接收到监测区域内所有信标节点的RSSI值可用以下信标节点RSSI值矩阵表示:
步骤S14,RSSI值矩阵中的第1行,第2行,…,第R行的数据分别表示第1个信标节点,第2个信标节点,…,第R个信标节点的指纹信息,分别用F1,F2,...,Fr,Fr+1,Fr+2,...,FR表示,即:
上式中,F1,F2,...,Fr为初始聚类中心的指纹信息,Fr+1,Fr+2,...,FR为剩余信标节点的指纹信息;
步骤S15,用W1,W2,...,Wr,Wr+1,Wr+2,...,WR分别表示第1,2,...,r,r+1,r+2,...,R个信标节点的指纹信息差异值:
规定I[A>B]的值在A≥B的情况下为1,在A<B的情况下为0,则在上式中:
进一步地,步骤二的具体过程如下:
步骤S20,计算1号信标节点与r+1号信标节点至R号信标节点之间RSSI差异值的欧氏距离分别为:
计算2号信标节点与r+1号信标节点至R号信标节点之间RSSI差异值的欧氏距离分别为:
以此类推,计算r号信标节点与r+1号信标节点至R号信标节点之间RSSI差异值的欧氏距离分别为:
则得到初始聚类中心与剩余信标节点之间RSSI差异值的欧氏距离矩阵:
步骤S21,判断欧氏距离矩阵中每一个元素是否小于相似度阈值ξ,如小于,则将该元素对应的初始聚类中心的信标节点与剩余信标节点聚为一类;相似度阈值ξ的计算公式如下:
进一步地,步骤三的具体过程如下:
步骤S30,在地貌特征图中,将每一个聚为一类的所有信标节点用最小的正方形围住,正方形中围住的区域称为第一级虚拟块;
步骤S31,记第一级虚拟块为待判定区域,待判定区域的边长为L,待判定区域中信标节点的总个数为V;将该待判定区域划分成网格单元,每个网格单元的边长为m,则网格单元的个数为:
步骤S32,计算第1个,第2个至第M个网格单元内信标节点个数,记为V1,V2,...,VM;计算待判定区域内信标节点的平均密度:计算每个网格单元内的信标节点密度d1,d2,...,dM:
步骤S33,利用排序算法找出M个网格单元中信标节点密度的最大值dmMax和最小值dmMin:
dmMax=Max{d1,d2,...,dM},dmMin=Min{d1,d2,...,dM};
步骤S34,计算各网格单元内信标节点分布均匀度σ、待判定区域内信标节点密度大于判定区域内平均节点密度的网格单元个数MB、MB与网格单元总数M的百分比η:
MB=I(d1>d0)+I(d2>d0)+...+I(dM>d0),
步骤S35,判断步骤S34计算出的σ和η是否满足条件1,如满足,则该第一级虚拟块为非均匀部署,执行步骤四;若不满足,则执行步骤S36;
条件1:条件2:
上式中,σt和ηt为特征参数,用于判断虚拟块部署是否均匀;σt的优选取值为20,ηt的优选取值为0.25;
步骤S36,判断步骤S34计算出的σ和η是否满足条件2,若满足则该第一级虚拟块为均匀部署,执行步骤五,否则执行步骤S37;
步骤S37,将该待判定区域从中部划分成两块大小相同的区域,两个分割后得到的区域仍视为第一级虚拟块,对分割后得到的区域执行步骤S30~S36,直至分割后得到的第一级虚拟块满足条件1或条件2。
进一步地,步骤四的具体过程如下:
步骤S40,给非均匀部署的第一级虚拟块中每一个信标节点都设置一个扫描半径eps和最少信标节点个数minPts;
步骤S41,在一个非均匀部署的第一级虚拟块中,随机选取一个信标节点作为初始信标节点,计算以初始信标节点为圆心、eps长度为半径的圆内的信标节点的个数,记为Pts,该圆称为初始信标节点的邻域;
步骤S42,若初始信标节点的Pts≥minPts,则将初始信标节点生成一个聚类;该聚类称为第二级非均匀部署的虚拟块;
步骤S43,计算以初始信标节点邻域内每一个信标节点为圆心,以邻域内的这个信标节点的eps长度为半径的圆内的信标节点的个数,如果该个数大于等于这个信标节点的minPts,则将该信标节点加入到步骤S41生成的聚类中。
进一步地,步骤八的具体过程如下:
步骤S80,记一个虚拟块中信标节点的个数为d,则该虚拟块中所有信标节点的指纹信息分别为:
步骤S81,一个虚拟块的指纹表示为Fvirtual=[fvirtual1,fvirtual2,...,fvirtuald],其中:
步骤S82,计算该虚拟块的指纹平均值:
该平均值favg就是整个虚拟块的结点值;
步骤S83,按照步骤S80~S82的方法,计算每一级、每一个虚拟块的结点值,然后将所有虚拟块形成树形结构,上一级虚拟块为下一级的父结点,监测区域为根结点。
本发明与现有技术相比具有以下技术特点:
1、按照定位需求定位,分为多个可选的定位精度,并且定位精度可以根据实际的区域中部署的传感器节点的密度、均匀度来确定,划分的层次越多,定位精度越高,对于定位精度要求不高的传感器节点,选择较低的定位精度即可满足需求;对于需要精细定位的区域,通过算法划分多层次的定位区域,实现精确定位,这样按需定位节省了算法开销,提高了定位效率;
2、在建立定位树的过程中只用到了信标节点的相关位置和RSSI信息,因此只需要关注区域中部署的信标节点即可建立完整的定位模型;而未知节点只有在定位过程中才发送响应的定位需求,模型中不需要定位节点的参与,使算法复杂度低,计算量小;
3、本方案的算法对监测区域内信标节点密度的要求不高,可按照本算法的设定,将各种部署方式的信标节点按照层次划分为多级均匀部署区域,或者是非均匀部署区域,无论何种部署方式,均能得到具有实际意义的划分结果,从而实现细粒度的定位;
4、对于不同的野生动物的研究,需要不同精度的定位要求,而本方案中设置的多精度定位方法,使监测者更方便、灵活地获得野生动物生存数据,更符合实际应用中动物学家对动物活动轨迹、范围的定位从而对其进行更及时有效的保护。
附图说明
图1为本发明的整体流程图;
图2是监测区域地形示意图;
图3是监测区域信标节点分布示意图图;
图4是监测区域被划分成第一级虚拟块的示意图;
图5是监测区域内网格最大、最小密度与网格划分示意图;
图6是特征函数σ与网格大小m的关系示意图;
图7是特征函数η与网格大小m的关系示意图;
图8是未知节点区域判定准确率与网格大小m的关系示意图;
图9是树形结构的示意图;
图10是指纹数据降维示意图;
图11是第一级非均匀部署的虚拟块示意图;
图12是第二级非均匀部署的虚拟块示意图;
图13是第三级非均匀部署的虚拟块示意图;
图14是第四级非均匀部署的虚拟块示意图;
图15是均匀部署的虚拟块扩展效果示意图;
具体实施方式
申请人在野外无线传感器网络监测区域中部署各种类型的传感器节点以采集野生动物相关的环境和生存数据从而对野生动物进行有效地保护,部署的节点包括可利用GPS或其他定位技术直接确定位置的少量信标节点和位置信息待判定的大量未知节点两部分。本方案中,涉及的部署节点为信标节点和普通节点。信标节点的位置信息是已知的,而普通节点的位置信息是未知的。
在整个传感器网络部署到监测区域时,由于每个传感器节点是固定的,因此需要根据传感器节点部署情况,建立一个坐标系,网络中每个传感器节点对应坐标系中的一个固定坐标,并且每个信标节点可以向数据中心传回自己的位置信息。
本方案根据整个监测区域内所有信标节点传回的位置信息和指纹信息建立起监测区域的多精度定位树,定位树中每一级的结点代表相应精度范围的聚类区域。待定位的未知节点将自己由实际任务驱动的定位请求发送至数据中心,数据中心找出定位树中相应精度下与其指纹值最近的结点,这个结点代表的聚类区域也就是未知节点定位的结果。
一、本发明方法详细步骤
本发明提出了一种基于区域判定的多精度节点定位方法,根据监测区域中所有信标节点的位置信息建立起全网的定位树,树中的每一个结点对应监测区域中一个不同的区域,结点所在层级代表定位到哪一级精度,这样就可以实现在不同的定位精度下进行定位。
步骤一,计算信标节点的指纹信息差异值
采集监测区域的地形地貌特征按照比例在计算机中绘制地貌特征图,并标注出所有的R个信标节点;在不同的地形区域中选取r个信标节点作为初始聚类中心,计算R个信标节点的指纹信息,继而计算出每一个信标节点与其他所有信标节点的指纹信息差异值;具体如下:
步骤S10:对于已经部署传感器节点的野外监测区域,采集整个野外监测区域的地形地貌特征,在计算机中绘制出地貌特征图,如图2所示;这个步骤将实际监测区域的地貌特征,如山地、山丘、湖泊、平原等,按照比例在计算机中建立模型,可采用二位或三维模型;图1给出了一种二维模型图,在二维模型中,需要保留不同地貌的边界,便于后续对各区域的划分;
步骤S11,将监测区域中的信标节点的对应位置绘制在地貌特征图中,并建立坐标系,使每个信标节点具有唯一坐标值,这样就得到了信标节点的分布图,如图3所示,记信标节点的总数为R,信标节点的编号为1到R;
步骤S12,在地貌特征图中不同地形区域选取r个信标节点作为初始聚类中心,分别编号为1,2,....,r;除了初始聚类中心以外的R-r个剩余信标节点的编号为r+1,r+2,...,R;不同地形区域是指不同的地貌区域,如上述的山丘、湖泊、平原、林区等为不同的地貌区域,分别在这些地貌区域中选取信标节点,尽量使选的信标节点分布在各个不同地形区域中,使信标节点的选取具有代表性;
步骤S13,记第1个信标节点接收到第1个信标节点至第R个信标节点的RSSI值为f11,f12,...,f1R,第2个信标节点接收到第1个信标节点至第R个信标节点的RSSI值为f21,f22,...,f2R,以此类推,第R个信标节点接收到第1个信标节点至第R个信标节点的RSSI值为fR1,fR2,...,fRR,信标节点接收到自己的RSSI值为0,即其中f11=0,f22=0,......,fRR=0;则每个信标节点接收到监测区域内所有信标节点的RSSI值可用以下信标节点RSSI值矩阵表示:
步骤S14,在RSSI值矩阵中的第1行,第2行,…,第R行的数据分别表示第1个信标节点,第2个信标节点,…,第R个信标节点的指纹信息,分别用F1,F2,...,Fr,Fr+1,Fr+2,...,FR表示,即:
上式中,F1,F2,...,Fr为初始聚类中心的指纹信息,Fr+1,Fr+2,...,FR为剩余信标节点的指纹信息;
步骤S15,用W1,W2,...,Wr,Wr+1,Wr+2,...,WR分别表示第1,2,...,r,r+1,r+2,...,R个信标节点的指纹信息差异值:
规定I[A>B]的值在A≥B的情况下为1,在A<B的情况下为0,则在上式中:
步骤二,初始聚类中心与剩余信标节点聚类
分别计算初始聚类中心中每一个信标节点与其余R-r个信标节点之间指纹信息差异值的欧氏距离,如果计算出两个信标节点的欧式距离小于给定的相似度阈值,则将这两个信标节点聚为一类,具体如下:
步骤S20,计算1号信标节点与r+1号信标节点至R号信标节点之间RSSI差异值RSSI的欧氏距离分别为:
计算2号信标节点与r+1号信标节点至R号信标节点之间RSSI差异值的欧氏距离分别为:
以此类推,计算r号信标节点与r+1号信标节点至R号信标节点之间RSSI差异值的欧氏距离分别为:
则得到初始聚类中心与剩余信标节点之间RSSI差异值的欧氏距离矩阵:
步骤S21,判断欧氏距离矩阵中每一个元素是否小于相似度阈值ξ,如小于,则将该元素对应的初始聚类中心的信标节点与剩余信标节点聚为一类,将监测区域划分成如图3所示的聚类区域;相似度阈值ξ的计算公式如下:
由于欧氏距离矩阵中的元素是初始聚类中心的每一个信标节点分别与非初始聚类中心(剩余信标节点)的每一个信标节点之间的距离,则经过阈值判断后,初始聚类中心中一个信标节点与剩余信标节点中的一个信标节点之间的欧式距离如果小于ξ,则将这两个信标节点聚为一类;经过这个步骤后,监测区域中所有信标节点聚为若干类;
步骤三,判断信标节点的部署方式
将步骤二中聚为一类的所有信标节点所在区域作为第一级虚拟块,然后将每个第一级虚拟块划分为多个网格单元,根据每个网格单元内信标节点的分布情况,判定每个第一级虚拟块是均匀部署的第一级虚拟块还是非均匀部署的第一级虚拟块;如均不是,则将该虚拟块划分后再进行判断,具体如下:
步骤S30,在地貌特征图中,将每一个聚为一类的所有信标节点用最小的正方形围住,每一个正方形中围住的区域称为一个第一级虚拟块;
步骤S31,记一个第一级虚拟块为待判定区域,待判定区域的边长为L,待判定区域中信标节点的总个数为V;将该待判定区域划分成网格单元,每个网格单元的边长为m,m值的确定在后面的试验给出;则网格单元的个数为:
步骤S32,计算第1个,第2个至第M个网格单元内信标节点个数,记为V1,V2,...,VM;计算待判定区域内信标节点的平均密度:计算每个网格单元内的信标节点密度d1,d2,...,dM:
步骤S33,利用排序算法找出M个网格单元中信标节点密度的最大值dmMax和最小值dmMin:
dmMax=Max{d1,d2,...,dM},dmMin=Min{d1,d2,...,dM};
步骤S34,计算各网格单元内信标节点分布均匀度σ、带判定区域内信标节点密度大于判定区域内平均节点密度的网格单元个数MB、MB与网格单元总数M的百分比η:
MB=I(d1>d0)+I(d2>d0)+...+I(dM>d0),
步骤S35,判断步骤S34计算出的σ和η是否满足条件1,如满足,则该第一级虚拟块为非均匀部署,执行步骤四;若不满足,则执行步骤S36;
条件1:条件2:
条件1和条件2中,σt和ηt为特征参数,用于判断虚拟块部署是否均匀;σt的优选取值为20,ηt的优选取值为0.25;
步骤S36,判断步骤S34计算出的σ和η是否满足条件2,若满足则该第一级虚拟块为均匀部署,执行步骤五,否则执行步骤S37;
步骤S37,将该待判定区域沿纵向中轴线划分成两块大小相同的区域,两个分割后得到的区域视为两个新的第一级虚拟块,对分割后得到的区域执行步骤S30~S36,直至分割后得到的第一级虚拟块满足条件1或条件2;
在步骤三中,首先将步骤二中聚类的信标节点视为第一级虚拟块,然后通过密度计算和条件判断,分别得出每一个第一级虚拟块中的部署方式;在上述步骤中,每一个第一级虚拟块均要执行步骤S31至S37;而如果某一个第一级虚拟块不满足步骤S35的条件,则将其分割为两个新的第一级虚拟块,直到监测区域中所有的信标节点均可以判断出部署方式是均匀部署还是非均匀部署;划分后的结果如图4所示;
步骤四,非均匀部署的第一级虚拟块划分
在非均匀部署的第一级虚拟块中,随机选取一个信标节点作为初始信标节点,计算以初始信标节点为圆心,以设定的长度为半径的圆范围内信标节点的个数,如初始信标节点的圆内的信标节点个数满足设置要求,则将该初始信标节点生成一个聚类,这个聚类称为第二级非均匀部署的虚拟块;然后判断以初始信标节点圆内每一个信标节点为圆心,以设定的长度为半径的圆内信标节点的个数是否满足设置要求,如满足,则将该信标节点加入到第二级非均匀部署的虚拟块中,具体如下:
步骤S40,给非均匀部署的第一级虚拟块中每一个信标节点都设置一个扫描半径eps和最少信标节点个数minPts;
步骤S41,在一个非均匀部署的第一级虚拟块中,随机选取一个信标节点作为初始信标节点,计算以该初始信标节点为圆心、eps长度为半径的圆内的信标节点的个数,记为Pts,该圆称为初始信标节点的邻域;
步骤S42,比较Pts和minPts的大小,若初始信标节点的Pts≥minPts,则将初始信标节点生成一个聚类;该聚类称为第二级非均匀部署的虚拟块;
步骤S43,计算以初始信标节点邻域内每一个信标节点为圆心,以邻域内这个信标节点的eps长度为半径的圆内的信标节点的个数,如果该个数大于等于这个信标节点的minPts,则将该信标节点加入到步骤S42生成的聚类中;这里的聚类是指,用一个最小的正方形将满足步骤S43、S42条件的信标节点包围住,则这个最小的正方形区域为一个聚类,即第二级非均匀部署的虚拟块;
步骤S40中所述的第一级虚拟块中每一个信标节点,均给定这每一个信标节点的eps和minPts,而这两个值根据实际需要确定,在后面的试验中给出了一组较佳的值;如果初始信标节点的邻域中,存在信标节点不满足该信标节点的Pts≥minPts,则将该信标节点看作噪声点,最后将所有噪声点划为一个独立的聚类。将所有第一级虚拟块均执行步骤S40至S43,则即可将所有非均匀部署的第一级虚拟块划分成第二级非均匀部署的虚拟块;
步骤五,均匀部署的第一级虚拟块划分
步骤S50,将均匀部署的第一级虚拟块划分成四个大小相同的区域,即将第一级虚拟块的正方形区域沿其纵向中轴线和横向中轴线划分成四个大小相同的正方形区域;落在每个区域中的信标节点聚为一类,称为第二级均匀部署的虚拟块;
步骤六,第二级非均匀部署的虚拟块划分
步骤S60,对每个第二级非均匀部署的虚拟块按照步骤四相同的划分方法,划分得到的虚拟块称为第三级非均匀部署虚拟块;继而将每个第三级非均匀部署虚拟块按照步骤四相同的划分方法,划分得到的虚拟块称为第四级非均匀部署虚拟块;
这里所述的按照步骤四相同的划分方法,是指分别将第二级非均匀部署的虚拟块、第三级非均匀部署的虚拟块,看做是步骤S40中的第一级虚拟块,然后执行步骤S41至步骤S43的操作;而第二级非均匀部署的虚拟块、第三级非均匀部署的虚拟块中,每个信标节点的eps和minPts与第一级虚拟块中信标节点的eps和minPts的值不同。
一般来讲,同一级虚拟块中的信标节点在划分计算时,所有信标节点的eps和minPts取相同的值,如后续试验给出的,第一级非均匀部署的虚拟块划分时,随机选取的信标节点和其邻域中所有信标节点的eps均取值为7,minPts均取值为4;第二级划分时,所有信标节点的eps取值为5,minpts取值为3;第三级划分时,eps取值为3,minpts取值为2。
也可以根据划分精度的需要,分别设置不同的值。
步骤七,第二级均匀部署的虚拟块划分
步骤S70,对每个第二级均匀部署的虚拟块按照步骤五相同的划分方法,划分得到的虚拟块称为第三级均匀部署的虚拟块;继而将每个第三级均匀部署虚拟块按照步骤五相同的划分方法,划分得到的虚拟块称为第四级均匀部署虚拟块;
这里所指的按照步骤五相同的方法,是指分别将第二级均匀部署的虚拟、第三级均匀部署虚拟块看做步骤S50中第一级虚拟块,然后进行划分。
步骤八,建立基于全网信标节点分布特征的定位树
以每一级、每一个虚拟块中的信标节点的指纹信息计算出每一级、每一个虚拟块的指纹平均值,然后以每个虚拟块的指纹平均值作为结点值,建立树形结构,树形结构的根结点为监测区域,具体如下:
步骤S80,记一个虚拟块中信标节点的个数为d,则该虚拟块中所有信标节点的指纹信息分别为:
步骤S81,一个虚拟块的指纹表示为Fvirtual=[fvirtual1,fvirtual2,...,fvirtuald],其中:
步骤S82,计算该虚拟块的指纹平均值:
该平均值favg就是该虚拟块的结点值;
步骤S83,按照步骤S80~S82的方法,计算每一级、每一个虚拟块的结点值,然后将所有虚拟块形成树形结构,上一级虚拟块为其划分的下一级虚拟块的父节点,而整个监测区域为根结点;树形结构如图9所示;
这一步计算出每一级、每一个虚拟块内的信标节点指纹平均值作为该虚拟块在树形结构中所处的结点的值,然后根据各级虚拟块的上下关系构成树结构。在形成树形结构时,上一级的虚拟块为其划分的下一级虚拟块的父结点,即,例如,一个均匀部署的第一级虚拟块划分成四个第二级均匀部署的虚拟块,那么这四个第二级均匀部署的虚拟块就是第一级虚拟块的子结点;结点对应的值为该虚拟块的指纹平均值favg;整个树形结构中,根结点为整个监测区域,计算根结点的值时,可按照步骤S80~S82的方法,将整个监测区域看作一个虚拟块,即可计算出整个监测区域的指纹平均值。
步骤九,未知节点的定位
待定位的未知节点接收到来自监测区域内R个信标节点的RSSI值构成其指纹信息F,用户将未知节点的指纹信息以及该节点需要的定位精度发送给数据中心,数据中心计算未知节点的指纹信息与定位精度对应一级的树形结构中所有虚拟块的结点值之间的欧氏距离,最小的欧式距离对应的虚拟块即为该未知节点所处区域,具体如下:
步骤S90,待定位的未知节点接收到来自监测区域内R个信标节点的RSSI值构成其指纹信息F,具体表示为:F=[f1,f2,...,fR];
步骤S91,将接收到的f1,f2,...,fR按从大到小的顺序排列,得到序列为了减少节点通信与计算开销,本方案只取出一部分高维度的指纹信息Fingerprint用于定位,如图10所示;
这一阶段又称为指纹信息降维,示意图如图9所示;
步骤S92,将由待定位的未知节点传回并处理得到的指纹信息Fingerprint、由实际任务决定的定位精度Accuracy和发送定位请求的时间Time一起封装为定位请求Request并输入到数据中心的计算机中,具体表示为:
Request(Accuracy,Fingerprint,Time)
其中,Accuracy取值1、2、3和4,分别代表精度定位到第一级、第二级、第三级和第四级虚拟块;定位精度Accuracy由用户设定,根据实际需要来选择未知节点需要定位的区域精度;
步骤S93,若同一时刻数据中心同时接收到很多个未知节点定位请求,数据中心判断这些定位请求的等待时间与设定阈值T0的大小,如果一个定位请求的等待时间大于T0,则丢掉该定位请求,不予处理;T0一般取3~5ms;
步骤S94,同一时刻数据中心同时接收到等待时间满足步骤S93中条件的x个未知节点定位请求,具体表示为:
Request1(Accuracy1,Fingerprint1,Time1),
Request2(Accuracy2,Fingerprint2,Time2),...,
Requestx(Accuracyx,Fingerprintx,Timex),
对这x个定位请求进行解析,分别得到:
x个定位精度请求Accuracy1,...,Accuracyx,
x个指纹信息Fingerprint1,...,Fingerprintx;
和x个发送时间Time1,...,Timex;
数据中心计算定位请求到达数据中心的时刻T与每个定位请求中发送时间之差作为该定位请求的等待时间Timewait:
Timewait1=T-Time1,Timewait2=T-Time2,...,Timewaitx=T-Timex
步骤S95,用RR表示未知节点定位请求的时间响应比,数据中心先计算出x个定位请求等待时间的平均值:
然后计算所有x个定位请求的时间响应比
步骤S96,利用排序算法找出这x个未知节点的定位请求中时间响应比RR的最大值RRmax,该定位请求记为Requestmax(Accuracymax,Fingerprintmax,Timemax);即数据中心在同一时刻接收到多个定位请求时,先选择时间响应比最大的一个进行处理;
步骤S97,计算机解析出RRmax所属的未知节点的Requestmax(Accuracymax,Fingerprintmax,Timemax)中的Accuracymax,若Accuracymax=1,则说明需要定位到第一级:
计算该未知节点的指纹值Fingerprint=[fmax1,fmax2,fmax3,...,fmaxk]与树形结构中所有第一级结点指纹平均值favg的欧式距离:
找出计算出的所有欧式距离中最小的φ(Fingerprint,favg)中favg所属的结点,这个结点对应的虚拟块的位置就代表未知节点所定位的区域,然后将该位置对应到实际监测区域中即可定位未知节点;
若Accuracymax=2,则计算该未知节点与每个第一级结点指纹平均值favg的欧式距离:
找出最小的φ(Fingerprint,favg)中favg所属的结点,这个结点对应的虚拟块的位置就代表未知节点所定位的区域;
依次类推,若Accuracymax=3,4时,计算该未知节点与第三级、第四级节点的指纹平均值的欧氏距离,找到最小值所属的树中的节点,这个节点对应的虚拟块位置就代表未知节点所定位的区域,如图15所示。
数据中心对时间响应比最大的定位请求处理完毕后,再依次按照时间响应比由大到小的顺序处理其他未知节点的定位请求;在数据中心处理定位请求时,其他未知节点发来的定位请求暂时不予接受,在当前的所有定位请求处理完毕后,再接收其他的定位请求进行处理。
如果数据中心在某一时刻只接受到一条定位请求,则直接判断该定位请求的等待时间是否小于T0,如果小于,则直接按照该定位请求中的定位精度要求去定位,否则丢掉该定位请求。
本发明实现了根据实际需求进行多精度定位的要求,即按照本发明的方法,可以将监测区域划分为多级虚拟块,本实施例中仅给出了四级虚拟块的划分,亦可按照本方案进行更多级虚拟块的划分;虚拟块级数划分的越多,划分后的虚拟块的实际区域就越小,那么定位精度就越高;而定位精度与虚拟块的级数相对应,这样就可以将未知节点的位置限定在一个较小的区域内,满足实际应用的需求。
二、本发明方法各相关参数的确定:
实验一:待判定区域网格划分实验,确定合适的网格边长大小m
步骤一:仿真实验场景初始化,申请人模拟出一个边长(L)为600m的正方形待判定区域,并在此区域内随机部署了R=300个信标节点按照本发明方法进行信息采集;
步骤二:将待判定区域划分为M个网格单元,取网格单元的边长m=1,m=2,...,m=100,总共进行了100组评估实验;
步骤三:图5示出了待判定区域内网格单元信标节点最大密度dmMax、最小密度dmMin与网格边长m的关系,图6示出了特征值σ(σ1,σ2,...,σ100)与网格边长m的关系,图7示出了特征值η(η1,η2,...,η100)与网格边长m的关系,图7示出了未知节点所处区域的判定准确率与网格大小m的关系。由图5、图6、图7和图8观察到在m=50时,网格单元数量M较稳定,dmMax和dmMin差异最大且相对稳定,σm、ηm相对稳定,判定的准确率相对较高且稳定,因此在本方案中,m优选取值50;
步骤四:计算出100组平均实验的平均值
实验二:给出每个信标节点的eps和minPts
步骤一:仿真实验场景初始化,申请人任意选择了一个第一级非均匀部署的虚拟块,用一个最小的正方形将其信标节点全部包围住,该正方形的边长为400m,虚拟块内共有180个信标节点;如图11所示;
步骤二:对待聚类的第一级虚拟块执行具体实施方式中S40,S41,S42和S43,这一步的eps取值为7,minpts取值为4,这样就将整个虚拟块聚成了8个类,这8个类就是生成的第二级非均匀部署的虚拟块,聚类后效果如图12所示;
步骤三:对待聚类的第一级虚拟块执行具体实施方式中S40,S41,S42和S43,这一步的eps取值为5,minpts取值为3,这样就将整个虚拟块聚成了9个类,聚类后效果如图13所示;
步骤四:对待聚类的第一级虚拟块执行具体实施方式中S40,S41,S42和S43,这一步的eps取值为3,minpts取值为2,这样就将整个虚拟块聚成了10个类,聚类后效果如图14所示,有比较理想的划分效果。
Claims (6)
1.一种基于区域判定的多精度节点定位方法,其特征在于,包括以下步骤:
步骤一,计算信标节点的指纹信息差异值
采集监测区域的地形地貌特征按照比例在计算机中绘制地貌特征图,并标注出所有的R个信标节点;在不同的地形区域中选取r个信标节点作为初始聚类中心,计算R个信标节点的指纹信息,继而计算出每一个信标节点与其他所有信标节点的指纹信息差异值;所述的信标节点指无线传感器网络信标节点;
步骤二,初始聚类中心与剩余信标节点聚类
分别计算初始聚类中心中每一个信标节点与其余R-r个信标节点之间指纹信息差异值的欧氏距离,如果计算出两个信标节点的欧式距离小于给定的相似度阈值,则将这两个信标节点聚为一类;
步骤三,判断信标节点的部署方式
将步骤二中聚为一类的所有信标节点所在区域作为第一级虚拟块,然后将每个第一级虚拟块划分为多个网格单元,根据每个网格单元内信标节点的分布情况,判定每个第一级虚拟块是均匀部署的第一级虚拟块还是非均匀部署的第一级虚拟块;如均不是,则将该虚拟块划分后再进行判断;
步骤四,非均匀部署的第一级虚拟块划分
在非均匀部署的第一级虚拟块中,随机选取一个信标节点作为初始信标节点,计算以初始信标节点为圆心,以设定的长度为半径的圆范围内信标节点的个数,如初始信标节点的圆内的信标节点个数满足设置要求,则将该初始信标节点生成一个聚类,这个聚类称为第二级非均匀部署的虚拟块;然后判断以初始信标节点圆内每一个信标节点为圆心,以设定的长度为半径的圆内信标节点的个数是否满足设置要求,如满足,则将该信标节点加入到第二级非均匀部署的虚拟块中;
步骤五,均匀部署的第一级虚拟块划分
将均匀部署的第一级虚拟块划分成四个大小相同的区域,落在每个区域内的信标节点聚为一类,称为第二级均匀部署的虚拟块;
步骤六,第二级非均匀部署的虚拟块划分
对每个第二级非均匀部署的虚拟块按照步骤四相同的方法划分得到第三级非均匀部署的虚拟块;继而再划分成第四级非均匀部署的虚拟块;
步骤七,第二级均匀部署的虚拟块划分
对每个第二级均匀部署的虚拟块按照步骤五相同的划分成第三级均匀部署的虚拟块,继而再划分成第四级均匀部署的虚拟块;
步骤八,建立基于全网信标节点分布特征的定位树
以每一级、每一个虚拟块中的信标节点的指纹信息计算出每一级、每一个虚拟块的指纹平均值,然后以每个虚拟块的指纹平均值作为结点值,建立树形结构,树形结构的根节点为监测区域;
步骤九,未知节点的定位
待定位的未知节点接收到来自监测区域内R个信标节点的RSSI值构成其指纹信息F,用户将未知节点的指纹信息以及该节点需要的定位精度发送给数据中心,数据中心计算未知节点的指纹信息与定位精度对应的一级树形结构中,所有虚拟块的节点值之间的欧氏距离,最小的欧式距离对应的虚拟块即为该未知节点所处区域。
2.如权利要求1所述的基于区域判定的多精度节点定位方法,其特征在于,步骤一的具体过程如下:
步骤S10,采集监测区域的地形地貌特征,在计算机中绘制出监测区域的地貌特征图;
步骤S11,将监测区域中的信标节点的位置对应地绘制在地貌特征图中,并建立坐标系,记信标节点的总数为R;
步骤S12,在地貌特征图中不同地形区域选取r个信标节点作为初始聚类中心,分别编号为1,2,....,r;除了初始聚类中心以外的R-r个剩余信标节点的编号为r+1,r+2,...,R;
步骤S13,记第1个信标节点接收到第1个信标节点至第R个信标节点的RSSI值为f11,f12,...,f1R,第2个信标节点接收到第1个信标节点至第R个信标节点的RSSI值为f21,f22,...,f2R,以此类推,第R个信标节点接收到第1个信标节点至第R个信标节点的RSSI值为fR1,fR2,...,fRR,其中f11=0,f22=0,......,fRR=0;则每个信标节点接收到监测区域内所有信标节点的RSSI值可用以下信标节点RSSI值矩阵表示:
步骤S14,RSSI值矩阵中的第1行,第2行,…,第R行的数据分别表示第1个信标节点,第2个信标节点,…,第R个信标节点的指纹信息,分别用F1,F2,...,Fr,Fr+1,Fr+2,...,FR表示,即:
上式中,F1,F2,...,Fr为初始聚类中心的指纹信息,Fr+1,Fr+2,...,FR为剩余信标节点的指纹信息;
步骤S15,用W1,W2,...,Wr,Wr+1,Wr+2,...,WR分别表示第1,2,...,r,r+1,r+2,...,R个信标节点的指纹信息差异值:
规定I[A>B]的值在A≥B的情况下为1,在A<B的情况下为0,则在上式中:
3.如权利要求2所述的基于区域判定的多精度节点定位方法,其特征在于,步骤二的具体过程如下:
步骤S20,计算1号信标节点与r+1号信标节点至R号信标节点之间RSSI差异值的欧氏距离分别为:
计算2号信标节点与r+1号信标节点至R号信标节点之间RSSI差异值的欧氏距离分别为:
以此类推,计算r号信标节点与r+1号信标节点至R号信标节点之间RSSI差异值的欧氏距离分别为:
则得到初始聚类中心与剩余信标节点之间RSSI差异值的欧氏距离矩阵:
步骤S21,判断欧氏距离矩阵中每一个元素是否小于相似度阈值ξ,如小于,则将该元素对应的初始聚类中心的信标节点与剩余信标节点聚为一类;相似度阈值ξ的计算公式如下:
4.如权利要求1所述的基于区域判定的多精度节点定位方法,其特征在于,步骤三的具体过程如下:
步骤S30,在地貌特征图中,将每一个聚为一类的所有信标节点用最小的正方形围住,正方形中围住的区域称为第一级虚拟块;
步骤S31,记第一级虚拟块为待判定区域,待判定区域的边长为L,待判定区域中信标节点的总个数为V;将该待判定区域划分成网格单元,每个网格单元的边长为m,则网格单元的个数为:
步骤S32,计算第1个,第2个至第M个网格单元内信标节点个数,记为V1,V2,...,VM;计算待判定区域内信标节点的平均密度:计算每个网格单元内的信标节点密度d1,d2,...,dM:
步骤S33,利用排序算法找出M个网格单元中信标节点密度的最大值dmMax和最小值dmMin:
dmMax=Max{d1,d2,...,dM},dmMin=Min{d1,d2,...,dM};
步骤S34,计算各网格单元内信标节点分布均匀度σ、待判定区域内信标节点密度大于判定区域内平均节点密度的网格单元个数MB、MB与网格单元总数M的百分比η:
MB=I(d1>d0)+I(d2>d0)+...+I(dM>d0),
步骤S35,判断步骤S34计算出的σ和η是否满足条件1,如满足,则该第一级虚拟块为非均匀部署,执行步骤四;若不满足,则执行步骤S36;
条件1:条件2:
上式中,σt和ηt为特征参数,σt的取值为20,ηt的取值为0.25;
步骤S36,判断步骤S34计算出的σ和η是否满足条件2,若满足则该第一级虚拟块为均匀部署,执行步骤五,否则执行步骤S37;
步骤S37,将该待判定区域从中部划分成两块大小相同的区域,两个分割后得到的区域仍视为第一级虚拟块,对分割后得到的区域执行步骤S30~S36,直至分割后得到的第一级虚拟块满足条件1或条件2。
5.如权利要求1所述的基于区域判定的多精度节点定位方法,其特征在于,步骤四的具体过程如下:
步骤S40,给非均匀部署的第一级虚拟块中每一个信标节点都设置一个扫描半径eps和最少信标节点个数minPts;
步骤S41,在一个非均匀部署的第一级虚拟块中,随机选取一个信标节点作为初始信标节点,计算以初始信标节点为圆心、eps长度为半径的圆内的信标节点的个数,记为Pts,该圆称为初始信标节点的邻域;
步骤S42,若初始信标节点的Pts≥minPts,则将初始信标节点生成一个聚类;该聚类称为第二级非均匀部署的虚拟块;
步骤S43,计算以初始信标节点邻域内每一个信标节点为圆心,以邻域内的这个信标节点的eps长度为半径的圆内的信标节点的个数,如果该个数大于等于这个信标节点的minPts,则将该信标节点加入到步骤S41生成的聚类中。
6.如权利要求1所述的基于区域判定的多精度节点定位方法,其特征在于,步骤八的具体过程如下:
步骤S80,记一个虚拟块中信标节点的个数为d,则该虚拟块中所有信标节点的指纹信息分别为:
步骤S81,一个虚拟块的指纹表示为Fvirtual=[fvirtual1,fvirtual2,...,fvirtuald],其中:
步骤S82,计算该虚拟块的指纹平均值:
该平均值favg就是整个虚拟块的结点值;
步骤S83,按照步骤S80~S82的方法,计算每一级、每一个虚拟块的结点值,然后将所有虚拟块形成树形结构,上一级虚拟块为下一级的父结点,监测区域为根结点。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410400684.4A CN104168579B (zh) | 2014-08-14 | 2014-08-14 | 一种基于区域判定的多精度节点定位方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410400684.4A CN104168579B (zh) | 2014-08-14 | 2014-08-14 | 一种基于区域判定的多精度节点定位方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104168579A CN104168579A (zh) | 2014-11-26 |
CN104168579B true CN104168579B (zh) | 2017-07-28 |
Family
ID=51912171
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410400684.4A Active CN104168579B (zh) | 2014-08-14 | 2014-08-14 | 一种基于区域判定的多精度节点定位方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104168579B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106454727B (zh) * | 2016-09-30 | 2019-10-01 | 西北大学 | 一种基于细粒度子载波信息的低代价被动式定位方法 |
CN111458471B (zh) * | 2019-12-19 | 2023-04-07 | 中国科学院合肥物质科学研究院 | 一种基于图神经网络的水域检测预警方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1742390A2 (en) * | 2005-07-05 | 2007-01-10 | Robert Bosch GmbH | Method of installing a wireless security system |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102608571B (zh) * | 2012-03-08 | 2013-09-11 | 西北大学 | 一种面向野生动物的无线传感器网络的目标定位方法 |
-
2014
- 2014-08-14 CN CN201410400684.4A patent/CN104168579B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1742390A2 (en) * | 2005-07-05 | 2007-01-10 | Robert Bosch GmbH | Method of installing a wireless security system |
Also Published As
Publication number | Publication date |
---|---|
CN104168579A (zh) | 2014-11-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Batty | Polynucleated urban landscapes | |
Batty | Cities as fractals: simulating growth and form | |
CN101105841B (zh) | 由大规模基因芯片表达谱数据构建基因调控亚网络的方法 | |
CN103442331B (zh) | 终端设备位置确定方法和终端设备 | |
Pourkhabbaz et al. | Suitability analysis for determining potential agricultural land use by the multi-criteria decision making models SAW and VIKOR-AHP (Case study: Takestan-Qazvin Plain) | |
CN104239453B (zh) | 数据处理方法及装置 | |
CN104679942A (zh) | 一种基于数据挖掘的建设用地承载效率测度方法 | |
CN105868447B (zh) | 基于双层网络的用户通讯行为分析及模型仿真系统 | |
CN106296315A (zh) | 基于用户用电数据的情境感知系统 | |
CN104168579B (zh) | 一种基于区域判定的多精度节点定位方法 | |
Pratomoatmojo | LanduseSim Methods: Land use class hierarchy for simulations of multiple land use growth | |
CN106874602A (zh) | 气象数据处理方法和装置 | |
CN112199456A (zh) | 一种基于供给型水文生态系统服务的流域水资源管理方法 | |
CN105868352A (zh) | 一种基于维度相关性分析的高维数据维度排序方法 | |
CN105631465A (zh) | 一种基于密度峰值的高效层次聚类方法 | |
Fang | Site selection of ecotourism: a case study of Zhejiang province | |
CN106503386A (zh) | 评估光功率预测算法性能优劣的方法及装置 | |
CN106201706A (zh) | 一种粒子群服务选择方法和系统 | |
CN107122922B (zh) | 一种基于排序学习的农机深松作业质量评价方法 | |
CN109190450A (zh) | 基于分布式计算平台的人工智能遥感影像数据提取方法 | |
CN108765560A (zh) | 一种将dem数据转化为网格模型的方法及装置 | |
CN104657473A (zh) | 一种保证质量单调性的大规模数据挖掘方法 | |
Barthelemy | Spatial networks: tools and perspectives | |
CN102855624B (zh) | 一种基于广义数据场和Ncut算法的图像分割方法 | |
Fattorini et al. | Design-based consistency of the Horvitz–Thompson estimator under spatial sampling with applications to environmental surveys |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |