考虑丢包和信道故障的无线消息通信模型
本示例展示了如何使用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和发送缓冲区2块中,设置多播标记参数
一个
。在传输缓冲块中,设置多播标记参数
一个
。
的多播标记参数定义从哪个实体组播阻止接收消息。
模型通道故障
SimEvents®实体门块用于对通道故障进行建模。该模块有两个输入端口。一个输入端口用于接收来自传输缓冲区的消息。第二个输入端口是一个控制端口,用于决定何时打开栅极。
设置操作模式参数为栅极块使门
。在此模式下:
当接收到携带值大于的实体时,块打开门并允许消息前进
0
从它的控制端口。这表示一个操作通道。
如果一个实体携带的数据值小于或等于,则该块关闭gate并阻止消息传递
0
。这表示通道故障。
为了控制Gate块,您可以使用SimEvents®Entity Generator块(在本例中标记为control Gate)来生成携带不同数据值的实体。
在控制门区,在事件动作,在…产生行动字段时,下面的代码用于生成打开和关闭Gate块的实体。最初,实体数据是1
栅极打开,通道处于工作状态。生成新实体时,其值更改为0
,大门就关闭了。每个生成的实体将门的状态从打开更改为关闭或从关闭更改为打开。
在控制门区,在代际时间酌字段时,下面的代码用于表示通道的运行状态和失败状态。该代码将通道初始化为可操作的。dt
为实体生成时间,用于改变通道状态,因为每个生成的实体都会改变Gate块的状态。
在代码中,修复时间是由一个均匀分布生成的,它的值在0
和10
。故障之间的时间间隔由另一个均匀分布生成,该分布的值为0
和50
。
丢包模型
为了对丢包进行建模,使用了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.
秒。观察者认为通道之间发生故障40
和49
在此期间,消息传输被阻塞。
打开Data Inspector以可视化控制Gate的实体。实体数据从1
来0
对于每个生成的实体。
要查看丢失消息的数量,打开连接到Packet Loss块的Scope块。
409
消息在传输过程中丢失。这是9.6
消息的百分比。
另请参阅
正弦波|发送|收到|队列|实体终结者(SimEvents)|实体输出开关(SimEvents)|实体门(SimEvents)|实体多播(SimEvents)