Feeder arrangement optimization method and system considering complex constraints, and storage medium

By introducing component attribute matrix and recursive allocation calculation in feeder arrangement, the global dynamic allocation result matrix is ​​updated in real time, and the allocation priority is constructed, and the problem of feeder arrangement optimization under various complex constraints in the existing technology is solved, and the problem of feeder arrangement optimization is realized. Fast and high-quality feeder arrangement.

CN118647197BActive Publication Date: 2024-12-20HEFEI ANXIN PRECISION TECH CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202411124530.7
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2024-08-16
Publication Date
2024-12-20
Estimated Expiration
2044-08-16

AI Technical Summary

Technical Problem

The prior art is difficult to quickly obtain high-quality feeder arrangement results in actual production, especially when multiple complex constraints are superimposed, such as distribution interference caused by the occupation of multiple slots by large-scale feeders, and multiple feeders. Distribution interference problems caused by the rack distribution, optimization of multiple substrate sequences and manual teaching of feeder station fixation.

Method used

By introducing the concept of component attribute matrix, the global dynamic allocation result matrix is ​​updated in real time based on recursive allocation calculation, allocation priority is constructed, and the traceability of recursive allocation and the dynamic programming idea of ​​global dynamic allocation can be quickly obtained. The specific steps include traversing the component attribute matrix to generate the feeder allocation unit, sorting and recursive allocation calculations, calculating feasible allocation fields and allocation priority, and selecting the highest priority slot for allocation.

Benefits of technology

It effectively solves the problem of difficulty in optimizing feeder layout after multiple constraints superposition, and achieves rapid obtaining of high-quality feeder layout results, meeting complex constraints in actual production.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN118647197B_ABST
    Figure CN118647197B_ABST
Patent Text Reader

Abstract

The present invention relates to the field of placement optimization technology for chip placement machines, and discloses a feeder arrangement optimization method and system considering complex constraints, and a storage medium. The method introduces the concept of component attribute matrix, and carries out recursive allocation calculation based on the data, and updates the global dynamic allocation result matrix in real time to indicate the insertion status of all slots on the current feeder rack, so as to obtain a feasible allocation domain, and further allocates by constructing allocation priorities. Based on the traceability of recursive allocation and the dynamic programming idea of ​​global dynamic allocation, a high-quality solution that meets the constraints can be quickly obtained.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to the technical field of chip placement optimization, and in particular to a feeder arrangement optimization method and system considering complex constraints, and a storage medium. Background Art

[0002] A placement machine is a device used for automatic placement of electronic components. Its main function is to take out electronic components from the component library and accurately place them on the printed circuit board (PCB). The performance and efficiency of the placement machine directly affect the production quality and efficiency of electronic products. The placement machine feeder is an important part of the placement machine. Its main function is to take out electronic components from the material belt and accurately send them to the feeding position. The design and layout of the placement machine feeder directly affect the performance and efficiency of the placement machine.

[0003] The feeder arrangement problem is a sub-problem of the placement optimization problem. Currently available literature and materials often only discuss the feeder arrangement problem under ideal conditions, ignoring the complex constraints that may be faced in actual production. The additional constraints faced in actual production include:

[0004] Distribution interference caused by large-size feeders occupying multiple slots;

[0005] Feeder allocation issues for multiple feeder racks;

[0006] Feeder arrangement inheritance problem when optimizing multiple substrates in sequence;

[0007] Distribution interference problem caused by fixed position of feeder after manual teaching.

[0008] When several or all of the above constraints are superimposed on each other, it becomes particularly difficult to quickly obtain a high-quality feeder arrangement result. Summary of the invention

[0009] In order to solve the problems in the prior art, the present invention provides a feeder arrangement optimization method and system, and a storage medium taking into account complex constraints.

[0010] In order to achieve the above object, the first aspect of the present invention provides a feeder arrangement optimization method considering complex constraints, comprising the following steps:

[0011] Traversing each column of the component attribute matrix, generating a corresponding feeder allocation unit for each component, wherein each row of the component attribute matrix represents a component attribute, and each column represents a component to be allocated;

[0012] Sort all feeder allocation units in descending order according to the corresponding placement quantity;

[0013] Performing recursive allocation calculation of the feeder allocation units according to the order of the feeder allocation units to update a global dynamic allocation result matrix for indicating the placement status of all slots on the current feeder rack;

[0014] The feeder allocation unit calculates all feasible allocation domains of the current feeder according to the key data of the feeder allocation and the updated global dynamic allocation result matrix;

[0015] Sort the compensation coordinate data of each feasible slot in the feasible allocation domain and calculate the allocation priority of each feasible slot;

[0016] Select the feasible slot with the highest priority for allocation, allocate the current feeder allocation unit to the slot, and then perform the next recursive allocation to continue allocating the next feeder in the current state.

[0017] A second aspect of the present invention provides a feeder arrangement optimization system considering complex constraints, comprising:

[0018] A feeder allocation unit generation module is used to traverse each column of the component attribute matrix and generate a corresponding feeder allocation unit for each component, wherein each row of the component attribute matrix represents a component attribute and each column represents a component to be allocated;

[0019] The feeder allocation unit sorting module is used to sort all feeder allocation units in descending order according to the corresponding placement quantity;

[0020] A recursive allocation calculation module, used for performing recursive allocation calculation of the feeder allocation units according to the order of the feeder allocation units, so as to update a global dynamic allocation result matrix for indicating the insertion status of all slots on the current feeder rack;

[0021] A feasible allocation domain calculation module is used for the feeder allocation unit to calculate all feasible allocation domains of the current feeder according to the key data of the feeder allocation and the updated global dynamic allocation result matrix;

[0022] An allocation priority module is used to sort the compensation coordinate data of each feasible slot in the feasible allocation domain and calculate the allocation priority of each feasible slot;

[0023] The recursive allocation module is used to select the feasible slot with the highest priority for allocation, allocate the current feeder allocation unit to the slot, and then perform the next recursive allocation to continue to allocate the next feeder in the current state.

[0024] A third aspect of the present invention provides a machine-readable storage medium having instructions stored thereon, the instructions being used to enable a machine to execute the feeder arrangement optimization method considering complex constraints described above in the present application.

[0025] A fourth aspect of the present invention provides a processor, characterized in that it is used to run a program, wherein the program, when run, is used to execute: the steps of the feeder arrangement optimization method considering complex constraints as described above.

[0026] Through the above technical scheme, the present invention introduces the concept of component attribute matrix, carries out recursive allocation calculation based on the data, updates the global dynamic allocation result matrix in real time to indicate the installation status of all slots on the current feeder rack, thereby obtaining a feasible allocation domain, and further allocates by constructing allocation priorities. Based on the traceability of recursive allocation and the dynamic programming idea of ​​global dynamic allocation, high-quality solutions that meet the constraints can be quickly obtained, which solves the problem of difficulty in optimizing the feeder layout after the superposition of multiple constraints in the actual production process.

[0027] Other features and advantages of the embodiments of the present invention will be described in detail in the subsequent detailed description. BRIEF DESCRIPTION OF THE DRAWINGS

[0028] The accompanying drawings are used to provide a further understanding of the embodiments of the present invention and constitute a part of the specification. Together with the following specific implementations, they are used to explain the embodiments of the present invention, but do not constitute a limitation on the embodiments of the present invention. In the accompanying drawings:

[0029] Figure 1 It is a schematic diagram of the feeder arrangement optimization process considering complex constraints of the present invention;

[0030] Figure 2 is a schematic diagram of the first calculation unit flow in an embodiment of the present invention;

[0031] Figure 3 It is a schematic diagram of the flow chart of the second calculation unit in an embodiment of the present invention. DETAILED DESCRIPTION

[0032] The specific implementation of the embodiment of the present invention is described in detail below in conjunction with the accompanying drawings. It should be understood that the specific implementation described here is only used to illustrate and explain the embodiment of the present invention, and is not used to limit the embodiment of the present invention.

[0033] The solution described in the present invention is an algorithm submodule of the placement optimization software, which mainly solves the feeder arrangement optimization problem. The placement optimization software performs relevant processing on the placement machine parameters, substrate data and manual settings, and the processed data is passed to the feeder arrangement optimization module to execute the optimization algorithm. The first aspect of the embodiment of the present invention provides a feeder arrangement optimization method considering complex constraints, which can be simply summarized into four steps: data preprocessing, conflict checking, calling the calculation unit, and sorting out the optimization results, such as Figure 1 As shown, the specific steps include:

[0034] S1, data preprocessing;

[0035] Before performing the calculation, prepare the data required for the calculation. The more important ones are the mounting component property matrix (PartsPropMat), the feeder rack position matrix (SetNoPosVec), and the feeder rack boundary data (PlateBounds).

[0036] The placement component attribute matrix contains the main information of the component. Its size is M rows and N columns. Each row represents an attribute, and each column represents a component to be assigned. These attributes are mainly the component number (PartNo), the number of placements (Count), the grouping label (Label), the number of slots occupied by the feeder (Width), the default feeder position (SetNo), whether it is a teaching coordinate (Definition), the average placement point X coordinate (AvgX), the average placement point Y coordinate (AvgY), a number of available nozzles, and a unique identifier (Hash). The columns of the matrix are arranged in descending order according to the number of component placements. For example, the placement machine can set up to 3 nozzle types for each component, and the available nozzles include available nozzle 0 (Nzl0), available nozzle 1 (Nzl1), and available nozzle 2 (Nzl2).

[0037] The feeder rack position matrix contains the coordinate information of all assignable feed slots, and its size is 2 rows and K columns, where the rows correspond to the X coordinate and the Y coordinate, and each column corresponds to a feed slot. The columns of the matrix are arranged in ascending order according to the feed slot number.

[0038] The feeder rack boundary data contains the key data of all independent feeder racks, including the station number range, feeder rack location, etc.

[0039] S2, conflict check;

[0040] The conflict check is to initially check whether there is a conflict between the data and the optimization mode to ensure that there is a feasible solution to the problem. This part of the check includes the legitimacy of the data, whether the inherited feeder position conflicts with the optimized position, whether the manually set feeder rack enable state conflicts with the optimized position, and whether the teaching coordinates conflict with the optimized position.

[0041] S3, calling the computing unit;

[0042] Furthermore, if Figure 2 As shown, step S3 includes the following process:

[0043] S31. Traverse each column of the component attribute matrix and generate a corresponding feeder allocation unit for each component; the feeder allocation unit is a data structure that stores key data of feeder allocation and can calculate all feasible allocation domains of the current feeder based on these data combined with a given arrangement state.

[0044] S32, sorting all feeder allocation units in descending order according to the corresponding mounting quantities;

[0045] The more placement quantities of components corresponding to a feeder, the higher the allocation priority it has, so as to improve the optimization results.

[0046] S33, performing recursive allocation calculation of the feeder allocation units according to the order of the feeder allocation units, so as to update a global dynamic allocation result matrix for indicating the insertion status of all slots on the current feeder rack;

[0047] Start to execute the recursive allocation calculation of the feeder allocation unit. The calculation object is the array composed of all feeder allocation units and the index of the current allocation unit, and the starting index is 0. The recursive calculation first determines whether the current index reaches the end index. If it reaches it, the allocation result is returned, where the end index is the index of the last allocation unit in the array.

[0048] S34, the feeder allocation unit calculates all feasible allocation domains of the current feeder according to the key data of the feeder allocation and the updated global dynamic allocation result matrix;

[0049] The feeder allocation unit calculates the feasible allocation domain according to the global dynamic allocation result matrix combined with the feeder rack boundary data, feeder allocation mode and other necessary data. The embodiment of the present invention is applicable to the calculation of all station constraints. For example, if the feeder has been taught, its allocation feasible domain only includes its teaching station; if the current allocation mode is movable in the feeder rack, its allocation feasible domain includes the feasible slots in the feeder rack where it is located; if the current allocation mode is movable in the workbench, its allocation feasible domain includes the feasible slots in the workbench where it is located; if the current allocation mode is movable in the machine, its allocation feasible domain includes the feasible slots in the machine where it is located; for large-sized feeders (feeders with more than 1 occupied slots), interference calculation will be performed according to the number of occupied slots when calculating the feasible domain, further reducing the number of feasible slots.

[0050] S35, sorting the compensation coordinate data of each feasible slot in the feasible allocation domain, and calculating the allocation priority of each feasible slot;

[0051] S36, select the feasible slot with the highest priority for allocation, allocate the current feeder allocation unit to the slot, then perform the next recursive allocation, and continue to allocate the next feeder in the current state.

[0052] Furthermore, step S3 further includes:

[0053] S37, during the execution of step S36, a copy of the global dynamic allocation result matrix is ​​created, and the global dynamic allocation result matrix and the index are updated in real time according to the allocation result. If an allocation fails, the suboptimal feasible slot is replaced to continue to try to allocate. At the same time, by using the design of the copy data, the state matrix is ​​equivalent to automatically backtracking the state. If all feasible slots fail to allocate, it is considered that there is no solution in the current state. Due to the recursive nature, the algorithm will return to the previous level feeder allocation unit to modify its allocation slot to a suboptimal feasible slot and continue to iterate. In theory, the algorithm can find all feeder arrangement possibilities, but in order to control the complexity of the algorithm, steps S36-S37 are generally limited to try a maximum of several feasible slots with high priority, so as to achieve a balance between rapidity and high quality of the solution.

[0054] S38. According to the final result of the recursion, determine whether the dynamic allocation is successful. If the allocation is successful, further organize the optimization results and proceed to the subsequent steps.

[0055] In order to solve the problem of allocating multiple feeder racks, it is necessary to consider the priority of the feeder to be allocated to the feeder rack. The feeder rack close to the substrate has a shorter suction and placement path, so it is allocated first. To this end, the coordinates of different feeder racks are compensated twice, and the algorithm calculates the allocation priority according to the compensated distance during execution.

[0056] When multiple substrates are continuously produced on the production line, there is a requirement not to switch the feeder layout frequently, which gives rise to the problem of feeder layout inheritance during multi-substrate optimization. When performing this optimization, the global feeder allocation result maintained by the algorithm is obtained. First, the unique identification attribute of the mounted component is used to determine which feeders have been allocated to the feeder rack, and then the relevant feeder data is removed from the calculation data, that is, it is not involved in the feeder layout optimization calculation as an allocated unit.

[0057] S4, sort out the optimization results;

[0058] The allocation result matrix returned by the calculation unit is further processed. If the component to be allocated appears in the inherited feeder arrangement matrix, the inherited result is added to the current allocation result matrix. If there is a newly allocated feeder, the allocation result is added to the globally inherited feeder arrangement matrix. The current feeder arrangement allocation matrix and the globally inherited feeder arrangement allocation matrix are updated. "This feeder arrangement allocation matrix" refers to the final output of this optimization, and its size is 1*S (S is the number of slots). For unallocated slots, the corresponding value of the matrix is ​​-1. For allocated slots, the corresponding value of the matrix is ​​the component number mounted by the allocated feeder. "Globally inherited feeder arrangement allocation matrix" refers to the slot status of the placement machine at the global optimization level. Its size is 1*S. For unallocated slots, the corresponding bit of the matrix is ​​-1. For allocated slots, the corresponding value of the matrix is ​​the component number mounted by the allocated feeder. Before optimizing each substrate, the assigned feeders will be eliminated according to the globally assigned state matrix. During the optimization process, the feasible domain of feeder allocation will be calculated based on it. After the optimization, the results of the newly assigned feeders will be added to the global allocation state matrix.

[0059] The present invention introduces the concept of component attribute matrix, carries out recursive allocation calculation based on the data, updates the global dynamic allocation result matrix in real time to indicate the installation status of all slots on the current feeder rack, thereby obtaining a feasible allocation domain, and further allocates by constructing allocation priorities. Based on the traceability of recursive allocation and the dynamic programming idea of ​​global dynamic allocation, high-quality solutions that meet the constraints can be quickly obtained, solving the problem of difficulty in optimizing the feeder arrangement after the superposition of multiple constraints in the actual production process.

[0060] In another embodiment of the present invention, when the number of constraints is too large, the feasible solution of the feeder arrangement problem is compressed into a very small space. After the above steps S31-S38 (steps S31-S38 are used as the first calculation unit), it is impossible to quickly process a large number of constraints and find a feasible solution within a limited time. In order to deal with the situation where the constraints are too complex, such as Figure 1 As shown, the second calculation unit is introduced: quantify all constraints in the feeder arrangement optimization problem, minimize the placement moving distance and maximize the number of components with the same suction as the goal, calculate based on the mixed integer programming model, obtain the target value within the preset model solution time, complete the allocation, and further organize the optimization results. Figure 3 As shown, the number of feeders is F, the total number of feeding slots in the machine is S, the type of component grouping labels is L, and the various attributes of the components are represented by a matrix with 1 row and F columns. Specifically:

[0061] Step 1. Create a mixed integer programming model (hereinafter referred to as the model), set the optimization goal to minimize the objective function value, set the model solution time, strategy and other auxiliary parameters, including but not limited to 1. Solution timeout: The model will only calculate for this long at most, either finding the optimal solution and returning within a limited time, or returning after a timeout, in which case it is a suboptimal solution or no solution; 2. Optimization timeout: After the model finds the first feasible solution, it will continue to search for a better solution, and the search time will not exceed this time; 3. Solution accuracy gap: "gap" represents the gap between the objective function value obtained by the current solution and the optimal solution, usually expressed in percentage or absolute value. When the gap between the solution obtained by the algorithm and the optimal solution is less than this threshold, it can be considered that the algorithm has converged to the vicinity of the optimal solution; 4. Solution number limit: Terminate the calculation after finding the corresponding number of solutions; 5. Number of threads: The number of threads for multi-threaded accelerated calculation.

[0062] Step 2: Create a two-dimensional array of size F*S and fill it with zero-one decision variables. p ij Indicates whether feeder i occupies slot j.

[0063] Step 3: Add constraint 1: All feeders can be assigned only once.

[0064]

[0065] Step 4: Add constraint 2: All stations can only be assigned once at most

[0066]

[0067] Step 5, add constraint 3, the allocated stations, illegal stations, non-enabled feeder racks, and large-size feeder cross-slot interference stations cannot be allocated.

[0068] p ij = 0, if station j does not meet the constraints

[0069] Note: In the above formula, the judgment that the station j does not meet the constraints is calculated by the algorithm and will not be repeated here.

[0070] Step 6. Add constraint 4. The extra station space occupied by the large-size feeder will not conflict with other feeders.

[0071] First, the final arrangement of the feeder slot i It can be expressed as follows:

[0072] ,

[0073] The constraint is imposed on a large feeder that occupies more than 1 slot. Assume that the feeder is i 1 feeder, then its starting slot is slot i1 , the end slot is slot i1 + width i1 -1. The station positions of all other feeders are either greater than the end slot of the feeder or less than the start slot of the feeder. Assuming that the sequence numbers of other feeders are i 2 , expressed as constraints as follows:

[0074]

[0075] There is a logical OR in this constraint, and by introducing M (a very large number, which can be 1000 in this model), two zero-one auxiliary variables u 1 i1 , u 2 i1 , to linearize the formula, the linearized formula is as follows:

[0076]

[0077] in, width i1 Indicates the number of slots occupied by the feeder numbered i1. p i1j Indicates whether the feeder numbered i1 is inserted into slot j, which is the zero-one decision variable defined initially. p i2j Indicates whether the feeder numbered i2 is inserted into slot j. u 1 i1 represents a zero-one auxiliary variable introduced for linearization, u 2 i1 represents another zero-one auxiliary variable introduced for linearization, and M represents a sufficiently large value for linear relaxation.

[0078] Step 7: Add constraint 5 to further constrain the allocatable range of each feeder for different allocation strategies:

[0079] p ij = 1, if the restriction is to be allocated only to slot j

[0080] p ij = 0, if the restriction is not assigned to slot j.

[0081] The constraints are calculated by the allocation model and algorithm and will not be described here.

[0082] It is worth noting that the order of adding constraints includes but is not limited to the order of the above steps, and the order can be changed at will.

[0083] Step 8. Add objective function 1 to minimize the placement moving distance. After further decomposition, this objective can be simplified to minimize the sum of the distances of all feeder installation positions from the PCB center position multiplied by the number of placements.

[0084] The final slot coordinates of the feeder can be expressed as:

[0085]

[0086] Among them, setPos i Indicates the X coordinate of the slot where the feeder number i is located, which is calculated by the machine parameters.

[0087] Objective function 1 can be expressed as:

[0088]

[0089] Where pcbX represents the average X coordinate of the mounting point on the substrate.

[0090] Since the formula has an absolute value term, it needs to be linearized and an intermediate variable introduced. target 1 i Linearize the above equation:

[0091]

[0092] in, , setPos i Indicates the X coordinate of the slot where the feeder number i is located, count i Indicates the number of components that the feeder numbered i needs to mount.

[0093] Step 9. Add objective function 2 to maximize the number of components with the same suction. This goal can be indirectly achieved by minimizing the distance between components with the same suction. It is known that components with the same label can theoretically be assigned to the same group, that is, they can be sucked together. In the data preprocessing stage, the feeders are additionally grouped according to the label, and the number of components in the group is sorted in descending order. The objective function can be further simplified to minimize the sum of the distance between the feeders in all label groups multiplied by the number of placements:

[0094]

[0095] Since there is an absolute value term in the formula, by introducing the intermediate variable target2 iLinearize the above equation:

[0096]

[0097] Where, li represents the feeder with serial number i in the lth label group, F l Indicates that the lth tag group contains F l A feeder, POS l1 Indicates the X coordinate of the installation position of the first feeder in the lth label group, POS li Indicates the X coordinate of the installation position of the i-th feeder in the l-th label group.

[0098] Step 10: Calculate the model and process the calculation results. So far, the constraint addition, objective function design and solution of the model have been completed. The model can accurately control the slots that can be allocated to each feeder, thereby realizing various feeder allocation modes. In addition, the objective function takes into account minimizing the placement moving distance and maximizing the number of components with the same suction, so that the model calculation result is a high-quality solution to the feeder arrangement optimization problem.

[0099] The second computing unit designs a mixed integer programming model for solving the problem. All constraints and objective functions in the feeder arrangement optimization problem are quantified through mathematical expressions, linearized using mathematical means, and finally modeled into code and embedded into the algorithm, and the solver is called to obtain the optimal solution to the problem.

[0100] The first calculation unit ensures the efficiency of the layout optimization considering complex constraints. When the situation is too complex and the first calculation unit cannot quickly process a large number of constraints within a limited time, the second calculation unit is referenced to ensure the effectiveness of the layout optimization. The first calculation unit combined with the second calculation unit can effectively solve the optimization layout under the superposition of multiple constraints, including solving the allocation interference problem caused by large-sized feeders occupying multiple slots, the feeder allocation problem of multiple feeder racks, the feeder arrangement inheritance problem during the sequential optimization of multiple substrates, and the allocation interference problem caused by the fixed position of the feeder after manual teaching; and including solving the feeder arrangement optimization problem after the above multiple constraints are mixed; in addition, the design of the hybrid algorithm of the first calculation unit combined with the second calculation unit balances the efficiency and effectiveness of the algorithm.

[0101] Based on the same inventive concept, a second aspect of an embodiment of the present invention provides a feeder arrangement optimization system considering complex constraints, comprising:

[0102] A feeder allocation unit generation module is used to traverse each column of the component attribute matrix and generate a corresponding feeder allocation unit for each component, wherein each row of the component attribute matrix represents a component attribute and each column represents a component to be allocated;

[0103] The feeder allocation unit sorting module is used to sort all feeder allocation units in descending order according to the corresponding placement quantity;

[0104] A recursive allocation calculation module, used for performing recursive allocation calculation of the feeder allocation units according to the order of the feeder allocation units, so as to update a global dynamic allocation result matrix for indicating the insertion status of all slots on the current feeder rack;

[0105] A feasible allocation domain calculation module is used for the feeder allocation unit to calculate all feasible allocation domains of the current feeder according to the key data of the feeder allocation and the updated global dynamic allocation result matrix;

[0106] An allocation priority module is used to sort the compensation coordinate data of each feasible slot in the feasible allocation domain and calculate the allocation priority of each feasible slot;

[0107] The recursive allocation module is used to select the feasible slot with the highest priority for allocation, allocate the current feeder allocation unit to the slot, and then perform the next recursive allocation to continue to allocate the next feeder in the current state.

[0108] Furthermore, the system further comprises:

[0109] The mixed integer programming model calculation module is used to determine whether the dynamic allocation is successful based on the allocation results. If the allocation fails, all constraints in the feeder arrangement optimization problem are quantified, with the goal of minimizing the placement movement distance and maximizing the number of components with the same suction. The calculation is based on the mixed integer programming model, and the target value is obtained within the preset model solution time to complete the allocation.

[0110] Based on the same inventive concept, a third aspect of an embodiment of the present invention provides a machine-readable storage medium, on which instructions are stored, and the instructions are used to enable a machine to execute the feeder arrangement optimization method considering complex constraints mentioned in the present application.

[0111] Based on the same inventive concept, a fourth aspect of an embodiment of the present invention provides a processor, characterized in that it is used to run a program, wherein the program is used to execute: the steps of the feeder arrangement optimization method considering complex constraints as described above when the program is run.

[0112] It should also be noted that the terms "comprises," "includes," or any other variations thereof are intended to cover non-exclusive inclusion, such that a process, method, commodity, or apparatus that includes a series of elements includes not only those elements, but also other elements not explicitly listed, or also includes elements inherent to such process, method, commodity, or apparatus.

[0113] The above are only embodiments of the present application and are not intended to limit the present application. For those skilled in the art, the present application may have various changes and variations. Any modification, equivalent replacement, improvement, etc. made within the spirit and principle of the present application should be included within the scope of the claims of the present application.

Claims

1. A feeder arrangement optimization method considering complex constraints, characterized in that: The following steps are involved: Traversing each column of the component attribute matrix, generating a corresponding feeder allocation unit for each component, wherein each row of the component attribute matrix represents a component attribute, and each column represents a component to be allocated; Sort all feeder allocation units in descending order according to the corresponding placement quantity; Performing recursive allocation calculation of the feeder allocation units according to the order of the feeder allocation units to update a global dynamic allocation result matrix for indicating the placement status of all slots on the current feeder rack; The feeder allocation unit calculates all feasible allocation domains of the current feeder according to the key data of the feeder allocation and the updated global dynamic allocation result matrix; Sort the compensation coordinate data of each feasible slot in the feasible allocation domain and calculate the allocation priority of each feasible slot; The feasible slot with the highest priority is selected for allocation, and the current feeder allocation unit is allocated to the slot, and then the next recursive allocation is performed to continue to allocate the next feeder in the current state; the feeder allocation unit calculates all the feasible allocation domains of the current feeder based on the key data of the feeder allocation and the updated global dynamic allocation result matrix, and calculates all the station constraints. The constraints and corresponding allocation results include: if the feeder has been taught, then its allocation feasible domain only includes its teaching station; if the current allocation mode is that the feeder is movable in the frame, then its allocation is The row domain includes the feasible slots in the feeder rack where it is located; if the current allocation mode is movable within the workbench, then its allocation feasible domain includes the feasible slots in the workbench where it is located; if the current allocation mode is movable within the machine, then its allocation feasible domain includes the feasible slots in the machine where it is located; the feeder allocation unit is a data structure, which stores the key data of feeder allocation, the key data includes feeder rack boundary data and feeder allocation mode, the feeder rack boundary data includes the necessary data of all independent feeder racks, the necessary data includes the station number range and the position of the feeder rack.

2. The method according to claim 1, characterized in that Before traversing the component attribute matrix, the method further includes data preprocessing to prepare data required for calculation, the data required for calculation includes the mounting component attribute matrix, the feeder rack position matrix and the feeder rack boundary data, The feeder rack position matrix contains the coordinate information of all feeder slots, with rows corresponding to X coordinates and Y coordinates, and each column corresponding to a feeder slot position, which is used for calculating the allocation feasible domain of the current feeder allocation unit, and then sorting the coordinate data after compensation according to the feeder rack position matrix; The feeder rack boundary data includes necessary data of all independent feeder racks, including the station number range and the position of the feeder rack; The component attributes include component number, mounting quantity, grouping label, number of slots occupied by feeder, default feeder position, whether it is a teaching coordinate, average mounting point X coordinate, average mounting point Y coordinate, a number of available nozzles, and a unique identifier; the columns of the component attribute matrix are arranged in descending order according to the number of component mountings.

3. The method according to claim 2, characterized in that After the data preprocessing, a conflict check is performed to preliminarily check whether there is a conflict between the data and the optimization mode, specifically including: the legitimacy of the data, whether the inherited feeder position conflicts with the optimized position, whether the manually set feeder rack enable state conflicts with the optimized position, and whether the taught coordinates conflict with the optimized position.

4. The method according to claim 1, characterized in that The calculation objects of the recursive allocation calculation are the array composed of all feeder allocation units and the index of the current feeder allocation unit, the starting index is 0, and the recursive allocation calculation first determines whether the current index reaches the end index, and if so, returns the allocation result, where the end index is the index of the last feeder allocation unit in the array.

5. The method according to claim 4, characterized in that The feasible slot with the highest priority is selected for allocation, and a copy of the global dynamic allocation result matrix is ​​created during the process, and the global dynamic allocation result matrix and the index are updated in real time according to the allocation result.

6. The method according to claim 5, characterized in that Execute the above-mentioned process of selecting the feasible slot with the highest priority for allocation, allocate the current feeder allocation unit to the slot, and then execute the next recursive allocation, and continue to allocate the next feeder in the current state. If allocation fails, the suboptimal feasible slot is replaced and the allocation is continued using the copy data, and the global dynamic allocation result matrix automatically backtracks the state; if all feasible slots fail to allocate, it is considered that there is no solution in the current state, and the feeder allocation unit at the previous level is returned to modify its allocation slot to the suboptimal feasible slot, and the iteration continues.

7. The method according to any one of claims 1 to 6, characterized in that: The method further includes determining whether the dynamic allocation is successful based on the allocation result, and further arranging the optimization results if the allocation is successful.

8. The method according to claim 7, characterized in that Whether the dynamic allocation is successful is determined based on the allocation results. If the allocation fails, all constraints in the feeder arrangement optimization problem are quantified, with the goal of minimizing the placement movement distance and maximizing the number of components with the same suction. The calculation is performed based on the mixed integer programming model, and the target value is obtained within the preset model solution time. The allocation is completed and the optimization results are further sorted out.

9. The method according to claim 8, characterized in that All constraints described include: All feeders will and can only be allocated once, all stations can only be allocated once at most, allocated stations cannot be allocated, illegal stations cannot be allocated, non-enabled feeder rack stations cannot be allocated, large-sized feeders interfering across slots cannot be allocated, additional stations occupied by large-sized feeders will not conflict with other feeders, or the allocatable range of each feeder is further constrained according to different allocation strategies. One or more of the following; the large-sized feeder is a feeder that occupies more than 1 slot.

10. The method according to claim 9, characterized in that All constraints in the quantitative feeder arrangement optimization problem are specifically: All the feeders will be allocated only once, expressed as: All the stations can be allocated at most once, expressed as: The allocated station cannot be allocated, the illegal station cannot be allocated, and the non-enabled feeder rack station cannot be allocated, all of which are represented by p ij = 0, which means that station j does not meet the constraints; The additional station occupied by the large-size feeder will not conflict with other feeders, which is expressed as: Among them, width i1 Indicates the number of slots occupied by the feeder numbered i1, p i1j Indicates whether the feeder numbered i1 is inserted into slot j, which is the zero-one decision variable defined initially, p i2j Indicates whether the feeder numbered i2 is inserted into slot j, u1 i1 represents a zero-one auxiliary variable introduced for linearization, u2 i1 represents another zero-one auxiliary variable introduced for linearization, and M represents a sufficiently large value for linear relaxation; The allocation range of each feeder is further constrained according to different allocation strategies, which is expressed as: p ij = 1, if the allocation is restricted to slot j only p ij = 0, if the restriction is not assigned to slot j.

11. The method according to claim 9, characterized in that The objective function of minimizing the placement moving distance is: Introduce intermediate variable target1 i After linearization, it is expressed as: in, setPos i Indicates the X coordinate of the slot where the feeder number i is located, pcbX indicates the average X coordinate of the mounting point on the substrate, count i Indicates the number of components that the feeder numbered i needs to mount; The function for maximizing the number of co-attracting elements is: Introduce the intermediate variable target2 li After linearization, it is expressed as: in, In the data preprocessing stage, the feeders are grouped according to the labels and sorted in descending order by the number of components in the group. li represents the feeder with sequence number i in the lth label group, F l Indicates that the lth label group contains F l Feeder, pos l1 Indicates the X coordinate of the installation position of the first feeder in the lth label group, pos li Indicates the X coordinate of the installation position of the i-th feeder in the l-th label group.

12. The method according to any one of claims 8 to 11, characterized in that: The further sorting out of the optimization results is specifically as follows: if the component to be allocated appears in the inherited feeder arrangement matrix, the inherited result is added to the current allocation result matrix; If there is a newly allocated feeder, the allocation result is added to the globally inherited feeder arrangement matrix; the current feeder arrangement allocation matrix and the globally inherited feeder arrangement allocation matrix are updated.

13. A feeder arrangement optimization system considering complex constraints, characterized in that: include: A feeder allocation unit generation module is used to traverse each column of the component attribute matrix and generate a corresponding feeder allocation unit for each component, wherein each row of the component attribute matrix represents a component attribute and each column represents a component to be allocated; The feeder allocation unit sorting module is used to sort all feeder allocation units in descending order according to the corresponding placement quantity; A recursive allocation calculation module, used for performing recursive allocation calculation of the feeder allocation units according to the order of the feeder allocation units, so as to update a global dynamic allocation result matrix for indicating the insertion status of all slots on the current feeder rack; A feasible allocation domain calculation module is used for the feeder allocation unit to calculate all feasible allocation domains of the current feeder according to the key data of the feeder allocation and the updated global dynamic allocation result matrix; An allocation priority module is used to sort the compensation coordinate data of each feasible slot in the feasible allocation domain and calculate the allocation priority of each feasible slot; The recursive allocation module is used to select the feasible slot with the highest priority for allocation, allocate the current feeder allocation unit to the slot, and then perform the next recursive allocation to continue to allocate the next feeder in the current state; the feeder allocation unit calculates all the feasible allocation domains of the current feeder based on the key data of the feeder allocation and the updated global dynamic allocation result matrix, and calculates all the station constraints. The constraints and corresponding allocation results include: if the feeder has been taught, then its allocation feasible domain only includes its teaching station; if the current allocation mode is movable within the feeder rack, then Its allocation feasible domain includes the feasible slots in the feeder rack where it is located; if the current allocation mode is movable within the workbench, then its allocation feasible domain includes the feasible slots in the workbench where it is located; if the current allocation mode is movable within the machine, then its allocation feasible domain includes the feasible slots in the machine where it is located; the feeder allocation unit is a data structure, which stores the key data of feeder allocation, the key data includes feeder rack boundary data and feeder allocation mode, the feeder rack boundary data includes the necessary data of all independent feeder racks, the necessary data includes the station number range and the position of the feeder rack.

14. The system according to claim 13, characterized in that Also includes: The mixed integer programming model calculation module is used to determine whether the dynamic allocation is successful based on the allocation results. If the allocation fails, all constraints in the feeder arrangement optimization problem are quantified, with the goal of minimizing the placement movement distance and maximizing the number of components with the same suction. The calculation is based on the mixed integer programming model, and the target value is obtained within the preset model solution time to complete the allocation.

15. The system according to claim 13, characterized in that The system further comprises: The data preprocessing module is used to prepare the data required for calculation, including the placement component attribute matrix, the feeder rack position matrix and the feeder rack boundary data. The feeder rack position matrix contains the coordinate information of all feeder slots, with rows corresponding to X coordinates and Y coordinates, and each column corresponding to a feeder slot position, which is used for calculating the allocation feasible domain of the current feeder allocation unit, and then sorting the coordinate data after compensation according to the feeder rack position matrix; The feeder rack boundary data includes necessary data of all independent feeder racks, including the station number range and the position of the feeder rack; The component attributes include component number, mounting quantity, grouping label, number of slots occupied by feeder, default feeder position, whether it is a teaching coordinate, average mounting point X coordinate, average mounting point Y coordinate, a number of available nozzles, and a unique identifier; the columns of the component attribute matrix are arranged in descending order according to the number of component mountings.

16. The system according to claim 15, characterized in that The system further comprises: The conflict check module is used after the data preprocessing module to perform conflict check to preliminarily check whether there is a conflict between the data and the optimization mode, specifically including: the legitimacy of the data, whether the inherited feeder position conflicts with the optimized position, whether the manually set feeder rack enable status conflicts with the optimized position, and whether the teaching coordinates conflict with the optimized position.

17. A machine-readable storage medium having instructions stored thereon, the instructions being used to enable a machine to execute the feeder arrangement optimization method considering complex constraints as described in any one of claims 1 to 12 of the present application.

18. A processor, characterized in that: Used to run a program, wherein the program, when run, is used to execute: the steps of the feeder arrangement optimization method considering complex constraints as described in any one of claims 1-12.