建立一个与多个发送方和接收方的共享通信信道
这个例子展示了如何通过共享通信信道模型与多个发送方和接收方使用仿真软件®消息,SimEvents®,和Stateflow®。万博1manbetx
关于信息的概述,明白了万博1manbetx仿真软件信息概述。
在这个模型中,有两个软件组件发送消息和接收消息的两个组件。共享信道传输消息增加了延迟。SimEvents®块用于创建自定义通信行为通过合并消息,和复制和延迟信息。Stateflow图发送组件发送消息中使用基于决策逻辑。
创建组件发送消息
在模型中,有两个软件组件输出消息,发送和StateflowSend。
发送组件,正弦波块信号来源。块生成一个正弦波信号的振幅1
。样本块的时候了0.1
。送块将信号转换为消息,携带的信号值作为数据。发送组件发送消息发送缓冲区1。
StateflowSend组件,另一个正弦波块产生一个正弦波信号和噪声块注入噪声信号。噪音阻止生成输出一个信号,其值与均值高斯分布0
和方差的1
。样本块的时间0.1
。
Stateflow图代表一个简单的逻辑,用于过滤信号和决定是否发送消息。如果信号的值大于0.5
持续时间大于0.1
,那么图发送一条消息,携带信号的值。如果下面的信号值0
,然后过渡到的图表ReceiveSignal
状态。StateflowSend组件发送消息发送缓冲区2。
关于创建消息接口的更多信息,请参阅建立软件组件之间的消息发送和接收接口。
创建组件接收消息
在模型中,有两个软件组件接收消息,接收和侦听器。
接收组件,一个接收块接收消息,并将消息数据信号值。
在侦听器组件,仿真软件功能块。万博1manbetx块显示功能,onOneMessage(数据),在块的脸上。
当一个消息到达接收缓冲区,侦听器块通知和需要的参数数据
消息数据的价值,作为输入信号。块,数据
值是乘以2
。块输出新的数据值。
路由消息使用SimEvents®
在共享信道,消息路径源自两个消息发送组件合并代表共享通信信道。
一个SimEvents®实体输入开关块合并消息。块:
数量的输入端口指定行合并的消息的数量。参数值
2
有两个消息路径。
活跃端口选择指定如何选择主动离开港口信息。如果您选择
所有
,所有的消息到达的块能够离开块输出端口。如果您选择开关
,您可以指定逻辑选择主动离开港口信息。对于这个示例,参数设置所有
。
一个SimEvents®实体服务器块用于表示消息传输延迟在共享渠道。块:
能力被设置为
1
,它指定一次可以处理多少信息。
服务时间价值被设置为
1
,它指定需要多长时间来处理消息
一个SimEvents®实体复制因子块用于生成消息的相同副本。块:
副本离开指定如果离开块副本从单独的输出端口或同一个输出端口与原始消息。参数设置
单独的输出端口
。
数量的副本被设置为
1
,它指定为每个消息生成副本的数量。
保持原来的实体,直到所有副本离开持有的原始消息阻塞,直到离开它的所有副本。
一个SimEvents®实体终结者2块是用来模拟接收缓冲区。块:
下事件动作选项卡,项行动字段,您可以指定执行计算或仿真软件MATLAB代码®函数调用时调用的信息输入。万博1manbetx在这个例子中,
onOneMessage(实体)
用于通知仿真软件功能块的侦听器组件。万博1manbetx函数调用,形象化调试选项卡上,选择信息覆盖然后功能连接器。
模拟模型和评估结果
模拟模型。观察到动画强调了信息流动模型。您可以通过右键单击关闭动画模型画布和设置动画速度来没有一个
。
当你暂停动画,会出现一个放大镜的块存储信息。如果你指向放大镜,你看到信息存储在块的数量。
观察哪些消息存储在块,点击放大镜打开存储检查员。例如,下图展示了信息存储在发送缓冲区1。
关闭动画和开放的顺序查看器块观察模型函数调用和消息流的模型。万博1manbetx
例如,观察仿真时间0
,在此期间,账面价值的消息0
从发送组件发送发送缓冲区1。从仿真时间0.1
来0.5
,发送组件发送消息发送缓冲区1与不同的数据值。在时间0.5
发送缓冲区StateflowSend组件发送一条消息,2。关于使用查看器序列块的更多信息,见使用顺序查看器来可视化信息,事件,和实体。
另请参阅
正弦波|发送|收到|队列|实体输入开关(SimEvents)|实体服务器(SimEvents)|实体复制因子(SimEvents)|实体终结者(SimEvents)