1.一种基于冲突感知的LoRaWAN网络速率自适应调整方法,其特征在于:包括以下步骤:
S1:在一个圆形区域内随机均匀分布有N个LoRa节点和若干LoRa网关,结合该区域内所产生的有效字节载荷数,构建吞吐量估算模型,得出吞吐量指标O;所述的构建吞吐量估算模型具体包括:
在一个圆形区域[m]内,随机均匀的部署N个LoRa节点和若干LoRa网关,假设所有的LoRa节点在瞬间产生一个有效载荷B字节的数据包,该数据包在一个时间段T[s]内随机均匀分布,由此可以推出,该区域内的吞吐量O如下:S2:根据LoRa节点的接收灵敏度阈值和路径损耗特性,构建路径损耗丢包模型,初始化各个节点扩频因子,得到扩频因子初试集SFinit;所述构建路径损耗丢包模型具体包括:根据LoRa实际应用场景及网络大规模部署特点,考虑使用对数正态阴影路径损耗模型PL(d),表示如下:
其中,dj为终端节点到网关的距离,d0为参考距离,PL(d0)为参考距离下的路径损耗,γ为路径损耗指数,Xσ表示均值为0,标准差为δ的正态分布;PL(dj)值的计算如下式:根据发射功率Ptx和天线增益G得到接收方接收信号强度Pr(dj):Pr(dj)=Pt+G‑PL(dj)由路径损耗而导致丢包的判断公式表示如下:SSF[i]为扩频因子i的接收灵敏度阈值,由下式推导得出:SSF[i]=10log(k*BW*T0(F‑1))+SNRmin其中,BW为带宽;k为玻尔兹曼常数;T0=290,为开尔文标准噪声温度;F=6dB为接收机噪声系数;SNRmin表示解调所需的最小SNR值;
根据路径损耗丢包判断,即Pt+G‑PL(d)>SSF[j]其中j∈{7,8,9......,12},执行循环j=7∶1∶12,如果Pt+G‑PL(d)>SSF[j],则SF[m]=j;如果Pt+G‑PL(d)>SSF[j],则会发生丢包,记录当前的SF值,将所述SF值在j∈{7,8,9......,12}舍去,得到不导致当前网络发生丢包的扩频因子集合SFinit;
S3:根据LoRa的传输特性,建立冲突概率估算模型,预测当前网络状况下的冲突概率Pmac;所述建立冲突概率估算模型具体包括:修改扩频因子SF、带宽BW、编码率CR,改变数据传输速率:不发生冲突的概率Pnc近似的表达为:在M区域内N个节点不发生冲突的概率为:其中λ表示一个帧的到达率;
ToA表示发送一个数据包所需的时间,取决于SF值,计算方法如下:ToA(SF)=Tpreamble(SF)+Tpayload(SF)其中前导码Tpreamble和有效载荷Tpayload传输所花费的时间计算公式为:Tpreamble(SF)=(Lpremble+4.25)·Tsymbol(SF)Tpayload(SF)=npayload·Tsymbol(SF)其中,Lpremble为前导符号长度;npayload为有效载荷符号长度;
给定符号持续时间Tsymbol为:有效载荷符号长度npayload为:其中,C=1表示CRC校验位有效载荷的存在;DE为数据速率优化选项,当SF的值为11或
12时,其值为1;cr表示编码率CR的映射,对应的值为4/5~4/8;
S4:在步骤S2、S3的基础上建立基于冲突感知的速率自适应调整机制,对终端数据速率进行自适应调整;
由S3推出在区域M内,N个节点发生冲突的概率为:利用冲突概率,计算出在区域M内使用同一个特定的扩频因子节点的最大数量,nmax(SF):
根据S2得出当前网络区域中节点可以使用的最小SF值以及最大SF值:SFmin(n)=min{SFinit}SFmax(n)=max{SFinit}所述基于冲突感知的速率自适应调整机制是以初始化后的扩频因子集SFinit和冲突概率Pmac为输入,并在此基础上,将已经分配最小SF的节点数量同nmax(SF)进行比较,如果未超过nmax(SF),则继续将该SF值分配给其它节点,直至其节点数与nmax(SF)相同;如果达到了极限,就按照相同的过程给网络中的剩下节点分配一个更高的SF,并不断增加它直到最大值,即SF=SFmax;当ncount(SF)=nmax(SF)或SF的值已达最高,将不再为该区域内的节点分配新的扩频因子值;最后,所述基于冲突感知的速率自适应调整机制将扩频因子从小到大合理的分配给一定数量的节点,比较已分配扩频因子值的节点数ncount和总节点数是否相等,如果相等则表明该区域内的每一个节点都分配了正确的扩频因子,否则将初始情况下被赋值为
1的Pmac递减0.01,不断进行迭代,直至Pmac<0.01。