主要内容

考虑丢包和信道故障的无线消息通信模型

本示例展示了如何使用Simulink®消息、Stateflow®和SimEvents®对具有丢包和信道故障的无线消息通信进行建模。金宝app

在这个模型中,有两个发送消息的组件和两个接收消息的组件。使用具有传输延迟的共享无线信道传输消息。Stateflow®图表对无线组件中的消息发送逻辑进行建模,SimEvents®阻塞模型无线消息传输,通道故障和数据包丢失。

有关消息的概述,请参见金宝appSimulink消息概述

创建发送和接收消息的组件

在该模型中,有两个输出消息的软件组件:WirelessSend和WirelessStateflowSend。

在无线发送组件中,正弦波块是信号源。正弦波块产生振幅为的正弦波1。块样品时间设为0.1。发送块将信号转换为携带信号值数据的消息。无线发送组件连接到发送缓冲区1。

在WirelessStateflowSend组件中,另一个正弦波块生成正弦波信号,噪声块用于向信号注入噪声。噪声块输出一个信号,其值由均值为的高斯分布产生0的方差1。Stateflow®图表表示一个简单的逻辑,过滤信号并决定是否发送消息。StateflowSend组件向Send Buffer 2发送消息。

在该模型中,有两个接收消息的软件组件:WirelessReceive和WirelessListener。

在无线接收组件中,接收块接收消息并将消息数据转换为信号值。组件连接到接收缓冲区1。

在无线监听器组件中,有一个运行的Simulink函数块金宝apponOneMessage(数据)函数。当消息到达接收缓冲区3时,Simulink函数块接受参数金宝app数据,这是消息数据的值,作为输入信号。在街区,数据值乘以2。该块输出新的数据值。

要了解有关创建这些组件的更多信息,请参见建立一个有多个发送者和接收者的共享通信通道

使用组播模拟无线消息通信

WirelessSend和WirelessStateflowSend组件发送消息到send Buffer 1和send Buffer 2,这是SimEvents®实体组播块,可以无线传输消息。传输缓冲区块是SimEvents®多播接收队列,可以接收发送缓冲区1和发送缓冲区2发送的消息。

为了实现发送缓冲区1、发送缓冲区2与无线信道块内的传输缓冲区块之间的无线通信:

  1. 在发送缓冲区1和发送缓冲区2块中,设置多播标记参数一个

  2. 在传输缓冲块中,设置多播标记参数一个

多播标记参数定义从哪个实体组播阻止接收消息。

模型通道故障

SimEvents®实体门块用于对通道故障进行建模。该模块有两个输入端口。一个输入端口用于接收来自传输缓冲区的消息。第二个输入端口是一个控制端口,用于决定何时打开栅极。

设置操作模式参数为栅极块使门。在此模式下:

  • 当接收到携带值大于的实体时,块打开门并允许消息前进0从它的控制端口。这表示一个操作通道。

  • 如果一个实体携带的数据值小于或等于,则该块关闭gate并阻止消息传递0。这表示通道故障。

为了控制Gate块,您可以使用SimEvents®Entity Generator块(在本例中标记为control Gate)来生成携带不同数据值的实体。

在控制门区,在事件动作,在…产生行动字段时,下面的代码用于生成打开和关闭Gate块的实体。最初,实体数据是1栅极打开,通道处于工作状态。生成新实体时,其值更改为0,大门就关闭了。每个生成的实体将门的状态从打开更改为关闭或从关闭更改为打开。

在控制门区,在代际时间酌字段时,下面的代码用于表示通道的运行状态和失败状态。该代码将通道初始化为可操作的。dt为实体生成时间,用于改变通道状态,因为每个生成的实体都会改变Gate块的状态。

在代码中,修复时间是由一个均匀分布生成的,它的值在010。故障之间的时间间隔由另一个均匀分布生成,该分布的值为050

丢包模型

为了对丢包进行建模,使用了SimEvents®实体输出开关块。

该模块有两个输入端口。一个输入端口接受消息。另一个输入端口接受确定输出端口选择的实体。如果实体被设置为1,块选择输出端口1将消息转发到“无线共享消息”块。如果实体被设置为2,块选择输出端口2,它连接到代表数据包丢失的实体终止器块。

在Output Switch块中:

  • 输出端口数设为2

  • 要确定选择哪个输出,请使用切换准则设为从控制口初始端口选择设为1

为a建模0.1丢包概率,在“丢包概率”区域框中选择事件动作Tab,在产生行动字段包含以下代码:

持续的rngInit;如果isempty(rngInit) seed = 12345;rng(种子);rngInit = true;结束
%模式:均匀分布% m:最小值,m:最大值M = 0;M = 1;x = m + (m - m) * rand;
% x是由均匀分布和%取值介于|0|和|1|之间。如果X > 0.1%实体携带数据|1|,这迫使输出开关选择% output |1|转发实体接收组件。实体= 1;其他的%实体携带数据bbb20 |,这迫使输出开关选择%输出|2|,这表示丢包。实体= 1;结束

这意味着进入控制端口的实体具有0.9设为的概率1,这使得该块向无线共享消息块输出消息。

模拟模型并审查结果

模拟模型。

  • 打开连接在传输缓冲块顶部的范围块。该块显示通过共享通道传输的消息总数。

4255消息通过信道传输。

该图还显示了信道故障。例如,放大到第一个One hundred.秒。观察者认为通道之间发生故障4049在此期间,消息传输被阻塞。

打开Data Inspector以可视化控制Gate的实体。实体数据从10对于每个生成的实体。

要查看丢失消息的数量,打开连接到Packet Loss块的Scope块。

409消息在传输过程中丢失。这是9.6消息的百分比。

另请参阅

||||(SimEvents)|(SimEvents)|(SimEvents)|(SimEvents)

相关的话题