主要内容

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

此示例显示了如何使用Simulink®消息、Stateflow®和SimEvents®对无线消息通信进行建模,包括数据包丢失和信道故障。金宝app

在此模型中,有两个组件发送消息,两个组件接收消息。消息使用具有传输延迟的共享无线信道传输。Stateflow®图表模拟无线组件中的消息发送逻辑,SimEvents®模块模拟无线消息传输、信道故障和数据包丧失

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

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

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

在WirelessSend组件中,正弦波块是信号源。正弦波块产生振幅为的正弦波1.街区样品时间设置为0.1.发送块将信号转换为携带信号值数据的消息。WirelessSendComponent连接到Send Buffer 1。

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

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

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

在WirelessListener组件中,有一个Simulink Function块运行金宝apponOneMessage(数据)作用当消息到达接收缓冲区3时,Simulink功能块接受参数金宝app数据,即来自消息数据的值,作为输入信号。在这个街区数据值乘以2.街区outputs the new data value.

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

多播无线消息通信模型

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

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

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

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

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

模型通道失败

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

设置Gate块运行模式参数使门.在这种模式下:

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

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

要控制门块,您可以使用SimEvents®实体生成器块(在本例中标记为control Gate)生成包含不同数据值的实体。

在控制门区,在事件动作,在产生作用字段,下面的代码用于生成打开和关闭Gate块的实体。最初,实体数据是1门是打开的,通道处于运行状态。当一个新实体生成时,它的值变为0,关闭闸门。每个生成的实体都会更改闸门的状态,从打开状态更改为关闭状态,或从关闭状态更改为打开状态。

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

在代码中,修复时间是从一个统一的分布中生成的,该分布接受介于之间的值010.故障之间的时间间隔是由另一个均匀分布生成的,该分布的值介于两者之间050

丢包模型

为模拟数据包丢失,使用SimEvents®实体输出交换块。

块有两个输入端口。一个输入端口接受消息。另一个输入端口接受决定输出端口选择的实体。如果实体设置为1,块选择输出端口1将消息转发到“无线共享消息”块。如果实体设置为2,块选择输出端口2,它连接到表示丢包的Entity Terminator块。

在输出开关块中:

  • 输出端口数设置为2

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

模仿0.1,在“概率丢包”块中,选择事件动作Tab,并在产生作用字段包括以下代码:

持续的恩吉尼特;如果is空(rngInit)种子= 12345;rng(种子);rngInit = true;结束
式样:均匀分布%m:最小值,m:最大值m = 0;M = 1;x = m + (m - m) * rand;
% x由均匀分布和生成%取介于| 0 |和| 1 |之间的值。如果x > 0.1% Entity携带数据|1|,这将强制选择输出开关% output |1|转发实体以接收组件。实体=1;其他的% Entity携带数据|2|,这将强制选择输出开关% output |2|,这表示丢包。实体=1;结束

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

模拟模型和评审结果

模拟模型。

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

4255消息通过该通道传输。

该图还显示通道故障。例如,放大第一个窗口One hundred.秒。观察者发现通道故障发生在4049在此期间,消息传输被阻止。

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

要查看丢失消息的数量,请打开连接到数据包丢失块的作用域块。

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

另请参阅

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

相关的话题