技术文章和通讯

离散事件仿真优化汽车制造过程

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


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

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

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

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

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

行尾测试优化的挑战

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

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

收集和管理数据

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

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

分析现有流程

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

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

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

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

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

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

线尾测试过程建模

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

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

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

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

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

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

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

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

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

运行模拟以优化流程

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

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

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

发布于2017 - 93085v00

Baidu
map