优化模型在工作流涉及运行多个模拟,您可以创建使用模拟测试金宝appSimulink.SimulationInput
对象。
杂货店的顾客排队等候,如果没有足够的购物车。然而,有太多的未使用的购物车被认为是一种浪费。这个例子的目的是调查顾客平均等待时间不同数量的可用购物车。计算平均客户等待时间,多个模拟运行使用sim卡
命令。对于每一个模拟,使用一个可用的购物车值。更多的信息sim卡
命令,看到运行并行模拟。
在模拟中,范围从购物车可用价值20.
来50
在每个模拟增加了1
。假设在操作时间,客户到达商店随机利率从指数分布和购物时间是从一个均匀分布。
在实体发电机块,设置实体类型名称来客户
和时间源来MATLAB的行动
。然后,输入此代码。
持续的rngInit;如果isempty (rngInit)种子= 12345;rng(种子);rngInit = true;结束%模式:指数分布μ= 1;日志(1-rand dt =μ* ());
之间的时间客户移民是来自一个指数分布的意思1
分钟。
在资源池块,指定资源名称作为ShoppingCart
。设置资源的数量来20.
。
初始值可用的购物车20.
。
在资源收购方块,设置ShoppingCart
随着选择资源,并设置最大数量的等待实体来正
。
示例假定无限数量的客户可以等待一个购物车。
在实体服务器块,设置能力来正
。
示例假定无限数量的顾客可以在商店里购物。
在实体服务器块,设置服务时间源来MATLAB的行动
并输入以下代码。
持续的rngInit;如果isempty (rngInit)种子= 123456;rng(种子);rngInit = true;结束%模式:均匀分布% m:最小,最大m = 20;M = 40;dt = m + (mm) *兰特;
客户花的时间在店里是从之间的区间上的均匀分布20.
分钟,40
分钟。
连接平均等待w统计的资源收购方块一个到工作空间块并设置其变量名来AverageCustomerWait
。
设置仿真时间600年
。
一个模拟的持续时间10
小时的操作600年
分钟。
保存模型。
对于这个示例,该模型与名称保存GroceryStore_ShoppingCartExample
。
打开一个新的MATLAB®为多个模拟脚本并运行这个MATLAB代码。
初始化模型和可用的数量为每个模拟购物车,这决定了模拟的数量。
%初始化杂货店模型%随机相生时间和服务时间的价值mdl =“GroceryStore_ShoppingCartExample”;isModelOpen = bdIsLoaded (mdl);open_system (mdl);%的购物车的数量范围%每个模拟中使用ShoppingCartNumber_Sweep = (20:1:50);NumSims =长度(ShoppingCartNumber_Sweep);
在每个仿真,可用购物车的数量增加了1
。
运行每个仿真与相应的可用购物车值和输出结果。
% NumSims数量的模拟运行NumSims NumCustomer = 0 (1);为我= 1:1:NumSims (i) = Sim金宝appulink.SimulationInput (mdl);%为每个迭代中使用一个ShoppingCartNumber_sweep值在(我)= setBlockParameter((我),(mdl“/资源池”),…“ResourceAmount”num2str (ShoppingCartNumber_Sweep(我)));结束%为每个模拟输出结果= sim(中);
收集和可视化结果。
%计算最大平均等待时间%客户为每个模拟NumSims MaximumWait = 0 (1);为i = 1: NumSims MaximumWait (i) = max ((1, i) .AverageCustomerWait.Data);结束%想象情节情节(ShoppingCartNumber_Sweep MaximumWait,“波”);网格在包含(使用购物车的数量)ylabel (的最大等待时间)
观察图显示的最大平均等待时间顾客购物车可用的函数。
情节显示之间的权衡46
购物车对零等待时间和可用33
购物车的2
分钟客户等待时间。
实体发电机|实体队列|实体服务器|实体终结者|资源收购方|资源池|资源发布人