生产系统数据建模

数字科技互联界 2024-09-10 03:42:36

以下文章来源于智造苑 ,作者小智

作者:朱海平 引自:《生产系统建模与仿真》 本文经授权转载发布

数据是仿真模型的灵魂,将对象属性数据、生产基础数据、仿真输入输出数据、仿真过程数据等进行规范化表达,并在仿真模型中进行定义,称为数据建模(data modeling)。数据模型的内涵如图1所示。

图1 生产系统仿真模型的数据子模型

「 1. 对象属性数据 」

在对象建模时,每一个对象都具有若干私有属性,这些属性的取值称为属性数据,比如:

(1)对象的物理坐标位置;

(2)对象的编号、名称、类型、关键参数;

(3)对象的显示参数(比如图像、屏幕坐标、颜色、边框、线型、文字等);

(4)设备的故障特征(失效模式、故障间隔时间、故障修复时间等);

(5)缓冲区的最大容量、最短停留时间;

(6)传送线的长度、运行速度、工位站点数量及位置分布;

(7)AGV的数量、运行速度、装/卸时长;

(8)工人的类型、数量。

有些属性数据是固定不变的,比如传送线长度,另外一些属性数据则可以动态调整,比如AGV的数量、工人数量等,需要综合考虑成本、效率等因素,通过仿真试验或仿真优化手段来确定最优值。

在绝大多数生产系统仿真软件中,除了系统默认的对象属性数据外,一般都允许用户自定义对象属性和模型全局属性,从而实现功能的扩充,比如针对一般设备对象,用户可以自定义单位能耗、单位运行成本等属性数据。

「 2. 生产基础数据 」

仿真模型的运行是对实际生产过程的模拟,实际生产运行离不开大量基础数据的支持,这些数据在仿真模型中也需要准确定义,否则模型的运行将背离生产实际。常见的生产基础数据包括:

(1)工艺流程(process)数据。工件从投产到完工的生产路线,规定了工件加工、装配等工艺包括哪些工序,分别在什么设备上完成,需要的工装、工具、工人、物流设施等。表1是某工件的工艺流程数据示例,可以看出该工件共有12道工序,分别在不同区域内的设备上完成,每道工序又包含若干工步,加工时间数据都已给出。

表1 工艺流程数据示例

(2)BOM数据。产品、部件或零件的结构,规定了该零部件包含哪些子部件、零件或毛坯件,分别来源于哪些仓库或缓冲区。

(3)时间数据。包括加工时间、装配时间、准备时间、装卸时间、运输时间、等待时间等,这些时间数据可以是确定数(比如汽车流水线的节拍时间),更多情况则是不确定数据,造成不确定的原因有两个:一是由于基础数据不齐全或测量不规范,对于某些时间缺乏精确统计数据;二是客观上数据存在波动,比如装配时间,不同工人之间肯定有差异。如果数据本质上是不确定的,强行转换为确定数(比如平均值)并不合理,最好的选择是采用随机数来描述这些时间,比如正态分布或三角分布随机数,只需粗略给出均值、标准差、上下界限等参数即可。

(4)工厂日历数据。定义了每周的工作日(比如一周工作6天)、每天的工作时段(比如上午8:00—12:00,下午2:00—6:00)、国家节假日等信息。不同的设备可以采用不同的工厂日历,比如某些关键设备,7´24小时工作,而其他设备,则一周工作6天,每天8小时。

(5)针对生产异常的预估数据。生产过程中不可避免会出现各种异常,比如设备故障、质量缺陷与返工、工作超时等。在仿真建模时,如果忽略这些异常因素的影响,仿真结果和实际运行将存在较大差异。因此,在建模时要把这些因素考虑进去,生产异常一般通过随机数进行模拟,比如设备故障间隔时间,可假定服从某参数特征的威布尔分布,质量异常则可通过缺陷率进行模拟。

(6)生产策略或生产规则数据。实际生产运行调度都包含大量的策略或规则。比如某些工件只能是大吨位的天车才能运输、AGV小车一次运输10个工件、工件需按特定规则离开缓冲区、某热处理设备必须一批10个零件一起处理等,如果规则是不可改变的,则需要在数据模型中进行定义,对于动态可变规则,则往往要通过仿真试验等手段进行寻优。

「 3. 仿真输入数据 」

生产订单(production order)是仿真模型最重要的输入数据,没有生产订单的输入,仿真模型无法运行。在订单中定义了工件(或任务)的投入时间、投入批次和数量、投入时间间隔、期望完成时间、优先级等基本信息。生产订单的定义形式主要有两种:

(1)订单表格。类似于生产计划,以表格形式给定每个工件的投入时间和数量。如表2所示,在0时刻、第5分钟、第15分钟和第30分钟,分别投入10个A、30个B、15个C和20个A,其中C的优先级很高(999),需要优先处理。

表2 生产订单表格示例

(2)依据给定规律动态生成的订单。有时候无法给出订单表格,但根据历史统计,订单的到达具有一定的规律性,比如,某车间生产3类产品,根据历史统计,3类产品的比例分别为30%、50%和20%,每天订单的到达具有明显的时间段差异,且每时段订单的到达是泊松过程:0~1h,,1~3h,泊松流,3~5h,泊松流,5~7h,泊松流。基于以上规律,仿真系统可以动态产生订单,符合实际的订单到达规律。

除生产订单外,仿真输入数据通常还包括仓库的初始库存、缓冲区中的初始工件对象、设备停机与维护计划、仿真开始时设备的未完工任务等。

「 4. 仿真过程数据 」

仿真模型运行过程中,仿真引擎自动产生如下两类数据:

(1)仿真过程记录数据。记录了每个对象的每一个事件的实际发生时刻,以及该时刻的对象状态(比如正处理的工件,缓冲区数量等)。图2是一个示例,该生产系统包含2个缓冲区和2台设备,0时刻在入口投入1个工件,随即进入缓冲区1,停留30s后进入设备1加工,2min后完成并进入缓冲区2,停留1min后进入设备2加工,5min后完工并进入出口。

图2 仿真示例

表3显示了图2 所示模型的仿真过程记录的部分列数据,表中详细记录了每一步的操作位置和时间。如果仿真模型比较复杂,仿真过程记录表可能包含多达上千万条数据,这些数据是后续统计分析的基础数据。

表3 图2所示模型的仿真过程记录的部分数据列

(2)仿真事件表。在仿真运行过程中,将不断产生新的事件并根据这些事件来触发新的操作,所有产生的事件信息自动记录在仿真事件表中。

「 5. 仿真输出数据 」

仿真输出数据包括两大类。

1)仿真引擎自动输出的数据

仿真结束后,仿真引擎自动输出的数据通常包括:

(1)仿真总时长;

(2)有效工作时长(仿真总时长减去工作日历以外的时间);

(3)设备/资源/工件的状态时长统计(比如总工作时长和总等待时长);

(4)设备/资源利用率(即工作时长占比);

(5)工件通过时长及时间分布(通过时长=完工时间-投产时间,包含工作、等待、运输等时间);

(6)缓冲区最多工件数、平均工件数以及工件数量变化趋势;

(7)工人行走总距离、服务次数;

(8)物流运输总距离、AGV服务次数;

(9)……

2)用户自定义的输出数据

比如,用户关心生产系统中某条生产线的1天的实际产能,可以通过自定义脚本统计出该数据并输出。

转自公众号:PLM之神

0 阅读:0

数字科技互联界

简介:感谢大家的关注