发明名称 基于智能天线和动态虚拟簇的均衡节能路由方法
摘要 一种基于智能天线和动态虚拟簇的均衡节能路由方法,属于无线传感器网络路由方法。本发明在辅助中继和智能天线的波束范围内构建虚拟簇,从簇内选择中继加权值最大的节点充当路由中继,并根据节点能耗情况和节点间距离,利用波束扩展法对虚拟簇进行动态更新,如果波束宽度超过阈值或者中继节点死亡,则依据加权距离矩阵重新发起路由请求,重新建立路由中继;方法:构建发送功率模型;构建能量消耗模型、虚拟簇的动态构建与更新。优点:利用智能天线和动态虚拟簇结合的方式有效降低无线传感器网络的能耗,引入动态虚拟簇机制,根据网络节点的存活情况动态选取中继节点,在节省能量的同时,实现了能耗在节点之间的均匀分布,延长了节点的中继寿命。
申请公布号 CN102892174B 申请公布日期 2014.10.29
申请号 CN201210402011.3 申请日期 2012.10.22
申请人 中国矿业大学 发明人 胡青松;张申;丁恩杰;吴立新;刘伟
分类号 H04W40/08(2009.01)I;H04W52/02(2009.01)I;H04W52/34(2009.01)I;H04W84/18(2009.01)I 主分类号 H04W40/08(2009.01)I
代理机构 江苏圣典律师事务所 32237 代理人 程化铭
主权项 一种基于智能天线和动态虚拟簇的均衡节能路由方法,其特征在于:基于智能天线和虚拟簇的均衡节能路由算法为能量节省与能耗均衡相结合的路由算法SaDVC‑Routing,在辅助中继和智能天线的波束范围内构建虚拟簇,从簇内选择中继加权值最大的节点充当路由中继,并根据节点能耗情况和节点间距离,利用波束扩展法对虚拟簇进行动态更新,如果波束宽度超过阈值或者中继节点死亡,则依据加权距离矩阵重新发起路由请求,重新建立路由中继;包括:一、构建发送功率模型;二、构建能量消耗模型、三、虚拟簇的动态构建与更新;具体方法如下:一、构建发送功率模型将无线传感器网络的节点分布在二维空间区域,每个节点配有智能天线,已知全向天线自由空间路径损耗模型:<img file="2012104020113100001dest_path_image001.GIF" wi="109" he="50" /><img file="731423dest_path_image002.GIF" wi="17" he="21" />其中,<img file="2012104020113100001dest_path_image003.GIF" wi="20" he="25" />为接收功率,<img file="906053dest_path_image004.GIF" wi="18" he="25" />为发送功率,<img file="2012104020113100001dest_path_image005.GIF" wi="17" he="20" />为传输信号的波长,<img file="647744dest_path_image006.GIF" wi="17" he="17" />为衰减指数;当<img file="2012104020113100001dest_path_image007.GIF" wi="42" he="20" />时,对于智能天线而言,有:<img file="376665dest_path_image008.GIF" wi="133" he="50" /><img file="dest_path_image009.GIF" wi="17" he="21" /><img file="986638dest_path_image010.GIF" wi="24" he="25" />为智能天线相对于全向天线的增益,对于一个波束宽度为<img file="dest_path_image011.GIF" wi="16" he="20" />的智能天线而言,其表面积<img file="484616dest_path_image012.GIF" wi="17" he="18" />可以用球冠表面积计算,为<img file="dest_path_image013.GIF" wi="167" he="28" />;在接收节点收到信号后,只有<img file="410590dest_path_image003.GIF" wi="20" he="25" />大于解码阈值<img file="361229dest_path_image014.GIF" wi="20" he="25" />,才能对其正确接收和解码,这就要求发送功率<img file="774892dest_path_image004.GIF" wi="18" he="25" />满足如下条件:<img file="dest_path_image015.GIF" wi="176" he="145" /><img file="127376dest_path_image016.GIF" wi="17" he="21" />发送功率不能连续改变,为了提高发射功率<img file="69924dest_path_image004.GIF" wi="18" he="25" />,将发送功率间隔的分成<img file="dest_path_image017.GIF" wi="24" he="18" />个等级,等级间隔为<img file="914384dest_path_image018.GIF" wi="28" he="18" />;在确定实际发送功率的时候,取:<img file="dest_path_image019.GIF" wi="238" he="76" /><img file="866159dest_path_image020.GIF" wi="17" he="21" />其中,<img file="dest_path_image021.GIF" wi="24" he="25" />表示发送节点的第<img file="dest_path_image023.GIF" wi="9" he="18" />个功率等级;<img file="994521dest_path_image024.GIF" wi="31" he="27" />表示大于等于<img file="dest_path_image025.GIF" wi="14" he="16" />的最小整数;二、构建能量消耗模型当发送和接收1比特数据的电路能耗均为<img file="107971dest_path_image026.GIF" wi="32" he="29" />且固定不变,天线放大1比特数据的能耗为<img file="dest_path_image027.GIF" wi="27" he="29" />且固定不变,发送能耗为<img file="564360dest_path_image028.GIF" wi="28" he="25" />,接收能耗为<img file="dest_path_image029.GIF" wi="29" he="25" />,<img file="788668dest_path_image030.GIF" wi="21" he="25" />、<img file="dest_path_image031.GIF" wi="20" he="25" />分别表示全向天线智能天线在功率<img file="256689dest_path_image032.GIF" wi="17" he="25" />下的发射距离,那么智能天线发送一个长度为<img file="dest_path_image033.GIF" wi="14" he="20" />比特的数据包的能耗为:<img file="541040dest_path_image034.GIF" wi="188" he="81" /><img file="dest_path_image035.GIF" wi="19" he="21" />发送一个数据包的能耗<img file="484725dest_path_image036.GIF" wi="17" he="18" />只与收发节点之间的距离<img file="512724dest_path_image031.GIF" wi="20" he="25" />有关,<img file="851564dest_path_image031.GIF" wi="20" he="25" />直接使用节点间的物理距离;在同样的发射功率下,可以推出:<img file="dest_path_image037.GIF" wi="100" he="27" />,因此,如果采用全向天线将同样的<img file="41237dest_path_image038.GIF" wi="16" he="21" />比特数据发送到相同节点,它所需要的能耗为:<img file="dest_path_image039.GIF" wi="222" he="57" /><img file="472218dest_path_image040.GIF" wi="19" he="21" />三、虚拟簇的动态构建与更新(1)虚拟簇的动态构建先利用现有的简单路由Dijkstra算法,寻找从源节点S到目标节点D的路由作为辅助路由,路由上的中间节点称为辅助中继,用<img file="dest_path_image041.GIF" wi="20" he="25" />表示,以<img file="38329dest_path_image042.GIF" wi="31" he="24" />为圆心,<img file="dest_path_image043.GIF" wi="104" he="25" />为半径画圆,它构成虚拟簇的边界;簇边界所覆盖的节点即簇内节点组成一个簇,记为<img file="746522dest_path_image044.GIF" wi="18" he="20" />,其中<img file="dest_path_image045.GIF" wi="34" he="25" />为本跳节点与<img file="638254dest_path_image041.GIF" wi="20" he="25" />之间的距离;同时令智能天线的最大波束宽度为<img file="25373dest_path_image046.GIF" wi="33" he="25" />,如果<img file="395175dest_path_image044.GIF" wi="18" he="20" />内没有任何节点,称为“簇内真空”,且<img file="dest_path_image047.GIF" wi="58" he="25" />,就将波束宽度值更新为<img file="941563dest_path_image048.GIF" wi="78" he="20" />,<img file="dest_path_image049.GIF" wi="28" he="20" />表示智能天线的波束宽度变化增量,然后以<img file="269776dest_path_image041.GIF" wi="20" he="25" />为圆心、<img file="878612dest_path_image043.GIF" wi="104" he="25" />为半径利用波束扩展法重新构建虚拟簇;虚拟簇构建完毕以后,由辅助中继将该簇的簇内节点ID号存储在一个<img file="52104dest_path_image050.GIF" wi="40" he="20" />的“簇身份矩阵”<img file="2012104020113100001dest_path_image051.GIF" wi="22" he="27" />中,它的每一行表示一个节点的[簇ID,节点ID],共有<img file="469310dest_path_image052.GIF" wi="18" he="16" />个簇内节点;随后,将“簇身份矩阵”传递给上一辅助中继,由它将来自下一跳的“簇身份矩阵”广播给其自身的簇内节点,使虚拟簇的所有簇内节点都知道下一虚拟簇的簇内节点组成情况;选择某个簇内中继节点的时候,将距离和剩余能量这两个因素结合起来,采用中继加权值的方式选出中继加权值最大的节点作为下一跳,所采用的中继加权值为:<img file="dest_path_image053.GIF" wi="208" he="25" />其中,<img file="437266dest_path_image054.GIF" wi="21" he="25" />表示簇内节点的剩余能量;<img file="dest_path_image055.GIF" wi="16" he="20" />为簇内节点与辅助中继的距离,<img file="64556dest_path_image056.GIF" wi="32" he="25" />为<img file="776160dest_path_image055.GIF" wi="16" he="20" />的最大值,<img file="dest_path_image057.GIF" wi="92" he="25" />表达了距离因素所占的比重;<img file="807394dest_path_image058.GIF" wi="17" he="22" />为权重调节因子,用于调节节点剩余能量与节点距离在中继加权值中的比重,在选择下一跳中继节点时,通过中继加权值的方式选择最大的权值作为下一条节点,实现局部即虚拟簇能耗均衡;(2)虚拟簇的动态更新中继节点每发送一个数据包后就检查自己的剩余能量,如果低于阈值,就利用自己的仅有能量将节点死亡消息沿着数据传递的反向路径报告给源节点即节点死亡报告;否则,继续判断波束宽度是否超过阈值,如果没有超过,就采用波束扩大法重建虚拟簇;如果超过,要求源节点重新发起一次Dijkstra路由请求,以便重新寻找一条辅助路由和一系列辅助中继,采用源头更新法以新的辅助中继为圆心构建虚拟簇;如若源节点在收到节点死亡报告(假定死亡节点的<img file="dest_path_image059.GIF" wi="50" he="20" />),将自己的“距离矩阵”中的元素<img file="946252dest_path_image060.GIF" wi="36" he="24" />和<img file="dest_path_image061.GIF" wi="37" he="24" />删除,其中<img file="60838dest_path_image060.GIF" wi="36" he="24" />表示第<img file="310554dest_path_image062.GIF" wi="14" he="16" />行的所有元素,<img file="702352dest_path_image061.GIF" wi="37" he="24" />表示第<img file="12111dest_path_image025.GIF" wi="14" he="16" />列的所有元素;同时,源节点还需要将死亡节点ID记录到“死亡节点向量”中,并在新的Dijkstra路由请求中包含“死亡节点向量”的内容,以便其它节点知晓网络的最新拓扑结构;其它节收到该请求后,按照相似的方法更新自身的“距离矩阵”和“死亡节点向量”;选择辅助中继时,在基于源头更新法的基础上,用节点剩余能量去调节距离矩阵,使得剩余能量越大的节点,其加权距离越小,更可能被Dijkstra算法选择为辅助中继。2、根据权利要求1所述的一种基于智能天线和动态虚拟簇的均衡节能路由方法,其特征在于:所述的基于智能天线和虚拟簇的均衡节能路由算法,具体实现步骤为:1)初始化:设定<img file="dest_path_image063.GIF" wi="20" he="20" />、<img file="613993dest_path_image064.GIF" wi="26" he="20" />、<img file="dest_path_image065.GIF" wi="30" he="25" />、<img file="667400dest_path_image066.GIF" wi="18" he="25" />的初始值,根据网络各节点的坐标设置距离矩阵<img file="dest_path_image067.GIF" wi="25" he="25" />,簇身份矩阵<img file="162972dest_path_image068.GIF" wi="25" he="25" />和死亡节点向量<img file="dest_path_image069.GIF" wi="33" he="25" />为空,设置最小能量等级<img file="643632dest_path_image070.GIF" wi="29" he="25" />、最大能量等级<img file="dest_path_image071.GIF" wi="30" he="25" />和<img file="467232dest_path_image072.GIF" wi="26" he="18" />,给定<img file="dest_path_image073.GIF" wi="32" he="25" />、<img file="324329dest_path_image074.GIF" wi="25" he="26" />和<img file="dest_path_image075.GIF" wi="21" he="25" />,并为数据包大小<img file="425141dest_path_image033.GIF" wi="14" he="20" />和权重调节因子<img file="76702dest_path_image058.GIF" wi="17" he="22" />给定初值;2)源节点利用Dijkstra算法寻找辅助中继和辅助路由,如果失败,就直接退出,否则进入第3步;3)如果下一跳就是目标节点,直接发送数据给它;否则以<img file="653177dest_path_image076.GIF" wi="18" he="25" />为圆心、<img file="dest_path_image077.GIF" wi="97" he="25" />为半径构建虚拟簇,同时更新簇身份矩阵;4)计算中继加权值,选择中继加权值最大的簇内节点为下一跳,记为Relay;5)本跳节点查询“距离矩阵”,确定到达下一跳即Relay的距离,然后确定本次数据的发送功率,如果节点使用最大发射功率仍然无法发送,则返回第4步;否则将数据发给Relay;6)发送节点发完数据、接收节点收到数据以后,分别监测自己的剩余能量,若低于死亡阈值,转向第7步,否则转向第8步;7)本跳节点向源节点发送节点死亡报告,转向第10步;8)判断波束宽度是否超过阈值,若超过阈值,转向第11步,否则转向第9步;9)将波束宽度值更新为<img file="48386dest_path_image078.GIF" wi="74" he="20" />,重新构建虚拟簇;10)源节点删除距离矩阵中与死亡节点相关的行和列,将死亡节点的ID加入死亡节点向量;11)重置波束宽度为初始值,发起新的Dijkstra路由请求;12)如果是目标节点收到数据,就向源节点发送一条确认;否则转到第3步。
地址 221116 江苏省徐州市大学路1号中国矿业大学科技处