SimEvent怎么用?
来源:互联网 发布:android源码在线 编辑:程序博客网 时间:2024/06/11 01:16
(我是学物联网工程的,有个《系统建模与仿真》的专业选修,老师布置了两个大作业——使用MATLAB的Simulink建立一个连续系统模型和一个离散系统模型。)(连续系统还好,学过《自动控制原理》,懂得使用Simulink中的积分环节,再加上一点《数字逻辑》的基础,基本上就都会了。这边有个PPT是我当时被老师赶鸭子上架、教全班人用Simulink时做的。传送门——http://download.csdn.net/detail/qq_21882325/9725895。因为是用来讲的PPT,所以内容不详细,有问题可以留言问我。)
(但是离散系统模型真是逼疯我了!!为啥百度“SimEvent”,啥都搜不到,只有孤零零一个SimEvent的英文文档……这让我这种险过4级的人怎么活!)
(于是,我就自己探索,自己琢磨。总算,有了点眉头……希望能帮到学弟学妹们2333333(如果能被百度到的话))
———————————————————————————————————————————————————————————————————————
开车。
************************************************************************************************************************************************************************
△SimEvent目录
打开Simulink Library,离散系统所需要的主要模块都在里面。
*************************************************************************************************************************************************************************
△几个最常用的模块组合
1.产生实体
Event-Based Random Number:随机数产生器,双击可以选择产生随机数的方式。在产生实体时通常选择泊松分布(Poisson),随机数种子可以任意选择。在上图组合中,Mean=k时,表示服从平均每k个时间单位生成一个实体的泊松分布,也就是平均每个时间单位产生1/k个实体。当然,由于是泊松分布,所以每个时间单位产生的实体数量会在1/k附近浮动。
Time-Based Entity Generator:实体生成器,双击可以改变实体产生所依赖的途径。通常选择“from port t”,以引入随机数生成器产生的基于泊松分布的随机数。选择“from dialog”的话,Period的值表示“每Period个时间单位产生一个实体”,数值不会浮动。
Display:这个在Simulink/Sinks/里面可以找到。双击实体生成器,里面的“stastiscs”里面可以选择想要查看的数据,引出一条线来接到Display上,运行模型之后就可以看到了。#d在这里是指产生并离开生成器的实体数量。
(注意,实体出入口和数值出入口的长相不一样,双箭头的是实体,不能连到单箭头的数值出入口上)
2.按比例分支
这里的随机数生成器的作用不再是生成一个随机数了,而是产生随机分支。很好理解,如下图。
Value Vector对应Output Switch的出口OUT1到OUT3,经过这个组合的实体,会以60%:25%:15%的概率从三个出口流出。(在Probability Vector中设置概率,要求加起来一定要为100%)
双击Output Switch可以改变出口数量。(随机数生成器的参数也要跟着改变)。
3.排队
双击FIFO Queue可以设置队列的最大长度,当队列到达最大长度时,前面的模块的运行会被阻塞,不能再将实体放到队列中。
“平均等待时长”通常是用来分析一个离散排队模型质量的最重要的参数。在FIFO队列的Stastics里面勾选w,再通过SimEvent Sinks中的Signal Scope可以查看平均的等待时长随时间的变化曲线,用以分析离散模型的性能。
4.服务
好端端的队列为什么会阻塞?原因就是服务会阻塞实体的流动。
同上,随机数生成器通常选择泊松分布,这里意思为“每k个时间单位服务一个实体”。
双击N-Server可以设置服务台的数量。当服务台被占满时,前面队列不能再往服务台传输实体。当服务完一个实体后,会继续接纳新的实体。
*************************************************************************************************************************************************************************
△几个“不常用”的组合
1.设定初始实体资源
当某种实体是固定数量的,而且需要循环利用的,怎么办?就比如操作系统中经典的理发师模型——理发师的数量是固定的,通常用完还要再用。(我们总不能不断地产生新的理发师来给顾客理发的,显然不合逻辑)
那么,怎样才能产生固定数量的理发师后,就停止继续产生该种实体呢?答案就是上图了。
将资源池(Resource Pool)的资源数量设成想要的数量,将Time-Based实体生成器的生成速度尽可能调高,实体经过Resource Acquire之后就会消耗k个(自己设置)资源池的资源数量。这样就能在最快的时间内产生固定数量的实体。
2.实体合成
当队列0与队列1中都有实体的时候,就可以经过Entity Combiner,合成为一个实体输出。
当队列0有实体,队列1为空的时候,则阻塞等待队列1的实体。反之亦然。
*************************************************************************************************************************************************************************
(拖了一个寒假才敲的这篇博客,所以简陋了点。估计也就下学期修了《系统建模与仿真》的学弟学妹才会浏览这篇博客了233333。有问题留言咯。)
哦,附上我的报告…
http://download.csdn.net/detail/qq_21882325/9759024
- SimEvent怎么用?
- cloudsim中simEntity和simEvent的学习
- 小键盘怎么开 笔记本电脑小键盘怎么用
- redis 在 cakePHP3 怎么配置,怎么用
- 试试看怎么用Blog
- expat怎么用
- 万能指针怎么用?
- MENU怎么用啊
- 试试怎么用
- 先练练怎么用
- 网络守护者 怎么用
- 想看就看 v2006 怎么用
- 易统 怎么用
- 究级截拳道 怎么用
- 井字棋 怎么用
- 经济师考试 怎么用
- 精灵书童 怎么用
- 句宝盆 怎么用
- POJ 2349 Arctic Network
- 64位win7安装Python3.5、Numpy和matplotlib的链接
- (转)Android开发:显式/隐式Intent意图跳转Activity总结
- 【Linux】Linux指令学习之find
- 由浪潮大型机M13说开去
- SimEvent怎么用?
- Android Studio 调试方法与技巧
- 创建dblink
- Myeclipse和Eclipse的区别
- Redis2.6 - publish/subscribe的BUG
- JZOJ3987. Tree
- 当可以滑动控件如listView,recycleView等嵌套可以滑动的控件如listView,gridView,recycleView 时就会出现里面的控件显示不全的问题
- (转)android--显式跳转和隐式跳转
- SpringMVC实现RESTful服务