Anylogic建模实例Word格式文档下载.docx
- 文档编号:21835596
- 上传时间:2023-02-01
- 格式:DOCX
- 页数:9
- 大小:614.50KB
Anylogic建模实例Word格式文档下载.docx
《Anylogic建模实例Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《Anylogic建模实例Word格式文档下载.docx(9页珍藏版)》请在冰豆网上搜索。
在本模型中,当一个电话正在被处理时,如果有空闲的代理,它就被安排到相对应的代理上,否则就安排的旁边组的代理上,重复这个过程如果后者是空闲的。
本模型的输出标准是两种电话的队长和服务水平。
服务水平的概念指的是在20秒之内处理完毕的来电所占的比例。
第一步:
创建新模型(同模型一)
第二步:
建立流程逻辑模型
1.点击General,拖入12个Parameter,分别命名为ArrivalRate1、AbandonmentTime1、ServiceTime1、ServiceTime12、NAgents1、allowRouting12、ArrivalRate2、AbandonmentTime2、ServiceTime2、ServiceTime21、NAgents2和ServiceTimeDeviation。
其中NAgents1和NAgents2在Type处选择int型,分别代表处理两种电话代理人数,allowRouting12在Type选择boolean型,用来判断第一种电话能否被第二种代理处理,其他则选择double型,代表服务时间,到达率等。
该12个Parameter的defaultvalue分别为1、100、100、200、100、true、1、100、100、200、100、150。
2.点击General,拖入7个PlainVariable,分别命名为nOK1、nLate1、nAbandoned1、nAbandoned2、nLate2、nOK2、nRouted12,并全部选择int类型。
3.点击EnterpriseLibrary,拖入两个Source,分别命名为source1和source2,代表两种电话的到达,如下图所示:
4.再从EnterpriseLibrary中拖入两个Queue,分别命名为queue1和queue2,之后利用Presentation中的Polyline和RoundedRectangle画出如下图的图形:
5.从EnterpriseLibrary中拖入两个Enter,分别命名为enter1和enter2,再拖入两个Service,分别命名为service1和service2,之后拖入两个ResourcePool,分别命名为agents1和agents2,最后再在EnterpriseLibrary中拖入一个Sink,并将其一一连接起来,如下图:
第三步:
设置流程逻辑模型参数
1.创建JavaClass(步骤如BillingDepartment)。
命名为Bill,其具体的代码如下:
2.点击General,从中拖入三个Function,分别命名为setCallParameters、callAnswered、serviceTime,分别用来设置不同call的参数、统计在20秒内处理完毕电话的数量、设置电话的服务时间。
其中setCallParameters在Returntype里面选择void,Functionargument中写入两个参数:
Call类型的call和int类型的type。
Code里面写入:
callAnswered的Returntype选择void,Functionarguments写入Call类型的call。
在Code里面写入:
serviceTime的Returntype选择double,Functionargument选择Call类型的call,int类型的agentType,Code中写入:
3.点击source1,在Entityclass处写Call,Arrivalsdefinedby选择Rate,Arrivalrate填写ArrivalRate1,Entitiesperarrival填写1,Newentity填写newCall(),Onexit填写setCallParameters(entity,1);
在source2处在以上各处分别填写ArrivalRate2、1、newCall()、setCallParameters(entity,2)。
4.点击queue1,在Entityclass处写Call,Capacity选择Integer.MAX_VALUE,Onenter填写routingLogic(),并勾中Enableexitontimeout,Timeout填写entity.abandonmentTime,Onexit(timeout)填写nAbandoned1++;
queue2的参数与queue1基本相同,只有在Onexit(timeout)处填写nAbandoned2++。
5.点击service1,在Entityclass出填写Call,Resourcequantity填写1,Delaytime写serviceTime(entity,1),ResourcePoolobject为null,Onenterdelay填写callAnswered(entity);
,Onexit填写routingLogic();
,Queuecapacity为100。
点击agents1,Resourceunitsare选择Individualobjects,Capacitydefined选择Directly,Capacity填写NAgents1。
service2与service1设置基本相同,在上述各处分别填写Call、1、serviceTime(entity,2)、null、callAnswered(entity);
、routingLogic();
、100。
agents2与agents1设置基本相同,各处分别为Individualobjects、Directly和NAgents2
6.从General中拖入一个Function,命名为resetStats,返回类型选择void,Code中写入:
7.从Analysis拖入两个Histogramdata,分别命名为histWait1和histWait2。
二者设置相同,Numberofintervals填写为20,Valuesrange选择fixed,minimum为0,Maximum为100。
第四步:
建立安排逻辑
1.点击Actionchart,通过其下面的部件创建如下逻辑图:
2.设置参数。
在idleAgents1处,Type选择int,Initialvalue为agents1.idle(),idleAgents2与idleAgents1类似,只不过在initialvalue处填写agents2.idle()。
在第一个while循环处的条件是idleAgents1>
0&
&
queue1.size()>
0,在该循环里面的code为enter1.take(queue1.removeFirst());
idleAgents1--;
。
第二个while循环处的条件是idleAgents2>
queue2.size()>
0,里面的code为enter2.take(queue2.removeFirst());
idleAgents2--;
之后的Decision处的判断条件是allowRouting12。
如果条件为true则进入第三个循环,条件为idleAgents2>
0,循环里的Code为enter2.take(queue1.removeFirst());
nRouted12++;
最后进入返回。
第五步:
创建界面
界面总体的布局截图如下:
1.选取另一块区域,点击EnterpriseLibrary,从中有、拖入一个Clock,命名为clock,其Backgroundcolor、Bordercolor、Hourmarkcolor、Textcolor、Hourandminutehandcolor、Secondhandcolor分别为ghostWhite、steelBlue、lightSteelBlue、steelBlue、black、fireBrick。
2.在Controls中拖入八个Slider,其中四个控制第一类电话的参数,另外四个为控制第二类电话的参数。
控制到达率的勾中Linkto,填写ArrivalRate1,minimumvalue为0,Maximumvalue为3;
控制代理数目的勾中Linkto,填写NAgents1,minimumvalue为50,Maximumvalue为200;
控制专类服务时间的勾中Linkto,填写ServiceTime1,minimumvalue为30,Maximumvalue为300;
控制非专类服务时间的勾中Linkto,填写ServiceTime12,minimumvalue为30,Maximumvalue为300。
另外四个Slider的参数与之前的四个相同,只是在Linkto处分别填写ArrivalRate2、NAgents2、ServiceTime2、ServiceTime21。
具体位置如下:
3.
4.在Controls中拖入一个CheckBox,勾中Linkto,填写allowRouting12,Action中填写resetStats()。
用来控制第二类代理能否处理第一类的电话。
5.在Controls中拖入一个Button,Action处填写resetStats()。
6.在Presentation中利用Polyline、Rectangle、line、Text等创建如上图所示界面。
7.在八个Slider上方的Arrival旁的123的Dynamic中的Text中填写format(ArrivalRate1)和format(ArrivalRate2),Number旁的123的Dynamic中的Text中填写format(NAgents1)和format(NAgents2),ServiceTime1旁的123的Dynamic的Text处填写format(ServiceTime1),ServiceTime2旁的123的Dynamic的Text处填写format(ServiceTime2),ServiceTime12旁的123的Dynamic的Text处填写format(ServiceTime12),ServiceTime21旁的123的Dynamic的Text处填写format(ServiceTime21)。
8.中间界面处的123的Dynamic的Text处从上到下分别填写format(nAbandoned1)、format(nOK1)、format(nRouted12)、format(nLate2)、format(nOK2)、format(nAbandoned2)。
9.点击Analysis,拖入两个TimePlot,在Value,并分别填写queue1.size()和queue2.size()。
二者的TimeWindow填写10000,verticalscale选择fixed,from0to200。
之后再拖入两个Histogram,选择showPDF,Histogram分别填写histWait1和histWait2。
最后再拖入两个PieChart,点击第一个PieChart后,点击additem,Value处填写nOK1,再点击additem,value处填写nLate1,再点击additem,value处填写nAbandoned1。
在另一个PieChart重复该步骤,在填写处分别填写nOK2、nLate2和nAbandoned2。
10.设置跳转。
该步骤与BillingDepartment中的第五步的第四个部分相同。
在Presentation处拖入三个ViewArea,分别命名为AnimationAndOutput、ProcessLogic和RoutingLogic,分别放于相对应的三个区域左上角处。
并在三个区域内的右上角创建如下图的Text:
并在表示其他区域的Text下的Dynamic中的Onclick处填写代码,如:
ProcessLogic.navigateTo();
至此,CallCenter的基本模型已经创建好了,运行后的截图如下:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Anylogic 建模 实例