基于离散事件模拟的汽车制造过程优化

戴姆勒公司(Daimler AG)的马利厄斯•格梅因哈特(Marius Gemeinhardt


在新车离开生产线之前,它们要经过一系列的生产线末端检查,包括静态和动态测试。在静态测试中,技术人员和自动化测试程序都运行电子诊断程序;在动态测试中,技术人员、测试软件、测功机和其他测试站共同工作,检查发动机,调整悬挂或其他部件。

协调和协调生产线末端测试涉及的工人、机器和车辆是一项复杂的任务。许多公司没有正式的流程优化方法,而是依赖于高级工程师的主观建议;其他生产厂的最佳实践,它们可能有不同的要求;甚至在试验和错误中。

为了最大化生产吞吐量和产能,同时最小化人力和浪费,我开发了一个使用Simulink运行模拟的平台金宝app®和SimEvents®。仿真用于帮助运营决策,预测提出的制造工艺更改的结果,并提高戴姆勒生产线的效率(图1)。

图1所示。一辆奔驰s级车离开了装配线。

行尾测试优化的挑战

有几个因素使行尾测试的优化变得复杂。首先,很难估计任何给定的测试站的处理时间。例如,悬架的差异意味着一些车辆在悬架调整站需要比其他车辆更多的时间。其次,引入能够更快完成测试的新设备也会破坏现有的流程。同样地,将新技术引入车辆会产生新的可选附加功能,需要新的测试程序。

第三,可用的流程改进选项的复杂性使得即使是专家也几乎不可能预测更改将如何影响整个流程性能。增加工人,并行完成测试,处理重制汽车,在每个测试站前插入缓冲(队列),允许车辆在测试站之间交叉,提前周期时间——专家需要了解这些选项的每一个可能组合的效果,以找到最佳配置。

收集和管理数据

我知道我的模拟需要考虑大量的数据。通常在模拟研究中,数据是在不同的软件包之间交换的,有丧失精确度和完整性的风险。用MATLAB®和Sim金宝appulink,我使用相同的环境来收集、分析和准备数据,以及基于数据的优化和仿真。此外,我还可以使用Parallel computing Toolbox™在多个计算核上运行分析,从而加快处理速度。

每个测试站为每辆车生成一个日志文件。如果在三个测试站测试1000辆车,那么将记录3000组数据集。对于一个站点上的一辆车,日志文件包含多达20万行信息。每个日志文件只包含必要信息的一小部分,这些信息包括车辆细节、每次测试的结果以及完成每次测试所需的时间。为了快速提取这些数据,我创建了一个基于dos的批处理文件,为每个日志文件调用它,并将这些作业分配到每个可用的核心上。

分析现有过程

在开发模拟之前,我需要了解当前的测试流程。我收集了各个试验站的日志文件,并在MATLAB中对数据进行了数值和图形分析。我绘制直方图和酒吧图的测试时间和车辆变化,并进行统计分析与这些变量(图2)。我加速的解析和处理日志文件几乎四倍通过使用并行计算工具箱来执行这些任务在四核处理器。

图2。直方图显示各种车辆类型的测试持续时间。

在交互探索和分析数据之后,我在MATLAB中创建了一个接口,简化了常见的分析任务(图3)。我将在MATLAB中开发的接口和分析函数打包成一个独立的Microsoft®窗户®application, PARSE(用于站点重叠探索的过程分析例程)。使用MATLAB Compiler™创建的PARSE使我在戴姆勒的同事能够在不安装MATLAB的情况下探索行末测试数据。PARSE还为下面的建模和仿真提供了数据库。

图3。在MATLAB中开发的PARSE应用程序,用于处理、分析和探索试验站数据。

建模行尾测试流程

大多数工程师通过将队列、服务器、实体和预定义库中的其他块链接在一起来创建离散事件模拟模型。大多数模拟环境中的预定义元素使人们很难理解它们的基本功能及其对模拟系统的影响。我决定采用一种不同的方法:我开发了一个MATLAB脚本以编程方式构建SimEvents模型。使用SimEvents基线元素构建模型的优势在于,建模系统的所有功能、逻辑和战略行为从一开始就已知。编程方法使运行优化算法成为可能,这些算法既可以调整模型参数,也可以生成新的模型。它还允许通过我在MATLAB中构建的第二个接口定义模型。

该接口允许工程师通过指定测试站的数量和配置、工作人员的数量等来定义测试流程。工程师的选择在一个数据模型中被捕获,MATLAB脚本使用该数据模型生成带有工作站和工作人员子系统的SimEvents模型(图4)。

图4。顶部:在sievents中建模的行尾测试流程。中间:模型中的一个站子系统。底部:一个工作子系统。

在生成的模型中,包含了大约1500个区块,工人和车辆实体通过实体组合器在每个站点聚集在一起。站点由多个单个服务器表示,这些服务器表示站点内的各个进程。花费在每个站点上的时间由一个基于事件的随机数字块计算,该数字块使用基于该站点处理过的日志数据的任意离散分布。

站内的逻辑行为以及实体的战略控制使用MATLAB脚本建模,并将其作为S-Function块合并到模型中。该模型保存了每个站点的统计数据,包括处理了多少车辆、每辆车在站点上花费了多长时间、在站点之间等待了多长时间,以及车辆交付、工人流和暂停时间等外围过程的统计数据。我使用MATLAB对数据进行后处理和可视化(图5)。

图5。仿真结果的可视化。

我使用接口和模型生成器创建的第一个模型简单地复制了现有的工厂设置,使用建立在真实世界原始数据上的数据库。我对这个模型进行了仿真,并将其结果与工厂现场的真实结果进行了比较,以验证模型和模型生成脚本。

运行模拟以优化流程

一旦我有了处理和分析日志数据并以编程方式生成模型的方法,我就可以开始运行系统模拟以优化行尾测试性能。在仿真中,优化算法通过改变结构来反映不同的工厂布局以及各个试验站的参数变化。我提供了边界和初值,然后在全局优化工具箱中应用了模式搜索算法来优化吞吐量、所需生产设备、人力和浪费等因素。要评估所有可能的模型变体需要进行数千次实验。使用模式搜索算法,我可以用这个数字的一小部分实现相同的结果。

SimEvents模型使我能够调整边界值以运行假设场景。例如,我运行了模拟,以查看车辆变化如何影响特定测试所需的时间,这使我能够确定最影响流程性能的变化。

传统上,汽车制造商在缩短测试时间上花费了大量的精力,却很少意识到行尾布局如何影响整个过程。在戴姆勒,我的模拟研究改变了这一点。我使用SimEvents进行的模拟和优化提供了对植物结构变化的影响的见解。在设计一个新的制造工厂之前,戴姆勒现在可以评估诸如供应区域和缓冲器的大小、站的数量、启用路口和人员等因素将如何影响工厂的测试性能。

发布于2017 - 93085v00