消息:Stateflow收到邮件
随着我们的设备变得越来越小,系统被嵌入到所有东西中,对系统间通信的正确建模就变得越来越有必要。让我们举一个简单的例子:想象一个智能恒温器,它与分布在大楼各处的几个温度传感器无线连接。这些传感器以100赫兹的频率报告数据。然而,为了节省成本,恒温器中的控制器只能以1hz的频率运行。如果我们想要捕获和分析从传感器接收到的所有温度数据(而不是向下采样),我们如何在Simulink和statflow中建模呢?万博1manbetx
传入的!
答案是,在R2015b,是消息.
状态流图之间的新线样式表明该连接是一个消息,一个全新的对象类型。像事件一样,它们是“发送的”,转换和状态动作可以通过它们的接收来保护。但与事件不同的是,它们不会中断发送图的执行,也不会触发接收图的立即唤醒。它们还携带您指定的类型的数据。
消息扩展了statflow的语义,允许您轻松地对分布式和多速率系统进行建模,就像我们示例中的那样。发送图表将温度数据打包到消息中,并以100hz的频率发送。消息在接收图上排队,接收图可以决定是否以FIFO、LIFO或自定义优先级顺序将消息从队列中取出。
处理队列
接收图中处理整个队列的方法以for-loop设计模式开始,如下所示:
但还需要增加一项。当接收图从队列中取出一条消息时,该消息通常会一直停留到时间步长的剩余时间。因此,在上面的模式中,只有在第一次通过循环时才会读取新消息——所有其他迭代都将一直读取相同的消息。
因此,要丢弃你已经读过的消息,为了能够读取队列中的下一个消息,你可以将该消息转发到“trash message”输出:
现在轮到你了
看看我们在R2015b中使用消息的一些例子,比如sf_msg_traffic_light和sf_msg_priority_queue_server,然后在下面的评论中告诉我们您计划如何使用消息对应用程序建模。- 类别:
- Stateflow,
- 有什么新鲜事吗?
评论
要留下评论,请点击在这里登录到您的MathWorks帐户或创建一个新帐户。