这个例子展示了一个排队系统,其中反馈影响到达率。反馈循环的目标是通过减慢实体生成器块的实体生成速度来稳定实体队列,因为越来越多的实体积累在实体队列块和实体服务器块中。
该图显示了一个具有实体生成器、实体队列、实体服务器和实体终止符块的简单队列系统。有关构建此简单排队系统的详细信息,请参见创建离散事件模型。
“实体服务器”块容量为1
。这将导致队列长度增加而没有反馈。目标是根据队列的大小和等待服务的实体数量来调节实体的代际时间。
在“实体生成器”块中,选择MATLAB的行动
随着时间源。将此代码添加到代际时间作用字段。
持续的rngInit;
如果isempty(rngInit) seed = 12345;rng(种子);rngInit = true;结束
%模式:指数分布mu = getAvgInterGenTime();Dt = -mu*log(1-rand());
实体代际时间dt
是由具有均值的指数分布产生的吗μ
,由函数决定getAvgInterGenTime ()
。
在实体队列块中数据选项卡,选择块中的实体数,n而且平均队列长度,l作为输出统计。
在“实体服务器”块中,选择MATLAB的行动
随着服务时间来源。将此代码添加到服务时间动作字段。
持续的rngInit;如果isempty(rngInit) seed = 67868;rng(种子);rngInit = true;结束
%模式:指数分布Mu = 3;Dt = -mu*log(1-rand());
服务时间|dt|来自一个平均为|3|的指数分布。
在“实体服务器”块中数据选项卡,选择块中的实体数,n作为输出统计。
添加Simu金宝applink功能块。2 .在“Si金宝appmulink Function”区域框中,双击函数签名,输入y = getAvgInterGenTime()
。
在Simuli金宝appnk函数块中:
添加两个In1块并将其重命名为numInQueue和numInServer。
numInQueue表示队列中累积的当前实体数量,numInServer表示服务器中累积的当前实体数量。
使用Add块来添加这两个输入。
使用偏置块并设置偏见
参数,1
。持续的偏见1
就是保证代间时间不为零。
可选地,选择功能连接从信息覆盖下调试选项卡显示从Simulink函数块到实体生成块的反馈循环。金宝app
在父模型中,连接块中的实体数,n从实体队列和实体服务器块统计到Simulink函数块。金宝app
将Scope块连接到平均队列长度,l从实体队列块统计。目标是调查平均队列长度。
将模拟时间增加到10000
并对模型进行仿真。
观察到平均队列长度,l在范围内是不增加的,由于反馈的影响,气馁的实体生成率。