Design support device, design support method, and program
The design support device optimizes common and individual movement amounts for junction points using mathematical methods, addressing inefficiencies in aligning joining points between parts, thus reducing mold iterations and costs.
Patent Information
- Application Number
- PCT/JP2025/011456
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2024-03-26
- Filing Date
- 2025-03-24
- Publication Date
- 2025-10-02
AI Technical Summary
Existing technologies are inadequate for efficiently aligning joining points between multiple parts in manufacturing, particularly when one object is designed to join with another, leading to inefficient design processes and high costs due to repeated mold creations.
A design support device that includes a design acquisition unit, error measurement unit, optimization unit, and result output unit to optimize common and individual movement amounts for junction points, minimizing errors and reducing the need for mold modifications through mathematical optimization methods.
The device efficiently aligns junction points, reducing the number of mold iterations and modifications, thereby enhancing design efficiency and lowering costs by accurately determining correction amounts for each junction point.
Smart Images

Figure JP2025011456_02102025_PF_FP_ABST
Abstract
Description
Design support device, design support method and program
[0001] The present disclosure relates to a design support device, a design support method, and a program.
[0002] There are products that are manufactured by joining multiple parts. When manufacturing this type of product, it is important to align the joining points between the parts.
[0003] For example, Patent Document 1 discloses a registration method for aligning two objects. The registration method disclosed in Patent Document 1 includes a determination step of determining a cost function that includes, as variables, matrices used to transform the coordinates of multiple points of a first object and the coordinates of multiple points of a second object, and the magnitude of the value indicates the degree of registration, a minimization step of repeatedly adjusting the variables to minimize the value calculated by the cost function, and a registration amount specification step of specifying the registration amount based on the variables adjusted in the minimization step.
[0004] Japanese Patent Application Laid-Open No. 2019-8007
[0005] However, the conventional technology is a technology for aligning two objects that are designed to be joinable, and does not assume that one of the two objects to be joined is designed to be joinable with the other object.
[0006] One aspect of the present disclosure is directed to efficiently designing objects that interface with other objects.
[0007] The present disclosure has the following configuration.
[0008] [1] A design support device comprising: a design acquisition unit configured to acquire design data of an object having a plurality of junction points with other objects; an error measurement unit configured to measure an error from a standard position for each of the junction points; an optimization unit configured to optimize, based on the error for each of the junction points, a common movement amount for moving all of the junction points while maintaining the relative positions of the junction points, and an individual movement amount for moving the junction points individually after moving them by the common movement amount; and a result output unit configured to output correction data indicating a correction amount for each of the junction points based on the common movement amount and the individual movement amount.
[0009] [2] The design support device according to [1] above, wherein the optimization unit is configured to optimize the common movement amount and the individual movement amount so as to minimize an objective function including an L0 norm or an L1 norm of the individual movement amount.
[0010] [3] The design support device according to [1] or [2] above, wherein the optimization unit is configured to further optimize a truth value indicating whether or not an error between the junction point after movement by the common movement amount and the standard position is acceptable.
[0011] [4] The design support device according to any one of [1] to [3] above, further comprising a reference point determination unit configured to determine one of the joint points as a reference point, and the optimization unit configured to determine the common movement amount based on the error of the reference point.
[0012] [5] The design support device according to the above [4], wherein the reference point determination unit is configured to determine the junction point for which the error is equal to or less than a predetermined value as the reference point.
[0013] [6] A design support method in which a computer executes the following steps: acquiring design data of an object having multiple junction points with other objects; measuring the error between each of the junction points and a standard position; optimizing, based on the error of each of the junction points, a common movement amount for moving all of the junction points while maintaining the relative positions of the junction points, and individual movement amounts for moving the junction points individually after moving them by the common movement amount; and outputting correction data indicating the amount of correction for each of the junction points based on the common movement amount and the individual movement amount.
[0014] [7] A program for causing a computer to execute the following steps: acquiring design data of an object having multiple junction points with other objects; measuring the error from a standard position for each of the junction points; optimizing, based on the error for each of the junction points, a common movement amount for moving all of the junction points while maintaining the relative positions of the junction points, and individual movement amounts for moving the junction points individually after moving them by the common movement amount; and outputting correction data indicating the amount of correction for each of the junction points based on the common movement amount and the individual movement amount.
[0015] According to one aspect of the present disclosure, an object that joins with another object can be efficiently designed.
[0016] FIG. 1 is a diagram showing an example of a product. FIG. 2 is a diagram showing an example of a plan view of a part. FIG. 3 is a diagram showing an example of a side view of a part. FIG. 4 is a block diagram showing an example of the overall configuration of a design support system. FIG. 5 is a block diagram showing an example of the hardware configuration of a computer. FIG. 6 is a block diagram showing an example of the functional configuration of a design support device. FIG. 7 is a diagram for explaining common movement amounts and individual movement amounts. FIG. 8 is a flowchart showing an example of a design support method. FIG. 9 is a diagram showing an example of an evaluation result regarding an objective function. FIG. 10 is a diagram showing an example of an evaluation result regarding whether or not an error is allowable.
[0017] Hereinafter, embodiments of the present disclosure will be described with reference to the accompanying drawings. In this specification and drawings, components having substantially the same functional configurations are designated by the same reference numerals, and redundant description will be omitted.
[0018] [Embodiment] One embodiment of the present disclosure is a design support system that supports the design of an object. In this embodiment, the object to be designed is an object to be joined with another object. For example, the object to be designed may be any of the components included in a product manufactured by combining multiple components. Hereinafter, the object to be designed is referred to as a "design object," and the other object to be joined with the design object is referred to as a "joining object."
[0019] Products manufactured by combining multiple parts must be designed so that the joints between the parts can be joined. For example, the parts may be modules manufactured by integrally molding metal parts and resin. The modules may also be, for example, power modules that integrate multiple power semiconductors.
[0020] FIG. 1 is a diagram showing an example of a product. As shown in FIG. 1, product P is manufactured by combining multiple parts P1 to P3. Product P is configured by joining multiple parts P1 to P3 in the vertical direction. For example, parts P1 and P2 are joined at the bottom surface of part P1 and the top surface of part P2. Here, part P1 is an example of an object to be joined, and part P2 is an example of an object to be designed. However, in this embodiment, the joining positions between parts are not limited. Also, in FIG. 1, product P is configured from three parts P1 to P3, but the number of parts that make up the product is not limited.
[0021] 2A and 2B are diagrams showing examples of plan views of parts, in which Fig. 2A is an example of a bottom view of part P1, and Fig. 2B is an example of a top view of part P2.
[0022] 2, part P1 has eight joints D1 to D8 formed thereon for joining to part P2. Part P2 has eight joints C1 to C8 formed thereon for joining to part P1. The positions of joints D1 to D8 on part P1 and the positions of joints C1 to C8 on part P2 are designed to match their relative positional relationship.
[0023] The joint may be a part for physically fixing the components together or a part for electrically connecting the components together. The joint may include, for example, a protrusion, a hole, a claw, a terminal, etc.
[0024] 3A and 3B are diagrams showing examples of side views of parts, in which Fig. 3A is an example of a side view of part P1, and Fig. 3B is an example of a side view of part P2.
[0025] As shown in Figure 3, the joints D5 to D8 of the component P1 and the joints C5 to C8 of the component P2 are formed in positions and shapes that allow them to fit together. Similarly, the joints D1 to D4 of the component P1 and the joints C1 to C4 of the component P2, which are not shown, are formed in positions and shapes that allow them to fit together. However, the joints do not necessarily have to fit together. For example, as long as the joints are electrically connected, they may be formed in positions where they come into contact with each other.
[0026] 2 and 3, the joining portions D1 to D8 of the part P1 are joined to the joining portions C1 to C8 of the part P2, respectively. The parts P1 and P2 can be joined if all of the joining portions are aligned, but they cannot be joined if even one of the joining portions is not aligned.
[0027] When designing a part that is the object of design, the designer of the object of design is provided with design data of the part that is the object of joining. The design data indicates the joint points between the parts. The joint points are coordinates that indicate the position of the joint. As an example, the joint points may be the center coordinates of the joint. The designer of the object of design must design the joint points of the object of design so that they match the joint points of the objects to be joined. Hereinafter, the joint points of the objects to be joined are referred to as "standard positions."
[0028] The junction point may be a three-dimensional coordinate defined by x, y, and z axes. In this case, the x-y plane is the junction surface between the design object and the junction object. The z-axis is an axis perpendicular to the junction surface. The junction point defined by three-dimensional coordinates includes an x-coordinate and a y-coordinate indicating the center of the region indicating the junction on the x-y plane, and a z-coordinate indicating the height or depth relative to the junction surface.
[0029] Module design involves a series of repeated steps, including creating design data, manufacturing molds, creating prototypes, measuring errors, and correcting the design data. A module designer first creates design data for the module so that the joining points conform to standard positions. The design data may be, for example, three-dimensional data that indicates the shape of the module or the positions of the components included in the module.
[0030] Next, the designer creates a mold based on the design data. Next, the designer creates a prototype of the module using the mold. The designer then measures the joints formed on the prototype and calculates the error from the standard position. If the error of any joint point is outside the allowable range, the design data used to create the mold is determined to be out of standard. If the design data is out of standard, the designer corrects the design data based on the error and creates the mold again based on the corrected design data. This series of steps is repeated until the errors from the standard position of all joint points are within the allowable range. For example, the series of steps may be repeated several times to more than ten times.
[0031] To make module design more efficient, it is necessary to reduce the number of iterations. In particular, since creating molds incurs significant costs, reducing the number of mold creations leads to more efficient design. Also, since mold modifications can sometimes be carried out partially, the fewer joints that need to be modified, the more efficient the design.
[0032] The present embodiment aims to efficiently design a design object. To this end, the present embodiment uses a mathematical optimization method to optimize the amount of modification for each junction point of the design object. At this time, the present embodiment performs optimization so as to reduce the number of junction points that require modification. According to the present embodiment, the amount of modification for each junction point can be accurately determined using the mathematical optimization method, thereby reducing the number of modifications to the design data. Furthermore, according to the present embodiment, the number of junction points that require modification is reduced, allowing the mold to be modified efficiently. As a result, the present embodiment allows the design object to be designed efficiently.
[0033] <Overall Configuration> The overall configuration of the design support system in this embodiment will be described with reference to Fig. 4. Fig. 4 is a block diagram showing an example of the overall configuration of the design support system.
[0034] 4, the design support system 1000 includes a design support device 10 and a terminal device 20. The design support device 10 and the terminal device 20 are connected to each other so as to be able to communicate data with each other via a communication network N such as a local area network (LAN) or the Internet.
[0035] The design support device 10 is an example of an information processing device such as a personal computer, workstation, or server that generates correction data for correcting design data of a design object. The correction data is electronic data indicating the amount of correction for each junction point of the design object. The design support device 10 receives the design data of the design object from the terminal device 20 and calculates the amount of correction for each junction point of the design object. The design support device 10 transmits the correction data indicating the amount of correction for each junction point to the terminal device 20.
[0036] The terminal device 20 is an example of an information processing terminal such as a personal computer, a smartphone, or a tablet terminal operated by a user of the design support system 1000. The terminal device 20 transmits design data specified by the user to the design support device 10. The terminal device 20 receives correction data from the design support device 10 and presents it to the user.
[0037] The overall configuration of the design support system 1000 shown in FIG. 4 is an example, and various system configuration examples are possible depending on the application and purpose. For example, the design support system 1000 may include multiple design support devices 10 and one or more terminal devices 20. For example, the design support device 10 may be realized by multiple computers, or may be realized as a cloud computing service. For example, the design support device 10 may be realized by a standalone computer. The device division such as the design support device 10 and the terminal device 20 shown in FIG. 4 is an example.
[0038] <Hardware Configuration> The hardware configuration of the design support system 1000 in this embodiment will be described with reference to Fig. 5. The design support device 10 and the terminal device 20 included in the design support system 1000 are realized by, for example, a computer. Fig. 5 is a block diagram showing an example of the hardware configuration of a computer.
[0039] 5, the computer 500 includes a CPU (Central Processing Unit) 501, a ROM (Read Only Memory) 502, a RAM (Random Access Memory) 503, a HDD (Hard Disk Drive) 504, an input device 505, a display device 506, a communication I / F (Interface) 507, and an external I / F 508. The CPU 501, the ROM 502, and the RAM 503 form a so-called computer. The hardware components of the computer 500 are connected to each other via a bus line 509. The input device 505 and the display device 506 may be connected to the computer 500 via the external I / F 508 for use.
[0040] The CPU 501 is a computing device that reads programs and data from a storage device such as the ROM 502 or the HDD 504 onto the RAM 503 and executes processing to realize overall control and functions of the computer 500 .
[0041] The ROM 502 is an example of a non-volatile semiconductor memory (storage device) that can retain programs and data even when the power is turned off. The ROM 502 functions as a main storage device that stores various programs, data, etc. required for the CPU 501 to execute various programs installed in the HDD 504. Specifically, the ROM 502 stores boot programs such as a Basic Input / Output System (BIOS) and an Extensible Firmware Interface (EFI) that are executed when the computer 500 starts up, as well as data such as OS (Operating System) settings and network settings.
[0042] The RAM 503 is an example of a volatile semiconductor memory (storage device) in which programs and data are erased when the power is turned off. The RAM 503 is, for example, a dynamic random access memory (DRAM) or a static random access memory (SRAM). The RAM 503 provides a working area in which various programs installed in the HDD 504 are expanded when executed by the CPU 501.
[0043] The HDD 504 is an example of a non-volatile storage device that stores programs and data. The programs and data stored in the HDD 504 include an OS, which is basic software that controls the entire computer 500, and applications that provide various functions on the OS. Note that the computer 500 may use a storage device that uses flash memory as a storage medium (e.g., an SSD (Solid State Drive)) instead of the HDD 504.
[0044] The input device 505 includes a touch panel, operation keys and buttons, a keyboard and mouse, a microphone for inputting sound data such as voice, and the like, which are used by the user to input various signals.
[0045] The display device 506 is composed of a display such as a liquid crystal display or organic electroluminescence (EL) display for displaying a screen, a speaker for outputting sound data such as voice, and the like.
[0046] The communication I / F 507 is an interface that connects to a communication network and enables the computer 500 to perform data communication.
[0047] The external I / F 508 is an interface with external devices, such as a drive device 510.
[0048] The drive device 510 is a device for loading a recording medium 511. The recording medium 511 here includes media that record information optically, electrically, or magnetically, such as CD-ROMs, flexible disks, and magneto-optical disks. The recording medium 511 may also include semiconductor memories that record information electrically, such as ROMs and flash memories. This allows the computer 500 to read from and / or write to the recording medium 511 via the external I / F 508.
[0049] The various programs to be installed in the HDD 504 are installed, for example, by setting the distributed recording medium 511 in a drive device 510 connected to the external I / F 508 and reading the various programs recorded on the recording medium 511 by the drive device 510. Alternatively, the various programs to be installed in the HDD 504 may be installed by being downloaded from the communication network N or another network different from the communication network N via the communication I / F 507.
[0050] <Functional Configuration> The functional configuration of the design support device 10 in this embodiment will be described with reference to Fig. 6. Fig. 6 is a block diagram showing an example of the functional configuration of the design support device.
[0051] As shown in FIG. 6, the design support device 10 includes a standard storage unit 101 , a design acquisition unit 110 , a reference point determination unit 120 , an error measurement unit 130 , an optimization unit 140 , and a result output unit 150 .
[0052] The standard storage unit 101 is realized by the RAM 503 or the HDD 504 shown in FIG.
[0053] The design acquisition unit 110, the reference point determination unit 120, the error measurement unit 130, the optimization unit 140, and the result output unit 150 are realized by processing that is executed by the CPU 501 using a program that is loaded onto the RAM 503 from the HDD 504 shown in FIG. 5.
[0054] The standard storage unit 101 stores standard data indicating standard positions. The standard data is electronic data indicating standard positions corresponding to each of the joining points of the design objects. The standard data may be three-dimensional data indicating the shape of the joining objects and the coordinates of the joining points. The standard data may be, for example, design data of the joining objects. The design data of the joining objects may be provided, for example, by a manufacturer of the joining objects, and stored in the standard storage unit 101.
[0055] The design acquisition unit 110 acquires design data of the design object. The design acquisition unit 110 may receive the design data of the design object from the terminal device 20. The design acquisition unit 110 may accept input of the design data of the design object via the input device 505 of the design support device 10.
[0056] The reference point determination unit 120 determines a reference point based on the design data acquired by the design acquisition unit 110. The reference point is any one point on the object to be designed. For example, the reference point determination unit 120 may determine a predetermined point as the reference point. The predetermined point may be any one of the joining points. As an example, the joining point to be used as the reference point may be predetermined by a specification by a manufacturer of the object to be joined or by an agreement with the manufacturer of the object to be joined. The predetermined reference point may be indicated in the design data of the object to be designed.
[0057] For example, the reference point determination unit 120 may determine as the reference point a junction point whose error from the standard position is equal to or less than a predetermined value. The predetermined value may be zero or a minimum value near zero. In other words, the reference point determination unit 120 may determine as the reference point a junction point whose error from the standard position is small and which does not require correction. Note that the error for determining the reference point may be measured by using an arbitrary point as a temporary reference point, or may be measured in the past while repeatedly correcting the design data.
[0058] The error measuring unit 130 measures the error between each of the junction points indicated in the design data acquired by the design acquisition unit 110 and the standard position read out from the standard storage unit 101. The error may be measured by calculating the difference between the coordinates of the junction point of the design object and the coordinates of the standard position, with the reference point determined by the reference point determination unit 120 set as the origin (i.e., x = 0, y = 0, z = 0). The error may be a three-dimensional vector indicating the direction and linear distance from the three-dimensional coordinates of the junction point to the three-dimensional coordinates of the standard position.
[0059] The optimization unit 140 optimizes the common movement amount and the individual movement amount based on the error measured by the error measurement unit 130. The common movement amount is a movement amount by which all of the junction points are moved while maintaining the relative positions of the junction points. The individual movement amount is a movement amount by which the junction points are moved individually after being moved by the common movement amount. The common movement amount and the individual movement amount may be three-dimensional vectors.
[0060] The optimization unit 140 may optimize the common movement amount and the individual movement amount so that each junction point is aligned with a standard position. That is, the optimization unit 140 may optimize the common movement amount and the individual movement amount for each junction point so that the sum of the common movement amount and the individual movement amount is equal to the error.
[0061] Fig. 7 is a diagram for explaining the common movement amount and the individual movement amount. As an example, Fig. 7 shows three junction points C1 to C3 and three standard positions D1 to D3. V1 to V3 are the errors between the junction points C1 to C3 and the standard positions D1 to D3, respectively.
[0062] Here, junction point C1 is the reference point. In order to align junction point C1, which is the reference point, with standard position D1, junction points C1 to C3 are moved by the inverse vector α of error V1 while maintaining the relative positions of junction points C2 and C3. Because reference point C1 is the origin (0,0,0), when reference point C1 moves, the other junction points C2 and C3 move in the opposite direction relative to each other. The inverse vector α of error V1 of reference point C1 is the common movement amount. Reference point C1 cancels out error V1 with the inverse vector α of error V1, maintaining the origin (0,0,0).
[0063] To align the junction C2 with the standard position D2 after moving it by the common movement amount α, it is necessary to move it by an additional vector β2, which is the difference between the error V2 and the common movement amount α. Similarly, to align the junction C3 with the standard position D3 after moving it by the common movement amount α, it is necessary to move it by a vector β3, which is the difference between the error V3 and the common movement amount α. Vector β2 is the individual movement amount of the junction C2, and vector β3 is the individual movement amount of the junction C3. Therefore, the error V2 of the junction C2 is expressed as the sum of the common movement amount α and the individual movement amount β2. Similarly, the error V3 of the junction C3 is expressed as the sum of the common movement amount α and the individual movement amount β3.
[0064] The optimization unit 140 optimizes the common movement amount and the individual movement amount so as to minimize a predetermined objective function. The objective function may include the L0 norm or L1 norm of the individual movement amount. Minimizing the objective function including the L0 norm or L1 norm of the individual movement amount has the effect of increasing the number of junction points where the individual movement amount is zero. In other words, using an objective function including the L0 norm or L1 norm of the individual movement amount can reduce the number of junction points that need to be modified.
[0065] The optimization unit 140 may further optimize the error tolerance flag for each junction point. The error tolerance flag is a truth value indicating whether an error from a standard position after moving the junction point by a common movement amount is allowed. A junction point that allows an error does not calculate an individual movement amount if the error from the standard position after moving the junction point by the common movement amount is equal to or less than a predetermined value, even if it is not zero. On the other hand, a junction point that does not allow an error calculates an individual movement amount if the error from the standard position after moving the junction point by the common movement amount is not zero. Optimizing the truth value indicating whether an error is allowed for each junction point has the effect of increasing the number of junction points for which the individual movement amount is zero.
[0066] The optimization unit 140 may not optimize some axes of the joint. For example, if the joint is formed by inserting a protrusion into a through-hole, there is no need to optimize the length of the protrusion. In this case, the z-coordinate of the joint, which defines the penetration direction, may not be optimized.
[0067] <<Formulation>> A description will be given of the formulation of the optimization calculation performed by the optimization unit 140. Here, an example will be described in which one of the junction points is determined as the reference point and the L1 norm is used as the objective function.
[0068] The variables for mathematical optimization are shown in equations (1) to (3).
[0069]
[0070] where i is an integer between 1 and n, n is the number of junction points excluding the reference point, (s, t, u) is the common movement amount, and (x i , y i , z i ) is the individual movement amount of the i-th junction point, and (α i , β i , γ i ) is the error tolerance flag of the i-th junction point. i , β i , γ i A value of 0 indicates that an error is tolerated, and a value of 1 indicates that no error is tolerated.
[0071] The constants of the mathematical optimization are shown in equation (4).
[0072]
[0073] However, (a i , b i , c i ) is the error of the i-th junction point.
[0074] The objective function of the mathematical optimization is shown in equation (5).
[0075]
[0076] Here, I is the set of junction points excluding the reference point.
[0077] The constraints for mathematical optimization are shown in equations (6) to (13).
[0078]
[0079] where M is a predetermined constant, J is a set of n junction points that optimize the x coordinate, K is a set of n junction points that optimize the y coordinate, L is a set of n junction points that optimize the z coordinate, and ε is an error tolerance. M is a constant used in a mathematical optimization method called the Big-M method, and x i , y i , z i ε is an integer approximately ten times larger than the value of ε. ε may be determined arbitrarily depending on the size of the object to be designed, the characteristics of the joint, etc. ε may be approximately 0.05 mm, for example.
[0080] The error tolerance flag will be explained in more detail below. i When is 1 (i.e., no error is allowed), the formulas (6) and (9) become the formulas (14) and (15). j +s is the error a j Since it is equal to the common movement amount s and the error a j Unless it is equal, the individual movement amount x j will be non-zero.
[0081]
[0082] On the other hand, the error tolerance flag α i When is 0 (i.e., an error is allowed), the formulas (6) and (9) become the formulas (16) and (17). j +s is the error a j Since it is acceptable as long as it is within the range of ±ε, if the error after moving by the common movement amount is within the range of ±ε, the individual movement amount x j becomes zero.
[0083]
[0084] The result output unit 150 outputs correction data indicating the correction amount for each junction point based on the common movement amount and individual movement amount optimized by the optimization unit 140. Specifically, the result output unit 150 sets the correction amount for the reference point as the inverse vector of the common movement amount, sets the correction amounts for junction points other than the reference point as individual movement amounts, and generates correction data indicating the correction amount for each junction point.
[0085] The result output unit 150 transmits the generated correction data to the terminal device 20. The result output unit 150 may display the generated correction data on the display device 506 of the design support device 10.
[0086] <Processing Procedure> A design support method executed by the design support system 1000 in this embodiment will be described with reference to Fig. 8. Fig. 8 is a flowchart showing an example of the design support method.
[0087] In step S1, a user of the design support system 1000 inputs design data of a design object to the terminal device 20. The terminal device 20 transmits the input design data to the design support device 10.
[0088] The design acquisition unit 110 of the design support device 10 receives design data from the terminal device 20. The design acquisition unit 110 acquires the received design data. The design acquisition unit 110 sends the acquired design data to the reference point determination unit 120.
[0089] In step S2, the reference point determination unit 120 of the design support device 10 receives the design data from the design acquisition unit 110. The reference point determination unit 120 determines a reference point based on the received design data. The reference point determination unit 120 sends the determined reference point to the error measurement unit 130. Note that if the reference point is determined in advance, step S2 may be omitted.
[0090] In step S3, the error measuring unit 130 of the design supporting device 10 receives the reference point from the reference point determining unit 120. If the reference point is determined in advance, the error measuring unit 130 may obtain the reference point from the design data obtained in step S1.
[0091] The error measurement unit 130 acquires junction points from the design data acquired in step S1. The error measurement unit 130 reads standard positions from the standard storage unit 101. The error measurement unit 130 measures the error between each junction point and the standard position based on the reference point. The error measurement unit 130 sends the measured error to the optimization unit 140.
[0092] In step S4, the optimization unit 140 of the design support device 10 receives the errors of each junction point from the error measurement unit 130. The optimization unit 140 optimizes the common movement amount, the individual movement amount, and the error tolerance flag based on the errors of each junction point so as to minimize an objective function including the L0 norm or the L1 norm of the individual movement amount. The optimization unit 140 sends the optimization results of the common movement amount and the individual movement amount to the result output unit 150.
[0093] In step S5, the result output unit 150 of the design support device 10 receives the optimization results from the optimization unit 140. The result output unit 150 determines the amount of correction for each junction point based on the common movement amount and the individual movement amount included in the optimization result. The result output unit 150 generates correction data indicating the amount of correction for each junction point. The result output unit 150 transmits the correction data to the terminal device 20.
[0094] The terminal device 20 receives the correction data from the design support device 10. The terminal device 20 presents the amount of correction for each junction point to the user based on the correction data. The terminal device 20 may display the amount of correction for each junction point on the display device 506 of the terminal device 20.
[0095] The user of the terminal device 20 may modify the design data by referring to the modification amount of each junction point. Specifically, the user of the terminal device 20 modifies the junction point set as the reference point in the design data to a position moved by the inverse vector of the common movement amount, and modifies the junction points other than the reference point to positions moved by the individual movement amount. At this time, junction points with a modification amount of zero are not modified.
[0096] Thereafter, the user of the terminal device 20 may create or modify a mold based on the modified design data. The user may also create a prototype of the module using a new mold and determine whether the errors at the joining points formed on the prototype are within the allowable range. If the errors at the joining points are outside the allowable range, the user may input the modified design data into the terminal device 20 and obtain new modification data. If the errors at all joining points are within the allowable range, the user may manufacture the design object using a mold created based on the design data.
[0097] <Evaluation Results> The results of evaluating the optimization performance in this embodiment will be described with reference to Figs. 9 and 10. In the evaluation, as an example, design data of a power module was used, and 57 components were targeted for optimization. The optimization solver used was SCIP (SCIP Optimization Suite). The components targeted for optimization are the values of the axes targeted for optimization among the coordinates of the junction points.
[0098] 9 is a diagram showing an example of the evaluation results for the objective function. In the evaluation of the objective function, the L0 norm, the L1 norm, and the L2 norm were used as the objective function, and the optimization results were compared. Note that in the evaluation of the objective function, a constraint condition was set that did not allow an error.
[0099] As shown in FIG. 9 , when the L0 norm was used, the number of non-zero components of the individual movement amounts was 37 and the number of zero components was 20. The calculation time was 0.034 seconds. When the L1 norm was used, the number of non-zero components of the individual movement amounts was 37 and the number of zero components was 20. The calculation time was 0.008 seconds. When the L2 norm was used, the number of non-zero components of the individual movement amounts was 57 and the number of zero components was 0. The calculation time was 0.036 seconds. Evaluation of the objective function showed that using the L0 norm or the L1 norm can reduce the number of junction points that need to be modified.
[0100] When the L0 norm or L1 norm is used, the variables to be optimized include binary variables, resulting in a mixed integer linear optimization problem. Since the number of binary variables to be optimized is greater with the L0 norm, the calculation time is longer when the L0 norm is used than when the L1 norm is used. When the L2 norm is used, the problem becomes a mixed integer quadratic optimization problem. Although the number of binary variables in the L2 norm and the L1 norm are the same, the calculation time is slightly longer than with the L2 norm, which is a quadratic optimization problem, but the optimal solution can be obtained in approximately the same calculation time as with the L0 norm.
[0101] 10 is a diagram showing an example of the evaluation results regarding the allowance of errors. In the evaluation regarding the allowance of errors, the L1 norm was used as the objective function, and optimization results were compared between the case of constraint conditions that allow errors and the case of constraint conditions that do not allow errors.
[0102] As shown in Figure 10, when constraints that do not allow for errors were used, there were 37 non-zero components of the individual movement amounts and 20 zero components. The calculation time was 0.008 seconds. When constraints that allow for errors were used, there were 16 non-zero components of the individual movement amounts and 41 zero components. The calculation time was 0.061 seconds. The evaluation of whether or not to allow for errors showed that using constraints that allow for errors can reduce the number of joining points that require modification. As mentioned above, the fewer joining points that need to be modified, the more preferable it is because it allows for partial mold modification.
[0103] Note that when error-tolerant constraints are used, the optimization problem becomes a mixed integer linear optimization problem because the variables to be optimized include binary variables, and therefore the calculation time is longer when error-tolerant constraints are used.
[0104] Effect of the embodiment The design support device 10 in the present embodiment measures the error from a standard position for each of a plurality of junction points that join to other objects, and quickly optimizes a common movement amount by which the junction points are moved while maintaining their relative positions, and an individual movement amount by which the junction points are moved individually after being moved by the common movement amount, so that the junction points are aligned with the standard positions.
[0105] Conventionally, in the design of parts, a series of operations including the creation of design data, the creation of a mold using the design data, the measurement of errors in a prototype created with the mold, and the modification of the design data based on the errors must be repeated multiple times. By calculating the amount of modification for each joining point with high precision using a mathematical optimization method, the number of repetitions of the series of operations can be reduced. In one aspect, according to the present embodiment, design data can be efficiently modified in the manufacture of an object that will be joined to another object.
[0106] The design support device 10 may optimize the common movement amount and the individual movement amount so as to minimize an objective function including the L0 norm or L1 norm of the individual movement amount. By using the L0 norm or L1 norm as the objective function, a result was obtained in which the number of non-zero components in the optimization result increased. According to this embodiment, the number of junction points that require modification can be reduced. When a mold used to manufacture a part can be partially modified, the mold can be modified more efficiently as the number of junction points that need to be modified decreases. As a result, parts that are to be bonded to other parts can be designed efficiently.
[0107] The design support device 10 may further optimize a truth value indicating whether or not to allow an error between the junction point after movement by the common movement amount and the standard position. If an error after movement by the common movement amount is allowed, the number of non-zero components in the optimization result will be further increased. According to this embodiment, the number of junction points that need to be corrected can be further reduced.
[0108] The design support device 10 may set one of the junction points as a reference point and determine the common movement amount based on the error of the reference point. The design support device 10 may set a junction point whose error is equal to or smaller than a predetermined value as the reference point. According to this embodiment, since there is no need to modify the reference point, the number of junction points that require modification can be further reduced.
[0109] [Supplementary Note] Each function of the above-described embodiments can be realized by one or more processing circuits. Here, the term "processing circuit" in this specification includes a processor programmed to execute each function by software, such as a CPU (Central Processing Unit) or GPU (Graphics Processing Unit) implemented by an electronic circuit, as well as devices such as an ASIC (Application Specific Integrated Circuit), DSP (Digital Signal Processor), FPGA (Field Programmable Gate Array), and conventional circuit modules designed to execute each of the above-described functions.
[0110] Although the embodiments of the present disclosure have been described in detail above, the embodiments disclosed herein are illustrative in all respects and are not limiting. The embodiments can be modified and improved in various ways without departing from the scope and spirit of the appended claims. The matters described in the above embodiments can be configured in other ways as long as they are not inconsistent, and can be combined as long as they are not inconsistent.
[0111] This application claims priority from Japanese Patent Application No. 2024-49767, filed with the Japan Patent Office on March 26, 2024, the entire contents of which are incorporated herein by reference.
[0112] 10: Design support device 20: Terminal device 101: Standards storage unit 110: Design acquisition unit 120: Reference point determination unit 130: Error measurement unit 140: Optimization unit 150: Result output unit 1000: Design support system
Claims
1. A design support device comprising: a design acquisition unit configured to acquire design data of an object having a plurality of junction points with other objects; an error measurement unit configured to measure an error from a standard position for each of the junction points; an optimization unit configured to optimize, based on the error for each of the junction points, a common movement amount for moving all of the junction points while maintaining the relative positions of the junction points, and individual movement amounts for moving the junction points individually after moving them by the common movement amount; and a result output unit configured to output correction data indicating the amount of correction for each of the junction points based on the common movement amount and the individual movement amount.
2. A design support device according to claim 1, wherein the optimization unit is configured to optimize the common movement amount and the individual movement amount so as to minimize an objective function including an L0 norm or an L1 norm of the individual movement amount.
3. A design support device according to claim 1 or 2, wherein the optimization unit is configured to further optimize a truth value indicating whether or not an error between the junction point after movement by the common movement amount and the standard position is acceptable.
4. A design support device according to any one of claims 1 to 3, further comprising a reference point determination unit configured to determine one of the joint points as a reference point, and wherein the optimization unit is configured to determine the common movement amount based on the error of the reference point.
5. A design support device according to claim 4, wherein the reference point determination unit is configured to determine the junction point where the error is equal to or less than a predetermined value as the reference point.
6. A design support method in which a computer executes the following steps: acquiring design data for an object having multiple junction points with other objects; measuring the error between each of the junction points and a standard position; optimizing, based on the error of each of the junction points, a common movement amount for moving all of the junction points while maintaining the relative positions of the junction points, and individual movement amounts for moving the junction points individually after moving them by the common movement amount; and outputting correction data indicating the amount of correction for each of the junction points based on the common movement amount and the individual movement amount.
7. A program for causing a computer to execute the following steps: acquiring design data for an object having multiple junction points with other objects; measuring the error from a standard position for each of the junction points; optimizing, based on the error for each of the junction points, a common movement amount for moving all of the junction points while maintaining the relative positions of the junction points, and individual movement amounts for moving the junction points individually after moving them by the common movement amount; and outputting correction data indicating the amount of correction for each of the junction points based on the common movement amount and the individual movement amount.
Citation Information
Patent Citations
Piping temporary set simulation device and piping manufacture method
JP1998293776A
Method for molding interior and exterior members of vehicle
JP2015172890A
System and method for automating the generation of manufacturing frame designs
US20050096885A1