Simulation Model for Wire Harness Design in the Car Production Line Optimization Using the SimPy Library
Abstract
:1. Introduction
Motivation of the Research
- They include hundreds of elements. These elements must be purchased, transported, and put together gradually to form the wiring harness, always taking into account the reduction of unit costs and production cycles;
- They are manufactured to measure specifically for each car. Consumers today prefer customized products, which makes wiring harnesses even more variable and consequently more complex to produce;
- They are manufactured mainly manually because of the size, flexibility, and number of components included in the wiring harnesses, making it difficult to automate their production;
- Demand in product variability is neither stable nor predictable, and besides this, demand has been increased by the COVID-19 pandemic.
2. Wire Harness Manufacturing Processes
- Autarkes: These are the smallest wiring harnesses with low variability. These are produced in batches (in large quantities) because they have few variations. Among these types of wiring harnesses we can find the following:
- –
- Front and back doors: these are the most variable types of Autarkes, mainly the front doors, and especially the driver door;
- –
- Front and back bumpers: these contain different sensors, such as shock sensors, for example;
- –
- Seats: these are mainly used to control heated seats, weight detection alarms, and seat belts.
- Customer-Specific Wiring Harness (KSK, which stands for Kundenspezifischer Kabelstrang in German): These wiring harnesses are very complex to manufacture because they contain many more elements and they have hundreds of variants. The orders of these wiring harnesses are customized, which means that in addition to the functionalities that are necessary for the correct performance of the car, the final user chooses some additional functionalities. These harnesses are usually divided into two types:
- –
- Motor wiring: these wiring harnesses are critical, as they are the most exposed to the weather, so they are provided with a special isolation to resist water penetration and the high temperatures of the motor;
- –
- Car’s inner structure: these sections show great importance since they control the operation of the car control systems being protected by the car body.
2.1. Wiring Harness Evolution
2.2. Product Description
- Cutting, crimping, and seals (CCS) machines: There are eight machines that carry out these processes and they have different numbers of tools. In this manner, 46 types of wires are created that are used in the construction of the wire harness;
- Twisting machines: these devices twist wires to avoid magnetic fields, considering five types of twisting;
- Welding machines: This process on the assembly line is quality-critical, more time consuming, and more costly than others, because it requires special bulky equipment. For that reason, most of the welding process is performed outside of the assembly line, and three types of welds are used to construct this wiring harness;
- Assembly line: There are eight different variants of this wiring harness, and all the parts are assembled together to form the wiring harness. Moreover, the assembly process has four sub-processes that are performed sequentially on four work stations;
- Electrical test stations: in this process, the wiring harness is checked for continuity and insulation before being sent to the customer;
- Quality and packaging: This is the last process that we take into account in the simulation. In this process, the quality tests and the packaging of the wiring harnesses are performed.
3. Simulation and Methodology
Discrete Event Simulation (DES)
- Entities describe conceptual or tangible objects (examples of entities we use are parts, wiring harnesses, etc.). Entities interact with the simulation environment using events, resource requests, and resource utilization;
- Events are associated with the changes of states of entities and resources. They are triggered at a discrete moment in time and have a specified duration;
- Resources are used by entities to perform an action (people, machines, and warehouses can be considered resources). They can have a finite or infinite capacity. An entity requests a resource, and when it is free it is assigned to it, uses it, and then releases it.
4. Model Development
- Machines are always available. No times have been considered for machine-related activities, such as ramp-up, adjustments, reparations, or waiting times in general;
- Machine productivity is considered as . No stops or reduced speeds have been considered;
- Manufactured parts are free from defects, and the quality test will always be passed by the wiring harnesses;
- Transfer time between the different processes has not been taken into account because material transfer has been performed parallel to the production processes;
- Raw material is always available;
- It has been taken into account that production is carried out 24 hours a day, since the plant has production personnel, which are divided into three 8-hour work shifts, and office personnel, who perform one 8-hour shift. In addition, production never stops when workers change shifts.
4.1. Data Collection
Algorithm 1 Calculation of production times. |
Input:, , Output: 1: 2: 3: if uniform then 4: random.uniform(a, b) 5: else if triangular then 6: random.triangular(a, b) 7: end if |
4.2. Model Implementation
- Control: this is the first function to be executed, and is responsible for invoking the functions used in the simulation according to their corresponding order;
- Initialize_variables: this function is in charge of:
- –
- Initializing the times used for the processes in the simulation model;
- –
- Initializing the resources of the processes to be simulated;
- –
- Calculating the number of wires of each type that the CCS machines have to produce to perform the production simulation;
- –
- Declaring numpy arrays to store the simulation data.
- Production_Control: This function is executed every time unit. If any of the production processes has the necessary parts to be performed, it calls the corresponding Simulate_process name function, which is used to request one of the resources assigned to that process and wait until it can be accessed;
- Metric_Control: This function is executed every one unit of time. It obtains the simulation metrics (process queue, process occupancy, and production times) and stores them using numpy arrays, in memory;
- Graphing_saving_data: this function graphs the data obtained from the execution of the simulation model and saves the results in different excels, in order to facilitate the performance of more detailed analyses later.
4.2.1. Model Input
4.2.2. Model Output
5. Results
- _U: for uniform distribution;
- _T: for triangular symmetric distribution.
5.1. Basic Scenario
5.1.1. Production Times
5.1.2. Occupancy of Production Means
5.1.3. Occupancy Queue of Production Means
5.2. Alternative Scenarios with Increased Resources
Analysis of Results
6. Conclusions
- There is a significant difference in the utilization of the quality and packaging processes with respect to the other production processes. As a result, the current configuration of the production line is unbalanced. Therefore, changes in the wiring harness production configuration are necessary to optimize manufacturing;
- The components (number of wires, clips, and connectors) and the manufacturing process of the eight wiring harness variants studied are very similar. Consequently, their average production times are very similar;
- The results of the scenarios analyzed show that it is possible to distribute better the workload of the processes. For this objective, we suggest increasing the number of resources assigned to the quality and packaging process. This would improve the capacity and productivity of the wire harness production process;
- Automated processes are performed efficiently because they have a very low workload. Furthermore, the automation of wire harness production processes is very complex due to variability, the deformable properties of the wires, and the miniaturization of production;
- SimPy Python library allows the implementation of DES models. It has several limitations since it does not have a visual interface and can be difficult to use for professionals that are not familiar with programming. On the other hand, it allows great flexibility since the programmer is the owner of the code, which makes it a suitable choice for the development of more powerful software to carry out simulations.
Future Research
Author Contributions
Funding
Institutional Review Board Statement
Informed Consent Statement
Conflicts of Interest
References
- Fisher, M.L.; Ittner, C.D. The impact of product variety on automobile assembly operations: Empirical evidence and simulation analysis. Manag. Sci. 1999, 45, 771–786. [Google Scholar] [CrossRef] [Green Version]
- Trommnau, J.; Kühnle, J.; Siegert, J.; Inderka, R.; Bauernhansl, T. Overview of the state of the art in the production process of automotive wire harnesses, current research and future trends. Procedia CIRP 2019, 81, 387–392. [Google Scholar] [CrossRef]
- Hardung, B.; Kölzow, T.; Krüger, A. Reuse of software in distributed embedded automotive systems. In Proceedings of the 4th ACM International Conference on Embedded Software, Pisa, Italy, 27–29 September 2004; pp. 203–210. [Google Scholar]
- Rivero, A.A.L. From complex mechanical system to complex electronic system: The case of automobiles. Int. J. Automot. Technol. Manag. 2014, 14, 65–81. [Google Scholar] [CrossRef]
- Klier, T.H.; Rubenstein, J.M. Who Really Made Your Car?: Restructuring and Geographic Change in the Auto Industry; WE Upjohn Institute: Kalamazoo, MI, USA, 2008. [Google Scholar]
- Raskin, A.; Shah, S. The Emergence of Hybrid Vehicles: Ending Oil’s Stranglehold on Transportation and the Economy; AllianceBernstein: New York, NY, USA, 2006. [Google Scholar]
- Oliver, J.D.; Rosen, D.E. Applying the environmental propensity framework: A segmented approach to hybrid electric vehicle marketing strategies. J. Mark. Theory Pract. 2010, 18, 377–393. [Google Scholar] [CrossRef]
- Tran, D.D.; Vafaeipour, M.; El Baghdadi, M.; Barrero, R.; Van Mierlo, J.; Hegazy, O. Thorough state-of-the-art analysis of electric and hybrid vehicle powertrains: Topologies and integrated energy management strategies. Renew. Sustain. Energy Rev. 2020, 119, 109596. [Google Scholar] [CrossRef]
- Ilgevicius, A. Analytical and Numerical Analysis and Simulation of Heat Transfer in Electrical Conductors and Fuses. Ph.D. Thesis, Universität der Bundeswehr München, Neubiberg, Germany, 2004. [Google Scholar]
- Rius Rueda, A. A Novel Optimization Methodology of Modular Wiring Harnesses in Modern Vehicles: Weight Reduction and Safe Operation; Universitat Politècnica de Catalunya: Barcelona, Spain, 2017. [Google Scholar]
- Koch, S.; Antrekowitsch, H. Aluminum alloys for wire harnesses in automotive engineering. BHM Berg-und Hüttenmännische Monatshefte 2007, 152, 62–67. [Google Scholar] [CrossRef]
- Yamano, Y.; Hosokawa, T.; Hirai, H.; Ono, J.; Otsuka, T.; Tabata, M.; Otsuka, Y.; Nishikawa, T.; Kitamura, S.; Yoshimoto, J. Development of aluminum wiring harness. SEI Tech. Rev. 2011, 73, 73–80. [Google Scholar]
- Fernandes, M.M.; de Almeida, I.A.; Junior, H.M. Automotive Miniaturization Trend: Challenges for Wiring Harness Manufacturing; Technical Report; SAE Technical Paper: Warrendale, PA, USA, 2010. [Google Scholar]
- Aebersold, M. The History of Simulation and Its Impact on the Future. AACN Adv. Crit. Care 2016, 27, 56–61. [Google Scholar] [CrossRef] [PubMed]
- Tako, A.A.; Robinson, S. The application of discrete event simulation and system dynamics in the logistics and supply chain context. Decis. Support Syst. 2012, 52, 802–815. [Google Scholar] [CrossRef] [Green Version]
- Owen, C. Selection of Simulation Tools for Improving Supply Chain Performance. Ph.D. Thesis, Aston University, Birmingham, UK, 2013. [Google Scholar]
- Sterman, J. Business Dynamics; McGraw-Hill, Inc.: New York, NY, USA, 2000. [Google Scholar]
- Kotir, J.H.; Smith, C.; Brown, G.; Marshall, N.; Johnstone, R. A system dynamics simulation model for sustainable water resources management and agricultural development in the Volta River Basin, Ghana. Sci. Total Environ. 2016, 573, 444–457. [Google Scholar] [CrossRef] [PubMed]
- Sahin, O.; Stewart, R.A.; Porter, M.G. Water security through scarcity pricing and reverse osmosis: A system dynamics approach. J. Clean. Prod. 2015, 88, 160–171. [Google Scholar] [CrossRef] [Green Version]
- Macal, C.M.; North, M.J. Tutorial on agent-based modeling and simulation. In Proceedings of the Winter Simulation Conference, Orlando, FL, USA, 4 December 2005; p. 14. [Google Scholar]
- Crooks, A.T.; Heppenstall, A.J. Introduction to agent-based modelling. In Agent-Based Models of Geographical Systems; Springer: Berlin, Germany, 2012; pp. 85–105. [Google Scholar]
- Juan, A.A.; Faulin, J.; Grasman, S.E.; Rabe, M.; Figueira, G. A review of simheuristics: Extending metaheuristics to deal with stochastic combinatorial optimization problems. Oper. Res. Perspect. 2015, 2, 62–72. [Google Scholar] [CrossRef] [Green Version]
- Reyes-Rubiano, L.; Ferone, D.; Juan, A.A.; Faulin, J. A simheuristic for routing electric vehicles with limited driving ranges and stochastic travel times. SORT 2019, 1, 3–24. [Google Scholar]
- Law, A.M.; Kelton, W.D.; Kelton, W.D. Simulation Modeling and Analysis; McGraw-Hill: New York, NY, USA, 2000; Volume 3. [Google Scholar]
- Robinson, S. Discrete-event simulation: From the pioneers to the present, what next? J. Oper. Res. Soc. 2005, 56, 619–629. [Google Scholar] [CrossRef] [Green Version]
- Babulak, E.; Wang, M. Discrete Event Simulation; Goti, A., Ed.; Sciyo: Rijeka, Croatia, 2010; p. 1. [Google Scholar]
- Huling, D.; Miles, S.B. Simulating disaster recovery as discrete event processes using python. In Proceedings of the 2015 IEEE Global Humanitarian Technology Conference (GHTC), Seattle, WA, USA, 8–11 October 2015; pp. 248–253. [Google Scholar]
- Misra, J. Distributed discrete-event simulation. ACM Comput. Surv. (CSUR) 1986, 18, 39–65. [Google Scholar] [CrossRef] [Green Version]
- Matloff, N. Introduction to Discrete-Event Simulation and the Simpy Language; Retrieved on August; Department of Computer Science, University of California: Davis, CA, USA, 2008; Volume 2, pp. 1–33. [Google Scholar]
- Iwata, C.; Mavris, D. Object-oriented discrete event simulation modeling environment for aerospace vehicle maintenance and logistics process. Procedia Comput. Sci. 2013, 16, 187–196. [Google Scholar] [CrossRef] [Green Version]
- Pinho, T.; Coelho, J.; Oliveira, P.; Oliveira, B.; Marques, A.; Rasinmäki, J.; Moreira, A.; Veiga, G.; Boaventura-Cunha, J. Routing and schedule simulation of a biomass energy supply chain through SimPy simulation package. Appl. Comput. Inform. 2021, 17, 36–52. [Google Scholar] [CrossRef]
- Castrup, H. Distributions for uncertainty analysis. In Proceedings of the International Dimensional Workshop, Sonoma, CA, USA, 31 March–1 April 2001; pp. 1–12. [Google Scholar]
Code | Description |
---|---|
env = simpy.Environment() | Creates the environment where the simulation will be performed. |
resource = simpy.Resource(env, 1) | Creates in the environment (env) passed as parameter a quantity of a resource with a specified capacity (one in our example). |
env.run() | If no arguments are passed, the simulation is performed until there are no more events. |
env.run(until=100) | The simulation runs until the time provided (100 in the example). |
env.now | Provides the current simulation time. |
env.process(simulate_CCS()) | Attaches to the simulation environment the process passed as a parameter. |
yield env.timeout(15) | A resource when executing the timeout, it tells the environment to wait (sleep) an amount of time equal to the value passed as a parameter. |
Parameter | Type | Valid Values | Description |
---|---|---|---|
N | int | Number of simulations to be performed. | |
BATCH_SIZE | int | Size of production batches. | |
NUM_ITERATIONS | int | Number of production iterations. | |
DISTRIBUTION | string | Type of time distribution to be used. | |
WIDE | float | Amplitude of the distribution used. | |
CCS_TIMES | dictionary | Time to perform the processes. | |
TWISTING_TIME | float | ||
WELDING_TIME | float | ||
ASSEMBLY_TIME | float | ||
ELECTRICAL_TIME | float | ||
PACKAGING_TIME | float | ||
NUMBER_CCS1 | int | Number of resources of the different processes. | |
NUMBER_CCS2 | int | ||
NUMBER_CCS3 | int | ||
NUMBER_CCS4 | int | ||
NUMBER_CCS5 | int | ||
NUMBER_CCS6 | int | ||
NUMBER_CCS7 | int | ||
NUMBER_CCS8 | int | ||
NUMBER_TWISTING | int | ||
NUMBER_WELDING | int | ||
NUMBER_ASSEMBLY | int | ||
NUMBER_ELECTRICAL | int | ||
NUMBER_PACKAGING | int |
Parameters | Values | Description |
---|---|---|
N | 100 | Number of simulations to be performed. |
BATCH_SIZE | 50 | Size of production batches. |
NUM_ITERATIONS | 6 | Number of production iterations. |
WIDE | 0.15 | Amplitude of the distribution used. |
NUMBER_CCS1 | 1 | Number of resources of the different processes. |
NUMBER_CCS2 | 1 | |
NUMBER_CCS3 | 1 | |
NUMBER_CCS4 | 1 | |
NUMBER_CCS5 | 1 | |
NUMBER_CCS6 | 1 | |
NUMBER_CCS7 | 1 | |
NUMBER_CCS8 | 1 | |
NUMBER_TWISTING | 1 | |
NUMBER_WELDING | 1 | |
NUMBER_ASSEMBLY | 2 | |
NUMBER_ELECTRICAL | 1 | |
NUMBER_PACKAGING | 1 |
Total Time | V1 | V2 | V3 | V4 | V5 | V6 | V7 | V8 | |
---|---|---|---|---|---|---|---|---|---|
S1_U | 8695 | ||||||||
S1_T | 8694 | ||||||||
Average |
CCS1 | CCS2 | CCS3 | CCS4 | CCS5 | CCS6 | CCS7 | CCS8 | Twisting | |
---|---|---|---|---|---|---|---|---|---|
S1_U | |||||||||
S1_T |
Welding | Assembly | Electrical Test | Quality & Packaging | |
---|---|---|---|---|
S1_U | ||||
S1_T |
Parameters | S1 | S2 | S3 | S4 | S5 | S6 |
---|---|---|---|---|---|---|
N | 100 | 100 | 100 | 100 | 100 | 100 |
BATCH_SIZE | 50 | 50 | 50 | 50 | 50 | 50 |
NUM_ITERATIONS | 6 | 6 | 6 | 6 | 6 | 6 |
WIDE | 0.15 | 0.15 | 0.15 | 0.15 | 0.15 | 0.15 |
NUMBER_CCS1 | 1 | 1 | 1 | 1 | 1 | 1 |
NUMBER_CCS2 | 1 | 1 | 1 | 1 | 1 | 1 |
NUMBER_CCS3 | 1 | 1 | 1 | 1 | 1 | 1 |
NUMBER_CCS4 | 1 | 1 | 1 | 1 | 1 | 1 |
NUMBER_CCS5 | 1 | 1 | 1 | 1 | 1 | 1 |
NUMBER_CCS6 | 1 | 1 | 1 | 1 | 1 | 1 |
NUMBER_CCS7 | 1 | 1 | 1 | 1 | 1 | 1 |
NUMBER_CCS8 | 1 | 1 | 1 | 1 | 1 | 1 |
NUMBER_TWISTING | 1 | 1 | 1 | 1 | 1 | 1 |
NUMBER_WELDING | 1 | 1 | 1 | 1 | 2 | 2 |
NUMBER_ASSEMBLY | 2 | 2 | 2 | 2 | 2 | 4 |
NUMBER_ELECTRICAL | 1 | 1 | 1 | 1 | 1 | 2 |
NUMBER_PACKAGING | 1 | 2 | 3 | 4 | 4 | 5 |
S1_U | S1_T | S2_U | S2_T | S3_U | S3_T | S4_U | S4_T | S5_U | S5_T | S6_U | S6_T | |
---|---|---|---|---|---|---|---|---|---|---|---|---|
Total Time | 8.695 | 8.694 | 4.377 | 4.377 | 2.939 | 2.938 | 2.891 | 2.891 | 2.650 | 2.649 | 1.767 | 1.766 |
S1_U | S1_T | S2_U | S2_T | S3_U | S3_T | S4_U | S4_T | S5_U | S5_T | S6_U | S6_T | |
---|---|---|---|---|---|---|---|---|---|---|---|---|
CSS1 | 0.839 | 0.839 | 1.667 | 1.667 | 2.483 | 2.484 | 2.524 | 2.525 | 2.754 | 2.755 | 4.134 | 4.132 |
CSS2 | 6.202 | 6.203 | 12.320 | 12.321 | 18.348 | 18.357 | 18.649 | 18.656 | 20.352 | 20.354 | 30.552 | 30.535 |
CSS3 | 1.427 | 1.427 | 2.836 | 2.834 | 4.223 | 4.221 | 4.292 | 4.293 | 4.684 | 4.683 | 7.033 | 7.022 |
CSS4 | 4.033 | 4.036 | 8.015 | 8.017 | 11.935 | 11.944 | 12.132 | 12.139 | 13.238 | 13.245 | 19.869 | 19.863 |
CSS5 | 12.703 | 12.705 | 25.232 | 25.234 | 37.578 | 37.592 | 38.198 | 38.208 | 41.680 | 41.696 | 62.561 | 62.527 |
CSS6 | 1.678 | 1.679 | 3.333 | 3.335 | 4.966 | 4.968 | 5.048 | 5.050 | 5.508 | 5.509 | 8.266 | 8.264 |
CSS7 | 0.839 | 0.839 | 1.667 | 1.667 | 2.484 | 2.484 | 2.524 | 2.525 | 2.754 | 2.755 | 4.134 | 4.132 |
CSS8 | 1.678 | 1.679 | 3.333 | 3.335 | 4.965 | 4.968 | 5.048 | 5.050 | 5.507 | 5.510 | 8.267 | 8.264 |
Twisting | 2.426 | 2.426 | 4.820 | 4.816 | 7.179 | 7.176 | 7.296 | 7.293 | 7.960 | 7.959 | 11.951 | 11.939 |
Welding | 32.626 | 32.627 | 64.802 | 64.810 | 96.510 | 96.540 | 98.108 | 98.123 | 53.510 | 53.537 | 80.341 | 80.293 |
Assembly | 28.689 | 28.663 | 57.002 | 56.912 | 84.892 | 84.760 | 86.275 | 86.171 | 92.959 | 93.057 | 72.849 | 72.984 |
Ele. Test | 30.048 | 30.027 | 59.649 | 59.639 | 88.833 | 88.897 | 90.293 | 90.355 | 98.541 | 98.545 | 76.655 | 75.739 |
Qua. & Pac. | 99.355 | 99.354 | 98.723 | 98.716 | 98.093 | 98.089 | 95.527 | 95.085 | 98.660 | 98.654 | 97.998 | 97.984 |
Publisher’s Note: MDPI stays neutral with regard to jurisdictional claims in published maps and institutional affiliations. |
© 2022 by the authors. Licensee MDPI, Basel, Switzerland. This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution (CC BY) license (https://creativecommons.org/licenses/by/4.0/).
Share and Cite
Guerrero, R.; Serrano-Hernandez, A.; Pascual, J.; Faulin, J. Simulation Model for Wire Harness Design in the Car Production Line Optimization Using the SimPy Library. Sustainability 2022, 14, 7212. https://doi.org/10.3390/su14127212
Guerrero R, Serrano-Hernandez A, Pascual J, Faulin J. Simulation Model for Wire Harness Design in the Car Production Line Optimization Using the SimPy Library. Sustainability. 2022; 14(12):7212. https://doi.org/10.3390/su14127212
Chicago/Turabian StyleGuerrero, Ruddy, Adrian Serrano-Hernandez, Jose Pascual, and Javier Faulin. 2022. "Simulation Model for Wire Harness Design in the Car Production Line Optimization Using the SimPy Library" Sustainability 14, no. 12: 7212. https://doi.org/10.3390/su14127212
APA StyleGuerrero, R., Serrano-Hernandez, A., Pascual, J., & Faulin, J. (2022). Simulation Model for Wire Harness Design in the Car Production Line Optimization Using the SimPy Library. Sustainability, 14(12), 7212. https://doi.org/10.3390/su14127212