WO2022149241A1 - シミュレーションプログラム、シミュレーション装置、およびシミュレーション方法 - Google Patents

シミュレーションプログラム、シミュレーション装置、およびシミュレーション方法 Download PDF

Info

Publication number
WO2022149241A1
WO2022149241A1 PCT/JP2021/000366 JP2021000366W WO2022149241A1 WO 2022149241 A1 WO2022149241 A1 WO 2022149241A1 JP 2021000366 W JP2021000366 W JP 2021000366W WO 2022149241 A1 WO2022149241 A1 WO 2022149241A1
Authority
WO
WIPO (PCT)
Prior art keywords
model
machine
driver
simulation
motor
Prior art date
Application number
PCT/JP2021/000366
Other languages
English (en)
French (fr)
Inventor
真充 服部
康平 鈴木
啓 寺田
将哉 木村
Original Assignee
三菱電機株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 三菱電機株式会社 filed Critical 三菱電機株式会社
Priority to DE112021005541.0T priority Critical patent/DE112021005541T5/de
Priority to JP2021527937A priority patent/JP6961130B1/ja
Priority to PCT/JP2021/000366 priority patent/WO2022149241A1/ja
Priority to CN202180071137.4A priority patent/CN116348822B/zh
Publication of WO2022149241A1 publication Critical patent/WO2022149241A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B17/00Systems involving the use of models or simulators of said systems
    • G05B17/02Systems involving the use of models or simulators of said systems electric

Definitions

  • the present disclosure relates to a simulation program, a simulation device, and a simulation method that simulate at least one of the operation of a machine and the operation of a motor driver.
  • a model for simulating the operation of the machine is required on the software.
  • a model used for a simulation for the purpose of adjusting parameters requires accuracy, but a simulation using a model that simulates the entire machine with high accuracy requires enormous calculation cost. Therefore, a model with an appropriate degree of abstraction is used for each part, such as simulating the necessary part with high accuracy according to the purpose of the simulation and simplifying the other parts.
  • the simulator described in Patent Document 1 creates a model of a motor driver for controlling a motor, a sensor signal unit for inputting a sensor signal, and the like, and by combining these models, a model can be used for various machines. It is easy to create.
  • the present disclosure has been made in view of the above, and an object of the present disclosure is to obtain a simulation program capable of easily realizing a simulation with high calculation efficiency.
  • the present disclosure discloses a mechanical system including a machine provided with a motor and driven by the motor, a motor driver for controlling the motor, and a controller for controlling the motor driver.
  • a simulation program that simulates the operation of a machine using a machine model that simulates the operation of a machine and a driver model that simulates the movement of a motor driver, and is a model that holds candidates for a machine model and candidates for a driver model. From the library, the machine model used to simulate the operation of the machine and the operation of the motor driver are simulated based on the abstraction level setting, which is the information set for the abstraction level of the simulation when simulating the operation of the machine system.
  • the simulation program causes the computer to execute a model calculation step that simulates the operation of the mechanical system using the machine model and the driver model selected in the model selection step. If at least one of the machine model candidates and the driver model candidates is plural, and there are multiple machine model candidates, the machine model candidates include multiple machine models that simulate one machine with different degrees of abstraction. Is included, and when there are a plurality of driver model candidates, the driver model candidates include a plurality of driver models that simulate one motor driver with different degrees of abstraction.
  • the simulation program according to the present disclosure has the effect of being able to easily realize a simulation with good calculation efficiency.
  • the figure which shows the structure of the simulation apparatus which concerns on Embodiment 1. A flowchart showing a simulation processing procedure by the simulation apparatus according to the first embodiment.
  • the figure for demonstrating the process which the simulation apparatus which concerns on Embodiment 4 generates a new model by simplification of a model The figure which shows the structure of the simulation apparatus which concerns on Embodiment 5.
  • FIG. 1 is a diagram showing a configuration of a mechanical system whose operation is simulated by the simulation apparatus according to the first embodiment.
  • the simulation apparatus executes a simulation, which is a process of simulating the operation of the mechanical system 20A having the three-axis motor shown in FIG. 1, will be described.
  • the mechanical system 20A includes a machine 1 driven by a motor and a controller 10A for controlling the machine 1. Further, the machine 1 has a stage 5 and a head 6.
  • the two directions in the plane parallel to the upper surface of the stage 5 and orthogonal to each other are the X direction and the Y direction. Further, the direction orthogonal to the X direction and the Y direction is defined as the Z direction.
  • the machine 1 has a three-axis motor including an X-axis 1a extending in the X direction, a Y-axis 1b extending in the Y direction, and a Z-axis 1c extending in the Z direction.
  • the stage 5 is connected to the X-axis 1a and the Y-axis 1b, and moves in the XY plane by the operation of the X-axis 1a and the operation of the Y-axis 1b.
  • the head 6 is connected to the Z-axis 1c and moves in the Z-axis 1c direction by the operation of the Z-axis 1c.
  • the controller 10A controls the positions of the stage 5 in the X direction and the Y direction by controlling the operation of the X axis 1a and the operation of the Y axis 1b. Further, the controller 10A controls the position of the head 6 attached to the tip of the Z-axis 1c in the Z direction by controlling the operation of the Z-axis 1c.
  • the machine 1 processes the work Wp placed on the stage 5 by the head 6.
  • a motor driver (not shown) is mounted on the mechanical system 20A.
  • the controller 10A controls the motor driver, and the motor driver drives and controls the motor of each axis.
  • Examples of the controller 10A are a programmable logic controller, an industrial personal computer, a servo system controller and the like.
  • FIG. 2 is a diagram showing a configuration of a simulation device according to the first embodiment.
  • the simulation device 11 is a computer that simulates the operation of the mechanical system 20A.
  • the simulation device 11 includes a model selection unit 12, a model library 13, and a model calculation unit 14.
  • the model selection unit 12 selects a model corresponding to the abstraction degree setting from the model candidates stored in the model library 13 based on the abstraction degree setting given from the outside.
  • the abstraction level setting is information indicating the abstraction level of the simulation.
  • the abstraction level setting is information for selecting one from the simulation options prepared in advance. That is, the abstraction level setting contains information that determines the abstraction level of the model.
  • the abstraction degree setting is input to the model selection unit 12 by the user of the simulation device 11.
  • the abstraction degree setting may be information indicating the purpose of the simulation, or may be information indicating the abstraction degree numerically.
  • the abstraction degree setting is information indicating the abstraction degree numerically, the larger the abstraction degree numerical value is, the higher the abstraction degree of the simulation corresponds to the simplified simulation.
  • the abstraction level setting may be information indicating the purpose of the simulation.
  • the model selection unit 12 stores the correspondence information indicating the correspondence between the abstraction degree setting and the selected model.
  • the model selected by the model selection unit 12 is a model corresponding to the purpose of the simulation. Therefore, it can be said that the correspondence information is information in which the abstraction degree setting and the model corresponding to the purpose of the simulation are associated with each other.
  • the model selection unit 12 selects a model corresponding to the abstraction degree setting based on the correspondence information.
  • the model library 13 stores a plurality of driver models with different abstractions.
  • the driver models stored in the model library 13 are the driver models D1 and D2 will be described.
  • the driver models D1 and D2 are models that simulate the operation of the motor driver.
  • the driver model D1 is a model that simulates the operation of the motor driver with higher accuracy than the driver model D2.
  • the driver model D1 simulates the functions of, for example, a feedforward controller, a position feedback controller, a speed feedback controller, a current controller, and the like.
  • the driver model D2 is a model that simulates the operation of the motor driver more simply than the driver model D1.
  • the driver model D2 simulates only the function of the feedforward controller, for example.
  • the model library 13 stores a plurality of machine models having different abstractions.
  • the machine models stored in the model library 13 are two machine models M1 and M2 will be described.
  • Machine models M1 and M2 are models that simulate the operation of machine 1.
  • the machine model M1 is a model that simulates the operation of the machine 1 with higher accuracy than the machine model M2.
  • the machine model M1 simulates, for example, the vibration characteristics of the machine 1.
  • the machine model M2 is a model that simulates the operation of the machine 1 more simply than the machine model M1.
  • the mechanical model M2 simulates, for example, the operating range of the stage 5 and the head 6. Details of the driver models D1 and D2 and the mechanical models M1 and M2 will be described later.
  • the model selection unit 12 may select at least one of the driver model and the machine model. For example, the model selection unit 12 may select only the driver model or only the mechanical model. In other words, at least one of the machine model candidate and the driver model candidate held in the model library 13 is a plurality.
  • the machine model candidates include a plurality of machine models that simulate one machine with different abstractions.
  • the driver model candidates include a plurality of driver models that simulate one motor driver with different abstractions.
  • the model selection unit 12 selects one fixed machine model.
  • the model selection unit 12 selects only a machine model from a plurality of machine models.
  • the model selection unit 12 may select a combination of the driver model and the machine model.
  • the model selection unit 12 stores the correspondence information indicating the correspondence between the abstraction degree setting and the combination of the selected models.
  • the model selection unit 12 selects a combination of the driver model and the machine model.
  • the combination of the driver model and the machine model may be referred to as a model set.
  • the model selection unit 12 notifies the model calculation unit 14 of the model set selected from the model library 13.
  • the model set corresponds to the purpose of the simulation.
  • a case where two types of options are prepared as a simulation will be described.
  • the simulation device 11 wants to execute a simulation for confirming the movable range of the movable portion of the mechanical system 20A, a model of a motor for driving the movable portion and a model of a motor driver for driving the motor is required.
  • the simulation device 11 does not need to simulate the delicate vibration characteristics and the control response characteristics of the motor with high accuracy, and the motor model, the driver model, and the mechanical model may be abstracted.
  • the simulation device 11 does not require a precise model for the motor driver and the motor that are not the adjustment targets.
  • a simulation for debugging the sequence program of the controller 10A included in the mechanical system 20A such as a programmable logic controller, an industrial personal computer, and a servo system controller may be performed.
  • the simulation device 11 requires a model that accurately simulates the execution cycle and execution order of the sequence program, but the vibration characteristics of the machine 1 may be simplified.
  • there are various purposes of simulation such as simulation for thermal analysis of mechanical system 20A driven by a motor, simulation of power consumption analysis, etc. It is desirable to use it to perform a simple simulation.
  • the simulation device 11 stores various models corresponding to various simulation purposes, and executes the simulation using the model corresponding to the selected simulation purpose.
  • simulation options there are two types of simulation options: a simulation for confirming the operating range of the stage 5 and the head 6, and a simulation for adjusting the parameters of the motor driver for moving the stage 5. The case where it is prepared will be described.
  • the model selection unit 12 selects a model suitable for the purpose of the simulation from the model library 13 based on the abstraction degree setting.
  • the plurality of machine models M1 and M2 held by the model library 13 are software having a common interface. That is, the machine models M1 and M2 are software in which input / output is common information.
  • the user may define an object that collectively stores motor information such as the motor position and motor speed, and use this object as an input for a common interface of the machine model. Further, the user may define an object that summarizes information such as the position of the stage 5, the position of the head 6, the external force applied to the motor, and the heat generation of the machine 1, and this object may be used as the output of the common interface of the machine model. .. In this case, the type of input / output may be a variable type or a structure type.
  • the common interface of the machine model may be common among different machine models M1 and M2 that simulate one machine 1.
  • the input / output specifications for the common interface of the machine model are not limited to the contents described in the first embodiment.
  • the common interface of the mechanical models M1 and M2 has an input interface capable of acquiring the motor position of the X-axis 1a, the motor position of the Y-axis 1b, and the motor position of the Z-axis 1c. It shall be.
  • the machine model M1 is, for example, a model that considers the dynamics of the machine 1 and simulates the vibration characteristics of the machine 1.
  • the machine model M2 changes the position of the stage 5 and the position of the head 6 only by kinematics based on the motor position without considering the dynamics of the machine 1, and simulates the operating range of the stage 5 and the head 6.
  • the mechanical model M2 may simulate only the operating range of one of the stage 5 and the head 6.
  • the model calculation unit 14 reads out the driver model and the machine model corresponding to the model set notified from the model selection unit 12 from the model library 13.
  • the model calculation unit 14 performs a simulation calculation of the motor driver and the machine 1 by using the read driver model and the machine model.
  • the model calculation unit 14 calculates the model of the mechanical system 20A including the model selected from the model library 13.
  • the model of the mechanical system 20A includes a motor model and a controller model.
  • the motor model is a model that simulates the operation of the motor
  • the controller model is a model that simulates the operation of the controller 10A.
  • the model calculation unit 14 includes a driver model and a motor model corresponding to the X-axis 1a, a driver model and a motor model corresponding to the Y-axis 1b, a driver model and a motor model corresponding to the Z-axis 1c, and a mechanical model.
  • the model of the mechanical system 20A includes a controller model that gives a position command of the motor to the motor driver.
  • the model calculation unit 14 may acquire the motor model and the controller model from the model library 13, or may acquire them from other than the model library 13.
  • the model calculation unit 14 outputs the simulation result to an external device such as a display device. As a result, the display device displays the simulation result.
  • FIG. 3 is a flowchart showing a simulation processing procedure by the simulation apparatus according to the first embodiment.
  • the model selection unit 12 of the simulation device 11 accepts the abstraction degree setting input by the user (step S10).
  • the model selection unit 12 selects a model set from the model library 13 based on the abstraction degree setting (step S20).
  • the model selection unit 12 selects, for example, a model set consisting of two models, one of the driver models D1 and D2 and one of the mechanical models M1 and M2.
  • the model selection unit 12 notifies the model calculation unit 14 of the selected model set.
  • the model calculation unit 14 reads out the model set selected by the model selection unit 12 from the model library 13 (step S30).
  • the model calculation unit 14 simulates the operation of the mechanical system 20A using the read model set (step S40).
  • the model calculation unit 14 outputs the simulation result to a display device or the like (step S50). This allows the user to confirm the simulation result.
  • the model selection unit 12 When a simulation for the purpose of confirming the operating range of the stage 5 and the head 6 is selected as the correspondence information of the model selection unit 12, 3 corresponding to the X-axis 1a, the Y-axis 1b, and the Z-axis 1c. It is assumed that it is predetermined to select one driver model D2 and a mechanical model M2. In this case, when the user is specified an abstraction degree setting corresponding to the simulation for the purpose of confirming the operating range of the stage 5 and the head 6, the model selection unit 12 is based on the abstraction degree setting and the correspondence information.
  • the driver model D2 is selected as the driver model corresponding to the X-axis 1a, the Y-axis 1b, and the Z-axis 1c. Further, the model selection unit 12 selects the machine model M2 as the machine model.
  • the model calculation unit 14 uses these selected model sets, that is, the driver model D2 and the machine model M2, to execute a simulation that simulates the operation of the head position, which is the position of the head 6.
  • the model calculation unit 14 inputs the position command of the X-axis 1a generated by the controller model to the driver model D2 of the X-axis 1a.
  • the driver model D2 simulates and controls the motor position of the X-axis 1a only by feedforward control.
  • the model calculation unit 14 inputs the position command generated by the controller model to the driver model D2 for the Y-axis 1b and the Z-axis 1c as well as the X-axis 1a.
  • the driver model D2 simulates and controls the motor positions of the Y-axis 1b and the Z-axis 1c only by feedforward control.
  • the model calculation unit 14 calculates the motor positions of the X-axis 1a, the Y-axis 1b, and the Z-axis 1c using the driver model D2.
  • the model calculation unit 14 calculates the machine model M2 by inputting the motor positions of the X-axis 1a, the Y-axis 1b, and the Z-axis 1c calculated in this way.
  • the machine model M2 is selected as the machine model
  • the stage position and the head position are calculated only by kinematics from the motor position of each axis.
  • the model calculation unit 14 can simulate the operating range of the stage 5 and the head 6.
  • the model calculation unit 14 outputs the operating range of the stage 5 and the head 6 as a result of the simulation.
  • the driver model D1 is selected as the driver model corresponding to the X-axis 1a and the Y-axis 1b. It is assumed that it is predetermined to do.
  • the driver model D2 is selected as the driver model corresponding to the Z-axis 1c, and the mechanical model is used as the mechanical model. It is assumed that the selection of M1 is predetermined.
  • the model selection unit 12 sets the X-axis 1a and the Y-axis 1b based on the abstraction degree setting and the correspondence information. Select the driver model D1 as the corresponding driver model. Further, the model selection unit 12 selects the driver model D2 as the driver model corresponding to the Z-axis 1c. Further, the model selection unit 12 selects the machine model M1 as the machine model.
  • the model calculation unit 14 executes a simulation that simulates the operation of the head position using these selected models, that is, the driver models D1 and D2 and the machine model M1. At this time, the model calculation unit 14 inputs the position command of the X-axis 1a generated by the controller model to the driver model D1 of the X-axis 1a.
  • the driver model D1 simulates and controls the motor position by the feedforward controller, the position feedback controller, the speed feedback controller, and the current controller.
  • the machine 1 is equipped with, for example, a PI (Proportional-Integral) controller as a position feedback controller and a velocity feedback controller.
  • the respective proportional gain and integral gain are control parameters, and the position control performance of the motor of the X-axis 1a is changed by changing these control parameters.
  • the driver model of the Y-axis 1b is the driver model D1, so the position control performance of the motor of the Y-axis 1b is changed based on the control parameters. Further, since the motor driver model of the Z-axis 1c is the driver model D2, the motor position is controlled only by feedforward control.
  • the machine model the machine model M1 that simulates the vibration characteristics is selected. Therefore, the operation of the motor causes vibration or the like in the machine 1. Therefore, the model calculation unit 14 outputs the stage position as a simulation result. As a result, the user can confirm the presence or absence of vibration of the stage 5. Further, the user can adjust the control parameters of the X-axis 1a and the Y-axis 1b so that the vibration of the stage 5 does not occur while confirming the presence or absence of the vibration of the machine 1 which is the simulation result.
  • the user selects one of the purposes of a plurality of types of simulations, for example, two types, and inputs the purpose to the simulation device 11 as an abstraction degree setting.
  • the model selection unit 12 Based on the abstraction degree setting and the correspondence information, the model selection unit 12 has the accuracy required for the simulation from the models stored in the model library 13, and the required calculation amount is smaller than the predetermined amount. You have selected a model with the appropriate degree of abstraction.
  • the model selection unit 12 selects the mechanical model M2 and the driver model D2.
  • the mechanical model M2 calculates the stage position and head position corresponding to the motor position based solely on kinematics. Since this mechanical model M2 does not include the influence of dynamics such as external force on the motor position, it is not necessary to simulate controlling the motor position by feedback control. Therefore, when the machine model M2 is selected, the model selection unit 12 selects the simple driver model D2 having only feedforward control.
  • the simulation device 11 can confirm the operating range of the head 6 and the stage 5 at a very small calculation cost as compared with the case of calculating a differential equation when executing a simulation of a precise model. That is, the simulation device 11 can execute a simulation using a model having an appropriate degree of abstraction to satisfy the purpose of the simulation while keeping the calculation cost small.
  • the model selection unit 12 executes a detailed simulation as a driver model corresponding to the X-axis 1a and the Y-axis 1b that drive the stage 5. Select the driver model D1 to be used. Further, the model selection unit 12 selects the machine model M1 that executes a precise simulation as the machine model. The model selection unit 12 selects the driver model D2, which is a simple driver model, for the driver model of the Z-axis 1c, which does not affect the control performance of the motor drivers of the X-axis 1a and the Y-axis 1b.
  • the user adjusts the parameters of the X-axis 1a and the Y-axis 1b while checking the vibration of the stage 5 output as the simulation result.
  • the simulation device 11 uses a precise model for the operation of the X-axis 1a, the Y-axis 1b, and the stage 5 for the simulation, the user can accurately adjust the parameters.
  • the elaborate model in this case is a model with a large amount of calculation, but the simulation device 11 does not need to consider the adjustment of the control parameters of the motor drivers of the X-axis 1a and the Y-axis 1b.
  • the simulation device 11 can reduce the amount of calculation for the simulation of the operation of the Z-axis 1c. That is, the simulation device 11 can execute a simulation using a model having an appropriate degree of abstraction to satisfy the purpose of the simulation while keeping the calculation cost small.
  • the simulation device 11 can select an appropriate abstraction degree model according to the purpose of the simulation based on the abstraction degree setting. , Simulation with good calculation efficiency can be easily realized.
  • the simulation device 11 of the first embodiment selects an appropriate abstraction degree model according to the purpose of the simulation based on the abstraction degree setting even when the parameters are changed and the simulation is executed many times. Therefore, the calculation cost and the time cost can be kept small.
  • the effect that the machine models M1 and M2 in the first embodiment have a common interface will be described.
  • the desired operating specifications of the machine system 20A may not be satisfied, and it may be necessary to change the structure, material, etc. of the machine 1. be.
  • the operating characteristics of the machine 1 change under the influence of the temperature or humidity of the installation environment of the machine 1, and the required simulation accuracy is achieved unless the new machine model incorporates these influences. It may not be possible.
  • the simulation device 11 can easily execute an appropriate simulation according to the purpose of the simulation.
  • the simulation device 11 is a driver model for the motor driver of the Z-axis 1c for the purpose of adjusting the parameters of the motor driver of the Z-axis 1c, for example.
  • D1 may be selected.
  • the simulation device 11 may select the driver model D2 as the motor driver for the X-axis 1a and the Y-axis 1b, and select the machine model M1 as the machine model.
  • the user can efficiently adjust the control parameters of the motor driver of the Z-axis 1c.
  • control parameter of the motor driver is the gain of PI control
  • control parameter of the motor driver is not limited to the gain of PI control.
  • the simulation device 11 may add a notch filter or a low-pass filter to the feedback controller and use these cutoff frequencies as control parameters. Further, the simulation device 11 may use the response band of the feedforward controller as a control parameter.
  • the model selection unit 12 selects the motor model from the model library 13 based on the abstraction degree setting and the correspondence information.
  • a high-precision model among motor models includes a stator model and a rotor model, and simulates eccentricity of the rotor, cogging, and the like.
  • the simple motor model may be a model in which the rotor operates according to the position command of the motor driver.
  • the simulation device 11 may hold a driver model with higher accuracy than the driver model D1 in the model library 13.
  • This high-precision driver model may be, for example, a driver model that simulates a PWM (Pulse Width Modulation) controller, an inverter switching circuit, or the like.
  • the simulation device 11 may hold a driver model simpler than the driver model D2 in the model library 13.
  • This simple driver model may be a driver model having a wasted time element that delays the position command received from the controller 10A, or may be a driver model that operates only the low-pass filter.
  • the driver model may be a driver model that performs speed control, torque control, and the like.
  • the model selection unit 12, the model calculation unit 14, and the model library 13 do not necessarily have to be mounted on one piece of hardware.
  • the model library 13 may be mounted on the cloud server.
  • the simulation device 11 may not simulate the entire operation of the machine system 20A, but may simulate the operation of the machine 1. That is, the simulation device 11 does not have to simulate the operation of the controller 10A.
  • the simulation device 11 operates the machine 1 from the model library 13 that holds a plurality of machine model candidates and a plurality of driver model candidates based on the degree of abstraction setting.
  • the operation of the mechanical system 20A is simulated by selecting the machine model used for simulating and the driver model used for simulating the operation of the motor driver.
  • the simulation device 11 can select an appropriate abstraction degree model according to the purpose of the simulation based on the abstraction degree setting. Therefore, the simulation device 11 can easily realize a simulation with good calculation efficiency.
  • machine models M1 and M2 have a common interface, when the machine models M1 and M2 are changed, the user does not need to add or change a program that executes an operation between the models. Further, if the machine model created by the user is also created using the common interface, it can be registered in the model library 13 and used.
  • Embodiment 2 Next, the second embodiment will be described with reference to FIGS. 4 and 5.
  • a controller model according to the purpose of simulation is selected from a plurality of controller models having different degrees of abstraction.
  • FIG. 4 is a diagram showing the configuration of the simulation device according to the second embodiment.
  • components that achieve the same functions as the simulation device 11 of the first embodiment shown in FIG. 2 are designated by the same reference numerals, and duplicate description will be omitted.
  • the mechanical system handled as the target of the simulation in the second embodiment is the same mechanical system 20A as the first embodiment. That is, the simulation device 21 simulates the operation of the mechanical system 20A, similarly to the simulation device 11. Also in the second embodiment, one of the two simulation purposes is specified by the abstraction degree setting specified by the user.
  • One of the simulations selected by the simulation device 21 aims to adjust the control parameters of the motor driver that drives the stage 5 of the mechanical system 20A as in the first embodiment.
  • the other of the selected simulations is intended to confirm the operation of the sequence program that determines the operation order of the stage 5 and the head 6.
  • the simulation device 21 includes a model selection unit 22, a model library 23, and a model calculation unit 24.
  • the model selection unit 22 has the same function as the model selection unit 12. Further, the model library 23 has the same function as the model library 13, and the model calculation unit 24 has the same function as the model calculation unit 14.
  • the model selection unit 22 stores the correspondence relationship information indicating the correspondence relationship between the abstraction degree setting and the model set.
  • the model set of correspondence information in the second embodiment includes a driver model, a machine model, and a controller model.
  • the model selection unit 22 selects a model set corresponding to the abstraction degree setting from the models stored in the model library 23 based on the abstraction degree setting given from the outside. That is, the model selection unit 22 selects a model suitable for the purpose of the simulation from the model library 23 based on the abstraction degree setting.
  • the model set selected by the model selection unit 22 is a combination of a driver model, a mechanical model, and a controller model.
  • the abstraction degree setting is input to the model selection unit 22 by the user of the simulation device 21.
  • the abstraction degree setting of the second embodiment one of the above-mentioned two types of options is specified.
  • the model library 23 stores a plurality of driver models having different abstractions and a plurality of machine models having different abstractions. Further, the model library 23 stores a plurality of controller models having different abstractions. Also in the second embodiment, the machine models M1 and M2 are software having a common interface.
  • the controller models C1 and C2 are models that simulate the operation of the controller 10A included in the mechanical system 20A.
  • the controller model C1 is a model that simulates the operation of the controller 10A with higher accuracy than the controller model C2.
  • the controller model C2 is a model that simulates the operation of the controller 10A more simply than the controller model C1.
  • the controller models C1 and C2 are models of the controller 10A included in the mechanical system 20A.
  • Examples of the controller 10A are a programmable logic controller, an industrial personal computer, a servo system controller and the like, as described above. After receiving the positioning operation completion signal of the stage 5, the controller 10A executes a sequence program for turning on the positioning start signal of the head 6.
  • the controller model C1 accurately simulates the processing corresponding to the sequence program executed by the controller 10A.
  • the controller model C1 executes a sequence program waiting for the positioning operation completion signal of the stage 5 at a constant processing cycle, and when the positioning operation completion signal of the stage 5 is obtained, turns on the positioning start signal of the head 6 in the next processing. Simulate the process of generating a position command.
  • the controller model C2 simplifies and simulates the processing executed by the controller 10A.
  • the controller model C2 simulates only the process of generating the position command of each motor.
  • the model calculation unit 24 reads the driver model, machine model, and controller model corresponding to the model set notified from the model selection unit 22 from the model library 23.
  • the model calculation unit 24 performs a simulation calculation of the motor driver, the machine 1, and the controller 10A by using the read driver model, the machine model, and the controller model.
  • the model calculation unit 24 calculates the model of the mechanical system 20A including the model set selected from the model library 23.
  • the model of the mechanical system 20A includes a motor model.
  • the model calculation unit 24 includes a driver model and a motor model corresponding to the X-axis 1a, a driver model and a motor model corresponding to the Y-axis 1b, a driver model and a motor model corresponding to the Z-axis 1c, and a mechanical model.
  • the model of the mechanical system 20A including the controller model.
  • the model selection unit 22 includes, for example, three driver models D1 corresponding to the X-axis 1a and the Y-axis 1b, a driver model D2 corresponding to the Z-axis 1c, and a machine model M1 based on the abstraction degree setting. Select. Further, the model selection unit 22 selects the controller model C2 based on, for example, the abstraction degree setting.
  • the operation of the simulation device 21 at this time is the same as the operation when the simulation device 11 of the first embodiment selects a simulation for the purpose of adjusting the parameters of the motor driver of the stage 5 as the abstraction degree setting. be.
  • the model selection unit 22 uses, for example, three driver models D2 corresponding to the X-axis 1a, the Y-axis 1b, and the Z-axis 1c, a mechanical model M2, and a controller model C1 based on the abstraction degree setting. select.
  • FIG. 5 is a diagram for explaining a sequence program used in a mechanical system in which the simulation apparatus according to the second embodiment simulates an operation.
  • FIG. 5 shows a procedure of processing executed by the sequence program.
  • Each process of the blocks BL10, BL20, and BL30 is implemented in the sequence program 25 shown in FIG. In the sequence program 25, it is assumed that the processing of one block is calculated for each calculation cycle of the controller 10A.
  • the controller 10A starts executing the sequence program 25, the positioning of the stage 5 is started (block BL10). In the sequence program 25, it is determined whether or not the positioning of the stage 5 is completed (block BL20).
  • the controller 10A does not proceed to the next process and waits until the positioning of the stage 5 is completed. That is, the block BL20 has a specification that does not transition to the processing of the next block until the positioning completion bit of the stage 5 is turned ON.
  • the controller 10A starts the positioning of the head 6 (block BL30).
  • the controller model C1 simulates the processing of the sequence program 25 shown in FIG. Specifically, when the controller model C1 simulates the processing of the block BL10, that is, when the positioning of the stage 5 is started, a position command is given to the driver models of the X-axis 1a and the Y-axis 1b that drive the stage 5. Be done.
  • the controller model C1 transitions to the processing of the block BL20.
  • the driver model of the X-axis 1a and the Y-axis 1b is the driver model D2
  • the mechanical model of the X-axis 1a and the Y-axis 1b is the mechanical model M2.
  • the controller model C1 does not simulate the precise vibration characteristics of the machine 1.
  • the positioning of the stage 5 is not completed until all the position commands to the stage 5 are issued. Therefore, in one calculation cycle, it is determined that the positioning of the stage 5 is completed in the block BL20. Not given.
  • the controller model C1 transitions to the processing of the block BL30 in the next calculation cycle of the controller 10A. As a result, the positioning of the head 6 is started.
  • the controller model C1 can accurately confirm the operation of the sequence program 25.
  • the controller model C1 simplifies the operation of the motor driver, the motor, and the machine 1, the calculation cost and the time cost required for the simulation can be kept small.
  • the user selects one of the purposes of a plurality of types of simulations, for example, two types, and inputs the purpose to the simulation device 21 as an abstraction degree setting.
  • the model selection unit 22 Based on the abstraction level setting, the model selection unit 22 has an appropriate level of abstraction so that the required amount of calculation is small while having the accuracy required for simulation from among the models stored in the model library 23. Is selected.
  • the model selection unit 22 when a simulation aimed at adjusting the parameters of the motor driver of the stage 5 is selected, the model selection unit 22 performs an elaborate driver model D1 and a mechanical model corresponding to the X-axis 1a and the Y-axis 1b that drive the stage 5. Select M1. Since the simulation accuracy of the sequence program 25 does not affect the adjustment of the motor driver, the model selection unit 22 selects the controller model C2 having a low simulation accuracy as the controller model for simulating the sequence program 25.
  • the simulation device 21 of the second embodiment lowers the simulation accuracy of the controller model for the parameter adjustment that does not need to simulate the sequence program 25 with high accuracy, the calculation cost of the simulation can be reduced. ..
  • the simulation device 21 uses a highly accurate model for the motor driver and the mechanical model when adjusting the parameters, it is possible to correctly adjust the parameters of the motor driver. That is, the simulation device 21 can execute a simulation using a model having an appropriate degree of abstraction to satisfy the purpose of the simulation while keeping the calculation cost and the time cost small.
  • the model selection unit 22 uses the sequence program 25 with high accuracy as a controller model that simulates the sequence program 25.
  • the controller model C1 that simulates the processing of is selected.
  • the model selection unit 22 selects the driver model D2 and the machine model M2 that perform simplified simulation processing.
  • the simulation device 21 of the second embodiment can confirm the processing by the sequence program 25 while keeping the calculation cost and the time cost small by simplifying the driver model and the machine model.
  • the simulation device 21 aims at the simulation based on the abstraction degree setting regardless of which abstraction degree setting is specified by the user, as in the first embodiment. It is possible to select an appropriate abstraction model according to the above. Therefore, the simulation device 21 can easily realize a simulation with good calculation efficiency.
  • the simulation device 21 extracts and simulates only a part of the blocks of the sequence program 25, the simulation can be simplified and the operation of the mechanical system 20A can be simulated.
  • Embodiment 3 Next, the third embodiment will be described with reference to FIGS. 6 and 7.
  • the simulation device In the first and second embodiments, the case where the machine model is stored in the model libraries 13 and 23 in advance has been described, but in the third embodiment, the simulation device generates the machine model and stores it in the model library.
  • FIG. 6 is a diagram showing the configuration of the simulation device according to the third embodiment.
  • components that achieve the same functions as the simulation device 11 of the first embodiment shown in FIG. 2 are designated by the same reference numerals, and duplicate description will be omitted.
  • the mechanical system handled as the target of the simulation in the third embodiment is the same mechanical system 20A as the first embodiment. That is, the simulation device 31 simulates the operation of the mechanical system 20A, similarly to the simulation device 11. Also in the third embodiment, one of the two simulation purposes is specified by the abstraction degree setting specified by the user.
  • the simulation device 31 includes a model selection unit 12, a model library 33, a model calculation unit 14, and a model generation unit 36.
  • the model library 33 holds a plurality of driver models with different abstractions and a plurality of machine models with different abstractions. Specifically, the model library 33 holds the driver models D1 and D2 and the mechanical models M1 to M3. As described above, the model library 33 of the third embodiment holds the machine model M3 generated by the model generation unit 36 in addition to the machine models M1 and M2 prepared in advance.
  • the model generation unit 36 generates a machine model based on the actual machine information input from the outside.
  • the actual machine information which is the data of the actual machine, is a signal obtained by actually operating the machine system 20A.
  • the actual machine information includes, for example, time-series data of motor positions of X-axis 1a, Y-axis 1b, and Z-axis 1c, and time-series data of stage position and head position.
  • Machine models M1 to M3 are software having a common interface as in the first embodiment.
  • the common interface of the mechanical models M1 to M3 has an input interface capable of acquiring the motor position of the X-axis 1a, the motor position of the Y-axis 1b, and the motor position of the Z-axis 1c. It shall be. Further, it is assumed that the common interface of the machine models M1 to M3 has an output interface for outputting information on the head position and the stage position.
  • the model generation unit 36 generates a machine model M3 that outputs time-series data of the stage position and the head position by inputting the time-series data of the motor positions of the X-axis 1a, the Y-axis 1b, and the Z-axis 1c.
  • the model generation unit 36 uses a machine learning technique such as a neural network or a support vector regression, or a system identification technique such as a prediction error method or a subspace method in order to obtain a relationship between an input and an output.
  • a machine learning technique such as a neural network or a support vector regression
  • a system identification technique such as a prediction error method or a subspace method
  • the model generation unit 36 uses a neural network for learning using the time-series data of the motor positions of the X-axis 1a, the Y-axis 1b, and the Z-axis 1c and the time-series data of the stage position and the head position as learning data. Do the action. That is, the model generation unit 36 is a machine learning device.
  • the model generation unit 36 has the functions of a state observation unit, a data acquisition unit, and a learning unit.
  • the state observation unit observes the time-series data of the motor positions of the X-axis 1a, Y-axis 1b, and Z-axis 1c as state variables, and the data acquisition unit acquires the time-series data of the stage position and the head position as teacher data. do.
  • the learning unit is the time-series data of the motor positions of the X-axis 1a, Y-axis 1b, and Z-axis 1c output from the state observation unit, and the time-series data of the stage position and the head position output from the data acquisition unit.
  • the machine model M3 is trained based on the data set created based on the combination.
  • the model generation unit 36 which is a machine learning device, may be a device connected to the simulation device 31 via a network and separate from the simulation device 31. Further, the model generation unit 36 may exist on the cloud server.
  • FIG. 7 is a diagram for explaining a neural network used by the simulation apparatus according to the third embodiment.
  • the neural network has an input layer X1, an intermediate layer Y1, and an output layer Z1.
  • Input data (i1, i2, ..., IM) of M M is a natural number
  • M is a natural number
  • N N is a natural number
  • output data (o1, o2, ..., ON) indicating the stage position and the head position are output.
  • weighting coefficients for each node of the input layer X1 to each node of the intermediate layer Y1 can be set independently, but in FIG. 7, these weighting coefficients are all represented as the same weighting coefficient W1.
  • weighting coefficients from each node of the intermediate layer Y1 to each node of the output layer Z1 are all expressed as the same weighting coefficient W2.
  • the weight coefficient W1 is multiplied by the output value of each node of the input layer X1, and the linear combination of the results obtained by the multiplication is input to each node of the intermediate layer Y1.
  • the weighting coefficient W2 is multiplied by the output value of each node of the intermediate layer Y1, and the linear combination of the results obtained by the multiplication is input to the node of the output layer Z1.
  • the output value may be calculated from the input value by a non-linear function such as a sigmoid function.
  • the output value may be a linear combination of the input values.
  • the model generation unit 36 uses the time-series data of the motor positions of the X-axis 1a, the Y-axis 1b, and the Z-axis 1c, and the time-series data of the stage position and the head position, and uses the weight coefficient W1 and the weight coefficient of the neural network. Calculate with W2.
  • the model generation unit 36 can calculate the weighting coefficient W1 and the weighting coefficient W2 of the neural network by using the error back propagation method or the gradient descent method. However, as long as the calculation method can obtain the weighting coefficients W1 and W2 of the neural network, the calculation method of the weighting coefficients W1 and W2 by the model generation unit 36 is not limited to the above method.
  • a mechanical model M3 is obtained in which the motor positions of the X-axis 1a, Y-axis 1b, and Z-axis 1c are input and the stage position and head position are output.
  • the simulation accuracy by the neural network can be arbitrarily set by changing the number of layers or the number of nodes of the neural network. That is, the model generation unit 36 can easily generate machine models of various abstractions to be fitted to the actual machine information by using various mathematical formulas as the learning model. This makes it possible to easily generate a plurality of machine models having different accuracy for the simulation device 31.
  • the learning by the model generation unit 36 is the first machine learning.
  • the model generation unit 36 registers the information in which the abstraction degree setting and the machine model M3 are associated with each other in the correspondence information of the model selection unit 12. As a result, the model selection unit 12 can select an appropriate machine model according to the purpose of the simulation based on the abstraction degree setting and the correspondence information. Further, the model generation unit 36 may notify the user that the machine model M3 has been generated and the abstraction degree setting corresponding to the machine model M3. The model generation unit 36 displays, for example, that the machine model M3 has been generated on the display device and the abstraction degree setting corresponding to the machine model M3.
  • the model selection unit 12 is not limited to the case of generating the machine model M3, but the machine models M1 to M3 such as the machine model M4 and the machine model M5 having different abstractions by changing the number of layers or the number of nodes of the neural network. You may generate a different mechanical model. These machine models M1 to M5 are generated as software having a common interface.
  • the output of the machine model M3 is not limited to the stage position and the head position.
  • the mechanical model M3 may use, for example, the temperature or sound of the mechanical system 20A as the output of the mechanical system 20A. In this way, the model generation unit 36 can set any of the information included in the actual machine information to the input and output of the machine model M3.
  • the model generation unit 36 is not limited to the actual machine information, and may use, for example, CAD data output by CAD (Computer Aided Design) software and the actual machine information for generating the machine model M3.
  • the CAD data is data having design information of the machine 1.
  • the model generation unit 36 may generate the machine model M3 based on the design information and the actual machine information.
  • a method of generating the differential equation of the machine model M3 based on the design information and determining the parameters of the differential equation based on the actual machine information is used. be.
  • the model generation unit 36 generates the machine model M3 based on the actual machine information, so that the model selection unit 12 can generate the machine model M3 even if the user does not prepare the machine model M3 in advance. You will be able to select the appropriate model from multiple models with different levels of abstraction. Therefore, even in the third embodiment, it is possible to easily realize a simulation with good calculation efficiency.
  • Embodiment 4 Next, the fourth embodiment will be described with reference to FIGS. 8 and 9.
  • the simulation device changes the abstraction degree of the machine model stored in the model library. Generate a mechanical model.
  • FIG. 8 is a diagram showing the configuration of the simulation device according to the fourth embodiment.
  • components that achieve the same functions as the simulation device 11 of the first embodiment shown in FIG. 2 are designated by the same reference numerals, and duplicate description will be omitted.
  • the mechanical system handled as the target of the simulation in the fourth embodiment is the same mechanical system 20A as the first embodiment. That is, the simulation device 41 simulates the operation of the mechanical system 20A in the same manner as the simulation device 11. Also in the fourth embodiment, one of the two simulation purposes is specified by the abstraction degree setting specified by the user.
  • the simulation device 41 includes a model selection unit 12, a model library 43, a model calculation unit 14, and a model simplification unit 47.
  • the model library 43 holds a plurality of driver models with different abstractions and a plurality of machine models with different abstractions. In the fourth embodiment, the case where the driver models D1 and D2 are stored in the model library 43 in advance will be described. Further, the model library 43 holds a machine model M1 that simulates the operation of the machine 1 with high accuracy, and a machine model M6 generated by the model simplification unit 47. The machine model M1 is the first machine model, and the machine model M6 is the second machine model.
  • the model simplification unit 47 generates a new model by simplifying the model read from the model library 43.
  • the model simplification unit 47 reads out the machine model M1 and registers the machine model M6 generated by simplifying the machine model M1 in the model library 43 as a new machine model will be described.
  • the model simplification unit 47 registers the information in which the abstraction degree setting and the machine model M6 are associated with each other in the correspondence information of the model selection unit 12. As a result, the model selection unit 12 can select an appropriate machine model according to the purpose of the simulation based on the abstraction degree setting and the correspondence information. Further, the model simplification unit 47 may notify the user that the machine model M6 has been generated and the abstraction degree setting corresponding to the machine model M6. The model simplification unit 47 displays, for example, the generation of the machine model M6 on the display device and the abstraction degree setting corresponding to the machine model M6.
  • Machine models M1 and M6 are software that has a common interface.
  • the common interface of the mechanical models M1 and M6 has an input interface capable of acquiring the motor position of the X-axis 1a, the motor position of the Y-axis 1b, and the motor position of the Z-axis 1c.
  • the common interface of the machine models M1 and M6 has an output interface for outputting information on the stage position and the head position.
  • FIG. 9 is a diagram for explaining a process in which the simulation apparatus according to the fourth embodiment generates a new model by simplifying the model.
  • the arithmetic circuit 91 for calculating the stage position and the head position among the arithmetic circuits included in the machine model M1 is shown as a block diagram.
  • the arithmetic circuit 96 for calculating the stage position and the head position among the arithmetic circuits included in the machine model M6 is shown as a block diagram.
  • the arithmetic circuit 91 of the machine model M1 includes a block 48a that calculates and outputs the stage position and a block 48b that calculates and outputs the head position.
  • the X-axis motor position which is the motor position of the X-axis 1a
  • the Y-axis motor position which is the motor position of the Y-axis 1b
  • the Z-axis motor position which is the motor position of the Z-axis 1c
  • the block 48a calculates and outputs the stage position based on the X-axis motor position, the Y-axis motor position, and the Z-axis motor position. Further, the block 48b calculates and outputs the head position based on the X-axis motor position, the Y-axis motor position, and the Z-axis motor position.
  • the calculation circuit 91 is a circuit in which the X-axis motor position and the Y-axis motor position affect the head position, and the Z-axis motor position, which is the Z-axis 1c motor position, interferes with the stage position.
  • the mechanical model M1 even if the Z-axis motor position is fixed, when the X-axis motor position or the Y-axis motor position is suddenly changed, vibration is transiently generated at the position of the head 6. It means that.
  • the mechanical model M1 even if the X-axis motor position and the Y-axis motor position are fixed, when the Z-axis motor position is suddenly changed, vibration is transiently generated at the position of the stage 5. It means that.
  • the mechanical model M1 can be said to be a highly accurate model that simulates interference vibration between orthogonal axes.
  • the model simplification unit 47 generates a machine model M6 simplified so as to ignore the influence of the above-mentioned interference vibration. Specifically, the model simplification unit 47 deletes the term including the Z-axis motor position from the calculation formula for calculating the stage position, and includes the X-axis motor position and the Y-axis motor position from the calculation formula for calculating the head position. Delete the term.
  • the arithmetic circuit 96 of the machine model M6 generated in this way includes a block 48c that calculates and outputs the stage position and a block 48d that calculates and outputs the head position.
  • the block 48c is a block that calculates the stage position from the X-axis motor position and the Y-axis motor position.
  • the block 48d is a block that calculates the head position only from the Z-axis motor position.
  • the model simplification unit 47 generates a new machine model M6 that executes the simplified simulation from the machine model M1 that executes the high-precision simulation.
  • the model simplification unit 47 performs simplification so as to ignore the interference vibration between the axes, but the simplification method is not limited to this method.
  • the model simplification unit 47 may perform simplification so as to ignore the vibration characteristics when calculating the stage position from the X-axis motor position, for example.
  • model simplification unit 47 may perform simplification such that the portion simulating heat generation is ignored from the machine model that simulates heat generation in addition to the vibration characteristics of the machine 1. Further, the model simplification unit 47 may simplify the machine model expressed by the finite element method in which the constituent elements of the machine 1 are flexible bodies to a multi-rigid body model which is a connection of rigid bodies.
  • the model simplification unit 47 simplifies the mechanical model, but the model simplification unit 47 may simplify the driver model, the motor model, or the controller model.
  • the model simplification unit 47 performs feedback control only for PID control from a driver model that performs detailed feedback control by adding a notch filter and a low-pass filter to, for example, PID (Proportional-Integral-Differential) control.
  • the driver model may be simplified.
  • the model simplification unit 47 generates a new machine model M6 having a different degree of abstraction. Therefore, even if the user does not prepare the machine model M6 in advance, the model library 43 can be used. , A plurality of machine models M1 and M6 having different abstractions can be held. That is, even if the degree of abstraction of the machine model registered by the user is only one type, the model simplification unit 47 can generate a plurality of simple machine models from one type of machine model. This eliminates the need for the user to simplify the machine model. Further, the user can select an appropriate model from the machine models M1 and M6. Therefore, even in the fourth embodiment, it is possible to easily realize a simulation with good calculation efficiency.
  • the model selection unit 12 selects the model set using the correspondence information associated with the model set corresponding to the abstraction degree setting, but in the fifth embodiment, the model selection unit is abstract. Select the model set corresponding to the degree setting based on machine learning.
  • FIG. 10 is a diagram showing the configuration of the simulation device according to the fifth embodiment.
  • components that achieve the same functions as the simulation device 11 of the first embodiment shown in FIG. 2 are designated by the same reference numerals, and duplicate description will be omitted.
  • the mechanical system handled as the target of the simulation in the fifth embodiment is the same mechanical system 20A as the first embodiment. That is, the simulation device 51 simulates the operation of the mechanical system 20A in the same manner as the simulation device 11. Also in the fifth embodiment, one of the two simulation purposes is specified by the abstraction degree setting specified by the user.
  • the simulation device 51 includes a model selection unit 52, a model library 13, and a model calculation unit 14.
  • the model selection unit 52 selects a model from the models stored in the model library 13 based on the abstraction degree setting input from the outside. At this time, the model selection unit 52 uses a total of four models including three driver models corresponding to the X-axis 1a, Y-axis 1b, and Z-axis 1c and one machine model from the model library 13 as a model set. select.
  • the model selection unit 52 learns the input / output relationship in which the abstraction degree setting is input and the four models corresponding to the abstraction degree setting are output.
  • the learning by the model selection unit 52 is the second machine learning.
  • the model selection unit 52 is a machine learning device having the same configuration as the model generation unit 36. That is, the model selection unit 52 has the functions of a state observation unit, a data acquisition unit, and a learning unit.
  • the state observation unit observes the abstraction degree setting as a state variable
  • the data acquisition unit acquires the information of the model set associated with each abstraction degree setting as teacher data.
  • the learning unit is associated with the abstraction level setting and the abstraction level setting based on the abstraction level setting output from the state observation unit and the data set created based on the model set output from the data acquisition unit. Learn the relational expression with the appropriate model.
  • the model selection unit 52 which is a machine learning device, may be a device connected to the simulation device 51 via a network and separate from the simulation device 51. Further, the model selection unit 52 may exist on the cloud server.
  • the model selection unit 52 uses, for example, a neural network, support vector regression, or the like in order to obtain the relationship between the input and the output.
  • a neural network for example, a neural network, support vector regression, or the like.
  • the model selection unit 52 performs machine learning using a neural network using a plurality of abstraction degree settings and information of a model set associated with each of these abstraction degree settings as learning data. It is assumed that the purpose of the simulation is set in the abstraction degree setting of the fifth embodiment. Further, in the fifth embodiment, in order to facilitate machine learning, it is assumed that the information indicating the purpose of the simulation is information that can be divided into several elements.
  • the information indicating the purpose of the simulation can be divided into the following three elements.
  • the first element which is an element of the first element, is an axis whose operation is confirmed in the simulation.
  • An example of the first element is "X-axis 1a", "Y-axis 1b", “Z-axis 1c", or "all axes”.
  • the second element which is the second element, is the operation to be confirmed in the simulation.
  • An example of the second element is "operation range confirmation", “power consumption confirmation”, or "control parameter adjustment”.
  • the third element which is the third element, is the accuracy required for simulation.
  • An example of the third element is "high precision” or "low precision”.
  • FIG. 11 is a diagram for explaining a neural network used by the simulation apparatus according to the fifth embodiment.
  • the neural network has an input layer X2, an intermediate layer Y2, and an output layer Z2.
  • Three input data (e1, e2, e3) of the first element, the second element, and the third element are input to the input layer X2.
  • a total of four output data (m1, m2, m3, m4) consisting of three driver models corresponding to the X-axis 1a, Y-axis 1b, and Z-axis 1c and one mechanical model. ) Is output.
  • weighting coefficients for each node of the input layer X2 to each node of the intermediate layer Y2 can be set independently, but in FIG. 11, these weighting coefficients are all represented as the same weighting coefficient W3. Similarly, the weighting coefficients from each node of the intermediate layer Y2 to each node of the output layer Z2 are all expressed as the same weighting coefficient W4.
  • the weight coefficient W3 is multiplied by the output value of each node of the input layer X2, and the linear combination of the results obtained by the multiplication is input to each node of the intermediate layer Y2.
  • the weighting coefficient W4 is multiplied by the output value of each node of the intermediate layer Y2, and the linear combination of the results obtained by the multiplication is input to the node of the output layer Z2.
  • the output value may be calculated from the input value by a non-linear function such as a sigmoid function.
  • the output value may be a linear combination of the input values.
  • the model selection unit 52 calculates the weighting coefficients W3 and W4 of the neural network using a plurality of abstraction degree settings and the information of the model set associated with each of these abstraction degree settings as learning data.
  • the model selection unit 52 can calculate the weighting coefficients W3 and W4 of the neural network by using the error back propagation method or the gradient descent method.
  • the calculation method of the weighting coefficients W3 and W4 by the model selection unit 52 is not limited to the above method.
  • the weighting coefficient of the neural network is determined, the relational expression between the abstraction degree setting and the appropriate model associated with the abstraction degree setting is obtained.
  • learning using a neural network by the model selection unit 52 is not limited to the above example.
  • model selection unit 52 By the operation of the model selection unit 52 described above, a neural network that outputs four models with the abstraction degree setting as an input can be obtained.
  • the model selection unit 52 machine-learns an appropriate model set corresponding to the abstraction degree setting, an appropriate model set corresponding to the abstraction degree setting newly input by the user is selected. It can be selected from the model library 13. Therefore, even in the fifth embodiment, it is possible to easily realize a simulation with good calculation efficiency.
  • Embodiment 6 Next, the sixth embodiment will be described with reference to FIGS. 12 and 13.
  • the simulation device 11 that simulates the operation of the mechanical system 20A that drives the stage 5 and the head 6 has been described.
  • the simulation device that simulates the operation of the mechanical system different from the mechanical system 20A has been described. Will be explained.
  • a simulation device that simulates the operation of a mechanical system that conveys a sheet material by roll-to-roll will be described.
  • FIG. 12 is a diagram showing a configuration of a mechanical system whose operation is simulated by the simulation apparatus according to the sixth embodiment.
  • the mechanical system 20B includes a machine 2 driven by a motor and a controller 10B for controlling the machine 2. Further, the mechanical system 20B includes a stamp 7 for printing on the sheet material Ws.
  • the two directions in the plane parallel to the printing surface of the sheet material Ws by the stamp 7 and orthogonal to each other are the X direction and the Y direction. Further, the direction orthogonal to the X direction and the Y direction is defined as the Z direction.
  • the machine 2 has a three-axis motor including a winding shaft 2a extending in the X direction, a winding shaft 2b extending in the X direction, and a Z axis 2c extending in the Z direction.
  • the machine 2 controls the transfer of the sheet material Ws by the unwinding shaft 2a and the winding shaft 2b.
  • the sheet material Ws is conveyed while the feeding operation and the pause of the sheet material Ws are repeated, and the stamp 7 attached to the Z-axis 2c by the operation of the Z-axis 2c when the sheet material Ws is paused is the sheet material.
  • Print processing is performed on Ws.
  • a motor driver (not shown) is mounted on the mechanical system 20B.
  • the controller 10B controls the motor driver, and the motor driver drives the motor of each axis.
  • Examples of the controller 10B are a programmable logic controller, an industrial personal computer, a servo system controller and the like.
  • the sheet material Ws is wound around the unwinding shaft 2a and the take-up shaft 2b, and moves in the Y direction by rotating the unwinding shaft 2a and the take-up shaft 2b.
  • the stamp 7 moves in the Z direction by the operation of the Z axis 2c, and prints on the sheet material Ws that moves in the Y direction.
  • the controller 10B controls the position of the sheet material Ws in the Y direction by controlling the operation of the unwinding shaft 2a and the operation of the winding shaft 2b. Further, the controller 10B controls the position of the stamp 7 attached to the Z-axis 2c in the Z direction by controlling the operation of the Z-axis 2c.
  • FIG. 13 is a diagram showing the configuration of the simulation device according to the sixth embodiment.
  • components that achieve the same functions as the simulation device 11 of the first embodiment shown in FIG. 2 are designated by the same reference numerals, and duplicate description will be omitted.
  • the simulation device 71 executes the same simulation as the simulation device 11, but the type of the mechanical system to be simulated differs between the simulation device 71 and the simulation device 11.
  • the simulation device 71 simulates the operation of the mechanical system 20B. Also in the sixth embodiment, one of the two simulation purposes is specified by the abstraction degree setting specified by the user.
  • the simulation device 71 includes a model selection unit 72, a model library 73, and a model calculation unit 74. Comparing the simulation device 71 and the simulation device 11, the simulation device 11 simulates the operation of the mechanical system 20A, whereas the simulation device 71 simulates the operation of the mechanical system 20B.
  • the abstraction level setting received by the model selection unit 72 of the simulation device 71 is information indicating the abstraction level of the simulation for the mechanical system 20B. Similar to the model selection unit 12, the model selection unit 72 selects a model corresponding to the abstraction degree setting. The model selection unit 72 notifies the model calculation unit 74 of the selected model set. Further, the model library 73 stores a plurality of driver models having different abstractions and a plurality of machine models having different abstractions, as in the model library 13.
  • the driver models stored in the model library 73 are the driver models D11 and D12 will be described. Further, a case where the machine models stored in the model library 73 are two machine models M11 and M12 will be described.
  • the driver models D11 and D12 are models that simulate the operation of the motor driver, similar to the driver models D1 and D2.
  • the driver model D11 is a model that simulates the operation of the motor driver with higher accuracy than the driver model D12.
  • the driver model D11 simulates the functions of, for example, a feedforward controller, a position feedback controller, a speed feedback controller, a current controller, and the like.
  • the driver model D12 is a model that simulates the operation of the motor driver more simply than the driver model D11.
  • the driver model D12 for example, simulates only the function of the feedforward controller.
  • the mechanical models M11 and M12 are the same models as the mechanical models M1 and M2.
  • the machine models M11 and M12 simulate the operation of the machine 2.
  • the machine model M11 is a model that simulates the operation of the machine 2 with higher accuracy than the machine model M12.
  • the machine model M11 simulates, for example, the vibration characteristics of the machine 2.
  • the machine model M12 is a model that simulates the operation of the machine 2 more simply than the machine model M11.
  • the machine model M12 simulates, for example, the printing position of the stamp 7 on the sheet material Ws. Details of the driver models D11 and D12 and the mechanical models M11 and M12 will be described later.
  • two types of options are prepared as a simulation.
  • two types of simulation options are prepared: a simulation for confirming the print position and a simulation for adjusting the servo parameters of the unwinding shaft 2a.
  • the plurality of machine models M11 and M12 held in the model library 73 are software having a common interface like the machine models M1 and M2 of the first embodiment.
  • an object that summarizes information such as the sheet position, which is the position of the sheet material Ws, the printing position, the external force applied to the motor, and the heat generation of the machine 2 is defined, and this object is output to the common interface of the machine model. May be.
  • the common interface of the mechanical models M11 and M12 has an input interface capable of acquiring the motor position of the unwinding shaft 2a, the motor position of the take-up shaft 2b, and the motor position of the Z-axis 2c. It is assumed that it is.
  • the machine model M11 is, for example, a model that considers the dynamics of the machine 2 and simulates the tension of the sheet material Ws.
  • the machine model M12 for example, changes the sheet position and the printing position only by kinematics based on the motor position without considering the dynamics of the machine 2, and simulates the operating range of the sheet position and the printing position.
  • the machine model M12 may simulate only one of the sheet position and the print position.
  • the model calculation unit 74 reads out the driver model and the machine model corresponding to the model set notified from the model selection unit 72 from the model library 73.
  • the model calculation unit 74 performs a simulation calculation of the motor driver and the machine 2 by using the read driver model and the machine model.
  • the model calculation unit 74 calculates the model of the mechanical system 20B including the model selected from the model library 73.
  • the model of the mechanical system 20B includes a motor model and a controller model.
  • the motor model is a model that simulates the operation of the motor
  • the controller model is a model that simulates the operation of the controller 10B.
  • the model calculation unit 74 includes a driver model and a motor model corresponding to the unwinding shaft 2a, a driver model and a motor model corresponding to the take-up shaft 2b, and a driver model and a motor model corresponding to the Z-axis 2c.
  • the model of the mechanical system 20B includes a mechanical model and a controller model that gives a position command of the motor to the motor driver.
  • the model calculation unit 74 may acquire the motor model and the controller model from the model library 73, or may acquire the motor model and the controller model from other than the model library 73.
  • the model calculation unit 74 outputs the simulation result to an external device such as a display device. As a result, the display device displays the simulation result.
  • the model selection unit 72 sets the unwinding axis 2a and the winding axis 2a based on the abstraction degree setting and the correspondence information.
  • the driver model D12 is selected as the driver model corresponding to the take-axis 2b and the Z-axis 2c. Further, the model selection unit 72 selects the machine model M12 as the machine model.
  • the model calculation unit 74 uses these selected models, that is, the driver model D12 and the machine model M12, to execute a simulation that simulates the transfer of the sheet material Ws and the operation of the stamp 7. At this time, the model calculation unit 74 inputs the position command of the unwinding shaft 2a generated by the controller model to the driver model D12 of the unwinding shaft 2a. In this case, the driver model D12 simulates and controls the motor position of the unwinding shaft 2a only by feedforward control. The model calculation unit 74 inputs the position command generated by the controller model to the driver model D12 for the take-up shaft 2b and the Z-axis 2c as well as the take-up shaft 2a.
  • the driver model D12 simulates and controls the motor positions of the take-up shaft 2b and the Z-axis 2c only by feedforward control.
  • the model calculation unit 74 calculates the motor positions of the unwinding shaft 2a, the winding shaft 2b, and the Z-axis 2c using the driver model D12.
  • the model calculation unit 74 calculates the machine model M12 by inputting the motor positions of the unwinding shaft 2a, the take-up shaft 2b, and the Z-axis 2c calculated in this way.
  • the transfer position of the sheet material Ws and the position of the stamp 7 are calculated only by kinematics from the motor position of each axis.
  • the model calculation unit 74 can simulate the position of the sheet material Ws to be printed by the stamp 7.
  • the model calculation unit 74 outputs the transport position of the sheet material Ws and the position of the stamp 7 as a result of the simulation.
  • the driver model is used as the driver model corresponding to the unwinding shaft 2a and the take-up shaft 2b. It is assumed that the selection of D11 is predetermined.
  • the driver model D12 is selected as the driver model corresponding to the Z-axis 2c, and the machine is used as the machine model. It is assumed that the model M11 is selected in advance.
  • the model selection unit 72 sets the unwinding shaft 2a and the unwinding shaft 2a based on the abstraction degree setting and the correspondence information.
  • Two driver models D11 are selected as the driver models corresponding to the axis 2b.
  • the model selection unit 72 selects the driver model D12 as the driver model corresponding to the Z-axis 2c.
  • the model selection unit 72 selects the machine model M11 as the machine model.
  • the model calculation unit 74 executes a simulation that simulates the movement of the head position using these selected models, that is, the driver models D11 and D12 and the machine model M11. At this time, the model calculation unit 74 inputs the position command of the unwinding shaft 2a generated by the controller model to the driver model D11 of the unwinding shaft 2a.
  • the driver model D11 simulates and controls the motor position by the feedforward controller, the position feedback controller, the speed feedback controller, and the current controller.
  • the machine 2 is equipped with, for example, a PI controller as a position feedback controller and a speed feedback controller.
  • the respective proportional gain and integral gain are control parameters, and the position control performance of the motor of the unwinding shaft 2a is changed by changing these control parameters.
  • the driver model of the take-up shaft 2b is the driver model D11, so that the position control performance of the motor of the take-up shaft 2b is changed based on the control parameters. Further, since the motor driver model of the Z-axis 2c is the driver model D12, the motor position is controlled only by feedforward control.
  • the machine model the machine model M11 that simulates the tension of the sheet material Ws is selected. Therefore, the tension of the sheet material Ws fluctuates depending on the operation of the motor. Therefore, the model calculation unit 74 outputs the tension of the sheet material Ws and the position of the stamp 7 as a simulation result. As a result, the user can confirm the tension fluctuation of the sheet material Ws. Further, the user can adjust the control parameters of the unwinding shaft 2a and the take-up shaft 2b so that the tension fluctuation of the sheet material Ws does not occur while confirming the tension fluctuation of the sheet material Ws which is the simulation result.
  • the user selects one of the purposes of a plurality of types of simulations, for example, two types, and inputs the purpose to the simulation device 71 as an abstraction degree setting.
  • the model selection unit 72 Based on the abstraction degree setting and the correspondence information, the model selection unit 72 has the accuracy required for the simulation from the models stored in the model library 73, and the required calculation amount is smaller than the predetermined amount. You have selected a model with the appropriate degree of abstraction.
  • the model selection unit 72 selects the machine model M12 and the driver model D12.
  • the mechanical model M12 calculates the transfer position of the sheet material Ws and the position of the stamp 7 corresponding to the motor position based only on kinematics. Since this mechanical model M12 does not include the influence of dynamics such as external force on the motor position, it is not necessary to simulate controlling the motor position by feedback control. Therefore, when the machine model M12 is selected, the model selection unit 72 selects the simple driver model D12 having only feedforward control.
  • the simulation device 71 can confirm the print position at a very small calculation cost as compared with the case of calculating the differential equation when executing the simulation of a precise model. That is, the simulation device 71 can execute a simulation using a model having an appropriate degree of abstraction to satisfy the purpose of the simulation while keeping the calculation cost small.
  • the model selection unit 72 performs a detailed simulation as a driver model corresponding to the unwinding shaft 2a and the take-up shaft 2b that convey the sheet. Select the driver model D11 to execute. Further, the model selection unit 72 selects the machine model M11 that executes a precise simulation as the machine model.
  • the reason for selecting a detailed model for the take-up shaft 2b is that the take-up shaft 2a and the take-up shaft 2b interfere with each other via the sheet material Ws, so that the operation of the take-up shaft 2b is ignored when adjusting the take-up shaft 2a. Because it cannot be done.
  • the model selection unit 72 selects the driver model D12, which is a simple driver model, for the driver model of the Z-axis 2c, which does not affect the control performance of the motor drivers of the unwinding shaft 2a and the take-up shaft 2b.
  • the simulation device 71 uses a precise model for the operation of the unwinding shaft 2a, the winding shaft 2b, and the sheet material Ws for the simulation, the user can adjust the parameters accurately. ..
  • the elaborate model in this case is a model with a large amount of calculation, but the simulation device 71 simplifies the operation of the Z-axis 2c, which does not need to be considered for the adjustment of the control parameters of the motor driver of the unwinding shaft 2a.
  • the simulation device 71 can reduce the amount of calculation for the simulation of the operation of the Z-axis 2c. That is, the simulation device 71 can execute a simulation using a model having an appropriate degree of abstraction to satisfy the purpose of the simulation while keeping the calculation cost small.
  • the simulation device 71 can select an appropriate abstraction degree model according to the purpose of the simulation based on the abstraction degree setting. , Simulation with good calculation efficiency can be easily realized.
  • the mechanical system 20B may be a system in which the motor driver of the take-up shaft 2b is speed-controlled and the motor driver of the take-up shaft 2a is torque-controlled.
  • the hardware configuration of the simulation devices 11,21,31,41,51,71 will be described. Since the simulation devices 11,21,31,41,51,71 have the same hardware configuration, the hardware configuration of the simulation device 11 will be described here.
  • FIG. 14 is a diagram showing an example of a hardware configuration that realizes the simulation apparatus according to the first embodiment.
  • the simulation device 11 can be realized by an input device 300, a processor 100, a memory 200, and an output device 400.
  • An example of the processor 100 is a CPU (Central Processing Unit, central processing unit, processing unit, arithmetic unit, microprocessor, microcomputer, DSP (Digital Signal Processor)) or system LSI (Large Scale Integration).
  • Examples of the memory 200 are RAM (Random Access Memory) and ROM (Read Only Memory).
  • the simulation device 11 is realized by the processor 100 reading and executing a computer-executable simulation program for executing the operation of the simulation device 11 stored in the memory 200. It can be said that the simulation program, which is a program for executing the operation of the simulation device 11, causes the computer to execute the procedure or method of the simulation device 11.
  • the simulation program executed by the simulation device 11 has a modular configuration including a model selection unit 12 and a model calculation unit 14, which are loaded on the main storage device and generated on the main storage device. Ru.
  • the input device 300 receives the abstraction degree setting and sends it to the processor 100.
  • the memory 200 stores the model library 13 and the like.
  • the driver models D1 and D2 and the mechanical models M1 and M2 are stored in the model library 13 stored in the memory 200. Further, the memory 200 is used as a temporary memory when the processor 100 executes various processes.
  • the output device 400 outputs the simulation result calculated by the model calculation unit 14 to a monitor or the like.
  • the simulation device 11,21,31,41,51,71 is realized by one computer, but the simulation device 11,21,31,41,51,71 is realized by a plurality of computers. It is also good.
  • the simulation device 31 may be executed by two computers, and the program including the model calculation unit 14 and the program including the model generation unit 36 may be executed by different computers.
  • the simulation device 41 may be realized by two computers, and the program including the model calculation unit 14 and the program including the model simplification unit 47 may be executed by different computers.
  • the simulation device 51 may be realized by two computers, and the program including the model calculation unit 14 and the program including the model selection unit 52 may be executed by different computers.
  • the simulation program is a file in an installable format or an executable format, and may be stored in a computer-readable storage medium and provided as a computer program product. Further, the simulation program may be provided to the simulation device 11 via a network such as the Internet. It should be noted that some of the functions of the simulation device 11 may be realized by dedicated hardware such as a dedicated circuit, and some may be realized by software or firmware.
  • the configuration shown in the above embodiments is an example, and can be combined with another known technique, can be combined with each other, and does not deviate from the gist. It is also possible to omit or change a part of the configuration.
  • 1,2 Machine 1a X-axis, 1b Y-axis, 1c, 2c Z-axis, 2a unwinding shaft, 2b take-up shaft, 5 stage, 6 head, 7 stamp, 10A, 10B controller, 11,21,31,41 , 51,71 simulation device, 12,22,52,72 model selection unit, 13,23,33,73 model library, 14,24,74 model calculation unit, 20A, 20B mechanical system, 25 sequence program, 36 model generation Part, 47 model simplification part, 48a, 48b, 48c, 48d block, 91,96 arithmetic circuit, 100 processor, 200 memory, 300 input device, 400 output device, C1, C2 controller model, D1, D2, D11, D12 Driver model, M1 to M6, M11, M12 machine model, Wp work, Ws sheet material.

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Automation & Control Theory (AREA)
  • Feedback Control In General (AREA)

Abstract

モータを備えた機械と、モータを制御するモータドライバと、モータドライバを制御するコントローラとを具備した機械システムの動作を、機械の動作を模擬する機械モデルと、モータドライバの動作を模擬するドライバモデルとを用いて模擬するシミュレーションプログラムであって、シミュレーションの抽象度が設定された抽象度設定に基づいて、機械モデルの候補と、ドライバモデルの候補とを保持するモデルライブラリ(13)から、シミュレーションに用いる機械モデルとドライバモデルとを選択するモデル選択ステップと、選択された機械モデルおよびドライバモデルを用いて機械システムの動作を模擬するモデル演算ステップと、をコンピュータに実行させ、1つの機械を異なる抽象度で模擬する複数の機械モデルが機械モデルの候補に含まれるか、または1つのモータドライバを異なる抽象度で模擬する複数のドライバモデルがドライバモデルの候補に含まれている。

Description

シミュレーションプログラム、シミュレーション装置、およびシミュレーション方法
 本開示は、機械の動作およびモータドライバの動作の少なくとも一方の動作を模擬するシミュレーションプログラム、シミュレーション装置、およびシミュレーション方法に関する。
 モータによって駆動される機械が所望の動作を実行するためには、機械の構成を決める設計パラメータ、モータを制御するための制御パラメータなどのパラメータの調整が必要となる。これらのパラメータの調整のために機械の試作と試験動作を繰り返すとなると膨大な手間、時間、および費用が掛かる。このため、機械の動作を模擬するシミュレーション装置による数値計算の計算結果を用いてパラメータが調整されている。
 機械の動作をシミュレーションするためには、ソフトウェア上で機械の動作を模擬するためのモデルが必要となる。さらに、用途ごとに仕様の異なる機械は多種多様であり、機械のモデルも仕様に応じて作成される必要がある。例えば、パラメータの調整を目的とするシミュレーションに用いられるモデルには精度が求められるが、機械全体を高い精度で模擬するモデルを用いたシミュレーションには膨大な計算コストが掛かる。このため、シミュレーションの目的に応じて必要な部分は高精度に模擬し、その他の部分を簡略化するといったように部分毎に適切な抽象度のモデルが用いられる。
 特許文献1に記載のシミュレータは、モータを制御するモータドライバ、センサ信号を入力するためのセンサ信号ユニットなどのモデルを作成しておき、これらのモデルを組み合わせることで種々の機械に対してモデルの作成を容易化している。
国際公開第2008/120304号
 しかしながら、上記特許文献1の技術では、構成の異なる機械に対してモデルを作成することができるものの、1つの機械に対して抽象度の異なるモデルを用いることはできなかった。このため、上記特許文献1の技術の場合、シミュレーションしたい内容が変わるたびに、ユーザが適切な抽象度のモデルを作成する必要があり、モデルの作成に時間および手間がかかるので、計算効率の良いシミュレーションを簡易的に実現できないという問題があった。
 本開示は、上記に鑑みてなされたものであって、計算効率の良いシミュレーションを簡易的に実現することができるシミュレーションプログラムを得ることを目的とする。
 上述した課題を解決し、目的を達成するために、本開示は、モータを備えるとともにモータによって駆動される機械と、モータを制御するモータドライバと、モータドライバを制御するコントローラとを具備した機械システムの動作を、機械の動作を模擬する機械モデルと、モータドライバの動作を模擬するドライバモデルとを用いて模擬するシミュレーションプログラムであって、機械モデルの候補と、ドライバモデルの候補とを保持するモデルライブラリから、機械システムの動作を模擬する際のシミュレーションの抽象度が設定された情報である抽象度設定に基づいて、機械の動作を模擬する際に用いる機械モデルと、モータドライバの動作を模擬する際に用いるドライバモデルとを選択するモデル選択ステップをコンピュータに実行させる。また、シミュレーションプログラムは、モデル選択ステップで選択した機械モデルおよびドライバモデルを用いて機械システムの動作を模擬するモデル演算ステップをコンピュータに実行させる。機械モデルの候補およびドライバモデルの候補の少なくとも一方は複数であり、機械モデルの候補が複数である場合には、機械モデルの候補には、1つの機械を異なる抽象度で模擬する複数の機械モデルが含まれ、ドライバモデルの候補が複数である場合には、ドライバモデルの候補には、1つのモータドライバを異なる抽象度で模擬する複数のドライバモデルが含まれている。
 本開示にかかるシミュレーションプログラムは、計算効率の良いシミュレーションを簡易的に実現することができるという効果を奏する。
実施の形態1にかかるシミュレーション装置によって動作がシミュレーションされる機械システムの構成を示す図 実施の形態1にかかるシミュレーション装置の構成を示す図 実施の形態1に係るシミュレーション装置によるシミュレーションの処理手順を示すフローチャート 実施の形態2にかかるシミュレーション装置の構成を示す図 実施の形態2にかかるシミュレーション装置が動作を模擬する機械システムで用いられるシーケンスプログラムを説明するための図 実施の形態3にかかるシミュレーション装置の構成を示す図 実施の形態3にかかるシミュレーション装置が用いるニューラルネットワークを説明するための図 実施の形態4にかかるシミュレーション装置の構成を示す図 実施の形態4にかかるシミュレーション装置がモデルの簡略化によって新たなモデルを生成する処理を説明するための図 実施の形態5にかかるシミュレーション装置の構成を示す図 実施の形態5にかかるシミュレーション装置が用いるニューラルネットワークを説明するための図 実施の形態6にかかるシミュレーション装置によって動作がシミュレーションされる機械システムの構成を示す図 実施の形態6にかかるシミュレーション装置の構成を示す図 実施の形態1にかかるシミュレーション装置を実現するハードウェア構成例を示す図
 以下に、本開示の実施の形態にかかるシミュレーションプログラム、シミュレーション装置、およびシミュレーション方法を図面に基づいて詳細に説明する。
実施の形態1.
 図1は、実施の形態1にかかるシミュレーション装置によって動作がシミュレーションされる機械システムの構成を示す図である。実施の形態1では、シミュレーション装置が、図1に示す3軸のモータを有する機械システム20Aの動作を模擬する処理であるシミュレーションを実行する場合について説明する。
 機械システム20Aは、モータで駆動される機械1と、機械1を制御するコントローラ10Aとを備えている。また、機械1は、ステージ5と、ヘッド6とを有している。以下の説明では、ステージ5の上面と平行な面内の2つの方向であって互いに直交する2つの方向をX方向およびY方向とする。また、X方向およびY方向に直交する方向をZ方向とする。
 機械1は、X方向に延びるX軸1aと、Y方向に延びるY軸1bと、Z方向に延びるZ軸1cとからなる3軸のモータを有している。
 ステージ5は、X軸1aおよびY軸1bに接続されており、X軸1aの動作およびY軸1bの動作によって、XY平面内を移動する。ヘッド6は、Z軸1cに接続されており、Z軸1cの動作によって、Z軸1c方向に移動する。
 コントローラ10Aは、X軸1aの動作およびY軸1bの動作を制御することによって、ステージ5のX方向およびY方向の位置を制御する。また、コントローラ10Aは、Z軸1cの動作を制御することによって、Z軸1cの先端に取り付けられたヘッド6のZ方向の位置を制御する。機械1は、ステージ5上に載置されたワークWpに対し、ヘッド6によって加工を施す。
 また、機械システム20Aには、モータドライバ(図示せず)が搭載されている。機械システム20Aでは、コントローラ10Aが、モータドライバを制御し、モータドライバが各軸のモータを駆動および制御する。コントローラ10Aの例は、プログラマブルロジックコントローラ、産業用パーソナルコンピュータ、サーボシステムコントローラなどである。
 図2は、実施の形態1にかかるシミュレーション装置の構成を示す図である。シミュレーション装置11は、機械システム20Aの動作を模擬するコンピュータである。
 シミュレーション装置11は、モデル選択部12と、モデルライブラリ13と、モデル演算部14とを備えている。モデル選択部12は、外部から与えられる抽象度設定に基づいて、モデルライブラリ13に格納されているモデルの候補の中から抽象度設定に対応するモデルを選択する。
 抽象度設定は、シミュレーションの抽象度を示す情報である。換言すると、抽象度設定は、予め用意されたシミュレーションの選択肢の中から1つを選択するための情報である。すなわち、抽象度設定には、モデルの抽象度を決定する情報が含まれている。抽象度設定は、シミュレーション装置11のユーザによってモデル選択部12に入力される。
 抽象度設定は、シミュレーションの目的を示す情報であってもよいし、抽象度を数値で示した情報であってもよい。抽象度設定が抽象度を数値で示した情報である場合、抽象度の数値が大きいほどシミュレーションの抽象度が高く、簡略化されたシミュレーションに対応する。なお、抽象度設定は、シミュレーションの用途を示す情報であってもよい。
 モデル選択部12は、抽象度設定と、選択するモデルとの対応関係を示す対応関係情報を記憶しておく。モデル選択部12が選択するモデルは、シミュレーションの目的に対応するモデルである。したがって、対応関係情報は、抽象度設定と、シミュレーションの目的に対応するモデルとが対応付けされた情報であるともいえる。モデル選択部12は、対応関係情報に基づいて、抽象度設定に対応するモデルを選択する。
 モデルライブラリ13は、複数の異なる抽象度のドライバモデルを記憶しておく。実施の形態1では、モデルライブラリ13が記憶しておくドライバモデルがドライバモデルD1,D2の2つである場合について説明する。
 ドライバモデルD1,D2は、モータドライバの動作を模擬するモデルである。ドライバモデルD1は、ドライバモデルD2よりも高精度にモータドライバの動作を模擬するモデルである。ドライバモデルD1は、例えば、フィードフォワード制御器、位置フィードバック制御器、速度フィードバック制御器、電流制御器などの機能を模擬する。また、ドライバモデルD2は、ドライバモデルD1よりも簡易的にモータドライバの動作を模擬するモデルである。ドライバモデルD2は、例えば、フィードフォワード制御器の機能のみを模擬する。
 また、モデルライブラリ13は、複数の異なる抽象度の機械モデルを記憶しておく。実施の形態1では、モデルライブラリ13が記憶しておく機械モデルが機械モデルM1,M2の2つである場合について説明する。
 機械モデルM1,M2は、機械1の動作を模擬するモデルである。機械モデルM1は、機械モデルM2よりも高精度に機械1の動作を模擬するモデルである。機械モデルM1は、例えば、機械1の振動特性などを模擬する。また、機械モデルM2は、機械モデルM1よりも簡易的に機械1の動作を模擬するモデルである。機械モデルM2は、例えば、ステージ5およびヘッド6の動作範囲を模擬する。ドライバモデルD1,D2、および機械モデルM1,M2の詳細については後述する。
 なお、モデル選択部12は、ドライバモデルおよび機械モデルのうち、少なくとも一方のモデルを選択すればよい。モデル選択部12は、例えば、ドライバモデルのみを選択してもよいし、機械モデルのみを選択してもよい。換言すると、モデルライブラリ13が保持している機械モデルの候補およびドライバモデルの候補の少なくとも一方は複数である。機械モデルの候補が複数である場合には、機械モデルの候補には、1つの機械を異なる抽象度で模擬する複数の機械モデルが含まれている。ドライバモデルの候補が複数である場合には、ドライバモデルの候補には、1つのモータドライバを異なる抽象度で模擬する複数のドライバモデルが含まれている。
 モデル選択部12は、複数のドライバモデルの中からドライバモデルのみを選択する場合には、固定された1つの機械モデルを選択する。一方、モデル選択部12は、複数の機械モデルの中から機械モデルのみを選択する場合には、固定された1つのドライバモデルを選択する。
 また、モデル選択部12は、ドライバモデルと機械モデルとの組み合わせを選択してもよい。この場合、モデル選択部12は、抽象度設定と、選択するモデルの組み合わせとの対応関係を示す対応関係情報を記憶しておく。実施の形態1では、モデル選択部12が、ドライバモデルと機械モデルとの組み合わせを選択する場合について説明する。以下の説明では、ドライバモデルと機械モデルとの組み合わせを、モデル組という場合がある。モデル選択部12は、モデルライブラリ13から選択したモデル組をモデル演算部14に通知する。
 モデル組は、シミュレーションの目的に対応している。実施の形態1では、シミュレーションとして2種類の選択肢が用意されている場合について説明する。シミュレーション装置11は、例えば、機械システム20Aの可動部の可動範囲を確認するためのシミュレーションを実行したい場合には、可動部を駆動するモータ、およびモータを駆動するモータドライバのモデルが必要となる。この場合のシミュレーション装置11は、機微な振動特性、モータの制御応答特性まで高精度に模擬する必要は無く、モータのモデル、ドライバモデル、および機械モデルは抽象化してもよい。
 一方、ユーザが、モータを多数搭載する多軸装置のモータドライバの制御パラメータを調整するためには、調整対象のモータドライバ、モータ、および機械1の精緻なモデルが必要となる。この場合のシミュレーション装置11は、調整対象ではないモータドライバ、モータについては精緻なモデルは必要ではない。
 また、プログラマブルロジックコントローラ、産業用パーソナルコンピュータ、サーボシステムコントローラなどの機械システム20Aが備えるコントローラ10Aのシーケンスプログラムをデバッグするためのシミュレーションが行われる場合がある。この場合、シミュレーション装置11は、シーケンスプログラムの実行周期、実行順序を精確に模擬するモデルを必要とするが、機械1の振動特性などは簡略化してもよい。その他、モータで駆動される機械システム20Aの熱解析のためのシミュレーション、電力消費量解析のシミュレーションなど、シミュレーションの目的は多岐にわたり、これらの個々の目的を達成する範囲で適切な抽象度のモデルを用いて簡易的にシミュレーションを行うことが望まれる。
 したがって、シミュレーション装置11は、種々のシミュレーションの目的に対応する種々のモデルを格納しておき、選択されたシミュレーションの目的に対応するモデルを用いてシミュレーションを実行する。
 実施の形態1では、例えば、シミュレーションの選択肢として、ステージ5およびヘッド6の動作範囲の確認を目的とするシミュレーションと、ステージ5を移動させるモータドライバのパラメータ調整を目的とするシミュレーションとの2種類が用意されている場合について説明する。
 モデル選択部12は、抽象度設定に基づいて、シミュレーションの目的に合ったモデルをモデルライブラリ13から選択する。ここで、モデルライブラリ13が保持しておく複数の機械モデルM1,M2は、共通のインターフェースを有するソフトウェアである。すなわち、機械モデルM1,M2は、入出力を共通の情報としたソフトウェアである。
 ユーザは、例えば、モータ位置、モータ速度などのモータの情報をまとめて格納するオブジェクトを定義しておき、このオブジェクトを機械モデルの共通のインターフェースの入力としてもよい。また、ユーザは、ステージ5の位置、ヘッド6の位置、モータに与える外力、機械1の発熱などの情報をまとめたオブジェクトを定義しておき、このオブジェクトを機械モデルの共通インターフェースの出力としてもよい。この場合の、入出力の種類は、変数型であってもよいし、構造体型であってもよい。機械モデルの共通インターフェースは、1つの機械1を模擬する異なる機械モデルM1,M2間で共通化されていればよい。なお、機械モデルの共通インターフェースへの入出力仕様は、実施の形態1で説明した内容に限定されるものではない。
 実施の形態1では、機械モデルM1,M2の共通インターフェースが、X軸1aのモータ位置と、Y軸1bのモータ位置と、Z軸1cのモータ位置とを取得可能な入力インターフェースを有しているものとする。
 機械モデルM1は、例えば、機械1のダイナミクスを考慮するモデルであり、機械1の振動特性を模擬する。機械モデルM2は、例えば、機械1のダイナミクスは考慮せずモータ位置に基づくキネマティクスのみによってステージ5の位置およびヘッド6の位置を変更し、ステージ5およびヘッド6の動作範囲を模擬する。なお、機械モデルM2は、ステージ5およびヘッド6のうちの一方の動作範囲のみを模擬してもよい。
 モデル演算部14は、モデル選択部12から通知されたモデル組に対応するドライバモデルおよび機械モデルをモデルライブラリ13から読み出す。モデル演算部14は、読み出したドライバモデルおよび機械モデルを用いて、モータドライバおよび機械1のシミュレーション演算を行う。
 モデル演算部14は、モデルライブラリ13から選択されたモデルを含めた機械システム20Aのモデルの演算を実施する。例えば、機械システム20Aのモデルにモータモデルおよびコントローラモデルが含まれているとする。モータモデルは、モータの動作を模擬するモデルであり、コントローラモデルは、コントローラ10Aの動作を模擬するモデルである。この場合、モデル演算部14は、X軸1aに対応するドライバモデルおよびモータモデルと、Y軸1bに対応するドライバモデルおよびモータモデルと、Z軸1cに対応するドライバモデルおよびモータモデルと、機械モデルと、さらにモータドライバに対してモータの位置指令を与えるコントローラモデルとを含めて機械システム20Aのモデルとする。モデル演算部14は、モータモデルおよびコントローラモデルを、モデルライブラリ13から取得してもよいし、モデルライブラリ13以外から取得してもよい。モデル演算部14は、シミュレーション結果を表示装置などの外部装置に出力する。これにより、表示装置が、シミュレーション結果を表示する。
 次に、シミュレーション装置11によるシミュレーションの処理手順について説明する。図3は、実施の形態1に係るシミュレーション装置によるシミュレーションの処理手順を示すフローチャートである。
 シミュレーション装置11のモデル選択部12は、ユーザによって入力される抽象度設定を受け付ける(ステップS10)。モデル選択部12は、抽象度設定に基づいて、モデルライブラリ13からモデル組を選択する(ステップS20)。モデル選択部12は、例えば、ドライバモデルD1,D2の何れかと、機械モデルM1,M2の何れかと、の2つのモデルからなるモデル組を選択する。
 モデル選択部12は、選択したモデル組をモデル演算部14に通知する。モデル演算部14は、モデル選択部12によって選択されたモデル組をモデルライブラリ13から読み出す(ステップS30)。
 モデル演算部14は、読み出したモデル組を用いて機械システム20Aの動作をシミュレーションする(ステップS40)。モデル演算部14は、シミュレーション結果を表示装置などに出力する(ステップS50)。これにより、ユーザは、シミュレーション結果を確認することが可能となる。
 次に、実施の形態1におけるシミュレーション装置11の詳細な動作について説明する。まず、抽象度設定として、ステージ5およびヘッド6の動作範囲の確認を目的とするシミュレーションを、ユーザが選択する場合を考える。
 モデル選択部12の対応関係情報には、ステージ5およびヘッド6の動作範囲の確認を目的とするシミュレーションが選択された場合には、X軸1a、Y軸1b、およびZ軸1cに対応する3つのドライバモデルD2と、機械モデルM2とを選択することが予め定められているとする。この場合において、ステージ5およびヘッド6の動作範囲の確認を目的とするシミュレーションに対応する抽象度設定がユーザに指定されると、モデル選択部12は、抽象度設定および対応関係情報に基づいて、X軸1a、Y軸1b、およびZ軸1cに対応するドライバモデルとしてドライバモデルD2を選択する。また、モデル選択部12は、機械モデルとして機械モデルM2を選択する。
 モデル演算部14は、これらの選択したモデル組、すなわちドライバモデルD2および機械モデルM2を用いてヘッド6の位置であるヘッド位置の動作を模擬するシミュレーションを実行する。このとき、モデル演算部14は、コントローラモデルが生成するX軸1aの位置指令を、X軸1aのドライバモデルD2に入力する。この場合、ドライバモデルD2は、フィードフォワード制御のみによってX軸1aのモータ位置を模擬制御する。モデル演算部14は、Y軸1bおよびZ軸1cについてもX軸1aと同様に、コントローラモデルが生成する位置指令をドライバモデルD2に入力する。この場合、ドライバモデルD2は、フィードフォワード制御のみによってY軸1bおよびZ軸1cのモータ位置を模擬制御する。これにより、モデル演算部14は、ドライバモデルD2を用いて、X軸1a、Y軸1b、およびZ軸1cのモータ位置を演算する。
 モデル演算部14は、こうして演算したX軸1a、Y軸1b、およびZ軸1cのモータ位置を入力として機械モデルM2の演算を行う。ここでは、機械モデルとして機械モデルM2が選択されているので、各軸のモータ位置からキネマティクスのみによってステージ位置およびヘッド位置が計算される。これにより、モデル演算部14は、ステージ5およびヘッド6の動作範囲を模擬することができる。モデル演算部14は、ステージ5およびヘッド6の動作範囲をシミュレーションの結果として出力する。
 次に、抽象度設定として、ステージ5のモータドライバのパラメータ調整を目的とするシミュレーションを、ユーザが選択する場合を考える。
 モデル選択部12の対応関係情報には、ステージ5のモータドライバのパラメータ調整を目的とするシミュレーションが選択された場合には、X軸1aおよびY軸1bに対応するドライバモデルとしてドライバモデルD1を選択することが予め定められているとする。また、対応関係情報には、ステージ5のモータドライバのパラメータ調整を目的とするシミュレーションが選択された場合には、Z軸1cに対応するドライバモデルとしてドライバモデルD2を選択し、機械モデルとして機械モデルM1を選択することが予め定められているとする。この場合において、ステージ5のモータドライバのパラメータ調整を目的とするシミュレーションがユーザに指定されると、モデル選択部12は、抽象度設定および対応関係情報に基づいて、X軸1aおよびY軸1bに対応するドライバモデルとしてドライバモデルD1を選択する。また、モデル選択部12は、Z軸1cに対応するドライバモデルとしてドライバモデルD2を選択する。また、モデル選択部12は、機械モデルとして機械モデルM1を選択する。
 モデル演算部14は、これらの選択したモデル、すなわちドライバモデルD1,D2および機械モデルM1を用いてヘッド位置の動作を模擬するシミュレーションを実行する。このとき、モデル演算部14は、コントローラモデルが生成するX軸1aの位置指令をX軸1aのドライバモデルD1に入力する。この場合、ドライバモデルD1は、フィードフォワード制御器、位置フィードバック制御器、速度フィードバック制御器、および電流制御器によってモータ位置を模擬制御する。機械1には、位置フィードバック制御器、速度フィードバック制御器として、例えばPI(Proportional-Integral、比例-積分)制御器が実装されている。この場合、それぞれの比例ゲインおよび積分ゲインが、制御パラメータとなっており、これらの制御パラメータが変更されることでX軸1aのモータの位置制御性能が変更される。
 X軸1aと同様に、Y軸1bのドライバモデルはドライバモデルD1であるので、制御パラメータに基づいてY軸1bのモータの位置制御性能が変更される。また、Z軸1cのモータドライバモデルはドライバモデルD2であるので、フィードフォワード制御のみによってモータ位置が制御される。
 また、機械モデルとしては、振動特性を模擬する機械モデルM1が選択されている。このため、モータの動作によって機械1に振動などが生じる。したがって、モデル演算部14は、ステージ位置をシミュレーション結果として出力する。これにより、ユーザはステージ5の振動の有無を確認することができる。また、ユーザは、シミュレーション結果である機械1の振動の有無を確認しつつステージ5の振動が生じないようにX軸1aおよびY軸1bの制御パラメータを調整することができる。
 このように、実施の形態1では、ユーザが例えば2種類といった複数種類のシミュレーションの目的から何れかの目的を選択し、抽象度設定としてシミュレーション装置11に入力している。モデル選択部12は、抽象度設定および対応関係情報に基づいて、モデルライブラリ13に保持されているモデルの中からシミュレーションに必要な精度を有しつつ必要な計算量が所定量よりも小さくなるような、適切な抽象度のモデルを選択している。
 例えば、ヘッド6およびステージ5の動作範囲の確認を目的とするシミュレーションが選択された場合、モデル選択部12は、機械モデルM2およびドライバモデルD2を選択する。機械モデルM2は、キネマティクスのみに基づいてモータ位置に対応するステージ位置およびヘッド位置を計算する。この機械モデルM2には、モータ位置に対する外力などのダイナミクスの影響は含まれないので、フィードバック制御によってモータ位置を制御するような模擬は必要が無い。このため、モデル選択部12は、機械モデルM2を選択する場合には、フィードフォワード制御のみの簡易的なドライバモデルD2を選択している。
 これにより、シミュレーション装置11は、機械1のダイナミクス、またはフィードバック制御に係る複雑な微分方程式を演算する必要が無くなり、モデル演算部14の演算は非常に簡単なものになる。このため、シミュレーション装置11は、精緻なモデルのシミュレーションを実行する場合の微分方程式を演算する場合に比べて非常に小さい計算コストで、ヘッド6とステージ5の動作範囲を確認することができる。すなわち、シミュレーション装置11は、シミュレーションの目的を満たすための適切な抽象度のモデルを用いたシミュレーションを、計算コストを小さく抑えたうえで実行することができる。
 一方、ステージ5のモータドライバのパラメータ調整を目的とするシミュレーションが選択された場合、モデル選択部12は、ステージ5を駆動するX軸1aおよびY軸1bに対応するドライバモデルとして詳細な模擬を実行するドライバモデルD1を選択する。また、モデル選択部12は、機械モデルとして精緻な模擬を実行する機械モデルM1を選択する。モデル選択部12は、X軸1aおよびY軸1bのモータドライバの制御性能に影響を与えないZ軸1cのドライバモデルについては簡易なドライバモデルであるドライバモデルD2を選択する。
 そして、ユーザはシミュレーション結果として出力されるステージ5の振動を確認しながらX軸1aおよびY軸1bのパラメータを調整する。この場合において、シミュレーション装置11は、X軸1a、Y軸1b、およびステージ5の動作については精緻なモデルをシミュレーションに用いているので、ユーザは、正確にパラメータの調整を行うことができる。この場合の精緻なモデルは計算量が大きいモデルであるが、シミュレーション装置11は、X軸1aおよびY軸1bのモータドライバの制御パラメータの調整に対して考慮する必要がないZ軸1cの動作については、簡略化されたモデルを用いる。したがって、シミュレーション装置11は、Z軸1cの動作のシミュレーションについては計算量を抑えることができる。すなわち、シミュレーション装置11は、シミュレーションの目的を満たすための適切な抽象度のモデルを用いたシミュレーションを、計算コストを小さく抑えたうえで実行することができる。
 このように、ユーザが何れの抽象度設定を指定した場合であっても、シミュレーション装置11は、抽象度設定に基づいてシミュレーションの目的に応じた適切な抽象度のモデルを選択することができるので、計算効率の良いシミュレーションを簡易的に実現できる。
 例えば、モータで駆動される機械1がパラメータ調整される際には、パラメータが変更されながら何度もシミュレーションが実行されるのでシミュレーションの計算コストおよび時間コストを小さく抑えることが求められる。実施の形態1のシミュレーション装置11は、パラメータが変更されて何度もシミュレーションが実行される場合であっても、抽象度設定に基づいてシミュレーションの目的に応じた適切な抽象度のモデルを選択することができるので、計算コストおよび時間コストを小さく抑えることができる。
 ここで実施の形態1における機械モデルM1,M2が共通のインターフェースを有していることの効果について説明する。モータドライバのパラメータ調整の途中で、例えばモータドライバのパラメータをいかに調整しても機械システム20Aの望ましい動作仕様を満たすことができず、やむなく機械1の構造、材質などの変更が必要となる場合がある。また、例えば機械1の動作特性が機械1の設置環境の温度または湿度の影響を受けて変化することが新たに判明し、これらの影響を組み込んだ新たな機械モデルでないと必要な模擬精度を達成できない場合がある。
 これらのような場合には、ユーザが新たに機械モデルを作成することとなる。その際に、機械モデルの共通インターフェースの仕様に準じた新たな機械モデルが作成されれば、モデル演算部14において機械モデルを入れ替えるだけで新たな機械システム20Aのシミュレーションを実行することができる。すなわち、機械モデルの入れ替えの際に、モデル間の演算を実行するプログラムの追加または変更が不要となる。このように、機械モデルが共通のインターフェースを有していることで、シミュレーション装置11は、シミュレーションの目的に応じた適切なシミュレーションを簡易的に実行することができる。
 実施の形態1では、説明の簡単のために抽象度設定として2種類のシミュレーションの目的の何れかを選択する場合について説明をしたが、3種類以上のシミュレーションの目的の何れかが選択されてもよい。
 また、シミュレーション装置11は、実施の形態1の説明で挙げたシミュレーションの目的の他に、例えば、Z軸1cのモータドライバのパラメータを調整することを目的として、Z軸1cのモータドライバにドライバモデルD1を選択してもよい。この場合、シミュレーション装置11は、X軸1aおよびY軸1bのモータドライバにドライバモデルD2を選択し、機械モデルとして機械モデルM1を選択してもよい。これにより、ユーザは、Z軸1cのモータドライバの制御パラメータの調整を効率良く行うことができる。
 また、実施の形態1ではモータドライバの制御パラメータがPI制御のゲインである場合について説明したが、モータドライバの制御パラメータはPI制御のゲインに限らない。シミュレーション装置11は、フィードバック制御器にノッチフィルタまたはローパスフィルタを加えてこれらの遮断周波数を制御パラメータとしてもよい。また、シミュレーション装置11は、フィードフォワード制御器の応答帯域を制御パラメータとしてもよい。
 なお、実施の形態1ではモータモデルについては1種類のみとしたが、モータモデルについて複数の異なる抽象度のモデルをモデルライブラリ13に保持しておいてもよい。この場合、モデル選択部12は、抽象度設定および対応関係情報に基づいて、モデルライブラリ13からモータモデルを選択する。例えば、モータモデルのうち高精度なモデルは、固定子および回転子のモデルを含み、回転子の偏心、コギングなどを模擬する。一方、簡易なモータモデルは、モータドライバの位置指令の通りに回転子が動作するモデルとしてもよい。
 また、シミュレーション装置11は、ドライバモデルについては、ドライバモデルD1よりも高精度なドライバモデルをモデルライブラリ13で保持しておいてもよい。この高精度なドライバモデルは、例えば、PWM(Pulse Width Modulation、パルス幅変調)制御器、インバータのスイッチング回路などを模擬するドライバモデルであってもよい。
 また、シミュレーション装置11は、ドライバモデルD2よりも簡易なドライバモデルをモデルライブラリ13で保持しておいてもよい。この簡易なドライバモデルは、コントローラ10Aから受け取った位置指令を遅延させるだけの無駄時間要素を有するドライバモデルであってもよいし、ローパスフィルタのみを作用させるようなドライバモデルであってもよい。
 また、実施の形態1では、ドライバモデルが位置制御を行う場合について説明したが、ドライバモデルは、速度制御、トルク制御などを行うドライバモデルであってもよい。
 また、シミュレーション装置11のうちモデル選択部12およびモデル演算部14と、モデルライブラリ13とは必ずしも1つのハードウェアに実装されている必要はない。例えば、シミュレーション装置11の構成要素のうち、モデルライブラリ13がクラウドサーバに実装されていてもよい。
 また、シミュレーション装置11は、機械システム20Aの全体の動作を模擬せず、機械1の動作を模擬してもよい。すなわち、シミュレーション装置11は、コントローラ10Aの動作を模擬しなくてもよい。
 このように、実施の形態1では、シミュレーション装置11が、抽象度設定に基づいて、複数の機械モデルの候補と、複数のドライバモデルの候補とを保持するモデルライブラリ13から、機械1の動作を模擬する際に用いる機械モデルと、モータドライバの動作を模擬する際に用いるドライバモデルとを選択して機械システム20Aの動作を模擬している。これにより、ユーザが何れの抽象度設定を指定した場合であっても、シミュレーション装置11は、抽象度設定に基づいてシミュレーションの目的に応じた適切な抽象度のモデルを選択することができる。したがって、シミュレーション装置11は、計算効率の良いシミュレーションを簡易的に実現することができる。
 また、機械モデルM1,M2が共通インターフェースを持つので、機械モデルM1,M2が変更される際に、ユーザが、モデル間の演算を実行するプログラムの追加または変更をする必要がない。また、ユーザが自作した機械モデルも共通インターフェースを用いて作成されていれば、モデルライブラリ13に登録して使用することが可能となる。
実施の形態2.
 次に、図4および図5を用いて実施の形態2について説明する。実施の形態2のシミュレーション装置は、ドライバモデルおよび機械モデルの選択に加えて、抽象度の異なる複数のコントローラモデルの中からシミュレーションの目的に応じたコントローラモデルを選択する。
 図4は、実施の形態2にかかるシミュレーション装置の構成を示す図である。図4の各構成要素のうち図2に示す実施の形態1のシミュレーション装置11と同一機能を達成する構成要素については同一符号を付しており、重複する説明は省略する。
 実施の形態2でシミュレーションの対象として扱う機械システムは、実施の形態1と同様の機械システム20Aである。すなわち、シミュレーション装置21は、シミュレーション装置11と同様に、機械システム20Aの動作を模擬する。実施の形態2においても、ユーザに指定される抽象度設定によって2つのシミュレーションの目的のうちの何れかが指定される。
 シミュレーション装置21で選択されるシミュレーションの1つは、実施の形態1と同様に機械システム20Aのステージ5を駆動するモータドライバの制御パラメータの調整を目的としている。選択されるシミュレーションのうちのもう1つは、ステージ5およびヘッド6の運転順序を定めるシーケンスプログラムの動作確認を目的としている。
 シミュレーション装置21は、モデル選択部22と、モデルライブラリ23と、モデル演算部24とを備えている。
 モデル選択部22は、モデル選択部12と同様の機能を有している。また、モデルライブラリ23は、モデルライブラリ13と同様の機能を有し、モデル演算部24は、モデル演算部14と同様の機能を有している。
 モデル選択部22は、モデル選択部12と同様に、抽象度設定と、モデル組との対応関係を示す対応関係情報を記憶しておく。実施の形態2における対応関係情報のモデル組には、ドライバモデルと、機械モデルと、コントローラモデルとが含まれている。
 モデル選択部22は、モデル選択部12と同様に、外部から与えられる抽象度設定に基づいて、モデルライブラリ23に格納されているモデルの中から抽象度設定に対応するモデル組を選択する。すなわち、モデル選択部22は、抽象度設定に基づいて、シミュレーションの目的に合ったモデルをモデルライブラリ23から選択する。モデル選択部22が選択するモデル組は、ドライバモデルと、機械モデルと、コントローラモデルとの組み合わせである。
 抽象度設定は、シミュレーション装置21のユーザによってモデル選択部22に入力される。実施の形態2の抽象度設定では、上述した2種類の選択肢のうちの何れかが指定されている。
 モデルライブラリ23は、モデルライブラリ13と同様に、複数の異なる抽象度のドライバモデルと、複数の異なる抽象度の機械モデルとを記憶しておく。また、モデルライブラリ23は複数の異なる抽象度のコントローラモデルを記憶しておく。なお、実施の形態2でも、機械モデルM1,M2は共通のインターフェースを有するソフトウェアである。
 実施の形態2では、モデルライブラリ23が記憶しておくコントローラモデルがコントローラモデルC1,C2の2つである場合について説明する。コントローラモデルC1,C2は、機械システム20Aが備えるコントローラ10Aの動作を模擬するモデルである。コントローラモデルC1は、コントローラモデルC2よりも高精度にコントローラ10Aの動作を模擬するモデルである。また、コントローラモデルC2は、コントローラモデルC1よりも簡易的にコントローラ10Aの動作を模擬するモデルである。
 コントローラモデルC1,C2は、機械システム20Aが備えるコントローラ10Aのモデルである。コントローラ10Aの例は、前述したように、プログラマブルロジックコントローラ、産業用パーソナルコンピュータ、サーボシステムコントローラなどである。コントローラ10Aは、ステージ5の位置決め動作完了信号を受けた後に、ヘッド6の位置決め開始信号をオンにするシーケンスプログラムを実行する。
 コントローラモデルC1は、コントローラ10Aが実行するシーケンスプログラムに対応する処理を正確に模擬する。コントローラモデルC1は、ステージ5の位置決め動作完了信号を待つシーケンスプログラムを一定の処理周期で実行し、ステージ5の位置決め動作完了信号が得られたら次の処理でヘッド6の位置決め開始信号をオンにして位置指令を生成する処理を模擬する。
 コントローラモデルC2は、コントローラ10Aが実行する処理を簡略化して模擬する。コントローラモデルC2は、各モータの位置指令を生成する処理のみを模擬する。
 モデル演算部24は、モデル選択部22から通知されたモデル組に対応するドライバモデル、機械モデル、およびコントローラモデルをモデルライブラリ23から読み出す。モデル演算部24は、読み出したドライバモデル、機械モデル、およびコントローラモデルを用いて、モータドライバ、機械1、およびコントローラ10Aのシミュレーション演算を行う。
 モデル演算部24は、モデルライブラリ23から選択されたモデル組を含めた機械システム20Aのモデルの演算を実施する。例えば、機械システム20Aのモデルにモータモデルが含まれているとする。この場合、モデル演算部24は、X軸1aに対応するドライバモデルおよびモータモデルと、Y軸1bに対応するドライバモデルおよびモータモデルと、Z軸1cに対応するドライバモデルおよびモータモデルと、機械モデルと、コントローラモデルとを含めて機械システム20Aのモデルとする。
 シミュレーション装置21によるシミュレーションの処理手順は、図3で説明したシミュレーション装置11によるシミュレーションの処理手順と同様であるので、その説明は省略する。
 次に、実施の形態2におけるシミュレーション装置21の詳細な動作について説明する。まず、抽象度設定として、ステージ5のモータドライバのパラメータ調整を目的とするシミュレーションを、ユーザが選択する場合を考える。
 この場合、モデル選択部22は、抽象度設定に基づいて、例えば、X軸1aおよびY軸1bに対応する3つのドライバモデルD1と、Z軸1cに対応するドライバモデルD2と、機械モデルM1とを選択する。また、モデル選択部22は、例えば、抽象度設定に基づいて、コントローラモデルC2を選択する。このときのシミュレーション装置21の動作は、実施の形態1のシミュレーション装置11が、抽象度設定として、ステージ5のモータドライバのパラメータ調整を目的とするシミュレーションを、ユーザが選択する場合の動作と同様である。
 次に、抽象度設定として、ステージ5とヘッド6との運転順序を定めるシーケンスプログラムの動作確認を目的とするシミュレーションを、ユーザが選択する場合を考える。
 この場合、モデル選択部22は、抽象度設定に基づいて、例えば、X軸1a、Y軸1b、およびZ軸1cに対応する3つのドライバモデルD2と、機械モデルM2と、コントローラモデルC1とを選択する。
 図5は、実施の形態2にかかるシミュレーション装置が動作を模擬する機械システムで用いられるシーケンスプログラムを説明するための図である。図5では、シーケンスプログラムによって実行される処理の手順が示されている。
 図5に示すシーケンスプログラム25には、ブロックBL10,BL20,BL30の各処理が実装されている。シーケンスプログラム25では、コントローラ10Aの演算周期ごとに1ブロックずつの処理が演算されるものとする。
 コントローラ10Aが、シーケンスプログラム25の実行を開始すると、ステージ5の位置決めが開始される(ブロックBL10)。シーケンスプログラム25では、ステージ5の位置決めが完了したか否かが判定される(ブロックBL20)。
 ステージ5の位置決めが完了していない場合(ブロックBL20、No)、コントローラ10Aは、ステージ5の位置決めが完了するまで次の処理に進まず待機する。すなわち、ブロックBL20は、ステージ5の位置決め完了のビットがONとなるまで、次のブロックの処理には遷移しない仕様となっている。
 ステージ5の位置決めが完了すると(ブロックBL20、Yes)、コントローラ10Aは、ヘッド6の位置決めを開始する(ブロックBL30)。
 コントローラモデルC1は、この図5に示したシーケンスプログラム25の処理を模擬する。具体的には、コントローラモデルC1が、ブロックBL10の処理を模擬すると、すなわち、ステージ5の位置決めが開始されると、ステージ5を駆動するX軸1aおよびY軸1bのドライバモデルに位置指令が与えられる。
 この後、コントローラモデルC1は、ブロックBL20の処理に遷移する。X軸1aおよびY軸1bのドライバモデルは、ドライバモデルD2であり、X軸1aおよびY軸1bの機械モデルは、機械モデルM2である。また、X軸1aおよびY軸1bの機械モデルは、機械モデルM2であるので、コントローラモデルC1は、機械1の精密な振動特性などは模擬しない。シーケンスプログラム25では、ステージ5への全ての位置指令が払い出されるまでの間はステージ5の位置決めは完了しないので、1回の演算周期では、ブロックBL20においてステージ5の位置決めが完了したとの判定は下されない。
 ステージ5の位置決めが完了すると、コントローラモデルC1は、コントローラ10Aの次の演算周期においてブロックBL30の処理へと遷移する。これにより、ヘッド6の位置決めが開始されることとなる。
 このように、コントローラモデルC1は、シーケンスプログラム25の動作の確認を正確に行うことができる。一方、コントローラモデルC1は、モータドライバ、モータ、機械1の動作については簡略化しているので、シミュレーションにかかる計算コストおよび時間コストを小さく抑えることができる。
 このように、実施の形態2では、ユーザが例えば2種類といった複数種類のシミュレーションの目的から何れかの目的を選択し、抽象度設定としてシミュレーション装置21に入力している。モデル選択部22は、抽象度設定に基づいて、モデルライブラリ23に保持されているモデルの中からシミュレーションに必要な精度を有しつつ必要な計算量が小さくなるような、適切な抽象度のモデルを選択している。
 例えば、ステージ5のモータドライバのパラメータ調整を目的とするシミュレーションが選択された場合、モデル選択部22は、ステージ5を駆動するX軸1aおよびY軸1bに対応する精緻なドライバモデルD1および機械モデルM1を選択する。モータドライバの調整においてシーケンスプログラム25の模擬精度は影響しないので、モデル選択部22は、シーケンスプログラム25を模擬するコントローラモデルとしては模擬精度の低いコントローラモデルC2を選択する。
 一般に産業用のコントローラはリアルタイム性を追求して高速な処理ができるよう設計されている場合が多く演算周期は短時間であり、これらの演算をシミュレーションで模擬するためには膨大な計算コストを要する。実施の形態2のシミュレーション装置21は、シーケンスプログラム25を高精度で模擬する必要の無いパラメータ調整に対しては、コントローラモデルの模擬精度を下げているので、シミュレーションの計算コストを低減することができる。一方、シミュレーション装置21は、パラメータ調整の際にモータドライバおよび機械モデルについては高精度なモデルを用いているので、モータドライバのパラメータ調整を正しく実施することが可能となる。すなわち、シミュレーション装置21は、シミュレーションの目的を満たすための適切な抽象度のモデルを用いたシミュレーションを、計算コストおよび時間コストを小さく抑えたうえで実行することができる。
 また、ステージ5およびヘッド6の運転順序を定めるシーケンスプログラム25の動作確認を目的とするシミュレーションが選択された場合、モデル選択部22は、シーケンスプログラム25を模擬するコントローラモデルとして高精度にシーケンスプログラム25の処理を模擬するコントローラモデルC1を選択している。また、モデル選択部22は、シーケンスプログラム25の動作確認が行われる際には、簡略化された模擬処理を行うドライバモデルD2および機械モデルM2を選択している。
 シーケンスプログラム25の動作確認においてはコントローラ10Aの演算が正しいことを確認できればよく、機械1の振動特性などの詳細な模擬は不要である。実施の形態2のシミュレーション装置21は、ドライバモデルおよび機械モデルを簡略化することで計算コストおよび時間コストを小さく抑えたうえでシーケンスプログラム25による処理を確認することができる。
 このように、実施の形態2によれば、実施の形態1と同様に、ユーザが何れの抽象度設定を指定した場合であっても、シミュレーション装置21は、抽象度設定に基づいてシミュレーションの目的に応じた適切な抽象度のモデルを選択することができる。したがって、シミュレーション装置21は、計算効率の良いシミュレーションを簡易的に実現することができる。
 また、シミュレーション装置21は、シーケンスプログラム25の一部のブロックのみを抽出して模擬するので、シミュレーションを簡略化して機械システム20Aの動作を模擬できる。
実施の形態3.
 次に、図6および図7を用いて実施の形態3について説明する。実施の形態1,2では機械モデルが予めモデルライブラリ13,23に格納されている場合について説明したが、実施の形態3では、シミュレーション装置が、機械モデルを生成してモデルライブラリに格納する。
 図6は、実施の形態3にかかるシミュレーション装置の構成を示す図である。図6の各構成要素のうち図2に示す実施の形態1のシミュレーション装置11と同一機能を達成する構成要素については同一符号を付しており、重複する説明は省略する。
 実施の形態3でシミュレーションの対象として扱う機械システムは、実施の形態1と同様の機械システム20Aである。すなわち、シミュレーション装置31は、シミュレーション装置11と同様に、機械システム20Aの動作を模擬する。実施の形態3においても、ユーザに指定される抽象度設定によって2つのシミュレーションの目的のうちの何れかが指定される。
 シミュレーション装置31は、モデル選択部12と、モデルライブラリ33と、モデル演算部14と、モデル生成部36とを備えている。
 モデルライブラリ33は、モデルライブラリ13と同様に、複数の異なる抽象度のドライバモデルと、複数の異なる抽象度の機械モデルとを保持する。具体的には、モデルライブラリ33は、ドライバモデルD1,D2と、機械モデルM1~M3とを保持する。このように、実施の形態3のモデルライブラリ33は、予め準備された機械モデルM1,M2に加えて、モデル生成部36で生成された機械モデルM3を保持する。
 モデル生成部36は、外部から入力された実機情報に基づいて機械モデルを生成する。実機のデータである実機情報は、機械システム20Aを実際に動作させることによって得られた信号である。実機情報には、例えば、X軸1a、Y軸1b、およびZ軸1cのモータ位置の時系列データと、ステージ位置およびヘッド位置の時系列データとが含まれている。
 機械モデルM1~M3は、実施の形態1と同様に共通のインターフェースを有するソフトウェアである。実施の形態1では、機械モデルM1~M3の共通インターフェースが、X軸1aのモータ位置と、Y軸1bのモータ位置と、Z軸1cのモータ位置とを取得可能な入力インターフェースを有しているものとする。また、機械モデルM1~M3の共通インターフェースが、ヘッド位置およびステージ位置の情報を出力する出力インターフェースを有しているものとする。
 モデル生成部36は、X軸1a、Y軸1b、およびZ軸1cのモータ位置の時系列データを入力として、ステージ位置およびヘッド位置の時系列データを出力する機械モデルM3を生成する。
 モデル生成部36は、入力と出力との関係を得るために、例えばニューラルネットワークまたはサポートベクター回帰などの機械学習技術を用いるか、予測誤差法または部分空間法などのシステム同定技術を用いる。ここでは、モデル生成部36がニューラルネットワークを用いる例について説明する。
 モデル生成部36は、X軸1a、Y軸1b、およびZ軸1cのモータ位置の時系列データと、ステージ位置およびヘッド位置の時系列データとを学習用のデータとして、ニューラルネットワークを用いた学習動作を行う。すなわち、モデル生成部36は、機械学習装置である。モデル生成部36は、状態観測部、データ取得部、および学習部の機能を有している。状態観測部は、X軸1a、Y軸1b、およびZ軸1cのモータ位置の時系列データを状態変数として観測し、データ取得部は、ステージ位置およびヘッド位置の時系列データを教師データとして取得する。学習部は、状態観測部から出力されるX軸1a、Y軸1b、およびZ軸1cのモータ位置の時系列データ、および、データ取得部から出力されるステージ位置およびヘッド位置の時系列データの組合せに基づいて作成されるデータセットに基づいて、機械モデルM3を学習する。
 なお、機械学習装置であるモデル生成部36は、ネットワークを介してシミュレーション装置31に接続された、シミュレーション装置31とは別個の装置であってもよい。また、モデル生成部36は、クラウドサーバ上に存在していてもよい。
 図7は、実施の形態3にかかるシミュレーション装置が用いるニューラルネットワークを説明するための図である。ニューラルネットワークは、入力層X1、中間層Y1、および出力層Z1を有している。入力層X1へは、X軸1a、Y軸1b、およびZ軸1cのモータ位置を示すM(Mは自然数)個の入力データ(i1、i2、…、iM)が入力される。右端の出力層Z1からは、ステージ位置およびヘッド位置を示すN(Nは自然数)個の出力データ(o1、o2、…、oN)が出力される。
 入力層X1の各ノードから中間層Y1の各ノードに対する重み係数は全て独立に設定することができるが、図7ではこれらの重み係数が、全て同一の重み係数W1として表記されている。同様に、中間層Y1の各ノードから出力層Z1の各ノードに対する重み係数は、全て同一の重み係数W2として表記されている。
 ニューラルネットワークでは、入力層X1の各ノードの出力値に対して重み係数W1が乗算され、乗算によって得られた結果の線形結合が中間層Y1の各ノードに入力される。また、ニューラルネットワークでは、中間層Y1の各ノードの出力値に対して重み係数W2が乗算され、乗算によって得られた結果の線形結合が出力層Z1のノードに入力される。各層の各ノードでは、例えばシグモイド関数といった非線形関数によって入力値から出力値が計算されてもよい。また、入力層X1および出力層Z1では、出力値は入力値の線形結合であってもよい。
 モデル生成部36は、X軸1a、Y軸1b、およびZ軸1cのモータ位置の時系列データと、ステージ位置およびヘッド位置の時系列データとを用いて、ニューラルネットワークの重み係数W1と重み係数W2とを計算する。モデル生成部36は、ニューラルネットワークの重み係数W1および重み係数W2を、誤差逆伝播法または勾配降下法を用いることで計算することができる。ただし、ニューラルネットワークの重み係数W1,W2を得ることができる計算方法であれば、モデル生成部36による重み係数W1,W2の計算方法は上述の方法に限られない。
 ニューラルネットワークの重み係数が決定されれば、X軸1a、Y軸1b、およびZ軸1cのモータ位置の時系列データと、ステージ位置およびヘッド位置の時系列データとの関係式が得られたことになる。ここまでにおいて、3層のニューラルネットワークを用いた学習を行う例について説明したが、モデル生成部36によるニューラルネットワークを用いた学習は、上述の例に限定されない。
 上述したモデル生成部36の動作によりX軸1a、Y軸1b、およびZ軸1cのモータ位置を入力としてステージ位置およびヘッド位置を出力とする機械モデルM3が得られる。
 ニューラルネットワークによる模擬精度は、ニューラルネットワークの層の数、またはノードの数を変更することで、任意に設定することができる。すなわち、モデル生成部36は、学習モデルとして種々の数式を用いることで、実機情報にフィッティングする種々の抽象度の機械モデルを簡便に生成することができる。これにより、シミュレーション装置31に対しては、精度の異なる複数の機械モデルを簡易的に生成することが可能となる。モデル生成部36による学習が、第1の機械学習である。
 モデル生成部36は、抽象度設定と機械モデルM3とを対応付けした情報を、モデル選択部12の対応関係情報に登録する。これにより、モデル選択部12は、抽象度設定および対応関係情報に基づいて、シミュレーションの目的に応じた適切な機械モデルを選択することができることとなる。また、モデル生成部36は、機械モデルM3を生成したことと、この機械モデルM3に対応する抽象度設定とを、ユーザに通知してもよい。モデル生成部36は、例えば、表示装置に機械モデルM3を生成したことと、この機械モデルM3に対応する抽象度設定とを表示させる。
 モデル選択部12は、機械モデルM3を生成する場合に限らず、ニューラルネットワークの層の数、またはノードの数を変更することで抽象度の異なる機械モデルM4、機械モデルM5といった機械モデルM1~M3とは異なる機械モデルを生成してもよい。これらの機械モデルM1~M5は、共通のインターフェースを有するソフトウェアとして生成される。
 実施の形態3ではモデル生成部36で生成した機械モデルM3は、ステージ位置およびヘッド位置を出力する場合について説明したが、機械モデルM3の出力はステージ位置およびヘッド位置に限られない。機械モデルM3は、例えば機械システム20Aの温度または音を機械システム20Aの出力としてもよい。このように、モデル生成部36は、実機情報に含まれる情報の何れかを機械モデルM3の入力および出力に設定することができる。
 また、モデル生成部36は、実機情報のみに限らず、例えばCAD(Computer Aided Design)ソフトが出力するCADデータと、実機情報とを機械モデルM3の生成のために用いてもよい。CADデータは、機械1の設計情報を有するデータである。モデル生成部36は、この設計情報と実機情報とに基づいて機械モデルM3を生成してもよい。設計情報と実機情報とに基づく機械モデルM3の生成方法の一例としては、設計情報に基づいて機械モデルM3の微分方程式を生成し、実機情報に基づいて、微分方程式のパラメータを決定するといった方法がある。
 このように、実施の形態3によれば、モデル生成部36が機械モデルM3を実機情報に基づいて生成するので、ユーザが機械モデルM3を事前に準備していなくとも、モデル選択部12は、抽象度の異なる複数のモデルの中から適切なモデルを選択することができるようになる。したがって、実施の形態3でも、計算効率の良いシミュレーションを簡易的に実現することができる。
実施の形態4.
 次に、図8および図9を用いて実施の形態4について説明する。実施の形態1では機械モデルが予めモデルライブラリ13に格納されている場合について説明したが、実施の形態4では、シミュレーション装置が、モデルライブラリに格納されている機械モデルの抽象度を変更して新たな機械モデルを生成する。
 図8は、実施の形態4にかかるシミュレーション装置の構成を示す図である。図8の各構成要素のうち図2に示す実施の形態1のシミュレーション装置11と同一機能を達成する構成要素については同一符号を付しており、重複する説明は省略する。
 実施の形態4でシミュレーションの対象として扱う機械システムは、実施の形態1と同様の機械システム20Aである。すなわち、シミュレーション装置41は、シミュレーション装置11と同様に機械システム20Aの動作を模擬する。実施の形態4においても、ユーザに指定される抽象度設定によって2つのシミュレーションの目的のうちの何れかが指定される。
 シミュレーション装置41は、モデル選択部12と、モデルライブラリ43と、モデル演算部14と、モデル簡略化部47とを備えている。
 モデルライブラリ43は、複数の異なる抽象度のドライバモデルと、複数の異なる抽象度の機械モデルとを保持する。実施の形態4では、モデルライブラリ43に予めドライバモデルD1,D2が保持されている場合について説明する。また、モデルライブラリ43は、機械1の動作を高精度に模擬する機械モデルM1と、モデル簡略化部47で生成される機械モデルM6とを保持する。機械モデルM1が第1の機械モデルであり、機械モデルM6が第2の機械モデルである。
 モデル簡略化部47は、モデルライブラリ43から読み出したモデルを簡略化することで、新たなモデルを生成する。実施の形態4では、モデル簡略化部47が、機械モデルM1を読み出し、機械モデルM1を簡略化することで生成した機械モデルM6を新たな機械モデルとしてモデルライブラリ43に登録する場合について説明する。
 モデル簡略化部47は、抽象度設定と機械モデルM6とを対応付けした情報を、モデル選択部12の対応関係情報に登録する。これにより、モデル選択部12は、抽象度設定および対応関係情報に基づいて、シミュレーションの目的に応じた適切な機械モデルを選択することができることとなる。また、モデル簡略化部47は、機械モデルM6を生成したことと、この機械モデルM6に対応する抽象度設定とを、ユーザに通知してもよい。モデル簡略化部47は、例えば、表示装置に機械モデルM6を生成したことと、この機械モデルM6に対応する抽象度設定とを表示させる。
 機械モデルM1,M6は、共通のインターフェースを有するソフトウェアである。例えば、機械モデルM1,M6の共通インターフェースは、X軸1aのモータ位置とY軸1bのモータ位置とZ軸1cのモータ位置とを取得可能な入力インターフェースを有しているものとする。また、機械モデルM1,M6の共通インターフェースは、ステージ位置およびヘッド位置の情報を出力する出力インターフェースを有しているものとする。
 図9は、実施の形態4にかかるシミュレーション装置がモデルの簡略化によって新たなモデルを生成する処理を説明するための図である。図9の上段には、機械モデルM1に含まれる演算回路のうちのステージ位置およびヘッド位置を演算する演算回路91をブロック図として示している。図9の下段には、機械モデルM6に含まれる演算回路のうちのステージ位置およびヘッド位置を演算する演算回路96をブロック図として示している。
 機械モデルM1の演算回路91は、ステージ位置を演算して出力するブロック48aと、ヘッド位置を演算して出力するブロック48bとを含んでいる。ブロック48a,48bには、X軸1aのモータ位置であるX軸モータ位置、Y軸1bのモータ位置であるY軸モータ位置、およびZ軸1cのモータ位置であるZ軸モータ位置が入力される。
 ブロック48aは、X軸モータ位置、Y軸モータ位置、およびZ軸モータ位置に基づいて、ステージ位置を演算し出力する。また、ブロック48bは、X軸モータ位置、Y軸モータ位置、およびZ軸モータ位置に基づいて、ヘッド位置を演算し出力する。
 このように、演算回路91は、X軸モータ位置、およびY軸モータ位置が、ヘッド位置に影響を与え、Z軸1cのモータ位置であるZ軸モータ位置がステージ位置に干渉する回路となっている。すなわち、機械モデルM1では、Z軸モータ位置が固定された状態であってもX軸モータ位置またはY軸モータ位置を急峻に変化させた場合に、ヘッド6の位置にも過渡的に振動が生じることを意味している。また、機械モデルM1では、X軸モータ位置およびY軸モータ位置が固定された状態であってもZ軸モータ位置を急峻に変化させた場合に、ステージ5の位置にも過渡的に振動が生じることを意味している。このように、機械モデルM1は直交する軸間の干渉振動を模擬するような高精度なモデルであるといえる。
 モデル簡略化部47は、上述した干渉振動の影響を無視するように簡略化された機械モデルM6を生成する。具体的には、モデル簡略化部47は、ステージ位置を演算する演算式からZ軸モータ位置を含む項を削除し、ヘッド位置を演算する演算式からX軸モータ位置およびY軸モータ位置を含む項を削除する。
 このようにして生成された機械モデルM6の演算回路96は、ステージ位置を演算して出力するブロック48cと、ヘッド位置を演算して出力するブロック48dとを含んでいる。ブロック48cは、X軸モータ位置およびY軸モータ位置からステージ位置を演算するブロックである。ブロック48dは、Z軸モータ位置のみからヘッド位置を演算するブロックである。
 このように、実施の形態4では、モデル簡略化部47が、高精度な模擬を実行する機械モデルM1から、簡略された模擬を実行する新たな機械モデルM6を生成する。
 実施の形態4では、モデル簡略化部47が軸間の干渉振動を無視するような簡略化を行ったが、簡略化の方法はこの方法に限らない。モデル簡略化部47は、例えばX軸モータ位置からステージ位置を演算する際の振動特性を無視するような簡略化を行ってもよい。
 また、モデル簡略化部47は、機械1の振動特性に加えて発熱を模擬するような機械モデルから発熱を模擬する部分を無視するような簡略化を行ってもよい。また、モデル簡略化部47は、機械1の構成要素を柔軟体とした有限要素法で表現した機械モデルを、剛体の接続である多剛体モデルに簡略化してもよい。
 また、実施の形態4では、モデル簡略化部47が機械モデルの簡略化を行ったが、モデル簡略化部47は、ドライバモデル、モータモデル、またはコントローラモデルの簡略化を行ってもよい。モデル簡略化部47は、例えばPID(Proportional-Integral-Differential、比例-積分-微分)制御にノッチフィルタおよびローパスフィルタを付け加えた詳細なフィードバック制御を行うドライバモデルから、PID制御のみのフィードバック制御を行うドライバモデルに簡略化を行ってもよい。
 このように、実施の形態4によれば、モデル簡略化部47が抽象度の異なる新たな機械モデルM6を生成するので、ユーザが機械モデルM6を事前に準備していなくとも、モデルライブラリ43は、抽象度の異なる複数の機械モデルM1,M6を保持することができる。すなわち、ユーザが登録した機械モデルの抽象度が1種類だけであってもモデル簡略化部47は、1種類の機械モデルから複数の簡易な機械モデルを生成することができる。これにより、ユーザによる機械モデルの簡略化の手間が不要となる。また、ユーザは、機械モデルM1,M6の中から適切なモデルを選択することが可能となる。したがって、実施の形態4でも、計算効率の良いシミュレーションを簡易的に実現することができる。
実施の形態5.
 次に、図10および図11を用いて実施の形態5について説明する。実施の形態1では、モデル選択部12が、抽象度設定に対応するモデル組が対応付けされた対応関係情報を用いてモデル組を選択したが、実施の形態5では、モデル選択部が、抽象度設定に対応するモデル組を機械学習に基づいて選択する。
 図10は、実施の形態5にかかるシミュレーション装置の構成を示す図である。図10の各構成要素のうち図2に示す実施の形態1のシミュレーション装置11と同一機能を達成する構成要素については同一符号を付しており、重複する説明は省略する。
 実施の形態5でシミュレーションの対象として扱う機械システムは、実施の形態1と同様の機械システム20Aである。すなわち、シミュレーション装置51は、シミュレーション装置11と同様に機械システム20Aの動作を模擬する。実施の形態5においても、ユーザに指定される抽象度設定によって2つのシミュレーションの目的のうちの何れかが指定される。
 シミュレーション装置51は、モデル選択部52と、モデルライブラリ13と、モデル演算部14とを備えている。
 モデル選択部52は、外部から入力される抽象度設定に基づいて、モデルライブラリ13に格納されているモデルの中からモデルを選択する。このとき、モデル選択部52は、X軸1a、Y軸1b、およびZ軸1cに対応する3つのドライバモデルと、1つの機械モデルとからなる合計4つのモデルを、モデル組としてモデルライブラリ13から選択する。
 モデル選択部52は、抽象度設定を入力として、抽象度設定に対応する4つのモデルを出力とする入出力関係を学習する。モデル選択部52による学習が、第2の機械学習である。モデル選択部52は、モデル生成部36と同様の構成を有した機械学習装置である。すなわち、モデル選択部52は、状態観測部、データ取得部、および学習部の機能を有している。状態観測部は、抽象度設定を状態変数として観測し、データ取得部は、各抽象度設定に対応付けされたモデル組の情報を教師データとして取得する。学習部は、状態観測部から出力される抽象度設定、および、データ取得部から出力されるモデル組に基づいて作成されるデータセットに基づいて、抽象度設定と、抽象度設定に対応付けされた適切なモデルとの関係式を学習する。
 なお、機械学習装置であるモデル選択部52は、ネットワークを介してシミュレーション装置51に接続された、シミュレーション装置51とは別個の装置であってもよい。また、モデル選択部52は、クラウドサーバ上に存在していてもよい。
 モデル選択部52は、この入力と出力との関係を得るために、例えばニューラルネットワーク、サポートベクター回帰などを用いる。ここでは、モデル選択部52がニューラルネットワークを用いる例を説明する。
 モデル選択部52は、複数の抽象度設定と、これらの各抽象度設定に対応付けされたモデル組の情報とを学習用データとして、ニューラルネットワークを用いた機械学習を行う。実施の形態5の抽象度設定ではシミュレーションの目的が設定されるものとする。また、実施の形態5では、機械学習を容易化するために、シミュレーションの目的を示す情報が、いくつかの要素に分けることができる情報であるとする。
 例えば、シミュレーションの目的を示す情報は、以下の3つの要素に分けることができる。1つ目の要素の要素である第1要素は、シミュレーションにおいて動作確認の対象となる軸である。第1要素の例は、「X軸1a」、「Y軸1b」、「Z軸1c」、または「全ての軸」である。
 2つ目の要素である第2要素は、シミュレーションにおいて確認する対象となる動作である。第2要素の例は、「動作範囲確認」、「消費電力確認」、または「制御パラメータ調整」である。
 3つ目の要素である第3要素は、シミュレーションに求められる精度である。第3要素の例は、「高精度」、または「低精度」である。
 図11は、実施の形態5にかかるシミュレーション装置が用いるニューラルネットワークを説明するための図である。ニューラルネットワークは、入力層X2、中間層Y2、および出力層Z2を有している。入力層X2へは、第1要素、第2要素、および第3要素の3個の入力データ(e1、e2、e3)が入力される。右端の出力層Z2からは、X軸1a、Y軸1b、およびZ軸1cに対応する3つのドライバモデルと、1つの機械モデルとからなる合計4個の出力データ(m1、m2、m3、m4)が出力される。
 入力層X2の各ノードから中間層Y2の各ノードに対する重み係数は全て独立に設定することができるが、図11ではこれらの重み係数が、全て同一の重み係数W3として表記されている。同様に、中間層Y2の各ノードから出力層Z2の各ノードに対する重み係数は、全て同一の重み係数W4として表記されている。
 ニューラルネットワークでは、入力層X2の各ノードの出力値に対して重み係数W3が乗算され、乗算によって得られた結果の線形結合が中間層Y2の各ノードに入力される。また、ニューラルネットワークでは、中間層Y2の各ノードの出力値に対して重み係数W4が乗算され、乗算によって得られた結果の線形結合が出力層Z2のノードに入力される。各層の各ノードでは、例えばシグモイド関数といった非線形関数によって入力値から出力値が計算されてもよい。また、入力層X2および出力層Z2では、出力値は入力値の線形結合であってもよい。
 モデル選択部52は、複数の抽象度設定と、これらの各抽象度設定に対応付けされたモデル組の情報とを学習用データとして、ニューラルネットワークの重み係数W3,W4を計算する。モデル選択部52は、ニューラルネットワークの重み係数W3,W4を、誤差逆伝播法または勾配降下法を用いることで計算することができる。ただし、ニューラルネットワークの重み係数W3,W4を得ることができる計算方法であれば、モデル選択部52による重み係数W3,W4の計算方法は上述の方法に限られない。
 ニューラルネットワークの重み係数が決定されれば、抽象度設定と、抽象度設定に対応付けされた適切なモデルとの関係式が得られたことになる。ここまでにおいて、3層のニューラルネットワークを用いた学習を行う例について説明したが、モデル選択部52によるニューラルネットワークを用いた学習は、上述の例に限定されない。
 上述したモデル選択部52の動作により抽象度設定を入力として4つのモデルを出力とするニューラルネットワークが得られる。
 このように、実施の形態5によれば、モデル選択部52が抽象度設定に対応する適切なモデル組を機械学習するので、ユーザが新たに入力する抽象度設定に対応する適切なモデル組をモデルライブラリ13から選択することができる。したがって、実施の形態5でも、計算効率の良いシミュレーションを簡易的に実現することができる。
実施の形態6.
 次に、図12および図13を用いて実施の形態6について説明する。実施の形態1ではステージ5およびヘッド6を駆動する機械システム20Aの動作を模擬するシミュレーション装置11について説明したが、実施の形態6では、機械システム20Aとは異なる機械システムの動作を模擬するシミュレーション装置について説明する。実施の形態6では、ロールツーロールでシート材を搬送する機械システムの動作を模擬するシミュレーション装置について説明する。
 図12は、実施の形態6にかかるシミュレーション装置によって動作がシミュレーションされる機械システムの構成を示す図である。機械システム20Bは、モータで駆動される機械2と、機械2を制御するコントローラ10Bとを備えている。また、機械システム20Bは、シート材Wsに印刷をするスタンプ7を備えている。
 以下の説明では、スタンプ7によるシート材Wsへの印刷面と平行な面内の2つの方向軸であって互いに直交する2つの方向をX方向およびY方向とする。また、X方向およびY方向に直交する方向をZ方向とする。
 機械2は、X方向に延びる巻出し軸2aと、X方向に延びる巻取り軸2bと、Z方向に延びるZ軸2cとからなる3軸のモータを有している。
 機械2は、巻出し軸2aおよび巻取り軸2bによってシート材Wsの搬送制御を行う。機械2では、シート材Wsの送り動作と一時停止とが繰り返されながらシート材Wsが搬送され、シート材Wsの一時停止時にZ軸2cの動作によってZ軸2cに取り付けられたスタンプ7がシート材Wsに印刷処理を施す。
 また、機械システム20Bには、モータドライバ(図示せず)が搭載されている。機械システム20Bでは、コントローラ10Bが、モータドライバを制御し、モータドライバが各軸のモータを駆動する。コントローラ10Bの例は、プログラマブルロジックコントローラ、産業用パーソナルコンピュータ、サーボシステムコントローラなどである。
 シート材Wsは、巻出し軸2aおよび巻取り軸2bに巻かれており、巻出し軸2aおよび巻取り軸2bが回転することによってY方向に移動する。スタンプ7は、Z軸2cの動作によってZ方向に移動し、Y方向に移動するシート材Wsに印刷を行う。
 コントローラ10Bは、巻出し軸2aの動作および巻取り軸2bの動作を制御することによって、シート材WsのY方向の位置を制御する。また、コントローラ10Bは、Z軸2cの動作を制御することによって、Z軸2cに取り付けられたスタンプ7のZ方向の位置を制御する。
 図13は、実施の形態6にかかるシミュレーション装置の構成を示す図である。図13の各構成要素のうち図2に示す実施の形態1のシミュレーション装置11と同一機能を達成する構成要素については同一符号を付しており、重複する説明は省略する。
 シミュレーション装置71は、シミュレーション装置11と同様のシミュレーションを実行するが、シミュレーション装置71とシミュレーション装置11とでは、シミュレーション対象である機械システムの種類が異なる。
 シミュレーション装置71は、機械システム20Bの動作を模擬する。実施の形態6においても、ユーザに指定される抽象度設定によって2つのシミュレーションの目的のうちの何れかが指定される。
 シミュレーション装置71は、モデル選択部72と、モデルライブラリ73と、モデル演算部74とを備えている。シミュレーション装置71とシミュレーション装置11とを比較すると、シミュレーション装置11は、機械システム20Aの動作を模擬するのに対して、シミュレーション装置71は、機械システム20Bの動作を模擬する。
 シミュレーション装置71のモデル選択部72が受け付ける抽象度設定は、機械システム20Bに対するシミュレーションの抽象度を示す情報である。モデル選択部72は、モデル選択部12と同様に抽象度設定に対応するモデルを選択する。モデル選択部72は、選択したモデル組をモデル演算部74に通知する。また、モデルライブラリ73は、モデルライブラリ13と同様に、抽象度の異なる複数のドライバモデルと、抽象度の異なる複数の機械モデルとを記憶しておく。
 実施の形態6では、モデルライブラリ73が記憶しておくドライバモデルがドライバモデルD11,D12の2つである場合について説明する。また、モデルライブラリ73が記憶しておく機械モデルが機械モデルM11,M12の2つである場合について説明する。
 ドライバモデルD11,D12は、ドライバモデルD1,D2と同様に、モータドライバの動作を模擬するモデルである。ドライバモデルD11は、ドライバモデルD12よりも高精度にモータドライバの動作を模擬するモデルである。ドライバモデルD11は、例えば、フィードフォワード制御器、位置フィードバック制御器、速度フィードバック制御器、電流制御器などの機能を模擬する。また、ドライバモデルD12は、ドライバモデルD11よりも簡易的にモータドライバの動作を模擬するモデルである。ドライバモデルD12は、例えば、フィードフォワード制御器の機能のみを模擬する。
 機械モデルM11,M12は、機械モデルM1,M2と同様のモデルである。機械モデルM11,M12は、機械2の動作を模擬する。機械モデルM11は、機械モデルM12よりも高精度に機械2の動作を模擬するモデルである。機械モデルM11は、例えば、機械2の振動特性などを模擬する。また、機械モデルM12は、機械モデルM11よりも簡易的に機械2の動作を模擬するモデルである。機械モデルM12は、例えば、スタンプ7によるシート材Wsへの印刷位置を模擬する。ドライバモデルD11,D12、および機械モデルM11,M12の詳細については後述する。
 実施の形態6では、シミュレーションとして2種類の選択肢が用意されている場合について説明する。実施の形態6では、例えば、シミュレーションの選択肢として、印刷位置の確認を目的とするシミュレーションと、巻出し軸2aのサーボパラメータの調整を目的とするシミュレーションとの2種類の選択肢が用意されている。
 モデルライブラリ73に保持される複数の機械モデルM11,M12は、実施の形態1の機械モデルM1,M2と同様に、共通のインターフェースを有するソフトウェアである。実施の形態6では、シート材Wsの位置であるシート位置、印刷位置、モータに与える外力、機械2の発熱などの情報まとめたオブジェクトを定義しておき、このオブジェクトを機械モデルの共通インターフェースの出力としてもよい。
 実施の形態6では、機械モデルM11,M12の共通インターフェースが、巻出し軸2aのモータ位置と、巻取り軸2bのモータ位置と、Z軸2cのモータ位置とを取得可能な入力インターフェースを有しているものとする。
 機械モデルM11は、例えば、機械2のダイナミクスを考慮するモデルであり、シート材Wsの張力を模擬する。機械モデルM12は、例えば、機械2のダイナミクスは考慮せずモータ位置に基づくキネマティクスのみによってシート位置および印刷位置を変更し、シート位置および印刷位置の動作範囲を模擬する。なお、機械モデルM12は、シート位置および印刷位置のうちの一方のみを模擬してもよい。
 モデル演算部74は、モデル選択部72から通知されたモデル組に対応するドライバモデルおよび機械モデルをモデルライブラリ73から読み出す。モデル演算部74は、読み出したドライバモデルおよび機械モデル用いて、モータドライバおよび機械2のシミュレーション演算を行う。
 モデル演算部74は、モデルライブラリ73から選択されたモデルを含めた機械システム20Bのモデルの演算を実施する。例えば、機械システム20Bのモデルにモータモデルおよびコントローラモデルが含まれているとする。モータモデルは、モータの動作を模擬するモデルであり、コントローラモデルは、コントローラ10Bの動作を模擬するモデルである。この場合、モデル演算部74は、巻出し軸2aに対応するドライバモデルおよびモータモデルと、巻取り軸2bに対応するドライバモデルおよびモータモデルと、Z軸2cに対応するドライバモデルおよびモータモデルと、機械モデルと、さらにモータドライバに対してモータの位置指令を与えるコントローラモデルとを含めて機械システム20Bのモデルとする。モデル演算部74は、モータモデルおよびコントローラモデルを、モデルライブラリ73から取得してもよいし、モデルライブラリ73以外から取得してもよい。モデル演算部74は、シミュレーション結果を表示装置などの外部装置に出力する。これにより、表示装置が、シミュレーション結果を表示する。
 次に、実施の形態6におけるシミュレーション装置71の詳細な動作について説明する。まず、抽象度設定として、印刷位置の確認を目的とするシミュレーションを、ユーザが選択する場合を考える。
 モデル選択部72の対応関係情報には、印刷位置の確認を目的とするシミュレーションが選択された場合には、巻出し軸2a、巻取り軸2b、およびZ軸2cに対応する3つのドライバモデルD12と、機械モデルM12とを選択することが予め定められているとする。この場合において、印刷位置の確認を目的とするシミュレーションに対応する抽象度設定がユーザに指定されると、モデル選択部72は、抽象度設定および対応関係情報に基づいて、巻出し軸2a、巻取り軸2b、およびZ軸2cに対応するドライバモデルとしてドライバモデルD12を選択する。また、モデル選択部72は、機械モデルとして機械モデルM12を選択する。
 モデル演算部74は、これらの選択したモデル、すなわちドライバモデルD12および機械モデルM12を用いてシート材Wsの搬送とスタンプ7の動作とを模擬するシミュレーションを実行する。このとき、モデル演算部74は、コントローラモデルが生成する巻出し軸2aの位置指令を、巻出し軸2aのドライバモデルD12に入力する。この場合、ドライバモデルD12は、フィードフォワード制御のみによって巻出し軸2aのモータ位置を模擬制御する。モデル演算部74は、巻取り軸2bおよびZ軸2cについても巻出し軸2aと同様に、コントローラモデルが生成する位置指令をドライバモデルD12に入力する。この場合、ドライバモデルD12は、フィードフォワード制御のみによって巻取り軸2bおよびZ軸2cのモータ位置を模擬制御する。これにより、モデル演算部74は、ドライバモデルD12を用いて、巻出し軸2a、巻取り軸2b、およびZ軸2cのモータ位置を演算する。
 モデル演算部74は、こうして演算した巻出し軸2a、巻取り軸2b、およびZ軸2cのモータ位置を入力として機械モデルM12の演算を行う。ここでは、機械モデルとして機械モデルM12が選択されているので、各軸のモータ位置からキネマティクスのみによってシート材Wsの搬送位置およびスタンプ7の位置が計算される。これにより、モデル演算部74は搬送されるシート材Wsの何れの位置にスタンプ7による印刷が行われるかを模擬することができる。モデル演算部74は、シート材Wsの搬送位置およびスタンプ7の位置をシミュレーションの結果として出力する。
 次に、抽象度設定として、巻出し軸2aのサーボパラメータの調整を目的とするシミュレーションを、ユーザが選択する場合を考える。
 モデル選択部72の対応関係情報には、巻出し軸2aのサーボパラメータの調整を目的とするシミュレーションが選択された場合には、巻出し軸2aおよび巻取り軸2bに対応するドライバモデルとしてドライバモデルD11を選択することが予め定められているとする。また、対応関係情報には、巻出し軸2aのサーボパラメータの調整を目的とするシミュレーションが選択された場合には、Z軸2cに対応するドライバモデルとしてドライバモデルD12を選択し、機械モデルとして機械モデルM11を選択することが予め定められているとする。この場合において、巻出し軸2aのサーボパラメータの調整を目的とするシミュレーションがユーザに指定されると、モデル選択部72は、抽象度設定および対応関係情報に基づいて、巻出し軸2aおよび巻取り軸2bに対応するドライバモデルとして2つのドライバモデルD11を選択する。また、モデル選択部72は、Z軸2cに対応するドライバモデルとしてドライバモデルD12を選択する。また、モデル選択部72は、機械モデルとして機械モデルM11選択する。
 モデル演算部74は、これらの選択したモデル、すなわちドライバモデルD11,D12および機械モデルM11を用いてヘッド位置の動作を模擬するシミュレーションを実行する。このとき、モデル演算部74は、コントローラモデルが生成する巻出し軸2aの位置指令を巻出し軸2aのドライバモデルD11に入力する。この場合、ドライバモデルD11は、フィードフォワード制御器、位置フィードバック制御器、速度フィードバック制御器、電流制御器によってモータ位置を模擬制御する。機械2には、位置フィードバック制御器、速度フィードバック制御器として、例えばPI制御器が実装されている。この場合、それぞれの比例ゲインおよび積分ゲインが、制御パラメータとなっており、これらの制御パラメータが変更されることで巻出し軸2aのモータの位置制御性能が変更される。
 巻出し軸2aと同様に、巻取り軸2bのドライバモデルはドライバモデルD11であるので、制御パラメータに基づいて巻取り軸2bのモータの位置制御性能が変更される。また、Z軸2cのモータドライバモデルはドライバモデルD12であるので、フィードフォワード制御のみによってモータ位置が制御される。
 また、機械モデルとしては、シート材Wsの張力を模擬する機械モデルM11が選択されている。このため、モータの動作によってシート材Wsの張力変動などが生じる。したがって、モデル演算部74は、シート材Wsの張力、およびスタンプ7の位置をシミュレーション結果として出力する。これにより、ユーザはシート材Wsの張力変動を確認することができる。また、ユーザは、シミュレーション結果であるシート材Wsの張力変動を確認しつつシート材Wsの張力変動が生じないように巻出し軸2aおよび巻取り軸2bの制御パラメータを調整することができる。
 このように、実施の形態6では、ユーザが例えば2種類といった複数種類のシミュレーションの目的から何れかの目的を選択し、抽象度設定としてシミュレーション装置71に入力している。モデル選択部72は、抽象度設定および対応関係情報に基づいて、モデルライブラリ73に保持されているモデルの中からシミュレーションに必要な精度を有しつつ必要な計算量が所定量よりも小さくなるような、適切な抽象度のモデルを選択している。
 例えば、印刷位置の確認を目的とするシミュレーションが選択された場合、モデル選択部72は、機械モデルM12およびドライバモデルD12を選択する。機械モデルM12は、キネマティクスのみに基づいてモータ位置に対応するシート材Wsの搬送位置およびスタンプ7の位置を計算する。この機械モデルM12には、モータ位置に対する外力などのダイナミクスの影響は含まれないので、フィードバック制御によってモータ位置を制御するような模擬は必要が無い。このため、モデル選択部72は、機械モデルM12を選択する場合には、フィードフォワード制御のみの簡易的なドライバモデルD12を選択している。
 これにより、シミュレーション装置71は、機械2のダイナミクス、およびフィードバック制御に係る複雑な微分方程式を演算する必要が無くなり、モデル演算部74の演算は非常に簡単なものになる。このため、シミュレーション装置71は、精緻なモデルのシミュレーションを実行する場合の微分方程式を演算する場合に比べて非常に小さい計算コストで、印刷位置を確認することができる。すなわち、シミュレーション装置71は、シミュレーションの目的を満たすための適切な抽象度のモデルを用いたシミュレーションを、計算コストを小さく抑えたうえで実行することができる。
 一方、巻出し軸2aのサーボパラメータの調整を目的とするシミュレーションが選択された場合、モデル選択部72は、シートを搬送する巻出し軸2aおよび巻取り軸2bに対応するドライバモデルとして詳細な模擬を実行するドライバモデルD11を選択する。また、モデル選択部72は、機械モデルとして精緻な模擬を実行する機械モデルM11を選択する。巻取り軸2bについて詳細なモデルを選択する理由は、巻出し軸2aと巻取り軸2bとはシート材Wsを介して干渉するので、巻出し軸2aの調整において巻取り軸2bの動作が無視できないからである。
 モデル選択部72は、巻出し軸2aおよび巻取り軸2bのモータドライバの制御性能に影響を与えないZ軸2cのドライバモデルについては簡易なドライバモデルであるドライバモデルD12を選択する。
 そして、ユーザはシミュレーション結果として出力されるシート材Wsの張力変動を確認しながら巻出し軸2aのパラメータを調整する。この場合において、シミュレーション装置71は、巻出し軸2a、巻取り軸2b、およびシート材Wsの動作については精緻なモデルをシミュレーションに用いているので、ユーザは正確なパラメータの調整を行うことができる。この場合の精緻なモデルは計算量が大きいモデルであるが、シミュレーション装置71は、巻出し軸2aのモータドライバの制御パラメータの調整に対して考慮する必要がないZ軸2cの動作については、簡略化されたモデルを用いる。したがって、シミュレーション装置71は、Z軸2cの動作のシミュレーションについては計算量を抑えることができる。すなわち、シミュレーション装置71は、シミュレーションの目的を満たすための適切な抽象度のモデルを用いたシミュレーションを、計算コストを小さく抑えたうえで実行することができる。
 このように、ユーザが何れの抽象度設定を指定した場合であっても、シミュレーション装置71は、抽象度設定に基づいてシミュレーションの目的に応じた適切な抽象度のモデルを選択することができるので、計算効率の良いシミュレーションを簡易的に実現できる。
 なお、実施の形態6では、巻出し軸2aおよび巻取り軸2bのモータドライバに対しては、位置指令に基づく位置制御が行われる場合について説明したが、速度指令による速度制御が行われてもよいし、トルク指令によるトルク制御が行われてもよい。また、機械システム20Bは、巻取り軸2bのモータドライバが速度制御され、巻出し軸2aのモータドライバがトルク制御されるシステムであってもよい。
 このように、実施の形態6によれば、実施の形態1から5と同様に、抽象度設定に基づいてシミュレーションの目的に応じた適切な抽象度のモデルを選択することができるので、計算効率の良いシミュレーションを簡易的に実現することができる。
 ここで、シミュレーション装置11,21,31,41,51,71のハードウェア構成について説明する。なお、シミュレーション装置11,21,31,41,51,71は、同様のハードウェア構成を有しているので、ここではシミュレーション装置11のハードウェア構成について説明する。
 図14は、実施の形態1にかかるシミュレーション装置を実現するハードウェア構成例を示す図である。シミュレーション装置11は、入力装置300、プロセッサ100、メモリ200、および出力装置400により実現することができる。プロセッサ100の例は、CPU(Central Processing Unit、中央処理装置、処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、DSP(Digital Signal Processor)ともいう)またはシステムLSI(Large Scale Integration)である。メモリ200の例は、RAM(Random Access Memory)、ROM(Read Only Memory)である。
 シミュレーション装置11は、プロセッサ100が、メモリ200で記憶されているシミュレーション装置11の動作を実行するための、コンピュータで実行可能な、シミュレーションプログラムを読み出して実行することにより実現される。シミュレーション装置11の動作を実行するためのプログラムであるシミュレーションプログラムは、シミュレーション装置11の手順または方法をコンピュータに実行させるものであるともいえる。
 シミュレーション装置11で実行されるシミュレーションプログラムは、モデル選択部12と、モデル演算部14とを含むモジュール構成となっており、これらが主記憶装置上にロードされ、これらが主記憶装置上に生成される。
 入力装置300は、抽象度設定を受け付けてプロセッサ100に送る。メモリ200は、モデルライブラリ13などを記憶する。このメモリ200が記憶するモデルライブラリ13内に、ドライバモデルD1,D2および機械モデルM1,M2が格納されている。また、メモリ200は、プロセッサ100が各種処理を実行する際の一時メモリに使用される。出力装置400は、モデル演算部14が計算したシミュレーション結果をモニタなどに出力する。
 ここではシミュレーション装置11,21,31,41,51,71は1つのコンピュータによって実現される例を示したが、シミュレーション装置11,21,31,41,51,71は複数のコンピュータによって実現されてもよい。
 例えばシミュレーション装置31は、2つのコンピュータによって実現されるものとして、モデル演算部14を含むプログラムと、モデル生成部36を含むプログラムとは、別のコンピュータで実行されてもよい。
 また、例えばシミュレーション装置41は、2つのコンピュータによって実現されるものとして、モデル演算部14を含むプログラムと、モデル簡略化部47を含むプログラムとは、別のコンピュータで実行されてもよい。
 また、例えばシミュレーション装置51は、2つのコンピュータによって実現されるものとして、モデル演算部14を含むプログラムと、モデル選択部52を含むプログラムとは、別のコンピュータで実行されてもよい。
 シミュレーションプログラムは、インストール可能な形式または実行可能な形式のファイルで、コンピュータが読み取り可能な記憶媒体に記憶されてコンピュータプログラムプロダクトとして提供されてもよい。また、シミュレーションプログラムは、インターネットなどのネットワーク経由でシミュレーション装置11に提供されてもよい。なお、シミュレーション装置11の機能について、一部を専用回路などの専用のハードウェアで実現し、一部をソフトウェアまたはファームウェアで実現するようにしてもよい。
 以上の実施の形態に示した構成は、一例を示すものであり、別の公知の技術と組み合わせることも可能であるし、実施の形態同士を組み合わせることも可能であるし、要旨を逸脱しない範囲で、構成の一部を省略、変更することも可能である。
 1,2 機械、1a X軸、1b Y軸、1c,2c Z軸、2a 巻出し軸、2b 巻取り軸、5 ステージ、6 ヘッド、7 スタンプ、10A,10B コントローラ、11,21,31,41,51,71 シミュレーション装置、12,22,52,72 モデル選択部、13,23,33,73 モデルライブラリ、14,24,74 モデル演算部、20A,20B 機械システム、25 シーケンスプログラム、36 モデル生成部、47 モデル簡略化部、48a,48b,48c,48d ブロック、91,96 演算回路、100 プロセッサ、200 メモリ、300 入力装置、400 出力装置、C1,C2 コントローラモデル、D1,D2,D11,D12 ドライバモデル、M1~M6,M11,M12 機械モデル、Wp ワーク、Ws シート材。

Claims (9)

  1.  モータを備えるとともに前記モータによって駆動される機械と、前記モータを制御するモータドライバと、前記モータドライバを制御するコントローラとを具備した機械システムの動作を、前記機械の動作を模擬する機械モデルと、前記モータドライバの動作を模擬するドライバモデルとを用いて模擬するシミュレーションプログラムであって、
     前記機械モデルの候補と、前記ドライバモデルの候補とを保持するモデルライブラリから、前記機械システムの動作を模擬する際のシミュレーションの抽象度が設定された情報である抽象度設定に基づいて、前記機械の動作を模擬する際に用いる前記機械モデルと、前記モータドライバの動作を模擬する際に用いる前記ドライバモデルとを選択するモデル選択ステップと、
     前記モデル選択ステップで選択した前記機械モデルおよび前記ドライバモデルを用いて機械システムの動作を模擬するモデル演算ステップと、
     をコンピュータに実行させ、
     前記機械モデルの候補および前記ドライバモデルの候補の少なくとも一方は複数であり、前記機械モデルの候補が複数である場合には、前記機械モデルの候補には、1つの前記機械を異なる抽象度で模擬する複数の機械モデルが含まれ、前記ドライバモデルの候補が複数である場合には、前記ドライバモデルの候補には、1つの前記モータドライバを異なる抽象度で模擬する複数のドライバモデルが含まれている、
     ことを特徴とするシミュレーションプログラム。
  2.  前記機械モデルの候補が複数である場合に、前記抽象度の異なる前記複数の機械モデルは、共通のインターフェースを持つソフトウェアである、
     ことを特徴とする請求項1に記載のシミュレーションプログラム。
  3.  前記機械システムを実際に動作させることによって得られた信号である実機情報に基づいて、前記モデルライブラリに保持されている前記複数の機械モデルとは抽象度の異なる機械モデルを第1の機械学習によって生成し前記モデルライブラリに保持させるモデル生成ステップを、さらにコンピュータに実行させる、
     ことを特徴とする請求項1または2に記載のシミュレーションプログラム。
  4.  前記モデル生成ステップでは、前記モータの位置の時系列データを入力とし、前記モータによって移動させられる部位の位置の時系列データを出力としたニューラルネットワークを用いて、前記複数の機械モデルとは抽象度の異なる機械モデルを前記第1の機械学習によって生成する、
     ことを特徴とする請求項3に記載のシミュレーションプログラム。
  5.  前記複数の機械モデルのうちの1つの機械モデルある第1の機械モデルを用いて、前記第1の機械モデルの抽象度を低減した新たな機械モデルである第2の機械モデルを生成するモデル簡略化ステップを、さらにコンピュータに実行させる、
     ことを特徴とする請求項1から4の何れか1つに記載のシミュレーションプログラム。
  6.  前記抽象度設定に基づいて選択した前記機械モデルおよび前記ドライバモデルを第2の機械学習によって学習する学習ステップを、さらにコンピュータに実行させ、
     前記モデル選択ステップでは、新たな抽象度設定を受け付けると、前記新たな抽象度設定を入力として前記第2の機械学習の学習結果に基づいて、前記新たな抽象度設定に対応する前記機械モデルを前記機械モデルの候補から選択するとともに前記新たな抽象度設定に対応する前記ドライバモデルを前記ドライバモデルの候補から選択する、
     ことを特徴とする請求項1から5の何れか1つに記載のシミュレーションプログラム。
  7.  モータを備えるとともに前記モータによって駆動される機械と、前記モータを制御するモータドライバと、前記モータドライバを制御するコントローラとを具備した機械システムの動作を、前記機械の動作を模擬する機械モデルと、前記モータドライバの動作を模擬するドライバモデルとを用いて模擬するシミュレーション装置であって、
     前記機械モデルの候補と、前記ドライバモデルの候補とを保持するモデルライブラリから、前記機械システムの動作を模擬する際のシミュレーションの抽象度が設定された情報である抽象度設定に基づいて、前記機械の動作を模擬する際に用いる前記機械モデルと、前記モータドライバの動作を模擬する際に用いる前記ドライバモデルとを選択するモデル選択部と、
     前記モデル選択部が選択した前記機械モデルおよび前記ドライバモデルを用いて機械システムの動作を模擬するモデル演算部と、
     を備え、
     前記機械モデルの候補および前記ドライバモデルの候補の少なくとも一方は複数であり、前記機械モデルの候補が複数である場合には、前記機械モデルの候補には、1つの前記機械を異なる抽象度で模擬する複数の機械モデルが含まれ、前記ドライバモデルの候補が複数である場合には、前記ドライバモデルの候補には、1つの前記モータドライバを異なる抽象度で模擬する複数のドライバモデルが含まれている、
     ことを特徴とするシミュレーション装置。
  8.  前記モデルライブラリは、前記コントローラが実行する1つのシーケンスプログラムの処理を異なる抽象度で模擬する複数のコントローラモデルを保持し、
     前記モデル選択部は、前記モデルライブラリから、前記抽象度設定に基づいて、前記シーケンスプログラムの処理を模擬する際に用いるコントローラモデルを選択し、
     前記モデル演算部は、前記モデル選択部が選択した前記コントローラモデルを用いて機械システムの動作を模擬する、
     ことを特徴とする請求項7に記載のシミュレーション装置。
  9.  モータを備えるとともに前記モータによって駆動される機械と、前記モータを制御するモータドライバと、前記モータドライバを制御するコントローラとを具備した機械システムの動作を、前記機械の動作を模擬する機械モデルと、前記モータドライバの動作を模擬するドライバモデルとを用いて模擬するシミュレーション方法であって、
     前記機械モデルの候補と、前記ドライバモデルの候補とを保持するモデルライブラリから、前記機械システムの動作を模擬する際のシミュレーションの抽象度が設定された情報である抽象度設定に基づいて、前記機械の動作を模擬する際に用いる前記機械モデルと、前記モータドライバの動作を模擬する際に用いる前記ドライバモデルとを選択するモデル選択ステップと、
     前記モデル選択ステップで選択した前記機械モデルおよび前記ドライバモデルを用いて機械システムの動作を模擬するモデル演算ステップと、
     を含み、
     前記機械モデルの候補および前記ドライバモデルの候補の少なくとも一方は複数であり、前記機械モデルの候補が複数である場合には、前記機械モデルの候補には、1つの前記機械を異なる抽象度で模擬する複数の機械モデルが含まれ、前記ドライバモデルの候補が複数である場合には、前記ドライバモデルの候補には、1つの前記モータドライバを異なる抽象度で模擬する複数のドライバモデルが含まれている、
     ことを特徴とするシミュレーション方法。
PCT/JP2021/000366 2021-01-07 2021-01-07 シミュレーションプログラム、シミュレーション装置、およびシミュレーション方法 WO2022149241A1 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
DE112021005541.0T DE112021005541T5 (de) 2021-01-07 2021-01-07 Simulationsprogramm, Simulationsvorrichtung und Simulationsverfahren
JP2021527937A JP6961130B1 (ja) 2021-01-07 2021-01-07 シミュレーションプログラム、シミュレーション装置、およびシミュレーション方法
PCT/JP2021/000366 WO2022149241A1 (ja) 2021-01-07 2021-01-07 シミュレーションプログラム、シミュレーション装置、およびシミュレーション方法
CN202180071137.4A CN116348822B (zh) 2021-01-07 2021-01-07 包含仿真程序的计算机记录介质、仿真装置及仿真方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2021/000366 WO2022149241A1 (ja) 2021-01-07 2021-01-07 シミュレーションプログラム、シミュレーション装置、およびシミュレーション方法

Publications (1)

Publication Number Publication Date
WO2022149241A1 true WO2022149241A1 (ja) 2022-07-14

Family

ID=78409784

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2021/000366 WO2022149241A1 (ja) 2021-01-07 2021-01-07 シミュレーションプログラム、シミュレーション装置、およびシミュレーション方法

Country Status (4)

Country Link
JP (1) JP6961130B1 (ja)
CN (1) CN116348822B (ja)
DE (1) DE112021005541T5 (ja)
WO (1) WO2022149241A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023209754A1 (ja) * 2022-04-25 2023-11-02 ファナック株式会社 サーボ調整システム
WO2024090284A1 (ja) * 2022-10-27 2024-05-02 パナソニックIpマネジメント株式会社 学習システム、予測システム、および調整システム

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005032048A (ja) * 2003-07-08 2005-02-03 Yaskawa Electric Corp モーションコントロールシミュレータ及びその機能を備えた電動機制御系の調整支援装置
WO2014091840A1 (ja) * 2012-12-11 2014-06-19 三菱電機株式会社 サーボ制御装置
WO2018168230A1 (ja) * 2017-03-13 2018-09-20 オムロン株式会社 処理装置、制御パラメータ決定方法、及び制御パラメータ決定プログラム

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102254464A (zh) * 2011-08-10 2011-11-23 上海交通大学 基于构件机械原理的机构运动虚拟实验仿真方法
WO2013075909A1 (de) * 2011-11-25 2013-05-30 Siemens Aktiengesellschaft Verfahren zur automatischen generierung von simulationsmodellen anhand von stromlaufplänen
JP6419323B2 (ja) * 2015-05-20 2018-11-07 三菱電機株式会社 多軸機械装置シミュレータ、運転指令装置の設計支援装置、電動機制御装置の設計支援装置及び電動機の容量選定装置
CN104881554B (zh) * 2015-06-15 2018-03-09 华中科技大学 适用于ic装备工件定位运动台的仿真系统及其建模方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005032048A (ja) * 2003-07-08 2005-02-03 Yaskawa Electric Corp モーションコントロールシミュレータ及びその機能を備えた電動機制御系の調整支援装置
WO2014091840A1 (ja) * 2012-12-11 2014-06-19 三菱電機株式会社 サーボ制御装置
WO2018168230A1 (ja) * 2017-03-13 2018-09-20 オムロン株式会社 処理装置、制御パラメータ決定方法、及び制御パラメータ決定プログラム

Also Published As

Publication number Publication date
JPWO2022149241A1 (ja) 2022-07-14
JP6961130B1 (ja) 2021-11-05
CN116348822A (zh) 2023-06-27
DE112021005541T5 (de) 2023-08-24
CN116348822B (zh) 2024-06-07

Similar Documents

Publication Publication Date Title
JP3946753B2 (ja) ロボットプログラム評価・修正方法及びロボットプログラム評価・修正装置
WO2022149241A1 (ja) シミュレーションプログラム、シミュレーション装置、およびシミュレーション方法
CN107530879B (zh) 多轴机械装置仿真器、运转指令装置的设计辅助装置、电动机控制装置的设计辅助装置以及电动机的容量选定装置
Wang et al. Robust iterative learning control for vibration suppression of industrial robot manipulators
JP2018151899A (ja) 制御装置、制御プログラムおよび制御システム
Broenink et al. Model-driven robot-software design using integrated models and co-simulation
Fraanje et al. Python in robotics and mechatronics education
US20040030418A1 (en) Simulation system for machine simulation and data output of control data for an automation system
JP2010187464A (ja) 電動機制御装置の選定装置、電動機制御装置の選定方法、該方法を実現するコンピュータプログラム、及びその記憶媒体
JP6961128B1 (ja) シミュレーション装置、工作機械システム、シミュレーション方法および加工方法
Coelingh Design support for motion control systems: a mechatronic approach
JP2020035159A (ja) パラメータ調整装置
JP2007136671A (ja) ロボットプログラム評価・修正方法及びロボットプログラム評価・修正装置
da Silva et al. Mechatronic design concept and its application to pick-and-place robotic systems
Fekik et al. FPGA in the loop implementation of the PUMA 560 robot based on backstepping control
Paryanto et al. Mechatronic behavior analysis of a customized manufacturing cell
JPH02176906A (ja) 動作状態表示装置,動作指示制御装置および制御装置
WO2022269787A1 (ja) プログラム作成支援装置、プログラム作成支援方法、プログラム作成支援プログラム及びプログラマブルロジックコントローラ
WO2022186051A1 (ja) 調整支援装置、制御システム及び調整支援方法
Kumar et al. Introduction to virtual manufacturing
Okabe et al. Modeling and Simulation of a 3D Printer Based on a SCARA Mechanism
Munzinger et al. Simulation of parallel kinematic machine tools with minimal effort
WO2022162960A1 (ja) プログラム生成装置、プログラム生成プログラムおよびプログラム生成方法
WO2020189344A1 (ja) 制御装置および制御プログラム
Mat Seman et al. Analysis of interpreted CAD/CAM trajectory as alternative input reference for control system

Legal Events

Date Code Title Description
ENP Entry into the national phase

Ref document number: 2021527937

Country of ref document: JP

Kind code of ref document: A

121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 21917468

Country of ref document: EP

Kind code of ref document: A1

122 Ep: pct application non-entry in european phase

Ref document number: 21917468

Country of ref document: EP

Kind code of ref document: A1