The disclosure relates to developing and evaluating assembly system configurations.
Developing candidate assembly system configurations is a repetitively complex and time consuming process that may be necessary for initial production planning, supplier proposal evaluation and final system optimization. One method includes manual system modeling and simulation, which may require high skill levels and an abundance of time to satisfactorily explore options. Designers have been known to resort to pattern matching with past experience and simplified spreadsheet estimation, which often result in significant budget over- or under-estimation and non-optimal best-fit system selection or design. Parameters taken into consideration by designers in planning an assembly system configuration include cycle time, scrap rate and production targets related to processing time, cost and productivity.
A method for generating a candidate assembly system layout for an assembled product is described, and includes inputting a bill of materials including a list of components for the assembled product and determining a plurality of assembly patterns for the assembled product including a plurality of intermediate assemblies and sub-assemblies. A basic task layout is determined that includes assembly tasks for assembling the assembled product based upon a selected one of the assembly patterns. A whole task layout is determined based upon the basic task layout for the selected assembly pattern. Candidate assembly machines are selected for the whole task layout, and zoning constraints are identified for the candidate assembly machines related to assembly tasks. A candidate assembly system layout is generated based upon the whole task layout, the selected candidate assembly machines and the zoning constraints, and a simulation model of a candidate assembly system is generated based upon the candidate assembly system layout. A simulation of the candidate assembly system is executed to evaluate cycle times and throughput to achieve the assembled product based upon the simulation model of the candidate assembly system.
The above features and advantages, and other features and advantages, of the present teachings are readily apparent from the following detailed description of some of the best modes and other embodiments for carrying out the present teachings, as defined in the appended claims, when taken in connection with the accompanying drawings.
One or more embodiments will now be described, by way of example, with reference to the accompanying drawings, in which:
Referring to the drawings, wherein like numerals indicate like or corresponding parts throughout the several views, a method and associated system for generating, selecting, optimizing and simulating candidate assembly system configurations is described, which includes identifying and evaluating candidate assembly system layouts in conjunction with system requirements and constraints. A plurality of candidate task and system layouts are automatically generated by computational algorithms based upon inputs of a bill of materials and a plurality of preferred assembly patterns. One of the candidate system layouts may be selected and optimized to best satisfy an objective function in terms of cost and productivity, including selecting preferred machines and associated machine restrictions (zoning). The assembly machines in the selected assembly system layout may be one of a single task machine, a multi-cycle machine, a multi-task machine and a multi-task assembly machine. The assembly system layout is further evaluated through discrete simulation that takes into account production scrapping, part replenishment and assembly task allocations. Candidate assembly system configurations are thus identified and evaluated in conjunction with system requirements and constraints. One of the candidate system layouts that satisfies an objective function in terms of cost, productivity and/or quality may be selected as a preferred system layout for implementation. The method is reduced to practice as a flexible, fast processing and easy-to-use math-based tool for high level planning and configuration of assembly systems.
The method for generating a candidate assembly system layout for an assembled product includes inputting a bill of materials including a list of components for the assembled product and determining a plurality of assembly patterns for the assembled product including a plurality of intermediate assemblies and sub-assemblies. A basic task layout is determined that includes assembly tasks for assembling the assembled product based upon a selected set of the assembly patterns. The basic task layout can be added with nonstandard assembly tasks, such as inspection and electric tests, to complete a whole task layout Candidate assembly machines are selected for the whole task layout, and zoning constraints are identified for the candidate assembly machines related to the assembly tasks, whether standard or nonstandard. A candidate assembly system layout is computationally generated by optimization algorithms based upon the whole task layout, the selected candidate assembly machines and the zoning constraints. A simulation model of a candidate assembly system and the worksheets for simulation data input/output are generated based upon the candidate assembly system layout. Simulation is executed to evaluate cycle times and throughput to achieve the assembled product based upon the simulation model of the candidate assembly system. This is now described in detail.
Overall, routine 100 may be reduced to practice as a math-based tool for configuring an assembly system for producing an assembled product. By way of example, one embodiment of a lithium battery pack for deployment on a ground vehicle includes several modules. In each module, there is a stack of battery cells and auxiliary components, such as frames, cooling fins and compression foams. The components may be assembled in certain repetitive patterns, such as a frame-cell-foam-cell-fin pattern. Multiple repetitive pattern units may be directly stacked together along with non-repetitive patterns or components on both ends of the stack to form a module or a section. Alternatively, several repetitive pattern units may be encased in a hard metal enclosure or can, which in turn is stacked into a module. In production, there are different ways to configure battery assembly systems. For example, each battery component may be sequentially stacked by an individual machine or station, resulting in a serial transfer line. Alternatively, all the battery components may be assembled in a flexible machine or station, leading to a parallel system with multiple duplicated setups. Alternatively, there may be serial-parallel hybrid system configurations that include some battery components to be pre-assembled into subassemblies, which are next assembled with other components or subassemblies to form the final product.
The routine 100 may be employed to generate candidate assembly system layouts in conjunction with special system requirements or constraints and select an optimal system that satisfies objective functions related to user selected constraints of cost, productivity and quality, all through an analytical or computational system engine. The routine 100 may be implemented as one or a plurality of controller-executed algorithms that employ information that is input by a user through a plurality of graphic user interfaces that are displayed on a computer screen. Certain elements of the routine 100 permit or require user inputs, and are indicated by boxes having solid lines 105. Certain elements of the routine 100 are executable elements or computation engines, and are indicated by boxes having dashed lines 110.
The terms controller, control module, module, control, control unit, processor and similar terms refer to any one or various combinations of Application Specific Integrated Circuit(s) (ASIC), electronic circuit(s), central processing unit(s), e.g., microprocessor(s) and associated non-transitory memory component in the form of memory and storage devices (read only, programmable read only, random access, hard drive, etc.). The non-transitory memory component is capable of storing machine readable instructions in the form of one or more software or firmware programs or routines, combinational logic circuit(s), input/output circuit(s) and devices, signal conditioning and buffer circuitry and other components that can be accessed by one or more processors to provide a described functionality. Software, firmware, programs, instructions, control routines, code, algorithms and similar terms mean any controller-executable instruction sets including calibrations and look-up tables. Each controller executes control routine(s) to provide desired functions, including monitoring inputs from sensing devices and other networked controllers and executing control and diagnostic routines to control operation of actuators. Communications between controllers and between controllers, actuators and/or sensors may be accomplished using a direct wired link, a networked communications bus link, a wireless link or any another suitable communications link. Communications includes exchanging data signals in any suitable form, including, for example, electrical signals via a conductive medium, electromagnetic signals via air, optical signals via optical waveguides, and the like.
The user may initiate the routine 100 through the start menu 200 that includes a first start menu screen 201, shown with reference to
The user-selectable elements include an example configuration 210, existing configurations A 204, B 206 and C 208, and a new configuration 212 for producing an assembled product. When the user selects one of the configurations for assembly system layouts (204, 206, 208, 210 or 212), the routine 100 seeks input from the user related to production capacity, which is displayed on a production capacity screen 250, shown with reference to
The production capacity screen 250 may include a screen arrangement that includes user-selectable contents for basic production operation data, as shown with reference to Table 3, as follows.
In each assembly pattern, there may be multiple approaches to assemble the components while maintaining the same order for the assembled product. For example, ABC may be (AB)C, i.e., assembling A and B first into (AB), then assembling (AB) and C; or A(BC), i.e., assembling B and C first into (BC), then assembling A and (BC); or (ABC), i.e., the assembly may be (AB)C this time, A(BC) any other time. An order of (AC)B is not an acceptable approach because it changes the order of assembly requiring B be sandwiched between A and C.
One process for identifying all the combinations of sequencing an assembly pattern may be referred to as enumeration. Enumeration includes identifying all candidate arrangements to assemble components that maintain the same order for the assembled product, including determining an assembly pattern that includes a combination of sequences of components or subassemblies. A control routine may enumerate all candidate assembly tasks or system configurations automatically by converting an assembly layout to a string of characters, such as ((((AB)C)D)E), (ABCDE), ((AB)(CDE)), wherein the characters {A, B, C, D, E} represent the components to be assembled in the listed sequence of ABCDE and each pair of parentheses denotes an assembly operation or task, e.g., stacking The enumeration may be generically stated as a hierarchical grouping problem of P(n) with n elements {a1, a2, a3, . . . an} to be grouped in the listed sequence. The candidate configurations may thus be generated by the following hierarchical and recursive grouping procedures. Overall, this includes step 1, which includes enumerating all the non-repetitive cases for grouping two elements, such as {(a1a2)a3 . . . an}, {a1a2(a3 a4) . . . an}, . . . {a1a2a3 . . . (an-1an)}. Only two elements are merged at a time, and multiple two-element grouping, {(a1a2)a3 . . . (an-1an)} for example, is not allowed. Under each case, the grouped elements are treated as one integrated element and the enumeration problem degenerates into a P(n-1) problem since there are n-1 elements left. Step 2 follows, wherein all the non-repetitive cases for grouping three elements are enumerated, such as {(a1a2a3) . . . an}, . . . {a1 . . . an-3 (an-2an-1an)}. Under each case, the grouped elements are treated as one integrated element and the enumeration problem degenerates into a P(n-2) problem since there are n-2 elements. This enumeration operation continues by indexes steps up to step n-1, which includes enumerating the non-repetitive cases for grouping all n elements. Apparently, there is only one set of functional configuration, i.e., (a1, a2, a3, . . . an). At each step of P(n), the i'th step for example, the above procedure is applied to solve the enumeration problem P(n-i). Similarly, at the j'th step of P(n-i), the above procedure is applied again to solve the enumeration problem P(n-i-j). The same recursive enumeration process continues to successive hierarchical levels until there is only one set of candidate system configuration. A filtering function may be embedded in the recursive algorithms to screen out undesirable configurations due to special assembly requirements or constraints.
Table 4 shows one example of enumeration analysis for elements A, B, C, D to determine candidate assembly patterns that include a combination of sequences of components or subassemblies, including a numerical index for identifying a candidate assembly pattern, an enumeration of the multiple approaches to assemble the components while maintaining the same order for the assembled product, and a physical interpretation of the enumeration. Such candidate assembly patterns may be developed for the assembled product.
A related assembly layout flowchart 550 may be generated by the controller, and reflects an assembly flowchart for the specific candidate assembly layout 506 that indicates an associated combination sequence for the assembly pattern associated with the candidate assembly task layout 506. As shown, each of the balloons 552 indicates a raw material, and each of the blocks 554 indicates an assembly task, e.g., moving or combining of the raw materials or a subassembly. The blocks 554 indicating assembly tasks are connected by arrows 556, which represent the sequence of actions to achieve an assembled product or subassembly 560. The user selects one to proceed to the combination sequence selection of the next assembly pattern (500).
A gantry robot is configured to move along three linear axes (X,Y,Z), thus having a work envelope that is in rectangular block shape. The Cartesian (X,Y,Z) configuration allows the gantry robot to be highly customizable within its work envelope. Payload and speed may vary with selection or design of actuators, axis lengths and support structure. The advantages of gantry robots include easy workspace planning, ease of configuration by stacking up linear actuators, and best accuracy and repeatability due to higher structural rigidity. Some gantry robots are inefficient in spatial utilization due to fixed length of the moving axes.
A SCARA robot may have four axes of motion with three operating in a cylindrical work envelope and the remaining one for rotating part orientation. The robot arm may be slightly compliant horizontally, in X-Y plane, but rigid in the vertical Z direction. SCARA robots are fast with repeatable movement, and are low cost with a small footprint. SCARA robots are known to be small in size and with relatively low payload capacity.
An articulated robot has high level of flexibility as a result of six rotational axes or joints, closely resembling a human arm and wrist combined. The six rotational joints allow an articulated robot to reach a spherical workspace which is much larger than the length of individual mechanical links and, at the same time, lets the articulated robot grasp or move parts flexibly in all orientations or paths. The articulated robots are hence the most compact material handling equipment. However, the serially connected link arms and joints with servo motors and attached cabling form a relatively heavy, long-stretched mass or inertia that may hamper their speed, response time and structural rigidity. Furthermore, articulated robots may be less accurate due to the serially connected rotary joints with the nature of amplifying motion errors through the linkage as compared to the fixed, independent inaccuracies of gantry robot axes.
A PKM robot has a configuration with multiple sets of serial linkages that are connected together at both a fixed base and a moving platform. Each serial linkage has an independently controllable linear or rotary actuator. By coordinating the motion of the actuators, the PKM robot may function as a three-axis robot for moving parts in a conical-like workspace. Similarly, by adding a wrist with extra axes, the PKM robot may change part orientations on the moving platform. There are various PKM concepts.
Non-direct assembly tasks may include an open-circuit voltage tester (OCV), a bar code label reader (BarCode Label), a welder (Laser Weld), a weld inspector (Laser Inspect), an electrical continuity tester (Electric Test), quality control monitor (QC), and a compressing device. Other machine types may be employed in place of or along with the example machine types 802 that are listed. Tasks 804 are associated with each of the machine types 802 and include standard or non-standard tasks, e.g., R1, R2, R3 and R4, which are shown in a first line. Task names include, by way of example, a Cell Flip, Stacking, and OVC. Shaded portions 805 on the menu 801 indicate tasks that the associated assembly machine type may not be able to accomplish. The shaded portions 805 indicate that the assembly machines for non-standard assembly tasks cannot be picked for standard tasks and vice versa. For nonstandard tasks, normally only one specific machine type may be selected for an assembly process. Selected elements 807 (Y) indicate a selected or preferred machine type for the associated task. The menu 801 displays all available assembly machines for performing standard or non-standard assembly tasks. For standard tasks, the user may pick multiple types of assembly machines. Optimization algorithms will assist in selecting a preferred one of the type of assembly machines. Machine parameters such as cycle time and cost of each type of the assembly machines may be modified by the user as needed.
An optimization algorithm is executed (1080) to generate an optimized system layout in the form of a candidate assembly system layout (1100).
The user input menu 1150 includes a plurality of station descriptors that correspond to the assembly stations, e.g., Station 1, Station 2, etc. The station descriptors each include a station name, e.g., Station 1, a machine type, a quantity of the machines at the station (Number of Machines) and an associated name (Name), a quantity of tasks allocated to the station (Total Number of Allocated Tasks:), and a list of the allocated tasks (Allocated Task List) wherein the allocated tasks are derived from the candidate whole task layout 601 described with reference to
The basic machine worksheet 1301 is automatically generated for the candidate assembly system 1210, with the input values, e.g., cycle times derived from inputs. Values for MTBF (“Mean Time Between Failure”) 1328, MTTR (“Mean Time To Repair”) 1330 and Scrap Rate 1332 are populated with default values, and may be set by the user. Furthermore, details of multi-cycle machines (“Multi-Cycle”), multi-task machines (“Multi-Task”) and multi-task assembly machines (“MT Assembly”) may be input via worksheets. By way of definition, a simple machine has a single input and a single output, an assembly machine has multiple inputs and a single output, a multi-task machine has a single input and multiple outputs and a multi-task assembly machine has multiple inputs and multiple outputs. Production scrapping, if not properly managed in either parts replenishment or assembly tasks allocation, may result in system stoppage due to empty input (starving) or over-filled output (blocking).
The direct replenishment control routine 2001 preferably executes after the completion of each of its assigned tasks, which are preferably sequentially executed. Upon initiating a new task (2010), the multi-task assembly machine determines whether input parts have been supplied to its input lines, i.e., whether input parts are available (2012), and if so (2012)(1), determines whether there is output space (2014). If so (2014)(1), parts are input to the multi-task assembly machine according to its assigned task (2016) and the task assembly process is executed per the assigned task (2018), and the assembled part is pushed to the output of the multi-task assembly machine (2020). If there are no input parts available (2012)(0), or if there is no available output space (2014)(0), the multi-task assembly machine skips the task to execute the next task and the assembled part is pushed to the output of the multi-task assembly machine (2020). This direct replenishment control routine 2000 may be employed and simulated in the simulator as part of its analysis.
Operation of one embodiment of the tagged replenishment control routine 2101 for controlling a multi-task assembly machine includes inputting new parts to the multi-task assembly machine (2102) and determining if the parts are tagged (2104). If not tagged (2104)(0), the task is processed per the planned sequence (2112), and the part is evaluated to determine if it is a scrap part (2114). If not a scrap part (2114)(0), the assembly is pushed to the output per the task (2122). If tagged (2104)(1), the task is processed per the tag (2106), and the part is evaluated to determine if it is a scrap part (2108). If not a scrap part (2108)(0), the tag is evaluated to determine if it is tagged to the task (2110). If tagged to the task (2110)(1) the tags are removed (2120) and the assembly is pushed to the output per the task (2122). If not tagged to the task (2110)(0) the assembly is pushed to the output per the task (2122). If the part is a scrap part (2114)(1) or (2108)(1), the part is pushed to a scrapping process (2130). The scrapping process (2130) including executing a replenish request is activated (2132), and the replenishment materials and scrap task machine are identified (2134). The routine verifies the replenishment (2136), and if active (2136)(1), executes a replenish material release cycle (2138) and tags the replenishment part or parts (2140) and evaluates whether the replenishment material release cycle is complete (2142). This operation continues to execute the replenish material release cycle (2138) and tag the replenishment part or parts (2140) until the replenishment material release cycle is complete (2142)(1). When the replenishment material release cycle is complete (2142)(1) or the replenishment request is inactive (2136)(0), the next release cycle is executed (2144), which includes executing a regular raw material release cycle until complete (2146), (2148)(0) and (2148)(1). This tagged replenishment control routine 2100 may be employed and simulated in the simulator as part of its analysis.
The aforementioned information is input to a simulation tool, i.e., a simulator, which evaluates the candidate assembly system and provides results. Simulation tools in the form of controller-executable software are commercially available, and thus not discussed in detail herein. Such simulation tools include generating statistically accurate models, e.g., one of the candidate whole task layouts 600 that represent behaviors of the system for predictive experimentation.
A first application program interface (API) 2320 translates user inputs related to machines, buffers, conveyors, control logic to information usable in simulation software, and a second API 2330 generates simulation models of candidate assembly system configurations and scrap control logic to information usable in simulation software, e.g., as described with reference to
The results for a plurality of candidate systems may be combined with any constraints, such as a simplified system policy that requires each task to be assigned to only one type of assembly machine, a balanced material flow policy requiring an upstream assembly or subassemblies to be finished before the downstream tasks can be processed, a system cost restraint that requires the total investment and operating cost to not exceed the budget limit, and a requirement that the system throughput has to meet or exceed the required production volume. The results for the candidate systems may be subjected to linear programming to identify a preferred assembly system layout that minimizes the objective function, e.g., minimizes costs. The concepts described herein provide user-friendly simulation without the complexity of manual modeling, including an ability to rapidly model and simulate candidate assembly systems for system optimization and decision making This facilitates assembly system planning and decision making and reduced time and cost for production system simulation.
The detailed description and the drawings or figures are supportive and descriptive of the present teachings, but the scope of the present teachings is defined solely by the claims. While some of the best modes and other embodiments for carrying out the present teachings have been described in detail, various alternative designs and embodiments exist for practicing the present teachings defined in the appended claims.
This invention was made with Government support under DE-EE-0002217, awarded by the U.S. Department of Energy. The United States Government has certain rights in this invention.