我正在通过离散事件模拟的方式在Any逻辑中建模库存管理系统。
在整个模型中,根据excel中的数据集添加新资源。我使用源块对此进行了建模。在源块中,代理的几个参数被添加到资源代理中,我需要在模型的其余部分(例如购买日期、源活动级别等)。我现在希望这些代理在保留参数的同时被添加到我的资源池中。但是,由于它们是在源代码块中进入模型的,我不确定如何对此进行建模/编码。
我试图在资源块之后抓住资源,但这不起作用。我还尝试使用变量'varNumberResources'来指定资源池的容量,每次资源离开资源块后都会进行调整,但是参数不会添加到资源池中的代理。
您不能将自定义资源添加到资源池,因此唯一的方法是使用set_capacity(n)
方法。
然后,您必须使用resourcePool操作中的“on new unit”来定义这个新的资源特征
此外,您不能使用source或enter块添加资源。所以不要这样做。通过设置resourcePool的容量,新资源将自动添加到模型中,但您需要使用on new单元操作来处理它们
有一种方法可以实现您的目标。不要按源创建资源代理,而是按资源池块创建。
Step1:拖动一个null人口,其类型是resources,创建一个int变量index=1,它是您的数据表中的行num;
在此处输入图像描述
Step2:设置资源池,如图选择“添加单位到”:自定义人口并设置您在step1中创建的“人口”;在“打开新单位”操作中添加以下代码;
unit.set_Index(index);//set the index for the new rescources you created
index++;
在此处输入图像描述
Step3:在模型启动时编写一个函数,用于计算资源
for(Rescource r:rescources_pop)
{
// select the parement by rescources index
List< Tuple > r_info_list =
selectFrom( rescources_table ).
where( rescources_table.index.eq( r.index ) ).
list();
// set paraments
Tuple tup=r_info_list.get(0);
r.set_purchase_date(tup.get( rescources_table.purchase_date ));
}