技术文章及通讯

基于离散事件仿真的汽车制造工艺优化

作者:马吕斯·杰梅因哈特,戴姆勒公司


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

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

为了最大限度地提高生产吞吐量和产能,同时减少人力和浪费,我开发了一个用Simulink运行模拟的平台金宝app®和SimEvents®.这些模拟被用于辅助运营决策,预测拟议制造工艺变更的结果,并提高戴姆勒生产线的效率(图1)。

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

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

行尾测试优化的挑战

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

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

收集和管理数据

我知道我的模拟需要考虑大量的数据。通常在模拟研究中,数据在不同的软件包之间交换,冒着损失精度和完整性的风险。用MATLAB®在Sim金宝appulink中,我使用相同的环境来收集、分析和准备数据,并基于这些数据进行优化和模拟。此外,我可以通过使用并行计算工具箱™在多个计算核心上运行分析来加速处理。

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

分析现有流程

在开发模拟之前,我需要了解当前的测试过程。我收集了每个测试站的日志文件,并在MATLAB中对数据进行了数值和图形化分析。我绘制了测试时间和车辆变化的柱状图和直方图,并执行了统计分析来关联这些变量(图2)。通过使用并行计算工具箱在四核处理器上执行这些任务,我将日志文件的解析和处理速度提高了近四倍。

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

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

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

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

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

对行尾测试过程建模

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

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

图4。在SimEvents中建模的行尾测试过程。

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

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

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

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

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

我使用接口和模型生成器创建的第一个模型之一简单地复制了现有的工厂设置,并使用基于真实原始数据的数据库。我运行了该模型的模拟,并将其结果与来自工厂车间的真实结果进行了比较,以验证模型和模型生成脚本。

运行模拟以优化流程

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

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

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

发布日期:2017年9月25日