基于无线Mesh网络OLSR路由协议的MATLAB仿真

目录

一、理论基础

二、核心程序

三、测试结果


一、理论基础

        无线Mesh网络是一种基于无线传感器网络的协议,它使用多个节点组成一个网络,节点之间相互通信,从而形成一个具有自组织和自修复能力的网络。在无线Mesh网络中,OLSR(Optimized Link State Routing)路由协议是一种非常重要的协议,它主要被用于MANET(Mobile Ad hoc network)网络。

OLSR路由协议的原理

       OLSR路由协议的核心思想是MPR(Multicast Protocol Routing,多播协议路由)。在OLSR中,每个节点都可以作为路由器和终端设备使用。节点之间通过广播和单播的方式进行通信,数据可以从源节点通过多个中间节点传输到目的节点。

OLSR路由协议的数学原理

  1. 邻居节点:如果节点可以监听到节点X,则节点X是节点的邻居节点。
  2. 跳邻居:通过邻居节点监听到的节点是2跳邻居节点,可以包含节点自身以及某些1跳邻居节点。
  3. 严格2跳邻居:即不是节点自身或其邻居节点,而是严格通过邻居节点监听到的节点。
  4. 孤立两跳邻节点:指仅通过一个邻节点同目标节点相连的两跳邻节点。
  5. 主要地址:在OLSR中,被定义为OLSR接口地址。
  6. 链路:两个不同OLSR节点接口之间相互监听形成链路。
  7. 对称链路:两个OLSR接口之间已经认证的双向链路。

OLSR路由协议的实现方式

       OLSR路由协议有很多种实现方式,最常见的包括Zigbee、Bluetooth Mesh、Thread等。其中,Zigbee是一种开放标准的Mesh组网协议,它采用了低功耗无线通信技术,具有自组织、低成本和低功耗等优点。而Bluetooth Mesh则是一种基于蓝牙技术的Mesh组网协议,它可以连接数百个设备,支持多种传输模式,包括广播、多播和单播等。

       总的来说,OLSR路由协议是一种非常高效的路由协议,它通过多跳的方式来进行数据的传输,从而增强了网络的稳定性和可靠性。同时,它也具有自组织和自修复的能力,这使得网络更加健壮和可靠。

        无线Mesh网络其也可以称为无线网状网络或者无线多跳网络,其具有动态自组织、自配置、易于维护等优点,同时还具备成本较低,系统运行稳定的优势。无线Mesh网络将移动节点和固定节点通过无线链路进行相互链接,组成一个多跳移动的自组无线网络。无线Mesh网络的构建是基于Ad Hoc无线网络之上的,因此,在其拓扑结构上和Ad Hoc无线网络具有较多的相似点。无线Mesh网络能够灵活快速的实现各种场合的组网,因此具有极其广泛的应用前景。无线Mesh网络结构的基本示意图如下图所示:

       对于OLSR路由协议,通过Dijkstra算法计算无线Mesh网络G中的N个sd的路径,主要步骤如下所示:

       Dijkstra算法算是贪心思想实现的,首先把起点到所有点的距离存下来找个最短的,然后松弛一次再找出最短的,所谓的松弛操作就是,遍历一遍看通过刚刚找到的距离最短的点作为中转站会不会更近,如果更近了就更新距离,这样把所有的点找遍之后就存下了起点到其他所有点的最短距离。选择特殊路径长度最短的路径,将其连接的V-S中的顶点加入到集合S中,同时更新数组dist。一旦S包含了所有顶点,dist[]就是从源到所有其他顶点的最短路径长度。
(1)数据结构。 设置地图的带权邻接矩阵为map[][],即如果从源点u到顶点i有边,就令map[u][i]=<u,i>的权值,否则map[u][i]=∞;采用一维数组dist[i]来记录从源点到i顶点的最短路径长度:采用一维数组p[i]来记录最短路径上i顶点的前驱。
(2)初始化。令集合S={u},对于集合V-S中的所有顶点x,初始化dist[i]=map[u][i],如果源点u到顶点i有边相连,初始化p[i]=u(i的前驱是u),否则p[i]=-1
(3)找最小。在集合V-S中依照贪心策略来寻找使得dist[j]具有最小值的顶点t,即dist[t]=min,则顶点t就是集合V-S中距离源点u最近的顶点。
(4)加入S战队。将顶点t加入集合S,同时更新V-S
(5)判结束。如果集合V-S为空,算法结束,否则转6
(6)在(3)中已近找到了源点到t的最短路径,那么对集合V-S中所有与顶点t相邻的顶点j,都可以借助t走捷径。

二、核心程序

..............................................................

            %节点分布范围
            Nnode = 100;
            SCALE = 500;%
            %初始节点能量
            E0    = 1;
            %通信半径
            Radius= 100;%
            %节点最大移动速度
            Vmax  = 1;%
            %数据发送包速率
            Smax  = 20;%
            %数据发送包长度
            SLen  = 2000;%
            %节点通信阈值
            LRad  = 87;
            %电路能耗系数
            Eelec = 5e-8;
            %信道传播模型的能耗系数
            Efs   = 1e-11;
            %信道传播模型的能耗系数
            Emp   = 1.3e-15;
            %压缩比
            u     = 0.5;%
            %初始变异概率
            P     = 0.5;%
            %发送率
            Trans = 1.5;

            %%
            %构造一个多跳传输测试网络系统,OLSR协议的改进

            X       = rand(1,Nnode)*SCALE;  
            Y       = rand(1,Nnode)*SCALE; 
            %定义随机带宽
            Bw      = 100*rand(Nnode,Nnode);
            %顶级随机的丢包率
            Db      = rand(Nnode,Nnode)/20;

            %network topology 
            dmatrix0= zeros(Nnode,Nnode);
            Fmatrix0= zeros(Nnode,Nnode);
            Cmatrix0= zeros(Nnode,Nnode);
            for i = 1:Nnode 
                for j = 1:Nnode 
                    Dist          = sqrt((X(i) - X(j))^2 + (Y(i) - Y(j))^2);
                    %距离因素
                    dmatrix0(i,j) = Dist;  
                end; 
            end; 
            %计算归一化值的最大值
            for i = 1:Nnode 
                for j = 1:Nnode 
                    Dist = sqrt((X(i) - X(j))^2 + (Y(i) - Y(j))^2);   
                    %网络优先级参数
                    Fmatrix0(i,j) =((Bw(i,j)-min(min(Bw)))/min(min(Bw)) + (max(max(dmatrix0))-dmatrix0(i,j))/max(max(dmatrix0)) + (1-Db(i,j)))/3; 
                    %视频传输能力——即节点之间的传输损耗,用简化模型替代
                    if i == j
                       Cmatrix0(i,j) = 0;  
                    else
                       Cmatrix0(i,j) = 20*log10(Dist); 
                    end
                end; 
            end; 
            MAX_dmatrix = max(max(dmatrix0));
            MAX_Fmatrix = max(max(Fmatrix0));
            MAX_Cmatrix = max(max(Cmatrix0));

            matrix      = zeros(Nnode,Nnode);
            dmatrix     = zeros(Nnode,Nnode);
            Fmatrix     = zeros(Nnode,Nnode);
            Cmatrix     = zeros(Nnode,Nnode);

            for i = 1:Nnode 
                for j = 1:Nnode 
                    Dist = sqrt((X(i) - X(j))^2 + (Y(i) - Y(j))^2); 
                    %a link; 
                    if Dist <= Radius & Dist > 0
                       matrix(i,j)  = 1;   
                       %距离因素
                       dmatrix(i,j) = Dist; 
                       %网络优先级参数
                       Fmatrix(i,j) = ((Bw(i,j)-min(min(Bw)))/min(min(Bw)) + (max(max(dmatrix0))-dmatrix0(i,j))/max(max(dmatrix0)) + (1-Db(i,j)))/3; 
                       %视频传输能力——即节点之间的传输损耗,用简化模型替代
                       Cmatrix(i,j) = 20*log10(Dist); 
                    else 
                       matrix(i,j)  = inf; 
                       %距离因素
                       dmatrix(i,j) = inf; 
                       %网络优先级参数
                       Fmatrix(i,j) = inf; 
                       %视频传输能力——即节点之间的传输损耗,用简化模型替代
                       Cmatrix(i,j) = inf; 
                    end; 
                end; 
            end; 
            %归一化处理
            dmatrix = dmatrix/MAX_dmatrix;
            Fmatrix = Fmatrix/MAX_Fmatrix;
            Cmatrix = Cmatrix/MAX_Cmatrix;
            %路由优化算法的改进
            Tmatrix = (dmatrix + Fmatrix + Cmatrix)/3;
            %定义通信起始节点和终止节点
            tmp = randperm(Nnode);
            for i = 1:Nnode
                distA(i) = sqrt((X(i))^2 + (Y(i))^2);
                distB(i) = sqrt((X(i)-SCALE)^2 + (Y(i)-SCALE)^2);
            end
            [Va,Ia] = max(distA);
            [Vb,Ib] = max(distB);
            Sn  = Ia;
            En  = Ib;
            [paths,costs] = func_dijkstra(Sn,En,Tmatrix); 

            %通过遗传优化算法去搜索OLSR协议的最小MRP集
            if isempty(paths) == 0
               flags = 1; 
            end 

        end
        
        path = func_find_best_MRPset(paths,X,Y,Tmatrix,Nnode);
        path_distance=0; 
        ds=0;
        for d=2:length(paths) 
           path_distance= path_distance + MAX_dmatrix*dmatrix(paths(d-1),paths(d)); 
           ds(d)=MAX_dmatrix*dmatrix(paths(d-1),paths(d)); 
        end 
        %hop数量
        path_hops = length(paths); 
        %根据OSLR协议所建立的网络路径进行视频的传输
...............................................

三、测试结果

 A12-29

基于MATLAB网络控制系统仿真-基于MATLAB网络控制系统仿真.pdf 基于MATLAB网络控制系统仿真 【英文篇名】The simulation of networked control systems based on MATLAB【作者中文名】[url=]许顺孝[/url];【作者英文名】[url=]XU Shun-xiao(Marine Engineering Institute[/url]; [url=]Jimei University[/url]; [url=]Xiamen[/url]; [url=]Fujian 361021[/url]; [url=]China)[/url];【作者单位】[url=]集美大学轮机工程学院[/url];【文献出处】福州大学学报, Journal of Fuzhou University, 编辑部邮箱 2008年 S1期   期刊荣誉:中文核心期刊要目总览  ASPT来源刊  CJFD收录刊【关键词】[url=]网络控制系统[/url]; [url=]ActiveX[/url]; [url=]MATLAB[/url]; [url=]TrueTime[/url];【英文关键词】[url=]networked control system[/url]; [url=]Active X[/url]; [url=]MATLAB[/url]; [url=]TrueTime[/url];【摘要】介绍了基于TrueTime工具包和Active X技术的仿真平台实现方法.前者是根据网络MAC协议对通信延迟机理进行建模的仿真软件包;后者是针对网络控制系统通信模型仿真困难的缺点而提出,该方法通过ActiveX技术实现了对象模型和控制器通信,为网络控制系统的理论研究提供有效的检验平台.通过对两者的比较指出两种方法的优缺点.【英文摘要】This paper introduces two methods of simulation based on TrueTime and Active X,the first is a soft package which create model according to delay principle of networked MAC protocol,the latter is a new method to deal with the difficulty on the simulation of communication model.This method realizes the communication of the plant model and controller through ActiveX technology,then provides an effective test platform for theory research on NCS.Finally this paper gives the advantage and disadvantage by comparin...
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

fpga和matlab

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值