Design support device, design support method, and program
Patent Information
- Application Number
- CN202580022838.7
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2024-03-26
- Filing Date
- 2025-03-24
- Publication Date
- 2026-10-30
AI Technical Summary
[0044]根据本发明的一个方面,能够高效地设计要与另一个物体接合的物体。
Smart Images

Figure CN123023052A_ABST
Abstract
Description
Technical Field
[0001] This disclosure relates to a design aid device, design aid method, and procedure. Background Technology
[0002] There are products that are manufactured by joining multiple parts. When manufacturing such products, it is important to align the joints between the parts.
[0003] For example, Patent Document 1 discloses a method for aligning two objects. The alignment method disclosed in Patent Document 1 includes: a determination step, which determines a cost function whose value represents the degree of alignment, the cost function including a matrix as a variable, the matrix being used to transform the coordinates of multiple points of a first object and multiple points of a second object; a minimization step, which repeatedly adjusts the variables to minimize the value calculated by the cost function; and an alignment amount determination step, which determines the alignment amount based on the variables adjusted by the minimization step.
[0004] <Prior art documents>
[0005] <Patent Documents>
[0006] Patent Document 1: Japanese Patent Application Publication No. 2019-8007 Summary of the Invention
[0007] <Problem to be solved by this invention>
[0008] However, conventional techniques are used to align two objects designed to be joined. In conventional techniques, the possibility of one of the two objects being joined being designed to join with the other is not considered.
[0009] One aspect of this disclosure is aimed at efficiently designing objects that are to be joined with another object.
[0010] <Methods for solving problems>
[0011] This disclosure provides the following solution. [1]
[0013] A design aid device, comprising:
[0014] The design acquisition unit is configured to acquire design data of an object having multiple joint points with another object;
[0015] An error measurement unit is configured to measure the error between each of the said joint points and a standard position;
[0016] The optimization unit is configured to optimize, based on the error of each of the joint points, a common movement amount that moves all the joint points while maintaining their relative positions, and an individual movement amount that moves each joint point individually after moving the joint points by the common movement amount; and
[0017] The result output unit is configured to output correction data representing the correction amount of each of the joint points based on the common movement amount and the individual movement amount. [2]
[0019] According to the design auxiliary device described in [1], wherein,
[0020] The optimization unit is configured to optimize the common movement and the individual movement in a manner that minimizes the objective function containing the L0 norm or L1 norm of the individual movement. [3]
[0022] According to the design auxiliary device described in [1] or [2], wherein,
[0023] The optimization unit is configured to further optimize the Boolean value representing the error between the junction point and the standard position after moving the common movement amount. [4]
[0025] The design aid device according to any one of claims [1] to [3] further comprises:
[0026] The reference point determination unit is configured to determine any one of the joint points as a reference point.
[0027] The optimization unit is configured to determine the common movement amount based on the error of the reference point. [5]
[0029] According to the design aid device of claim [4], wherein,
[0030] The reference point determination unit is configured to determine the joint point whose error is below a predetermined value as the reference point. [6]
[0032] A design-aided method in which a computer performs the following steps:
[0033] The process of obtaining design data for an object that has multiple points of contact with another object;
[0034] The process of measuring the error between each of the aforementioned joint points and the standard position;
[0035] Based on the errors at each of the joint points, the process of optimizing the common movement amount by moving all the joint points while maintaining their relative positions, and the individual movement amount by moving each joint point individually after moving the joint points by the common movement amount; and
[0036] The process of outputting correction data representing the correction amount of each of the joint points based on the common movement amount and the individual movement amount. [7]
[0038] A program for causing a computer to perform the following steps:
[0039] The process of obtaining design data for an object that has multiple points of contact with another object;
[0040] The process of measuring the error between each of the aforementioned joint points and the standard position;
[0041] Based on the errors at each of the joint points, the process of optimizing the common movement amount by moving all the joint points while maintaining their relative positions, and the individual movement amount by moving each joint point individually after moving the joint points by the common movement amount; and
[0042] The process of outputting correction data representing the correction amount of each of the joint points based on the common movement amount and the individual movement amount.
[0043] <The Effects of the Invention>
[0044] According to one aspect of the invention, it is possible to efficiently design an object to be joined with another object. Attached Figure Description
[0045] [ Figure 1 ] Figure 1 This is a diagram showing an example of the product.
[0046] [ Figure 2 ] Figure 2 This is an example diagram showing a plan view of a component.
[0047] [ Figure 3 ] Figure 3 This is an example diagram showing a side view of a component.
[0048] [ Figure 4 ] Figure 4 This is a block diagram illustrating an example of the overall structure of a design assistance system.
[0049] [ Figure 5 ] Figure 5 This is a block diagram illustrating an example of the hardware configuration of a computer.
[0050] [ Figure 6 ] Figure 6 This is a block diagram illustrating an example of the functional configuration of a design aid.
[0051] [ Figure 7 ] Figure 7 It is a diagram used to illustrate common and individual movement quantities.
[0052] [ Figure 8 ] Figure 8 This is a flowchart illustrating an example of a design aid method.
[0053] [ Figure 9 ] Figure 9 This is a graph showing an example of the evaluation results for the objective function.
[0054] [ Figure 10 ] Figure 10 This is a graph showing an example of the evaluation results regarding whether or not errors are permissible. Detailed Implementation
[0055] Hereinafter, various embodiments of the present disclosure will be described with reference to the accompanying drawings. It should be noted that in this specification and the accompanying drawings, constituent elements having substantially the same functional configuration are omitted from repeated descriptions by assigning the same reference numerals.
[0056] [Implementation Method]
[0057] One embodiment of this disclosure is a design-aid system that assists in the design of an object. In this embodiment, the object being designed is an object that is to be joined with another object. For example, the object being designed can be any component included in a product manufactured by combining multiple parts. Hereinafter, the object being designed will be referred to as a "design object" and the other object to be joined with the design object will be referred to as a "joining object".
[0058] In products manufactured by assembling multiple components, the joints need to be designed to allow for connection between the components. As an example, a component can be a module manufactured by integrally molding a metal part and resin. A module can be, for example, a power module integrating multiple power semiconductors.
[0059] Figure 1 This is an image showing an example of the product. (For example...) Figure 1As shown, product P is manufactured by assembling multiple components P1 to P3. Product P is composed of multiple components P1 to P3 joined together in the vertical direction. For example, regarding components P1 and P2, the bottom surface of component P1 is joined to the top surface of component P2. Here, component P1 is an example of a joined object, and component P2 is an example of a designed object. However, in this embodiment, the joining position between components is not limited. Furthermore, in... Figure 1 In this context, product P consists of three parts, P1 to P3, but there is no limit to the number of parts that make up the product.
[0060] Figure 2 This is an example diagram showing a plan view of a component. Figure 2 (A) is an example of a bottom view of part P1. Figure 2 (B) is an example of a top view of component P2.
[0061] like Figure 2 As shown, eight joints D1 to D8 are formed on component P1 for engaging with component P2. Eight joints C1 to C8 are formed on component P2 for engaging with component P1. The positions of joints D1 to D8 in component P1 and the positions of joints C1 to C8 in component P2 are designed to have a relative positional relationship.
[0062] The joint can be a component used to physically fix the components together, or it can be a component used to electrically connect the components together. The joint may include, for example, a protrusion, a hole, a claw, a terminal, etc.
[0063] Figure 3 This is an example diagram showing a side view of a component. Figure 3 (A) is an example of a side view of part P1. Figure 3 (B) is an example of a side view of part P2.
[0064] like Figure 3 As shown, the joints D5-D8 of component P1 and the joints C5-C8 of component P2 are formed in a position and shape that interlocks with each other. Similarly, the joints D1-D4 of component P1 (not shown) and the joints C1-C4 of component P2 are formed in a position and shape that interlocks with each other. However, the joints do not necessarily need to interlock. For example, if the joints are electrically connected, it is sufficient that the joints are formed in a position where they are in contact with each other.
[0065] Components P1 and P2 are as follows Figure 2 and Figure 3The arrangement is as shown, such that each of the joints D1 to D8 of component P1 engages with each of the joints C1 to C8 of component P2. Regarding components P1 and P2, they can engage with all joints according to the criteria, and cannot engage with any joint if any joint cannot meet the criteria.
[0066] When designing components that are the objects of design, design data for the components that are the objects of joining is provided to the designer of the object of design. This design data shows the joint points between the components. A joint point is a coordinate indicating the location of the joint. As an example, a joint point could be the center coordinate of the joint. The designer of the object of design needs to design the joint points of the object of design to be suitable for the joints of the objects. In the following text, the joint points of the objects will be referred to as "standard positions".
[0067] It should be noted that the joint point can be defined by three-dimensional coordinates using the xyz axes. In this case, the xy plane is the joint surface between the designed object and the joined objects. Additionally, the z-axis is the axis perpendicular to the joint surface. The joint point defined by three-dimensional coordinates includes the x and y coordinates representing the center of the region representing the joint in the xy plane, and the z coordinate representing the height or depth relative to the joint surface.
[0068] In module design, a series of repetitive tasks are performed, including creating design data, manufacturing molds, producing prototypes, measuring errors, and correcting the design data. The module designer first creates the module's design data to ensure that the joints fit into standard positions. Design data can be, for example, three-dimensional data representing the module's shape or the positions of components included within the module.
[0069] Next, the designer creates a mold based on the design data. Then, the designer uses the mold to create a prototype of the module. The designer then measures the joints formed on the prototype and calculates the error between these joints and the standard position. If the error at any joint is outside the acceptable range, the design data used to create the mold is deemed non-compliant. If the design data is non-compliant, the designer corrects the design data based on the error and creates the mold again based on the corrected design data. This series of operations is repeated until the error between all joints and the standard position is within the acceptable range. For example, this series of operations can be repeated several to a dozen times.
[0070] To optimize module design efficiency, it's crucial to minimize repetitions. In particular, since mold making is costly, reducing the number of mold creations allows for more efficient design. Furthermore, since mold adjustments can sometimes be partially implemented, fewer joint points require correction, resulting in a more efficient design.
[0071] In this embodiment, the objective is to design the object efficiently. To this end, this embodiment uses a mathematical optimization method to optimize the correction amount at each joint point of the object. Specifically, this embodiment optimizes by reducing the number of joint points requiring correction. According to this embodiment, since the correction amount at each joint point is calculated with high precision using the mathematical optimization method, the number of corrections to the design data can be reduced. Furthermore, according to this embodiment, since the number of joint points requiring correction is reduced, the mold can be corrected efficiently. Therefore, according to this embodiment, the object can be designed efficiently.
[0072] <Overall Composition>
[0073] Reference Figure 4 The overall structure of the design assistance system according to this embodiment will be described. Figure 4 This is a block diagram illustrating an example of the overall structure of a design assistance system.
[0074] like Figure 4 As shown, the design assistance system 1000 includes a design assistance device 10 and a terminal device 20. The design assistance device 10 and the terminal device 20 are connected via a communication network N such as a LAN (Local Area Network) or the Internet in a manner that enables data communication.
[0075] Design assistance 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 representing the correction amounts of each joint point of the design object. Design assistance device 10 receives design data of the design object from terminal device 20 and calculates the correction amounts of each joint point of the design object. Design assistance device 10 then sends the correction data representing the correction amounts of each joint point to terminal device 20.
[0076] Terminal device 20 is an example of an information processing terminal such as a personal computer, smartphone, or tablet terminal operated by a user of design assistance system 1000. Terminal device 20 sends design data specified by the user to design assistance device 10. Terminal device 20 receives correction data from design assistance device 10 and displays the correction data to the user.
[0077] It should be noted that, Figure 4The overall configuration of the design assistance system 1000 shown is merely an example, and various system architecture examples may exist depending on the application or purpose. For example, the design assistance system 1000 may include one or more of multiple design assistance devices 10 and terminal devices 20. For example, the design assistance devices 10 may be implemented by multiple computers or as a cloud computing service. For example, the design assistance devices 10 may be implemented by a single computer. Figure 4 The distinction between the design aid device 10, terminal device 20, etc. shown is an example.
[0078] <Hardware Structure>
[0079] Reference Figure 5 The hardware structure of the design assistance system 1000 in this embodiment will be described. The design assistance device 10 and terminal device 20 included in the design assistance system 1000 are implemented, for example, by a computer. Figure 5 This is a block diagram illustrating an example of the hardware configuration of a computer.
[0080] like Figure 5 As shown, the computer 500 includes a CPU (Central Processing Unit) 501, ROM (Read Only Memory) 502, RAM (Random Access Memory) 503, 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, ROM 502, and RAM 503 constitute what is called a computer. The various hardware components of the computer 500 are interconnected via a bus 509. It should be noted that the input device 505 and the display device 506 can be connected to the computer 500 via an external I / F 508.
[0081] CPU 501 is a computing device that reads programs or data from storage devices such as ROM 502 or HDD 504 into RAM 503 and performs processing to realize the control and functions of the entire computer 500.
[0082] ROM 502 is an example of a non-volatile semiconductor memory (storage device) that can retain programs and data even when the power is off. ROM 502 functions as a main storage device to store various programs and data required by the CPU 501 to execute various programs installed in HDD 504. Specifically, ROM 502 stores data such as boot programs (BIOS (Basic Input / Output System), EFI (Extensible Firmware Interface), OS (Operating System) settings, and network settings that are executed when the computer 500 starts.
[0083] RAM503 is an example of a volatile semiconductor memory (storage device) whose programs and data are deleted when the power is turned off. RAM503 is, for example, DRAM (Dynamic Random Access Memory), SRAM (Static Random Access Memory), etc. RAM503 provides a working area when various programs installed in HDD504 are executed by CPU501.
[0084] HDD504 is an example of a non-volatile storage device for storing programs and data. The programs and data stored in HDD504 include the operating system (OS), which is the basic software controlling the entire computer 500, and applications that provide various functions on the OS. It should be noted that computer 500 can use a storage device that uses flash memory as the storage medium (such as an SSD: Solid State Drive, etc.) instead of HDD504.
[0085] Input device 505 includes touch panel, operation keys or buttons, keyboard or mouse, microphone, etc., used by the user to input various signals.
[0086] The display device 506 consists of a display such as a liquid crystal or organic EL (Electro-Luminescence) that displays images, and a speaker that outputs sound data such as sound.
[0087] The Communication I / F507 is an interface used by the computer 500 to connect to a communication network and conduct data communication.
[0088] The external I / F508 is the interface between the device and an external device. External devices include driver devices such as driver unit 510.
[0089] The drive device 510 is a means for setting the recording medium 511. The recording medium 511 includes media that record information optically, electrically, or magnetically, such as CD-ROMs, floppy disks, and magneto-optical disks. Alternatively, the recording medium 511 may include semiconductor memories that record information electrically, such as ROMs and flash memory. Thus, the computer 500 can read from and / or write to the recording medium 511 via an external I / F 508.
[0090] It should be noted that various programs installed in the HDD504 can be installed, for example, by placing the distributed recording medium 511 in a drive device 510 connected to an external I / F 508, and by reading the various programs recorded on the recording medium 511 through the drive device 510. Alternatively, various programs installed in the HDD504 can be installed by downloading them from a communication network N or a network other than the communication network N via a communication I / F 507.
[0091] <Functional Composition>
[0092] Reference Figure 6 The functional configuration of the design assistance device 10 in this embodiment will be explained. Figure 6 This is a block diagram illustrating an example of the functional configuration of a design aid.
[0093] like Figure 6 As shown, the design assistance 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.
[0094] Standard storage unit 101 is composed of Figure 5 The RAM503 or HDD504 implementation is shown.
[0095] The design acquisition unit 110, benchmark point determination unit 120, error measurement unit 130, optimization unit 140, and result output unit 150 are executed by the CPU 501 from... Figure 5 The program shown is implemented by expanding the HDD504 onto RAM503.
[0096] The standard storage unit 101 stores standard data representing standard positions. The standard data is electronic data representing the standard positions corresponding to each joint point of the designed object. The standard data can be three-dimensional data representing the shape of the joined object and the coordinates of the joint points, etc. The standard data can, for example, be design data of the joined object. The design data of the joined object can, for example, be provided by the manufacturer of the joined object, and can be stored in the standard storage unit 101.
[0097] The design acquisition unit 110 acquires design data of the design object. The design acquisition unit 110 can receive design data of the design object from the terminal device 20. The design acquisition unit 110 can accept input of design data of the design object via the input device 505 of the design auxiliary device 10.
[0098] The reference point determination unit 120 determines reference points based on the design data obtained by the design acquisition unit 110. A reference point can be any point on the design object. For example, the reference point determination unit 120 can determine a pre-determined point as the reference point. The pre-determined point can be any of the joint points. As an example, the joint point serving as the reference point can be pre-determined by the manufacturer of the joint object or by an agreement with the manufacturer of the joint object. The pre-determined reference point can be indicated in the design data of the design object.
[0099] For example, the reference point determination unit 120 can determine a joint point whose error with respect to the standard position is less than a predetermined value as a reference point. The predetermined value can be zero or a very small value close to zero. In other words, the reference point determination unit 120 can determine a joint point whose error with respect to the standard position is small and does not require correction as a reference point. It should be noted that the error used to determine the reference point can be measured using any point as a temporary reference point, or it can be an error previously measured during the process of repeatedly correcting the design data.
[0100] Error measurement unit 130 measures the error between each joint point represented by the design data obtained by design acquisition unit 110 and the standard position read from standard storage unit 101. Alternatively, the error can be measured by calculating the difference between the coordinates of the joint point of the design object and the coordinates of the standard position, using the reference point determined by reference point determination unit 120 as the origin (i.e., x=0, y=0, z=0). The error can be a three-dimensional vector representing the direction and straight-line distance from the three-dimensional coordinates of the joint point to the three-dimensional coordinates of the standard position.
[0101] 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 the movement amount that moves all joint points while maintaining the relative positions of the joint points. The individual movement amount is the movement amount that moves the joint points individually after moving the joint points by the common movement amount. The common movement amount and the individual movement amount can be three-dimensional vectors.
[0102] The optimization unit 140 can optimize the common movement and individual movement in a way that makes each joint point fit into a standard position. That is, the optimization unit 140 can optimize the common movement and individual movement for each joint point in a way that makes the sum of the common movement and the individual movement equal to the error.
[0103] Figure 7 This is a diagram used to illustrate common and individual movement quantities. In Figure 7 As an example, three junction points C1~C3 and three standard positions D1~D3 are shown. V1~V3 represent the errors between junction points C1~C3 and standard positions D1~D3, respectively.
[0104] Here, joint point C1 is set as the reference point. To align joint point C1, which serves as the reference point, with the standard position D1, the inverse vector α of the error V1 of joint points C1 to C3 is moved while maintaining the relative positions of joint points C2 and C3. Since the reference point C1 is the origin (0, 0, 0), when the reference point C1 moves, the other joint points C2 and C3 move relatively in opposite directions. The inverse vector α of the error V1 of the reference point C1 is the common movement amount. The reference point C1 cancels out the error V1 with the inverse vector α of the error V1, maintaining the origin (0, 0, 0).
[0105] To align joint point C2 with the standard position D2 after moving it by a common displacement α, an additional displacement β2 is required, which is the difference between the error V2 and the common displacement α. Similarly, to align joint point C3 with the standard position D3 after moving it by a common displacement α, a displacement β3 is required, which is the difference between the error V3 and the common displacement α. Vector β2 is the individual displacement of joint point C2, and vector β3 is the individual displacement of joint point C3. Therefore, the error V2 of joint point C2 is represented by the sum of the common displacement α and the individual displacement β2. The error V3 of joint point C3 is represented by the sum of the common displacement α and the individual displacement β3.
[0106] The optimization unit 140 optimizes the common and individual movement quantities in a manner that minimizes a predetermined objective function. The objective function may include the L0 or L1 norm of the individual movement quantities. By minimizing the objective function that includes the L0 or L1 norm of the individual movement quantities, the number of junctions with zero individual movement quantities is increased. In other words, using an objective function that includes the L0 or L1 norm of the individual movement quantities reduces the number of junctions requiring correction.
[0107] The optimization unit 140 can further optimize the error tolerance flag for each joint point. The error tolerance flag is a Boolean value indicating whether the error between the joint point and the standard position after moving the joint point by a common movement amount is permissible. For joint points with permissible errors, even if the error between the joint point and the standard position after moving the joint point by a common movement amount is not zero, if it is below a predetermined value, the individual movement amount is not calculated. On the other hand, for joint points without permissible errors, if the error between the joint point and the standard position after moving the joint point by a common movement amount is not zero, the individual movement amount is calculated. By optimizing the Boolean value indicating whether each joint point has permissible errors, the number of joint points with zero individual movement amounts is increased.
[0108] It should be noted that the optimization unit 140 may not include the axis of a portion of the joint as an optimization target. For example, if the joint is joined 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 point, which is defined by the through direction, may not be an optimization target.
[0109] ≪Formulaic≫
[0110] The formulation of the optimization calculation performed by the optimization unit 140 will be explained. Here, an example is given where any one of the junction points is determined as the reference point and the L1 norm is used as the objective function.
[0111] The variables for mathematical optimization are shown in formulas (1) to (3).
[0112] [Number 1]
[0113]
[0114] Where i is an integer greater than or equal to 1 and less than or equal to n, n is the number of junctions other than the reference point, (s, t, u) is the common movement amount, and (x i y i , z i ) is the individual movement of the i-th junction, (α) i ,β i γ i α is the error tolerance flag for the i-th junction. Regarding the error tolerance flag α... i β i γ i When its value is 0, it indicates an allowable error; when its value is 1, it indicates no allowable error.
[0115] The constants for mathematical optimization are shown in formula (4).
[0116] [Number 2]
[0117]
[0118] Among them, (a i b i c i ) is the error of the i-th junction.
[0119] The objective function for mathematical optimization is shown in formula (5).
[0120] [Number 3]
[0121]
[0122] Where I is the set of joint points other than the reference point.
[0123] The constraints for mathematical optimization are shown in formulas (6) to (13).
[0124] [Number 4]
[0125]
[0126] Where M is a predetermined constant, J is the set of n junction points that optimize the x-coordinate, K is the set of n junction points that optimize the y-coordinate, L is the set of n junction points that optimize the z-coordinate, and ε is the tolerance value for error. M is a constant used in a mathematical optimization method known as the Big-M method, and is x i y i , z i It is an integer approximately 10 times the value of the object being designed or the characteristics of the joint. ε can be arbitrarily determined based on factors such as the dimensions of the object or the characteristics of the joint. As an example, ε can be approximately 0.05 mm.
[0127] The tolerance mark is explained in more detail. Regarding the tolerance mark α... i When the value is 1 (i.e., no error is allowed), formulas (6) and (9) become formulas (14) and (15). Since the sum of the common movement and the individual movement x j +s equals error a j Therefore, as long as the common movement s and the error a j Not equal, individual movement x j It is non-zero.
[0128] [Number 5]
[0129]
[0130] On the other hand, in the error tolerance mark α i When the error is 0 (i.e., the tolerance is zero), equations (6) and (9) become equations (16) and (17). Since the sum of the common movement and the individual movement x j+s in error a j The range of ±ε is sufficient. Therefore, when the error after moving the common amount of movement is within the range of ±ε, the individual amount of movement x... j It is zero.
[0131] [Number 6]
[0132]
[0133] The result output unit 150 outputs correction data representing the correction amounts of each joint point based on the common movement and individual movement optimized by the optimization unit 140. Specifically, the result output unit 150 sets the correction amount of the reference point as the inverse vector of the common movement, sets the correction amounts of joint points other than the reference point as individual movement, and generates correction data representing the correction amounts of each joint point.
[0134] The result output unit 150 sends the generated correction data to the terminal device 20. The result output unit 150 can display the generated correction data on the display device 506 of the design assistance device 10.
[0135] <Processing Steps>
[0136] Reference Figure 8 The design assistance method executed by the design assistance system 1000 in this embodiment will be described. Figure 8 This is a flowchart illustrating an example of a design aid method.
[0137] In step S1, the user of the design assistance system 1000 inputs the design data of the design object into the terminal device 20. The terminal device 20 then sends the input design data to the design assistance device 10.
[0138] The design acquisition unit 110 of the design assistance 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.
[0139] In step S2, the reference point determination unit 120 of the design assistance device 10 receives design data from the design acquisition unit 110. The reference point determination unit 120 determines reference points based on the received design data. The reference point determination unit 120 then sends the determined reference points to the error measurement unit 130. It should be noted that step S2 can be omitted if the reference points are predetermined.
[0140] In step S3, the error measurement unit 130 of the design assistance device 10 receives a reference point from the reference point determination unit 120. If the reference point is predetermined, the error measurement unit 130 can obtain the reference point from the design data acquired in step S1.
[0141] Error measurement unit 130 obtains the joint points from the design data acquired in step S1. Error measurement unit 130 reads the standard position from standard storage unit 101. Based on the reference point, error measurement unit 130 measures the error between each joint point and the standard position. Error measurement unit 130 sends the measured error to optimization unit 140.
[0142] In step S4, the optimization unit 140 of the design assistance device 10 receives the errors of each joint point from the error measurement unit 130. Based on the errors of each joint point, the optimization unit 140 optimizes the common movement, individual movement, and tolerance error flag in a manner that minimizes the objective function including the L0 norm or L1 norm of individual movement. The optimization unit 140 sends the optimization results of the common movement and individual movement to the result output unit 150.
[0143] In step S5, the result output unit 150 of the design assistance device 10 receives the optimization result from the optimization unit 140. Based on the common and individual movement amounts included in the optimization result, the result output unit 150 determines the correction amount for each joint point. The result output unit 150 generates correction data representing the correction amount for each joint point. The result output unit 150 sends the correction data to the terminal device 20.
[0144] Terminal device 20 receives calibration data from design assistance device 10. Based on the calibration data, terminal device 20 prompts the user with the calibration amount for each joint. Terminal device 20 can display the calibration amount for each joint on its display device 506.
[0145] The user of terminal device 20 can correct the design data by referring to the correction amounts of each joint point. Specifically, the user of terminal device 20 corrects the joint points that serve as reference points in the design data to their positions after moving by the inverse vector of the common movement amount, and corrects the joint points other than the reference points to their positions after moving by individual movement amounts. At this time, joint points with a correction amount of zero are not corrected.
[0146] Then, the user of terminal device 20 can create or calibrate the mold based on the corrected design data. Alternatively, the user can use the new mold to create a prototype of the module and determine whether the error at the joint points formed in the prototype is within the allowable range. If the error at the joint points is outside the allowable range, the user can input the corrected design data into terminal device 20 to obtain new calibration data. If the error at all joint points is within the allowable range, the user can use the mold created based on the design data to manufacture the designed object.
[0147] <Evaluation Results>
[0148] Reference Figure 9 and Figure 10 The evaluation results of the optimization performance in this embodiment will be explained. As an example, the power module design data was used, with 57 components as the optimization targets. Furthermore, the optimization solver used was SCIP (SCIP Optimization Suite). It should be noted that the components as optimization targets refer to the values of the axes of the joint points that are the targets of optimization.
[0149] Objective function
[0150] Figure 9 This is a graph illustrating an example of the evaluation results for the objective function. In the evaluation of the objective function, the L0 norm, L1 norm, and L2 norm are used as the objective function, respectively, and the optimization results are compared. It should be noted that in the evaluation of the objective function, an unacceptable error constraint is used.
[0151] like Figure 9 As shown, when using the L0 norm, there are 37 non-zero components and 20 zero components in the individual shift. The computation time is 0.034 seconds. When using the L1 norm, there are 37 non-zero components and 20 zero components in the individual shift. The computation time is 0.008 seconds. When using the L2 norm, there are 57 non-zero components and 0 zero components in the individual shift. The computation time is 0.036 seconds. The evaluation of the objective function shows that using the L0 or L1 norm can reduce the number of junctions that need to be corrected.
[0152] It's important to note that when using the L0 or L1 norm, the problem becomes a mixed-integer linear optimization problem because the variables to be optimized include binary variables. Since the number of binary variables to be optimized is greater in the L0 norm, the computation time is longer compared to using the L1 norm. When using the L2 norm, it becomes a mixed-integer quadratic optimization problem. Although the number of binary variables is the same in both the L2 and L1 norms, the L2 norm, as a quadratic optimization problem, has a slightly longer computation time than the L1 norm, but it can still achieve the optimal solution with a similar computation time as the L0 norm.
[0153] ≪Is error permissible?≫
[0154] Figure 10 This is a graph illustrating an example of the evaluation results regarding whether or not error is permissible. In the evaluation of whether or not error is permissible, the L1 norm is used as the objective function, and the optimization results are compared under both permissible and non-permissible error constraints.
[0155] like Figure 10 As shown, when using the no-error constraint, the non-zero component of the individual movement is 37, and the zero component is 20. The calculation time is 0.008 seconds. When using the tolerance constraint, the non-zero component of the individual movement is 16, and the zero component is 41. The calculation time is 0.061 seconds. The evaluation regarding tolerance shows that using the tolerance constraint reduces the number of joints requiring correction. As mentioned above, the fewer joints to be corrected, the more partially the mold correction can be performed, which is preferable.
[0156] It should be noted that when using tolerance constraints, the problem becomes a mixed-integer linear optimization problem because the variables to be optimized include binary variables. Therefore, the computation time increases when using tolerance constraints.
[0157] <Effects of the Implementation Method>
[0158] In this embodiment, the design assistance device 10 measures the error between each of the multiple joints to be joined with another object and a standard position, and optimizes the common movement amount of the joints while maintaining their relative positions and the individual movement amount of the joints after the common movement amount is moved, in a short time, so that the joints match the standard position.
[0159] Traditionally, component design involves repeatedly performing a series of operations, including creating design data, fabricating molds using the design data, measuring errors in prototypes made from the molds, and correcting the design data based on these errors. By using mathematical optimization methods to calculate the correction amounts for each joint point with high precision, the number of repetitions of this series of operations can be reduced. In one aspect, according to this embodiment, design data can be efficiently corrected when manufacturing objects to be joined with another object.
[0160] The design assistance device 10 can optimize the common movement and individual movement in a way that minimizes the objective function including the L0 norm or L1 norm of individual movement. By setting the objective function to the L0 norm or L1 norm, it is possible to obtain an increase in the non-zero components of the optimization result. According to this embodiment, the number of joint points that need to be corrected can be reduced. When the mold used to manufacture the part can be partially corrected, the fewer joint points that need to be corrected, the more efficiently the mold can be corrected. Therefore, it is possible to efficiently design parts that are to be joined with another part.
[0161] The design assistance device 10 can further optimize the Boolean value representing the error between the joint point and the standard position after allowing the common movement amount. If the error after allowing the common movement amount is allowed, the non-zero component of the optimization result is further increased. According to this embodiment, the number of joint points that need to be corrected can be further reduced.
[0162] The design assistance device 10 can use any one of the joint points as a reference point and determine the common movement amount based on the error of the reference point. The design assistance device 10 can determine the joint point with an error below a predetermined value as the reference point. According to this embodiment, there is no need to correct the reference point, thus further reducing the number of joint points that need to be corrected.
[0163] [Replenish]
[0164] The functions of the embodiments described above can be implemented by one or more processing circuits. Here, "processing circuit" in this specification includes processors such as CPUs (Central Processing Units) or GPUs (Graphics Processing Units) implemented using electronic circuits, which are programmed to perform the functions by software, or ASICs (Application Specific Integrated Circuits), DSPs (Digital Signal Processors), FPGAs (Field Programmable Gate Arrays), or conventional circuit modules designed to perform the functions described above.
[0165] While the embodiments of this disclosure have been described in detail above, they are exemplary and not restrictive in all respects. Various modifications and alterations can be made to the embodiments without departing from the appended claims and their spirit. The matters described in the foregoing embodiments can be adopted in other ways and combined without contradiction.
[0166] This application takes priority based on 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.
[0167] Symbol Explanation
[0168] 10: Design auxiliary devices
[0169] 20: Terminal device
[0170] 101: Standard storage unit
[0171] 110: Design Acquisition Unit
[0172] 120: Reference point determination unit
[0173] 130: Error Measurement Unit
[0174] 140: Optimization Unit
[0175] 150: Result Output Unit
[0176] 1000: Design auxiliary system.
Claims
1. A design aid device, comprising: The design acquisition unit is configured to acquire design data of an object having multiple joint points with another object; An error measurement unit is configured to measure the error between each of the said joint points and a standard position; The optimization unit is configured to optimize, based on the error of each of the joint points, the common movement amount that moves all the joint points while maintaining the relative position of the joint points, and the individual movement amount that moves the joint points individually after moving the joint points by the common movement amount. as well as The result output unit is configured to output correction data representing the correction amount of each of the joint points based on the common movement amount and the individual movement amount.
2. The design auxiliary device according to claim 1, wherein, The optimization unit is configured to optimize the common movement and the individual movement in a manner that minimizes the objective function containing the L0 norm or L1 norm of the individual movement.
3. The design assistance device according to claim 1 or 2, wherein, The optimization unit is configured to further optimize the Boolean value representing the error between the junction point and the standard position after moving the common movement amount.
4. The design aid device according to any one of claims 1 to 3, further comprising: The reference point determination unit is configured to determine any one of the joint points as a reference point. The optimization unit is configured to determine the common movement amount based on the error of the reference point.
5. The design aid device according to claim 4, wherein, The reference point determination unit is configured to determine the joint point whose error is below a predetermined value as the reference point.
6. A design-aided method, wherein a computer performs the following steps: The process of obtaining design data for an object that has multiple points of contact with another object; The process of measuring the error between each of the aforementioned joint points and the standard position; Based on the errors of each of the joint points, the process of optimizing the common movement amount of moving all the joint points while maintaining the relative position of the joint points, and the individual movement amount of moving each joint point individually after moving the joint points by the common movement amount. as well as The process of outputting correction data representing the correction amount of each of the joint points based on the common movement amount and the individual movement amount.
7. A program for causing a computer to perform the following operations: The process of obtaining design data for an object that has multiple points of contact with another object; The process of measuring the error between each of the aforementioned joint points and the standard position; Based on the errors of each of the joint points, the process of optimizing the common movement amount of moving all the joint points while maintaining the relative position of the joint points, and the individual movement amount of moving each joint point individually after moving the joint points by the common movement amount. as well as The process of outputting correction data representing the correction amount of each of the joint points based on the common movement amount and the individual movement amount.
Citation Information
Patent Citations
Positioning method, positioning device, and program
JP2019008007A
Driving support apparatus
JP2024049767A
