simio仿真实验报告.docx
- 文档编号:7282291
- 上传时间:2023-01-22
- 格式:DOCX
- 页数:25
- 大小:1.40MB
simio仿真实验报告.docx
《simio仿真实验报告.docx》由会员分享,可在线阅读,更多相关《simio仿真实验报告.docx(25页珍藏版)》请在冰豆网上搜索。
simio仿真实验报告
课题名称:
单一生产线建模与仿真
学校:
广西科技大学
系别:
管理学院
班级:
工业092班
姓名:
梁训秋
学号:
200900702071
日期:
2012年4月1日
摘要:
针对传统数值方法难以求解复杂排队系统模型的问题,采用新一代面向对象的Simio仿真软件进行建模和仿真分析。
采用Simio软件构建序列表和运输器的仿真模型,认识关于SOURCE,SERVER,SINK等对象的更多建模知识,对基于部件类型的处理时间及单个发生器和多种处理类型进行设定,然后对模型进行统计分析,并对系统的方案进行思考和改进。
分析结果表明,利用Simio软件可方便地对各领域的模型及其相关问题进行建模仿真,具有较大的应用潜力。
关键词:
实体序列表;运输器;处理时间;发生器
目录
一.序言
1.1Simio系统仿真背景
1.2系统建模与仿真现状分析
1.3本课题的研究意义
二.Simio系统仿真的模型
2.1模型的选择
2.2建立模型
2.2.1系统模型
2.2.2建立模型的步骤
三.仿真的运行与调整
3.1仿真的运行
3.2仿真的调整
3.2.1能力选择调整
3.2.2参数选择的调整
四.实验心得
序言
1.1背景
Simio是由一个极富行业经验的团队所创造的。
本软件的缔造者C.DennisPegden博士拥有30年以上的仿真经验,是公认的行业领军人物。
当前在仿真软件市场份额上领先的SLAM和Arena就是在他的领导下研发的。
团队的其他成员的背后同样也闪耀着一连串仿真行业突破性进展的光芒。
正是这样一个团队,现在聚集到一起,集中他们的全部智慧以及总计超过100年的仿真经验为你创造出了下一代的仿真工具,也许是最好的仿真工具Simio。
作为仿真工具的革命性进展,Simio完全是从零开始开发的。
它采用了继“面向事件”和“面向过程”之后的“面向对象”的建模方法,并支持这三种建模方法的无缝衔接。
Simio还同时支持离散和连续系统建模,以及基于“智能主体”(Agent-Based)的大规模应用。
这些不同的建模范式可以在同一个模型中自由地揉合。
1.2Simio系统建模与仿真现状分析
当前,仿真技术已经成为分析、研究各种复杂系统的重要工具,它广泛应用于工程领域和非工程领域。
仿真可定义为:
在全部时间内,通过对系统的动态模型性能的观测来求解问题的技术。
对复杂物流系统进行仿真,起目的是通过仿真了解物料运输、存储动态过程的各种统计、动态性能。
但由于现代生产物流系统具有突出的离散性、随机性的特点,因此人们希望通过对生产物流系统的计算机辅助设计及仿真的研究,将凭经验的猜测从屋里系统设计中去除,能使物流合理化从而提高企业生产率。
计算机的辅助仿真时在系统结构得到足够的定义,并存在描述系统预期表现的计算方法的情况下,由计算机推演的分析过程。
但传统的计算机仿真技术存在许多不尽人意之处,一是复杂系统的数学模型往往涉及许多领域的专门知识,难以建立;二是对系统各种特性的统计数据,难以理解。
人类对基于图像、声音等感官信息的理解能力远远大于对数据和文字等抽象信息的理解能力。
于是随着计算机硬件技术的发展,人们希望并可以借助二维和三维虚拟仿真软件建立物流系统的系统仿真模型。
下图是Simio主要应用领域
生产制造和装配
布局规划
卫生医疗
机场
军事补给
商业流程
战略/策略分析
市场动力学
呼叫中心
经济
资产和组合优化
运输
社会系统分析
复杂供应链
人口动力学
电力系统
计算机和电信网络
物流系统设计
人群和车辆移动
应急和疏散规划
复杂自适应系统
生物和生态现象分析
仓储系统
分拨中心
快速消费品
服务系统
国防
农业系统
灾害管理
精益、6西格玛
1.3本课题的研究意义
将一个小型制造单元,有3个工作站构成,4个部件被加工,工作站的布局是单向环形的,用Simio创建系统模型并进行仿真,通过对参数的设定,观察部件不同工作站在什么产量、加工时间、部件类型和人员数量下达到最优。
二、Simio系统仿真的模型
2.1模型的选择
一个制造单元对不同部件的加工的模型。
2.3建立模型
2.2.1系统模型
一个小型的制造单元,由3个工作站组成,有4种部件被加工。
工作站A,B,C的布局是单向环形的,部件的加工按照这种布局流动。
如下图所示:
布局:
所有的部件从“PartsArrive”这个SOURCE到达,在”PartsLeave”这个SINK处离开。
工作站之间的移动速度是每小时2英里的常数。
注意SIMIO中实体默认速度是英里/秒。
每个工作站之间的距离(码)如下表所示:
工作站路径
距离(码)
PartsArrive工作站A
25
工作站A工作站B
35
工作BPartsLeave
20
PartsLeave工作站C
30
工作站CPartArrive
40
部件:
每种部件到达如下:
·部件1随即到达,时间间隔平均15分钟。
·部件2到达间隔平均为17分钟,标准差为3分钟。
·部件3到达时间间隔是14-18分钟的任意值。
·每1小时10分钟到达,每次到达批量为5个。
每种部件(实体)类型在工作站时间的序列(路线)是不同的,实际上,并不是每个部件都经过所有的设备。
见下表给定的顺序:
服务器的属性:
·工作站A有一台设备,加工时间为2-8分钟,最可能时间是5分钟。
·工作站B有二台设备,每台加工时间5-11分钟,最可能时间9分钟。
·工作站C有二台设备,在每天的前4小时内运行,1台设备在每天的最后4小时运行,每个设备的加工时间2-11分钟,可能值是6分钟。
2.2.2系统模型建立的步骤
一、建立模型
步骤1:
首先用3个SOURCE和4个实体建立这个SIMIO模型(拖动4个MODELENTITIES到建设区),因为每个产品的到达过程都不同,必须用4个SOURCE,我们还需要三个服务器(代表每一个工作站)和1个SINK,并给每个对象取名,包括实体,以方便后面识别。
步骤2:
也许模拟环状路线的最佳方法是在每个站点的入口和出口处,使用BASICNODE。
这使实体能够按照序列移动而不用进入不必要的工序。
步骤3:
用连线(CONNECTORS)和路径(PATHS)把所有的对象连起来,在环形的行路和服务器对象之间是0距离的,我们用连线。
工作站之间的距离将使用5条PATH来计算,它们连接每个入口和出口节点。
如图2.1
图2.1
步骤4:
修改每个实体的属性,现在它们以每小时2英里的理想速度(DesiredSpeed)移动。
步骤5:
修改每个SOURCE对象的属性,使它们对应正确的部件,使它们对应正确的部件,具有期望到达间隔和到达批量。
对于部件1.2.3,我们分别选择了指数分布,正态分布,和均匀分布作为到达间隔的分布函数。
开始了相应的参数。
对于部件4,我们选择了到达时间间隔为常数70分钟,EntitiesPertArrival属性为5.(以部件2为例,如图2.2)
步骤6:
给5条路径设定距离,使它们对应于工作站之间的距离。
你必须把DrawnToScale属性改成“False”并定义路径的逻辑长度。
(图2.2)(图2.3)
步骤7:
使用Pert分布设定每台设备加工时间,通常我们更喜欢用Pert分布代替三教分布。
Pert分布和三角分布类似(最小值,最可能值,最大值),但是它的尾巴更“窄“。
二.设定能力
步骤1:
设定工作站A和B的能力分别为1和2,。
对于工作站C,我们需要增加计划表体现能力方面的变化。
:
步骤2:
在“Data”标签页左手的面板上选择“Scheduals”,选择”AddSchedual”,修改工作计划表的名称为SchedualForC,StartingDate属性默认值,和仿真运行设置保持一致,我们需要把DaysinWorkPattern属性为1,并在高亮选中“WorkCycle”中从12am开始的前4个小时,右键单击添加一个周期项目(CycleItem).对话框中设定项目为“OnShift”,值为2,并点击OK,现在选中后面4个小时,添加周期项目,修改项目设为“OnShift”,值为1.(如图2.4所示)
图2.4
步骤3:
回到“Facility”视图,设置工作站C的CapacityType属性为“WorkSchedual”,添加你的工作计划SchedualForC.(如图2.5)
图2.5
四.增加序列
步骤1:
点击“AddSequenceTable”按钮,重命名为SequencePart1,代表部件1的序列。
采用同样的方法,增加其余3种实体的序列表。
如图2.6
步骤2:
下面增加部件1要访问的节点序列。
只需要添加部件1访问的工作节点以及最终的出口。
当实体序列设定好以后,实体永远会按照最短路径到达列表中的第一个节点。
部件1的正确序列如图2.7
图2.6图2.7
步骤3:
同样为另外3个实体设定序列表。
如果你的工作站采用不同的命名方式,那么序列表中显示的名字也会不同。
步骤4:
回到“Facility”视图,选中Part1实体,设定IntialSequence属性为“SequencePart1”.同样,为其他实体选择相应的序列表。
步骤5:
模型中7个TRANSFERNODE(SOURCE和SERVER的输出节点),将它们的EntityDestinationType属性改成“BySequence”。
如图2.8下所示
图2.8
五.修饰:
推车运输
步骤1:
删除Sink对象和前面BASICNODE之间连线,接着,在两者之间插入一个TransferNode,命名为TransferCart。
用Path连接BASICNODE和这个转移节点,将它的长度设成10码。
用Path连接TRANSFERNODE和Sink(确保路径是双向的,小车能来回移动),路径长度设为300码。
步骤2:
在Facility视图中,从标准库中拖1个Vechile对象到工作区,
步骤3:
将转移节点的RideOnTransporter属性改成“True”,选择“True”,选择“Cart”作为运输器的名字。
如图2.9所示
图2.9
步骤4:
设定Cart的IntialDesiredSpeed属性为每秒4英尺,搭载能力(RideCapacity)设定为3,并保证IntialNode(Home)为新增加的TransferCart节点,该节点是小车的初始节点。
现在把Cart的IdleAction属性设为“ParkAtHome”。
如图2.10所示
图2.10
步骤5:
点击TransferCart节点,从”Appearance”菜单下选择“DrawQuene”.选中ParkingStation.Contents,在Facility视图出现一个十字光标,在画布上从左至右画一条队列线,结束时点击鼠标。
步骤6:
运行模型,查看小车的动画效果。
步骤7:
在菜单条上选“Animation”,点击“DetechedQueue”.在Facility视图出现光标点,在画布上从左至右画一个队列线,点击右键结束绘画。
步骤8:
运行仿真查看分离队列的状况。
如下图2.11
图2.11
模型仿真运行结果
三、仿真的运行与调整
3.1仿真的运行
3.2仿真的调整
实体顺序和加工时间(分钟)
步骤
1
2
3
部件1
工作站A(Pert(2,5,8))
工作站C(Pert(2,6,11))
部件2
工作站A(Pert(1,3,4))
工作站B(Uniform(5,11))
工作站C(Uniform(2,11))
部件3
工作站A(Triangular(2,5,8))
工作站B(Triangular(5,9,11))
部件4
工作站B(Pert(5,9,11))
工作站C(Triangular(2,6,11))
部件类型比例
部件类型
百分比
部件A
25%
部件B
35%
部件C
15%
部件D
25%
3.2.1能力选择的调整
在图2.11基础上保留一个Source,删除其他3个source.如图
要模拟基于部件类型的加工时间,要在原来的序列表中添加加工时间一栏。
回到Date标签页,点击和Part1类型相关联的SequencePart1表。
因为加工时间是任意分布,从standardProperty下拉列表中选择Expression添加表达式属性,表名为ProcessingTimes.确保这个列的UnitedType为Time,defaultUnits选Minutes。
对部件1设定工作站A的ProcessingTime为Random.Pert(2,5,8),工作站B的ProcessingTime为Random.Pert(2,6,11).Exit出口保持为0.如下图,剩下3个序列表同上操作(略)。
为了使用单一发生源,产生多种实体类型,必须要创建一个新的数据表(Table),用于指定部件的类型和部件混合比例,添加一个新表,命名为TableParts.如下图
为了使用相关联的加工时间,修改每个站点的processingtime表达式设为Tableparts.ProcessingTime.SourcedeEntity属性指定为TableParts.PartType.社实体到达间隔为平均10分钟的指数分布。
3.2.3参数选择的调整
假设在制造单元内的站点间搬运时通过输送线完成的,是连续的传送带,可能是环状的,带有On/Off站点,当部件在On/Off站点时,整条线暂停直到部件被放上或取下,从节点上装卸部件的时间是0.5—1.5分钟之间。
把模型内部所有的Path全部换成Conveyor。
修改部件的图形,使它成为长宽高分别为(1,1,1.5)米。
将5条传送带的速度为0.5米/秒,并把Accumulating属性设成false.在EntityAlignment属性选择anyLocation.
输送线由多条Conveyor连接而成,而不是一个连接的整体,每个Conveyor需要同步,当部件进入On/Off站点时,整条线暂停等待加载和卸下的作业。
定义一个新的离散状态变量,名为NumberNodesWorking。
添加一个新的过程,名为On_Off_Entered.
使用Assign步骤给离散状态变量NumberNodesWorking做递增,NumberNodesWorking=NumberNodesWorking+1。
所有传送带速度为0.
Delay步骤用于模拟加载卸下时间,假定时间为0.5-1.5分钟的均匀发布。
第二个Assign给NumberNodesWorking做递减。
Decide步骤是基于条件的,即NumberNodesWorking=0.
最终的Assign步骤会把Conveyor重新开起来。
速度为0.5米/秒.
11、最后,On_off_Entered通用过程必须被适当地触发。
(就是每当输送线有部件加载或卸下时)。
选择On_off_Entered作为所有节点和一个路劲的附加过程触发器。
如表
附加触发器
该触发和哪个对象关联
Exited
output@srcparts(转移节点)
Entered
input@stationA基本节点
Exited
output@stationA(转移节点)
Entered
input@stationB基本节点
Exited
output@stationB(转移节点)
Entered
Path7(路劲)
Entered
input@stationC基本节点
Exited
output@stationC(转移节点)
12、设定工作站C的稳定性逻辑属性。
工作站C发生故障。
整条输送带要关闭,等工作站修复后,继续开动,选择工作站C,创建新的附加过程触发器,过程名为StationC_Repairing和StationC_Repaired。
在StationC_Repairing过程里使用Assign关闭所有传送带,把速度设为0.
在StationC_Repaired过程里Decided步骤的表达式为NumberNodesWorking=0.如果当前没有任何节点在加载或卸下部件,那么使用Assign步骤重新打开传送带,速度为0.5米/秒.
如果StationC发生故障,正在被修复,则On_off_Entered过程不能起动输送线,在On_off_Entered过程理修改Decide步骤的表达式为(NumberNodesWorking==0)&&(StationC.Failure.Active==False)
最后,改变StationC的动画,当设备发生故障,设备变为红色。
设置StationC的当前图形索引属性为Math.if(StationC.Failure.Active==1,1,0)。
模型的运行结果
四,实验心得
建立好了相应的模型,在输入相应参数后就可以运行得出相应的结果了。
将共有的参数值设定为相同,改变其中的一个参数变量,其仿真输出的结果就有一定的差异,如调节传送带的速度,单个部件的相应时间(等待时间,总时间)就有了相应的变动。
总时间和传送带的速度不是简单的单一线性关系,在一定范围内变化,等待时间,总时间都会有减短的趋势,但是提高传送带的速度,可以减短传送时间,但在一定程度上,它也可能会引起堵塞的情况,从而增加了等待的时间。
,反而是总时间加长,降低了生产效率。
Simio仿真软件具有强大的分析功能。
Simio软件能够自动生成关于一般决策准则的报告,例如资源利用率和等待时间。
同样也可以根据使用者的特殊需要,在仿真前定义需要统计的指标,仿真后即能得到满意的结果。
由于是第一次接触Simio仿真软件,可以说是边学习边研究,虽然对软件有饿了一定的了解掌握,但是好多功能都没有运用到,也没有深入的了解,在以后的学习中,还要加强对软件的学习掌握。
在运用此软件对企业的生产线进行建模、仿真的时候,参数的设定是最关键的,所以在设定参数之时要综合多方面因素考虑,应该在多次仿真的基础上对结果进行分析,进而得到最有用的参数。
目前此软件是英文版的,若要运用此软件来进行建模、仿真,必须要学好英语,有一定的英语水平,以便轻松着手运用好此软件。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- simio 仿真 实验 报告
![提示](https://static.bdocx.com/images/bang_tan.gif)