m基于模糊控制的网络时延预测和丢包率matlab仿真

简介: m基于模糊控制的网络时延预测和丢包率matlab仿真

1.算法仿真效果
matlab2022a仿真结果如下:

b7512560a4f39cc55e1d6b581b12cff1_watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=.png
7b6986fd31752504388a30ca9abd2d5d_watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=.png
ce5ca05493cd193744107981fe93c22b_watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=.png
989e9633be2da81be12fda1849790930_watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=.png

2.算法涉及理论知识概要

    涉及到具体的数据包大小以及时间延迟,我们通过构建一个FIFO,来虚拟网络的实际工作情况,当空闲情况下,网络流量非常小,我们的数据通过FIFO,会在FIFO内排队,等候前面的数据传输出去后,再发送出去,在FIFO中等候时间为30~60ms,小于发送间隔,因此,不会发生堵塞,而当网络比较拥堵的情况下,那么FIFO中包含了大量的网络背景流量,那么当前数据发送出去的时候,就会在FIFO内等候,这个等候时间往往120ms到180ms之间,当时间过了100ms,此时,第二个数据发送过来饿了,如果此时FIFO已经满了,那么就会发送丢包(FIFO满,则说明网络负荷达到极限,进入的数据全部丢失)。另外,在等候时间中,数据会以一个随机的小概率丢包,那么等候时间越长,丢包的概率就越大。然后假设FIFO中每次数据的流量的时间长度为1ms,如果等候时间为100ms,则说明拥堵在当前数据前的背景流量有100kb通过这个原理我们来进行仿真实现,FIFO的深度大小,反应了实际网络的传输能力。下面我们首先对原始的传输方法进行仿真。

自适应传输模糊控制器的实现

   将依照FFSI推理方法建立自适应传输模糊控制器,首先对输入、输出变量进行模糊划分,以往返时延的差值和当前时刻的发包时间间隔Tc作为模糊控制器的输入,模糊控制器的输出是下一次发包时间间隔的调整,通过与当前时刻发包时间间隔Tc累加作为下一时刻的发包间隔Tn。 

  网络时延的测量可知,端到端网络时延整体上随时间变化幅度较大,不适合直接用RTT值作为模糊控制器的输入变量。本文采用当前时刻预测时延与当前时刻的往返时延值RTTc的差值作为ATFC的一个输入变量。的隶属度函数如图5.9所示,论域为[-15ms,15ms],共分为7个模糊等级,分别为:负大(NB)、负中(NM)、负小(NS)、零(ZE)、正小(PS)、正中(PM)、正大(PB)。

0cc8cbba410b42152bcc459aee48b803_watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=.png

   ATFC应用在网络拥塞场景下,当拥塞恶化时应增大发包间隔,减少网络拥塞对能耗数据包的影响,降低传输丢包率;当拥塞减缓时应减小发包间隔的原则,提高能耗数据包的传输效率。结合先验经验制定ATFC模糊控制规则如表所示。 

d4e9fb686a18bb815d27363f94e34fc0_watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=.png

3.MATLAB核心程序

%空闲状态下时延值要求在30~60ms,拥塞状态下要求在120~180ms,我们要对比的区间就是在拥塞状态下。
MTKL = 100;%蒙特卡洛循环次数
DBL1 = cell(1,MTKL);
for jj = 1:MTKL
    jj
    rng(jj)
    DBL2        = [];    
    %即能够存放1000kB数据量
    ability     = 4.3;%网络(FIFO)1ms内传输能力
    FIFO_Depth  = 200;
    bg_Size     = zeros(1,Times);
    pg_Size     = zeros(1,Times);
    FIFO_Size   = FIFO_Depth*ones(1,Times);
    DB          = 0;%定义丢包次数
    ALL         = 0;%总发送次数
    for i  = 1:Times
        %发送数据包,原始传输方法,每100ms发送一次
        if mod(i,100) == 1
           pg_Size(i)  = Pg_Size_sub;
           ALL         = ALL +1;
        else
           pg_Size(i)  = 0; 
        end    
        %建立一个虚拟的FIFO,当网络空闲的时候,数据包通过这个FIFO需要 
......................................................................
        %计算当前环境下的丢包变换曲线并显示最后的丢包率值
        DBL2(ALL) = DB/ALL;
    end
    DBL1{jj}  = DBL2;
    Lens(jj)  = ALL;
end
 
%计算均值
DBLavg = zeros(1,min(Lens));
for i = 1:min(Lens)
    tmps = 0;
    for jj = 1:MTKL
        tmps = tmps + DBL1{jj}(i);
    end
    DBLavg(i) = tmps/MTKL;
end
 
figure;
plot(FIFO_Size);
xlabel('时间(ms)');
ylabel('网络流量承载能力变换情况');
grid on
 
 
figure;
subplot(211);
plot(100*DBLavg,'-bs',...
    'LineWidth',2,...
    'MarkerSize',8,...
    'MarkerEdgeColor','k',...
    'MarkerFaceColor',[0.9,0.0,0.0]);
xlabel('发送次数');
ylabel('丢包率');
grid on
STR = ['最终丢包率:',num2str(100*DBLavg(end)),'%'];
text(length(DBLavg)/2,70,STR);
axis([0,length(DBL2),0,100]);
 
ind = find(pg_Size>0);
Len = length(ind);
 
 
subplot(212)
plot(pg_Size(1:(Len-1)*100),'b-o');
axis([0,1500,0,3]);
xlabel('times');
ylabel('发送数据包大小');
grid on
相关文章
|
3月前
|
数据可视化
基于MATLAB的OFDM调制发射与接收仿真
基于MATLAB的OFDM调制发射与接收仿真
|
2月前
|
5G
基于IEEE 802.11a标准的物理层MATLAB仿真
基于IEEE 802.11a标准的物理层MATLAB仿真
193 0
|
3月前
|
传感器 机器学习/深度学习 算法
【UASNs、AUV】无人机自主水下传感网络中遗传算法的路径规划问题研究(Matlab代码实现)
【UASNs、AUV】无人机自主水下传感网络中遗传算法的路径规划问题研究(Matlab代码实现)
131 0
|
2月前
|
算法
基于MATLAB/Simulink平台搭建同步电机、异步电机和双馈风机仿真模型
基于MATLAB/Simulink平台搭建同步电机、异步电机和双馈风机仿真模型
|
2月前
|
机器学习/深度学习 算法 数据可视化
基于MVO多元宇宙优化的DBSCAN聚类算法matlab仿真
本程序基于MATLAB实现MVO优化的DBSCAN聚类算法,通过多元宇宙优化自动搜索最优参数Eps与MinPts,提升聚类精度。对比传统DBSCAN,MVO-DBSCAN有效克服参数依赖问题,适应复杂数据分布,增强鲁棒性,适用于非均匀密度数据集的高效聚类分析。
|
2月前
|
开发框架 算法 .NET
基于ADMM无穷范数检测算法的MIMO通信系统信号检测MATLAB仿真,对比ML,MMSE,ZF以及LAMA
简介:本文介绍基于ADMM的MIMO信号检测算法,结合无穷范数优化与交替方向乘子法,降低计算复杂度并提升检测性能。涵盖MATLAB 2024b实现效果图、核心代码及详细注释,并对比ML、MMSE、ZF、OCD_MMSE与LAMA等算法。重点分析LAMA基于消息传递的低复杂度优势,适用于大规模MIMO系统,为通信系统检测提供理论支持与实践方案。(238字)
|
3月前
|
传感器 算法 数据挖掘
基于协方差交叉(CI)的多传感器融合算法matlab仿真,对比单传感器和SCC融合
基于协方差交叉(CI)的多传感器融合算法,通过MATLAB仿真对比单传感器、SCC与CI融合在位置/速度估计误差(RMSE)及等概率椭圆上的性能。采用MATLAB2022A实现,结果表明CI融合在未知相关性下仍具鲁棒性,有效降低估计误差。
232 15
|
3月前
|
机器学习/深度学习 传感器 算法
【无人车路径跟踪】基于神经网络的数据驱动迭代学习控制(ILC)算法,用于具有未知模型和重复任务的非线性单输入单输出(SISO)离散时间系统的无人车的路径跟踪(Matlab代码实现)
【无人车路径跟踪】基于神经网络的数据驱动迭代学习控制(ILC)算法,用于具有未知模型和重复任务的非线性单输入单输出(SISO)离散时间系统的无人车的路径跟踪(Matlab代码实现)
244 2
|
3月前
|
监控
基于MATLAB/Simulink的单机带负荷仿真系统搭建
使用MATLAB/Simulink平台搭建一个单机带负荷的电力系统仿真模型。该系统包括同步发电机、励磁系统、调速系统、变压器、输电线路以及不同类型的负荷模型。
494 5
|
2月前
|
机器学习/深度学习 数据采集 存储
概率神经网络的分类预测--基于PNN的变压器故障诊断(Matlab代码实现)
概率神经网络的分类预测--基于PNN的变压器故障诊断(Matlab代码实现)
328 0

热门文章

最新文章