Patent Description:
The present disclosure is derived from research conducted under the Robot Industry Fusion Core Technology Development Project of the Ministry of Trade, Industry, and Energy of Korea [Project number: <NUM>, Project title: Development of technology for machine learning-based SMT optimization system].

Generally, a process of mounting electronic components on a printed circuit board is performed in such an order that a solder is applied to a pad of a printed circuit board through a solder printer (i.e., a screen printer), the state of the applied solder is inspected using a solder inspection device, and then electronic components are mounted on the printed circuit board with the solder applied.

The screen printer positions the printed circuit board on a table for fixing the printed circuit board (bare board) and arranges a stencil mask on the printed circuit board so that an opening of the stencil mask is located on the corresponding pad of the printed circuit board. Next, the screen printer moves a squeegee blade by controlling a pressure and moving speed of the squeegee blade based on a control parameter, and separates the stencil mask from the printed circuit board by controlling a separation speed between the stencil mask and the printed circuit board. <CIT> discloses a method for implementing hybrid, closed-loop control that generates control values for processes, wherein a first, coarse algorithm is used to rapidly produce the value of a stencil printer control value resulting in a solder paste deposit having a volume within predetermined acceptable limits, and after the coarse algorithm no longer produces solder paste deposits closer to a desired volume, a second, more refined estimator is used to fine tune the process. An additional transitional algorithm may be added between the coarse algorithm and refined estimator. <CIT> discloses a system for determining the optimal settings for parameter of a stencil printing machine, wherein the system generates a model mapping parameter inputs to output results, and the model is then used to determine the optimal settings of parameter inputs in order to produce the desired results.

The above technical problem is solved by the apparatus as defined in the appended claim <NUM> and corresponding method according to claim <NUM>. The preferred embodiments are defined in the corresponding dependent claims. In printing the solder paste using the screen printer, a larger or smaller amount of solder paste than a reference amount may be printed on pads of a printed circuit board or solder paste may be printed at an inappropriate position depending on control parameters. Further, a defect may occur in a solder printed on pads of the printed circuit board depending on the ambient conditions (e.g., temperature or humidity) of the screen printer or the type of the stencil mask.

Various exemplary embodiments of the present disclosure have been made in order to solve the above-mentioned problems and other problems and provide an apparatus, a recording medium, and a method for generating a control parameter to control a screen printer using a simulation model that simulates actual conditions of the screen printer.

In accordance with the invention an apparatus for generating a control parameter for a screen printer includes: a memory that stores a simulation model that is trained to derive predictive inspection information on printed states of a plurality of virtual solder pastes based on a plurality of control parameters of the screen printer; and at least two algorithms among an optimization algorithm, a search algorithm, and a machine learning-based reinforcement learning algorithm for generating a plurality of candidate control parameters for the screen printer; a communication circuit configured to receive first inspection information on printed states of a plurality of solder pastes, the plurality of solder pastes being printed by the screen printer based on a first control parameter; and a processor electrically connected to the memory and the communication circuit, wherein the processor is configured to: obtain first predictive inspection information on a printed state of a first virtual solder paste by applying the first control parameter to the simulation model; generate a plurality of first candidate control parameters based on the first predictive inspection information and a first algorithm of the at least two algorithms; generate a plurality of second candidate control parameters based on the first predictive inspection information and a second algorithm of the at least two algorithms, the second algorithm being different from the first algorithm; determine a plurality of second control parameters among the plurality of first candidate control parameters and the plurality of second candidate control parameters based on the first inspection information and the first predictive inspection information; and transmit the plurality of second control parameters to the screen printer via the communication circuit.

Each of the first control parameter and the plurality of second control parameters include s at least one of a pressure applied to a squeegee blade of the screen printer, a moving speed of the squeegee blade, and a separation speed between a stencil mask of the screen printer and a substrate.

The first inspection information includes at least one of a volume, an area, a height, a width, and a slope of each of the solder pastes.

The first predictive inspection information includes at least one of the volume, the area, the height, the width, and the slope of each of the first virtual solder pastes.

The processor is further configured to: calculate the difference between the first inspection information and the first predictive inspection information; compare the calculated difference with the predetermined threshold value; update the simulation model using the first inspection information and the first predictive inspection information if it is determined that the calculated difference is greater than the predetermined threshold value.

The simulation model includes a machine learning-based regression model.

The memory further stores an optimization algorithm and a search algorithm to generate the plurality of candidate control parameters for the screen printer, and the processor is further configured to: generate a plurality of first candidate control parameters by applying the first predictive inspection information to the optimization algorithm; and generate a plurality of second candidate control parameters by applying the first predictive inspection information to the search algorithm.

The processor is further configured to: calculate a difference between the first inspection information and the first predictive inspection information; and compare the calculated difference with a predetermined threshold value.

The processor is further configured to, if the calculated difference is greater than the predetermined threshold value: select a first number of first candidate control parameters from among the plurality of first candidate control parameters; select a second number of second candidate control parameters from the plurality of second candidate control parameters, wherein the second number is greater than the first number; and determine the plurality of second control parameters among the selected first candidate control parameters and the selected second candidate control parameters.

The processor is further configured to, if the calculated difference is less than or equal to the predetermined threshold value: select a first number of first candidate control parameters from the plurality of first candidate control parameters; select a second number of second candidate control parameters from the plurality of second candidate control parameters, wherein the second number is smaller than the first number; and determine the plurality of second control parameters among the selected first candidate control parameters and the selected second candidate control parameters.

The memory further stores an optimization algorithm and a machine learning-based reinforcement learning algorithm to generate the plurality of candidate control parameters for the screen printer, and the processor is further configured to: generate a plurality of first candidate control parameters by applying the first predictive inspection information to the optimization algorithm; and generate a plurality of second candidate control parameters by applying the first control parameter and the first predictive inspection information to the machine learning-based reinforcement learning algorithm.

The processor is further configured to: calculate a difference between the first inspection information and the first predictive inspection information; compare the calculated difference with a predetermined threshold value to generate a comparison result.

The processor is further configured to: select a first number of first candidate control parameters from among the plurality of first candidate control parameters. if it is determined that the calculated difference is greater than a predetermined threshold value; select a second number of second candidate control parameters from among the plurality of second candidate control parameters, where the second number is greater than the first number; and determine the plurality of second control parameters based on the selected first candidate control parameters and the selected second candidate control parameters.

The communication circuit is configured to receive second inspection information corresponding to each of the plurality of second control parameters, and the processor is further configured to obtain second predictive inspection information on a printed state of a second virtual solder paste by applying each of the plurality of second control parameters to the simulation model.

The processor is further configured to: calculate an average value of the differences between the second inspection information and the second predictive inspection information; select one of the plurality of second control parameters if the calculated average value corresponds to a predetermined value; and transmit the selected second control parameter to the screen printer through the communication circuit.

The accompanying drawings, which are incorporated in and constitute a part of the specification, illustrate embodiments of the present disclosure, and together with the general description given above and the detailed description of the embodiments given below, serve to explain the principles of the present disclosure.

Exemplary embodiments of the present disclosure are illustrated for the sake of describing the technical idea of the present disclosure. The scope of the present disclosure is not limited by exemplary embodiments presented below or the detailed description of these exemplary embodiments.

Unless defined otherwise, all technical and scientific terms used herein have the same meaning as those commonly understood by a person skilled in the art to which the present disclosure pertains. All terms used herein are selected to clearly describe the present disclosure and should not be interpreted to limit the scope of the present disclosure.

The expressions "including", "comprising", "having", and the like used herein should be construed as open-ended terms not intended to exclude the existence of other exemplary embodiments unless indicated otherwise in phrases or sentences including such expressions.

It is to be understood that the singular expression used herein may include the plural meaning unless the context clearly dictates otherwise; this is also applicable to singular expressions recited in the claims.

The expressions "first", "second", and the like used herein do not limit the importance or order of a plurality of components and are used to distinguish a component from one another.

The term "unit" used herein refers to a software element or a hardware element, such as a Field-Programmable Gate Array (FPGA) or an Application-Specific Integrated Circuit (ASIC). However, the "unit" is not limited to software or hardware. The "unit" may be configured either to be stored in an addressable storage medium or to execute one or more processors. Therefore, the "unit" includes, for example, software elements, object-oriented software elements, class elements or task elements, processes, functions, properties, procedures, sub-routines, segments of a program code, drivers, firmware, micro-codes, circuits, data, database, data structures, tables, arrays, and parameters. The elements and functions provided by the "unit" may be either combined into a smaller number of elements or "unit", or divided into additional elements or "unit".

The expression "based on" used herein is used to describe one or more factors that affect a decision, a judgment, or an operation described in a phrase or sentence including this expression and does not exclude the existence of an additional factor that affects the decision, the judgment, or the operation.

It should be understood that when an element is referred to as being "connected" or "coupled" to another element, the element may be directly connected or coupled to the other element or may be connected or coupled to the other element via any other intervening element.

Hereinafter, exemplary embodiments of the present disclosure will be described with reference to the accompanying drawings. In the accompanying drawings, like reference numerals refer to like elements. In describing the following exemplary embodiments, redundant descriptions of like elements may be omitted. However, even though a description of components is omitted, such components are not construed as not being included in a certain exemplary embodiment.

<FIG> is a block diagram schematically illustrating a configuration of an inspection system according to one exemplary embodiment of the present disclosure. Referring to <FIG>, an inspection system <NUM> includes a screen printer <NUM> and a control parameter generation device <NUM>.

When a substrate (bare substrate, hereinafter referred to as a "printed circuit board") is transferred from the outside, the screen printer <NUM> prints solder paste on a plurality of pads of the transferred printed circuit board. The screen printer <NUM> includes a squeegee blade and a stencil mask. The screen printer <NUM> prints the solder paste on the printed circuit board located below the stencil mask through a plurality of openings of the stencil mask by moving the squeegee blade.

In one exemplary embodiment, the screen printer <NUM> prints the solder paste on the plurality of pads of the printed circuit board according to control parameters. For example, the control parameters include at least one of a pressure applied to the squeegee blade, a moving speed of the squeegee blade, and a separation speed between the stencil mask and the printed circuit board. However, the control parameters are not necessarily limited thereto. The control parameters include various parameters related to printing of the solder paste.

The control parameter generation device <NUM> is connected to the screen printer <NUM> through a network (not shown) via wireless communication or wired communication. The wireless communication includes, for example, cellular communication (e.g., LTE, LTE Advanced (LTE-A), Code Division Multiple Access (CDMA), Wideband CDMA (WCDMA), Universal Mobile Telecommunications System (UMTS), and Wireless Broadband (WiBro)). The wireless communication also includes short-range wireless communication (e.g., Wireless Fidelity (Wi-Fi), Light Fidelity (Li-Fi), Bluetooth, Bluetooth Low Energy (BLE), ZigBee, and Near-Field Communication (NFC). Further, the screen printer <NUM> is connected with an inspection device <NUM> and a processor <NUM> via communication lines, thereby setting up a connection so that data communication is performed therebetween.

In one exemplary embodiment, the control parameter generation device <NUM> includes the inspection device <NUM>, a memory <NUM>, a communication circuit <NUM>, and the processor <NUM>. The inspection device <NUM> is illustrated as being included in the control parameter generation device <NUM> in <FIG> but is not necessarily limited thereto. For example, the inspection device <NUM> is configured separately from the control parameter generation device <NUM>. Further, the memory <NUM> and the processor <NUM> are illustrated as being configured separately from the inspection device <NUM> in <FIG> but are not necessarily limited thereto. In one exemplary embodiment, the memory <NUM> and the processor <NUM> are included in the inspection device <NUM>. In one exemplary embodiment, the memory <NUM> and the processor <NUM> may be present on a surface mount technology (SMT) line as an integrated server and may be located externally via a wired or wireless communication.

When the printed circuit board on which the solder paste is printed is transferred from the screen printer <NUM>, the inspection device (SPI, solder paste inspection) <NUM> inspects the printed state of the solder paste on the transferred printed circuit board. For example, the inspection device <NUM> irradiates light to the printed circuit board on which the solder paste is printed, and receives light reflected from the printed circuit board, thereby obtaining image data on the printed circuit board.

Further, the inspection device <NUM> compares the image data on the printed circuit board with reference data for determining whether the printed state of the solder paste is good or bad, thereby inspecting whether the solder paste printed on the printed circuit board is defective. For example, the inspection device <NUM> checks whether the solder paste printed on the printed circuit board is printed in a proper amount at a proper position, thereby inspecting whether the solder paste is defective, and generates inspection information indicating an inspection result.

In one exemplary embodiment, the inspection information includes at least one of a volume, an area, a height, a width, and a slope of the solder paste printed by the screen printer <NUM>.

The memory <NUM> stores a simulation model for deriving predictive inspection information about the printed state of the solder paste based on a plurality of control parameters of the screen printer <NUM>. The solder paste associated with the predictive inspection information is a virtual solder paste generated by the simulation model. In one exemplary embodiment, the simulation model includes a machine learning-based regression model that is trained to derive the predictive inspection information indicating a predicted printed state of the solder paste based on the plurality of control parameters of the screen printer <NUM>. For example, the machine learning-based regression model is a machine learning-based model that simulates the actual conditions of the screen printer <NUM> and is a model that adaptively changes depending on changes in the environment. For example, the machine learning-based regression model is trained based on the control parameters of the screen printer <NUM> and the inspection information by the inspection device <NUM>, and generates predictive information on the printed state of the solder paste as a result of learning. In addition, the machine learning-based regression model may be trained based on print parameter information in addition to the control parameters and the inspection information.

In one exemplary embodiment, the predictive inspection information includes at least one of a volume, an area, a height, a width, and a slope of the first virtual solder paste. However, it is provided merely for illustration, and the present disclosure is not limited thereto. Instead, various information related to the solder paste, which can be inspected by the inspection device <NUM>, may be used as the predictive inspection information.

In one exemplary embodiment, the print parameter information indicates a parameter for printing the solder paste by the screen printer <NUM> and includes at least one of an ambient temperature of the screen printer <NUM>, an ambient humidity of the screen printer <NUM>, a shape of each of the pads of the printed circuit board, an area ratio of each of the pads of the printed circuit board, and an aspect ratio of each of the pads of the printed circuit board. However, these are provided merely for illustration, and the present disclosure is not limited thereto. Instead, various parameters that affect the printing of the solder paste by the screen printer <NUM> may be used as the print parameter information.

The memory <NUM> further stores at least two algorithms among an optimization algorithm, a search algorithm, and a machine learning-based reinforcement learning algorithm for generating a plurality of candidate control parameters for the screen printer <NUM>. In one exemplary embodiment, the memory <NUM> stores the optimization algorithm and the search algorithm. In another exemplary embodiment, the memory <NUM> stores the optimization algorithm and the machine learning-based reinforcement learning algorithm. In still another exemplary embodiment, the memory <NUM> stores the search algorithm and the machine learning-based reinforcement learning algorithm. In yet another exemplary embodiment, the memory <NUM> stores the optimization algorithm, the search algorithm, and the machine learning-based reinforcement learning algorithm.

In one exemplary embodiment, the memory <NUM> is a magnetic disk (e.g., a magnetic tape, a flexible disk, and a hard disk), an optical disk (e.g., a CD and a DVD), and a semiconductor memory (e.g., an RAM, an ROM, a flash memory, and a USB or SD card including a flash memory). However, these are merely for illustration, and the present disclosure is not limited thereto.

The communication circuit <NUM> is connected to the screen printer <NUM> and the inspection device <NUM> via the network. In one exemplary embodiment, the communication circuit <NUM> receives inspection information from the inspection device <NUM>. In addition, the communication circuit <NUM> transmits a control parameter generated by the processor <NUM> to the screen printer <NUM>.

The processor <NUM> is electrically connected to the memory <NUM> and the communication circuit <NUM>. The processor <NUM> loads the simulation model stored in the memory <NUM> and applies a control parameter to the loaded simulation model, thereby obtaining predictive inspection information indicating a predicted printed state of the solder paste. The solder paste associated with the predictive inspection information is a virtual solder paste generated by the simulation model. Further, the processor <NUM> generates a plurality of candidate control parameters based on the predictive inspection information, and selects a plurality of control parameters from among the plurality of candidate control parameters based on the inspection information and the predictive inspection information. The plurality of control parameters is transmitted to the screen printer <NUM> via the communication circuit <NUM>.

In one exemplary embodiment, as illustrated in <FIG>, the processor <NUM> includes a simulation model unit <NUM>, an optimization algorithm unit <NUM>, a search algorithm unit <NUM>, a reinforcement learning algorithm unit <NUM>, and a parameter determination unit <NUM>.

The simulation model unit <NUM> loads the simulation model stored in the memory <NUM>, and applies a first control parameter to the simulation model, thereby generating predictive inspection information (hereinafter, referred to as "first predictive inspection information"). In one exemplary embodiment, the first control parameter includes at least one of the pressure applied to the squeegee blade of the screen printer <NUM>, the moving speed of the squeegee blade, and the separation speed between the stencil mask and the printed circuit board. Further, the simulation model unit <NUM> updates the simulation model stored in the memory <NUM> based on inspection information corresponding to the first control parameter (hereinafter, referred to as "first inspection information") and the first predictive inspection information.

<FIG> illustrates an example of first predictive inspection information according to one exemplary embodiment of the present disclosure. <FIG> shows the first predictive inspection information (e.g., the volume of the solder paste) generated when a first control parameter including the moving speed (print speed) of the squeegee blade and the pressure applied to the squeegee blade is applied to the machine learning-based regression model according to the present embodiment. This first predictive inspection information is used to generate control parameters for the screen printer <NUM> along with the inspection information by the inspection device <NUM>. A reward refers to a print quality index of the solder paste, and the quality index includes a volume, an average volume, a volume standard deviation, a process capability index (CPIK), a Z-score, cumulative distribution function of solder applied. <FIG> shows the volume of lead applied as the reward.

The optimization algorithm unit <NUM> loads the optimization algorithm stored in the memory <NUM>, and applies the first predictive inspection information generated by the simulation model unit <NUM> to the optimization algorithm, thereby generating a plurality of candidate control parameters (hereinafter, "first candidate control parameters"). In one exemplary embodiment, the optimization algorithm includes a mathematical optimization method, for example, a gradient descent method, a simulated annealing method or the like. The optimization algorithm generates a first candidate control parameter that is close to an optimal control parameter as the match rate between the machine learning-based regression model and an actual solder paste print process is higher.

The search algorithm unit <NUM> loads the search algorithm stored in the memory <NUM>, and applies the first predictive inspection information generated by the simulation model unit <NUM> to the search algorithm, thereby generating a plurality of candidate control parameters (hereinafter, "second candidate control parameters"). In one exemplary embodiment, the search algorithm is an algorithm for finding data that meets a certain condition or property from a given data set. For example, as shown in <FIG>, the search algorithm unit <NUM> applies first predictive inspection information <NUM> to the search algorithm, thereby selecting four pieces of predictive inspection information <NUM> based on the first predictive inspection information <NUM>, detecting predictive inspection information <NUM> positioned at the center of the four pieces of selected predictive inspection information <NUM>, and generating a control parameter corresponding to the detected predictive inspection information <NUM> as a second candidate control parameter corresponding to the first predictive inspection information <NUM>.

The reinforcement learning algorithm unit <NUM> loads the machine learning-based reinforcement learning algorithm stored in the memory <NUM>, and applies the first control parameter and the first predictive inspection information to the machine learning-based reinforcement learning algorithm, thereby generating a plurality of candidate controls parameters (hereinafter, referred to as "third candidate control parameters"). In one exemplary embodiment, the machine learning-based reinforcement learning algorithm is an algorithm of selecting and conducting one of the possible actions in a condition and receiving a reward resulting from the action, which can recommend a candidate control parameter corresponding to the first predictive inspection information by learning a tuning policy of the control parameter. For example, the machine learning-based reinforcement learning algorithm includes a Q-leaming algorithm, a Deep-Q-Network (DQN) algorithm or the like.

The parameter determination unit <NUM> generates a plurality of control parameters (hereinafter, referred to as "second control parameters") based on the plurality of first candidate control parameters, the plurality of second candidate control parameters, and the plurality of third candidate control parameters. In one exemplary embodiment, the parameter determination unit <NUM> generates the plurality of second control parameters among the plurality of first candidate control parameters, the plurality of second candidate control parameters, and the plurality of third candidate control parameters based on the first inspection information and the first predictive inspection information.

In another exemplary embodiment, as illustrated in <FIG>, the processor <NUM> includes the simulation model unit <NUM>, the optimization algorithm unit <NUM>, the search algorithm unit <NUM>, and the parameter determination unit <NUM>. In the present embodiment, the parameter determination unit <NUM> generates the plurality of second control parameters based on the plurality of first candidate control parameters generated by the optimization algorithm unit <NUM> and the plurality of second candidate control parameters generated by the search algorithm unit <NUM>.

In still another exemplary embodiment, as illustrated in <FIG>, the processor <NUM> includes the simulation model unit <NUM>, the optimization algorithm unit <NUM>, the reinforcement learning algorithm unit <NUM>, and the parameter determination unit <NUM>. In the present embodiment, the parameter determination unit <NUM> generates the plurality of second control parameters based on the plurality of first candidate control parameters generated by the optimization algorithm unit <NUM> and the plurality of third candidate control parameters generated by the reinforcement learning algorithm unit <NUM>.

In yet another exemplary embodiment, as illustrated in <FIG>, the processor <NUM> includes the simulation model unit <NUM>, the search algorithm unit <NUM>, the reinforcement learning algorithm unit <NUM>, and the parameter determination unit <NUM>. In the present embodiment, the parameter determination unit <NUM> generates the plurality of second control parameters based on the plurality of second candidate control parameters generated by the search algorithm unit <NUM> and the plurality of third candidate control parameters generated by the reinforcement learning algorithm unit <NUM>.

Although process steps, method steps, algorithms, or the like in the flowcharts illustrated in the present disclosure may be described in a sequential order, such processes, methods, and algorithms may generally be configured to work in any practical order. In other words, processes, methods, and algorithms described in various exemplary embodiments of the present disclosure may not necessarily be performed in the order described herein. Further, some steps may be performed simultaneously despite being described or implied as occurring non-simultaneously. Moreover, the illustration of a process by its depiction in a drawing does not imply that the illustrated process is exclusive of other variations and modifications thereto, does not imply that the illustrated process or any of its steps are necessary to one or more of various exemplary embodiments of the present disclosure, and does not imply that the illustrated process is preferred.

<FIG> is a flowchart illustrating a method of providing a plurality of control parameters according to one exemplary embodiment of the present disclosure.

In step S502, the processor <NUM> obtains first predictive inspection information based on a first control parameter. For example, the processor <NUM> applies the first control parameter to the simulation model, thereby obtaining the first predictive inspection information.

In step S504, the processor <NUM> receives first inspection information corresponding to the first control parameter. In one exemplary embodiment, the first inspection information includes at least one of the volume, area, height, width, and slope of the solder paste. For example, the processor <NUM> receives the first inspection information corresponding to the first control parameter from the inspection device <NUM> via the communication circuit <NUM>.

In step S506, the processor <NUM> generates a plurality of candidate control parameters based on the first predictive inspection information. In one exemplary embodiment, the processor <NUM> applies the first predictive inspection information to an optimization algorithm and a search algorithm, which are stored in the memory <NUM>, thereby generating the plurality of candidate control parameters. In another embodiment, the processor <NUM> applies the first predictive inspection information to the optimization algorithm and a machine learning-based reinforcement learning algorithm, which are stored in memory <NUM>, thereby generating the plurality of candidate control parameters. In still another embodiment, the processor <NUM> applies the first predictive inspection information to the search algorithm and the machine learning-based reinforcement learning algorithm, which are stored in memory <NUM>, thereby generating the plurality of candidate control parameters. In yet another embodiment, the processor <NUM> applies the first predictive inspection information to the optimization algorithm, the search algorithm, and the machine learning-based reinforcement learning algorithm, which are stored in memory <NUM>, thereby generating the plurality of candidate control parameters.

In step S508, the processor <NUM> generates a plurality of second control parameters from the plurality of candidate control parameters based on the first inspection information and the first predictive inspection information. For example, the processor <NUM> selects the plurality of second control parameters from among the plurality of candidate control parameters based on the first inspection information and the first predictive inspection information.

In step S510, the processor <NUM> transmits the plurality of second control parameters to the screen printer <NUM>. For example, the processor <NUM> transmits the plurality of second control parameters to the screen printer <NUM> via the communication circuit <NUM>.

<FIG> is a flowchart illustrating a method of generating first predictive inspection information according to one exemplary embodiment of the present disclosure.

In step S602, the processor <NUM> receives a first control parameter. In one exemplary embodiment, the first control parameter is received via a user input unit (not shown) of the inspection system <NUM>. In another embodiment, the first control parameter is received from the screen printer <NUM> via the communication circuit <NUM>.

In step S604, the processor <NUM> loads a simulation model. In one exemplary embodiment, the simulation model unit <NUM> of the processor <NUM> connects to the memory <NUM> upon receipt of the first control parameter, and loads the simulation model stored in the memory <NUM>.

In step S606, the processor <NUM> applies the first control parameter to the loaded simulation model. In one exemplary embodiment, the simulation model unit <NUM> of the processor <NUM> applies the first control parameter to the simulation model.

In step S608, the processor <NUM> generates first predictive inspection information about the printed state of solder paste corresponding to the first control parameter. The solder paste associated with the predictive inspection information is a virtual solder paste generated by the simulation model. In one exemplary embodiment, the first predictive inspection information is generated as an output from the simulation model. For example, the simulation model unit <NUM> of the processor <NUM> inputs the first control parameter to the simulation model, thereby generating the first predictive inspection information corresponding to the first control parameter, as shown in <FIG>.

<FIG> is a flowchart illustrating a method of generating first inspection information according to one exemplary embodiment of the present disclosure.

In step S702, the screen printer <NUM> receives a printed circuit board. In one exemplary embodiment, the printed circuit board on which solder paste is to be printed is transferred from the outside to the screen printer <NUM>.

In step S704, the screen printer <NUM> prints the solder paste on the transferred printed circuit board based on a first control parameter. In one exemplary embodiment, the screen printer <NUM> sets the first control parameter as a control parameter of the screen printer <NUM>, and prints the solder paste on each of a plurality of pads of the printed circuit board according to the set first control parameter.

In step S706, the inspection device <NUM> receives the printed circuit board on which the solder paste is printed. In one exemplary embodiment, the printed circuit board on which the screen printer <NUM> has completed printing the solder paste is transferred to the inspection device <NUM>.

In step S708, the inspection device <NUM> checks the printed state of the printed circuit board on which the solder paste is printed. In one exemplary embodiment, the inspection device <NUM> irradiates light to the printed circuit board on which the solder paste is printed, and receives light reflected from the printed circuit board, thereby obtaining image data corresponding to the printed circuit board. In addition, the inspection device <NUM> inspects the printed state (for example, at least one of the volume, area, height, width, and slope) of the solder paste with reference to the image data based on reference data for determining whether the printed state of the solder paste is good or bad.

In step S710, the inspection device <NUM> generates first inspection information corresponding to the first control parameter. In one exemplary embodiment, the inspection device <NUM> generates the first inspection information (for example, inspection information about at least one of the volume, area, height, width, and slope of the solder paste) obtained by inspecting the printed state of the solder paste printed on the printed circuit board by the screen printer <NUM> according to the first control parameter.

In step S712, the inspection device <NUM> transmits the first inspection information via the communication circuit <NUM>.

<FIG> is a flowchart illustrating a method of updating a simulation model and a reinforcement learning algorithm according to one exemplary embodiment of the present disclosure.

In step S802, the processor <NUM> receives first inspection information. In one exemplary embodiment, the parameter determination unit <NUM> of the processor <NUM> receives the first inspection information from the inspection device <NUM> via the communication circuit <NUM>.

In step S804, the processor <NUM> calculates a difference between the first inspection information and the first predictive inspection information. In one exemplary embodiment, the difference between the first inspection information and the first predictive inspection information is calculated by Equation <NUM> below.

In Equation <NUM>, E represents the difference, BR represents inspection information, R(BP) represents predictive information, n represents the number of control parameters (i.e., the number of printed circuit boards on which solder paste is printed by the screen printer <NUM>).

For example, the parameter determination unit <NUM> of the processor <NUM> applies the first inspection information to BR in Equation <NUM>, applies the first predictive inspection information to R(BP) in Equation <NUM>, and applies the number of first control parameters to n (e.g., n=<NUM>) in Equation <NUM>, thereby calculating the difference between the first inspection information and the first predictive inspection information.

In step S806, the processor <NUM> compares the difference between the first inspection information and the first predictive inspection information with a predetermined threshold value. In operation S808, the processor <NUM> determines whether the difference between the first inspection information and the first predictive inspection information is less than or equal to the predetermined threshold value. For example, the parameter determination unit <NUM> of the processor <NUM> compares the calculated difference with the predetermined threshold value, and determines whether the calculated difference is less than or equal to the predetermined threshold value.

If it is determined that the difference between the first inspection information and the first predictive inspection information exceeds the predetermined threshold value in step S808, the processor <NUM> updates a simulation model based on the first inspection information and the first predictive inspection information in step S810. For example, the parameter determination unit <NUM> of the processor <NUM> updates the first predictive inspection information corresponding to the first control parameter to the first inspection information for the simulation model stored in the memory <NUM>.

Meanwhile, if it is determined that the difference between the first inspection information and the first predictive inspection information is less than or equal to the predetermined threshold value in step S808, the processor <NUM> updates a machine learning-based reinforcement learning algorithm based on the simulation model in step S812. For example, the parameter determination unit <NUM> of the processor <NUM> applies a plurality of control parameters of the simulation model stored in the memory <NUM> and the predictive inspection information corresponding to the control parameters to the machine learning-based reinforcement learning algorithm stored in the memory <NUM>, thereby updating the machine learning-based reinforcement learning algorithm.

<FIG> is a flowchart illustrating a method of determining a plurality of second control parameters according to one exemplary embodiment of the present disclosure.

In step S902, the processor <NUM> generates a plurality of candidate control parameters (hereinafter, referred to as "first candidate control parameters") by applying first predictive inspection information to an optimization algorithm. In step S904, the processor <NUM> generates a plurality of candidate control parameters (hereinafter, referred to as "second candidate control parameters") by applying the first predictive inspection information to a search algorithm. In step S906, the processor <NUM> generates a plurality of candidate control parameters (hereinafter, referred to as "third candidate control parameters") by applying a first control parameter and the first predictive inspection information to a machine learning-based reinforcement learning algorithm.

For example, the optimization algorithm unit <NUM> of the processor <NUM> loads the optimization algorithm from the memory <NUM>, and applies the first predictive inspection information generated by the simulation model unit <NUM> to the optimization algorithm, thereby generating the plurality of first candidate control parameters. Further, the search algorithm unit <NUM> of the processor <NUM> loads the search algorithm from the memory <NUM>, and applies the first predictive inspection information generated by the simulation model unit <NUM> to the search algorithm, thereby generating the plurality of second candidate control parameters. In addition, the reinforcement learning algorithm unit <NUM> of the processor <NUM> loads the machine learning-based reinforcement learning algorithm from the memory <NUM>, and applies the first control parameter and the first predictive inspection information generated by the simulation model unit <NUM> to the machine learning-based reinforcement learning algorithm, thereby generating the plurality of third candidate control parameters.

In step S908, the processor <NUM> compares the difference between first inspection information and the first predictive inspection information with a predetermined threshold value, thereby determining whether the difference between the first inspection information and the first predictive inspection information is less than or equal to the predetermined threshold value.

If it is determined that the difference between the first inspection information and the first predictive inspection information exceeds the predetermined threshold value in step S908, the processor <NUM> selects a first number of first candidate control parameters from among the plurality of first candidate control parameters in operation S910. In step S912, the processor <NUM> selects a second number of second candidate control parameters from among the plurality of second candidate control parameters, where the second number is greater than the first number, in operation S912. In step S914, the processor <NUM> selects the second number of third candidate control parameters from among the plurality of third candidate control parameters in operation.

For example, the parameter determination unit <NUM> of the processor <NUM> arranges the plurality of first candidate control parameters as shown in <FIG>. In one exemplary embodiment, the parameter determination unit <NUM> obtains a process capability index (CPK) for each of the plurality of first candidate control parameters, calculates aZ-score of the obtained process capability index, and arranges the plurality of first candidate control parameters according to the calculated Z-score. The parameter determination unit <NUM> selects the first number (e.g., two) of first candidate control parameters (PO1 and PO2) from among the plurality of first candidate control parameters (PO1 to PO10) illustrated in <FIG>.

Further, the parameter determination unit <NUM> obtains the process capability index for each of the plurality of second candidate control parameters, calculates the Z-score of the obtained process capability index, and arranges the plurality of second candidate control parameters according to the calculated Z-score as shown in <FIG>. The parameter determination unit <NUM> selects the second number (e.g., four) of second candidate control parameters (PL1 to PL4) from among the plurality of second candidate control parameters (PL1 to PL10) illustrated in <FIG>, where the second number is greater than the first number.

In addition, the parameter determination unit <NUM> obtains the process capability index for each of the plurality of third candidate control parameters, calculates the Z-score of the obtained process capability index, and arranges the plurality of third candidate control parameters according to the calculated Z-score as shown in <FIG>. The parameter determination unit <NUM> selects the second number (for example, four) of third candidate control parameters (PR1 to PR4) from among the plurality of third candidate control parameters (PR1 to PR10) illustrated in <FIG>.

If it is determined that the difference between the first inspection information and the first predictive inspection information is less than or equal to the predetermined threshold value in step S908, the processor <NUM> selects a first number of first candidate control parameters from among the plurality of first candidate control parameters in step S916. Further, in step S918, the processor <NUM> selects a second number of second candidate control parameters from among the plurality of second candidate control parameters, where the second number is less than the first number. In addition, in step S920, the processor <NUM> selects a second number of third candidate control parameters from among the plurality of third candidate control parameters.

For example, the parameter determination unit <NUM> of the processor <NUM> obtains the process capability index for each of the plurality of first candidate control parameters, calculates the Z-score of the obtained process capability index, and arranges the plurality of first candidate control parameters according to the calculated Z-score as shown in <FIG>. The parameter determination unit <NUM> selects the first number (for example, eight) of first candidate control parameters (Poi to Pos) from among the plurality of first candidate control parameters (PO1 to PO10) shown in <FIG>.

Further, the parameter determination unit <NUM> obtains the process capability index for each of the plurality of second candidate control parameters, calculates the Z-score of the obtained process capability index, and arranges the plurality of second candidate control parameters according to the calculated Z-score as shown in <FIG>. The parameter determination unit <NUM> selects the second number (for example, one) of second candidate control parameter (PL1) from among the plurality of second candidate control parameters (PL1 to PL10) shown in <FIG>, where the second number is less than the first number.

In addition, the parameter determination unit <NUM> obtains the process capability index for each of the plurality of third candidate control parameters, calculates the Z-score of the obtained process capability index, and arranges the plurality of third candidate control parameters according to the calculated Z-score as shown in <FIG>. The parameter determination unit <NUM> selects the second number (for example, one) of third candidate control parameter (PR1) from among the plurality of third candidate control parameters (PR1 to PR10) shown in <FIG>.

In step S922, the processor <NUM> determines a plurality of second control parameters based on the selected first candidate control parameters, the selected second candidate control parameters, and the selected third candidate control parameters. In one exemplary embodiment, the parameter determination unit <NUM> of the processor <NUM> determines a plurality of second control parameters (P<NUM>, P<NUM>, PL1, PL2, PL3, PL4, PR1, PR2, PR3, and PR4) based on the selected first candidate control parameters (PO1 and PO2), the selected second candidate control parameters (PL1 to PL4), and the selected third candidate control parameters (PR1 to PR4). In another exemplary embodiment, the parameter determination unit <NUM> determines a plurality of second control parameters (PO1, PO2, PO3, PO4, PO5, PO6, PO7, PO8, PL1, PR1) based on the selected first candidate control parameters (PO1 to PO8), the selected second candidate control parameter (PL1), and the selected third candidate control parameter (PR1).

Although the aforementioned embodiment shows that a plurality of second control parameters is determined based on the plurality of first candidate control parameters, the plurality of second candidate control parameters, and the plurality of third candidate control parameters, the present disclosure may not be limited thereto.

In another exemplary embodiment, the processor <NUM> generates a plurality of first candidate control parameters by applying the first predictive inspection information to the optimization algorithm, and generates a plurality of second candidate control parameters by applying the first predictive inspection information to the search algorithm. If it is determined that the difference between first inspection information and the first predictive inspection information exceeds the predetermined threshold value, the processor <NUM> selects a first number of first candidate control parameters from among the plurality of first candidate control parameters, and selects a second number of second candidate control parameters from among the plurality of second candidate control parameters, where the second number is greater than the first number. If it is determined that the difference between the first inspection information and the first predictive inspection information is less than or equal to the predetermined threshold value, the processor <NUM> selects a first number of first candidate control parameters from among the plurality of first candidate control parameters, and selects a second number of second candidate control parameters from among the plurality of second candidate control parameters, where the second number is less than the first number. The processor <NUM> generates the plurality of second control parameters based on the selected first candidate control parameters and the selected second candidate control parameters.

In still another exemplary embodiment, the processor <NUM> generates a plurality of first candidate control parameters by applying the first predictive inspection information to the optimization algorithm, and generates a plurality of third candidate control parameters by applying the first control parameter and the first predictive inspection information to the machine learning-based reinforcement learning algorithm. If it is determined that the difference between first inspection information and the first predictive inspection information exceeds the predetermined threshold value, the processor <NUM> selects a first number of first candidate control parameters from among the plurality of first candidate control parameters, and selects a second number of third candidate control parameters from among the plurality of third candidate control parameters, where the second number is greater than the first number. If it is determined that the difference between the first inspection information and the first predictive inspection information is less than or equal to the predetermined threshold value, the processor <NUM> selects a first number of first candidate control parameters from among the plurality of first candidate control parameters, and selects a second number of third candidate control parameters from among the plurality of third candidate control parameters, where the second number is less than the first number. The processor <NUM> generates the plurality of second control parameters based on the selected first candidate control parameters and the selected third candidate control parameters.

In yet another exemplary embodiment, the processor <NUM> generates a plurality of second candidate control parameters by applying the first predictive inspection information to the search algorithm, and generates a plurality of third candidate control parameters by applying the first control parameter and the first predictive inspection information to the machine learning-based reinforcement learning algorithm. If it is determined that the difference between first inspection information and the first predictive inspection information exceeds the predetermined threshold value, the processor <NUM> selects a first number of second candidate control parameters from among the plurality of second candidate control parameters, and selects a second number of third candidate control parameters from among the plurality of third candidate control parameters, where the second number is greater than the first number. Meanwhile, if it is determined that the difference between the first inspection information and the first predictive inspection information is less than or equal to the predetermined threshold value, the processor <NUM> selects a first number of second candidate control parameters from among the plurality of second candidate control parameters, and selects a second number of third candidate control parameters from among the plurality of third candidate control parameters, where the second number is less than the first number. The processor <NUM> generates the plurality of second control parameters based on the selected second candidate control parameters and the selected third candidate control parameters.

<FIG> is a flowchart illustrating a method of selecting one control parameter from among a plurality of control parameters according to one exemplary embodiment of the present disclosure.

In step S <NUM>, the processor <NUM> generates second predictive inspection information corresponding to each of the plurality of second control parameters based on the simulation model. For example, the simulation model unit <NUM> of the processor <NUM> loads the simulation model from the memory <NUM>, and applies each of the plurality of second parameters to the simulation model, thereby generating the second predictive inspection information on printed states of a plurality of second virtual solder pastes.

In step S <NUM>, the processor <NUM> receives second inspection information corresponding to each of the plurality of second control parameters. In one exemplary embodiment, the parameter determination unit <NUM> of the processor <NUM> receives the second inspection information corresponding to each of the plurality of second parameters from the inspection device <NUM> via the communication circuit <NUM>. For example, the screen printer <NUM> prints solder paste on a printed circuit board based on each of the plurality of second control parameters. Further, the inspection device <NUM> inspects the solder paste on each of a plurality of printed circuit boards, thereby generating the second inspection information corresponding to each of the plurality of second control parameters. The inspection device <NUM> transmits the generated second inspection information to the communication circuit <NUM>. Therefore, the parameter determination unit <NUM> receives the second inspection information corresponding to each of the plurality of second control parameters via the communication circuit <NUM>.

In step S1106, the processor <NUM> calculates an average value of differences between the second inspection information and the second predictive inspection information. In one exemplary embodiment, the average value of the differences between the second inspection information and the second predictive inspection information is calculated using Equation <NUM>. For example, the parameter determination unit <NUM> of the processor <NUM> applies the second inspection information corresponding to each of the plurality of second control parameters to BR in Equation <NUM>, applies the second predictive inspection information corresponding to each of the plurality of second control parameters in R(BP) in Equation <NUM>, and applies the number of second control parameters to n in Equation <NUM>, thereby calculating the average value of the differences between the second inspection information and the second predictive inspection information.

In step S1108, the processor <NUM> determines whether the calculated average value of the differences corresponds to a predetermined value. In one exemplary embodiment, the parameter determination unit <NUM> of the processor <NUM> determines whether the calculated average value of the differences converges to the predetermined value. For example, the predetermined value is <NUM> but is not necessarily limited thereto.

If it is determined that the calculated average value of the differences corresponds to the predetermined value (i.e., converges to the predetermined value) in step S1108, the processor <NUM> selects one control parameter (hereinafter, referred to as an "optimal control parameter") from among the plurality of second control parameters in step S1110. For example, the parameter determination unit <NUM> of the processor <NUM> selects, as an optimal control parameter, a control parameter (PO1) having the highest Z-score from among the plurality of second control parameters (PO1, PO1, PO3, PO4, PO5, PO6, PO7, PO8, PL1, PR1).

In step S1112, the processor <NUM> transmits the selected optimal control parameter to the screen printer <NUM>. In one exemplary embodiment, the parameter determination unit <NUM> of the processor <NUM> transmits the optimal control parameters to the screen printer <NUM> via the communication circuit <NUM>. Therefore, the screen printer <NUM> prints the solder paste on the printed circuit board based on the optimal control parameter, thereby reducing the occurrence of defects on the printed circuit board.

Meanwhile, if it is determined that the calculated average value of the differences does not converge to the predetermined value in step S1 <NUM>, steps S908 to S922 in <FIG> are performed for each of the plurality of second control parameters.

While the foregoing methods have been described with reference to particular exemplary embodiments, it is also possible to implement the above methods as computer-readable codes on a computer-readable recording medium. The computer-readable recording medium includes any type of recording devices that store data which can be read by a computer system. Examples of the computer-readable recording medium include ROM, RAM, CD-ROM, a magnetic tape, a floppy disk, an optical data storage device, and the like. In addition, the computer-readable recording medium can be distributed over a network-connected computer system so that the computer-readable codes can be stored and executed in a distributed manner. Further, functional programs, codes, and code segments for implementing the above embodiments can be easily deduced by programmers of the art to which the present disclosure belongs.

Claim 1:
An apparatus for generating a control parameter of a screen printer, the apparatus comprising:
a memory (<NUM>) that stores:
a simulation model that is trained to derive predictive inspection information on printed states of a plurality of virtual solder pastes based on a plurality of control parameters of the screen printer; and
at least two algorithms among an optimization algorithm, a search algorithm, and a machine learning-based reinforcement learning algorithm for generating a plurality of candidate control parameters for the screen printer;
a communication circuit (<NUM>) configured to receive first inspection information on a plurality of solder pastes, the plurality of solder pastes being printed by the screen printer based on a first control parameter; and
a processor (<NUM>) electrically connected to the memory (<NUM>) and the communication circuit (<NUM>),
wherein the processor (<NUM>) is configured to:
obtain first predictive inspection information on a printed state of a first virtual solder paste by applying the first control parameter to the simulation model;
generate a plurality of first candidate control parameters based on the first predictive inspection information and a first algorithm of the at least two algorithms;
generate a plurality of second candidate control parameters based on the first predictive inspection information and a second algorithm of the at least two algorithms, the second algorithm being different from the first algorithm;
determine a plurality of second control parameters among the plurality of first candidate control parameters and the plurality of second candidate control parameters based on the first inspection information and the first predictive inspection information; and
transmit the plurality of second control parameters to the screen printer via the communication circuit (<NUM>).