WO2025192527A1 - 制御方法、プログラム、及び制御システム - Google Patents
制御方法、プログラム、及び制御システムInfo
- Publication number
- WO2025192527A1 WO2025192527A1 PCT/JP2025/008811 JP2025008811W WO2025192527A1 WO 2025192527 A1 WO2025192527 A1 WO 2025192527A1 JP 2025008811 W JP2025008811 W JP 2025008811W WO 2025192527 A1 WO2025192527 A1 WO 2025192527A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- control
- prediction
- time
- generation
- elements
- Prior art date
- Legal status (The legal status 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 status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B13/00—Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion
- G05B13/02—Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B13/00—Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion
- G05B13/02—Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric
- G05B13/04—Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric involving the use of models or simulators
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D3/00—Control of position or direction
Definitions
- This disclosure generally relates to control methods, programs, and control systems. More specifically, this disclosure relates to control methods, programs, and control systems relating to control trajectories for controlled objects.
- Patent Document 1 discloses technology relating to a mobile body control method that uses model predictive control to control the movement of a mobile body, such as a self-propelled vacuum cleaner, so that the mobile body moves accurately and efficiently along a target path.
- a mobile body control method at a control timing, the first control instruction in a time series of future control inputs obtained by solving an optimization problem is input to the mobile body.
- the actual state of the mobile body is obtained from a sensor, and the optimization problem is solved again, thereby inputting control instructions to the mobile body that correct the deviation between the target path and the actual travel path.
- the present disclosure has been made in light of the above-mentioned reasons, and aims to provide a control method, program, and control system that can reduce the possibility of a decrease in control accuracy due to variations in calculation time in model predictive control.
- a control method includes a generation step, an accumulation step, and a control input step.
- a generation step a plurality of prediction elements are generated by model predictive control for a control trajectory related to a controlled object, the prediction elements being based on each time point.
- the accumulation step the generated plurality of prediction elements are stored.
- the control input step while the generation step is generating the plurality of prediction elements predicted based on a time point after a certain time point, a control input based on two or more of the plurality of prediction elements generated and stored based on the certain time point is applied to control the controlled object.
- a control method includes a generating step, an accumulating step, and a control input step.
- a plurality of prediction elements are generated by model predictive control for a control trajectory related to a controlled object, the prediction elements being based on each time point.
- the accumulating step the generated plurality of prediction elements are stored.
- the control input step during the generation of the plurality of prediction elements predicted based on a time point after a certain time point in the generating step, a control input based on one or more prediction elements of the plurality of prediction elements generated and stored based on the certain time point is applied in accordance with the generation time during the generation of the plurality of prediction elements, thereby controlling the controlled object.
- a program according to one aspect of the present disclosure is a program for causing one or more processors to execute any of the above control methods.
- a control system includes a generation unit, a storage unit, and a control input unit.
- the generation unit generates a plurality of prediction elements for a control trajectory related to a control object, using model predictive control to predict each time point as a reference.
- the storage unit stores the generated plurality of prediction elements.
- the control input unit while the generation unit is generating the plurality of prediction elements predicted based on a time point after a certain time point, applies a control input based on two or more of the plurality of prediction elements generated and stored based on the certain time point, and controls the control object.
- a control system includes a generation unit, a storage unit, and a control input unit.
- the generation unit generates a plurality of prediction elements for a control trajectory related to a control object, using model predictive control to predict each time point as a reference.
- the storage unit stores the generated plurality of prediction elements.
- the control input unit during the generation of the plurality of prediction elements predicted by the generation unit based on a time point after a certain time point, applies a control input based on one or more of the plurality of prediction elements generated and stored based on the certain time point as a reference, in accordance with the generation time during the generation of the plurality of prediction elements, thereby controlling the control object.
- FIG. 1 is a block diagram of a motion controller including a control system (trajectory generation system) according to one embodiment, and its peripheral configuration.
- FIG. 2 is a block diagram of the control system.
- FIG. 3 is a conceptual diagram for explaining a control command process in a comparative system for comparison with the control system of the above embodiment.
- FIG. 4 is a graph showing the prediction horizon in the comparative example system.
- FIG. 5 is a conceptual diagram for explaining the control command processing in the control system.
- FIG. 6 is a graph showing a prediction horizon in the control system.
- FIG. 7 is a graph showing a prediction horizon for explaining the synthesis process in the control system.
- FIG. 8 is a graph showing a prediction horizon for explaining the correction process in the control system.
- FIG. 9 is a flowchart for explaining the operation of the control system.
- a model predictive control (hereinafter sometimes abbreviated as MPC) function is used to perform optimization while predicting future responses based on each time (each point in time) to execute commands related to the operation control of the controlled object 2 (see Figure 1: plant).
- MPC model predictive control
- a control system 10 in one embodiment executes the above commands using the prediction results from the MPC.
- control object 2 is, as an example, a two-axis stage (machine), which is a two-axis machine (multi-axis machine) with an X axis and a Y axis.
- a two-axis stage is a positioning stage with two axes: the "X axis" for left-right movement and the "Y axis" for front-back movement.
- the two-axis stage positions a workpiece on the stage that will be processed by, for example, a machine other than the two-axis stage (such as a laser processing machine or a cutting machine) or a coating device.
- a control method includes a generation step, an accumulation step, and a control input step.
- model predictive control is used to generate multiple prediction elements C0 (see FIG. 6: predicted values) predicted based on each time point for a control trajectory T1 (see FIG. 1) related to the control object 2.
- the generated multiple prediction elements C0 are stored.
- control input step while the multiple prediction elements C0 predicted based on a time point later than a certain time point are being generated in the generation step, control input based on two or more of the multiple prediction elements C0 generated and stored based on the certain time point is applied to control the control object 2.
- the "multiple prediction elements C0 predicted based on each time point" referred to here may correspond to, in FIG. 6, the eight prediction elements C0 from times t1 to t8 predicted based on the current time t0, or the eight prediction elements C0 from times t2 to t9 predicted based on the current time t1.
- a control input is applied that is based on two or more of the multiple prediction elements C0 that are generated and stored based on that point in time. Therefore, even if there is a delay in the calculation time required to generate the multiple prediction elements C0 based on a point in time later than a certain point in time, the control object 2 can be smoothly maintained and controlled based on the two or more prediction elements C0 that are generated and stored based on that point in time. In other words, a situation in which control of the control object 2 is not completed in time due to a delay in calculation time is less likely to occur. As a result, the control method described above has the advantage of reducing the possibility of a decrease in control accuracy due to variations in calculation time in model predictive control.
- control method according to the above embodiment is used on a computer system (control system 10).
- control system 10 control system 10
- the control method according to the above embodiment can also be embodied as a computer program.
- the program according to the embodiment is a program for causing one or more processors to execute the control method according to the above embodiment.
- the program may be recorded on a non-transitory computer-readable recording medium.
- a control system 10 includes a generator 11, a storage unit 12, and a control input unit 13.
- the generator 11 generates a plurality of prediction elements C0 predicted based on each time point using model predictive control for a control trajectory T1 for the control object 2.
- the storage unit 12 stores the generated plurality of prediction elements C0. While the generator 11 is generating a plurality of prediction elements C0 predicted based on a time point after a certain time point, the control input unit 13 applies a control input based on two or more of the plurality of prediction elements C0 generated and stored based on the certain time point, thereby controlling the control object 2.
- the control system 10 according to the above embodiment also has the advantage of reducing the possibility of a decrease in control accuracy due to variations in calculation time in model predictive control.
- a control method includes a generation step, an accumulation step, and a control input step.
- a plurality of prediction elements C0 are generated using model predictive control to predict a control trajectory T1 for the control object 2, with each prediction element C0 predicted based on a reference point in time.
- the accumulation step the generated plurality of prediction elements C0 are stored.
- a control input based on one or more of the plurality of prediction elements C0 generated and stored based on a certain point in time is applied in accordance with the generation time (TA1, TA2, TA3: see FIG. 5) during the generation of the plurality of prediction elements C0, to control the control object 2.
- a control input based on one or more of the multiple prediction elements C0 generated and stored based on a certain point in time is applied according to the generation time (computation time). Therefore, even if the computation time required to generate multiple prediction elements C0 based on a point in time later than a certain point in time is delayed, the control object 2 can be smoothly maintained and controlled based on the one or more prediction elements C0 generated and stored based on a certain point in time. In other words, a situation in which control of the control object 2 is not completed in time due to a delay in computation time is less likely to occur. As a result, the control method described above has the advantage of reducing the possibility of a decrease in control accuracy due to variations in computation time in model predictive control.
- control method according to the above-described another aspect is used on a computer system (control system 10).
- control system 10 control system
- the control method according to the above-described another aspect can also be embodied as a computer program.
- the program according to one aspect is a program for causing one or more processors to execute the control method according to the above-described another aspect.
- the program may be recorded on a non-transitory computer-readable recording medium.
- a control system 10 includes a generator 11, a storage unit 12, and a control input unit 13.
- the generator 11 generates a plurality of prediction elements C0 predicted based on each time point using model predictive control for a control trajectory T1 for the control object 2.
- the storage unit 12 stores the generated plurality of prediction elements C0. While the generator 11 is generating the plurality of prediction elements C0 predicted based on a time point after a certain time point, the control input unit 13 applies a control input based on one or more of the plurality of prediction elements C0 generated and stored based on a certain time point, depending on the generation time (TA1, TA2, TA3) during generation of the plurality of prediction elements C0, thereby controlling the control object 2.
- the control system 10 according to the above-described another embodiment also has the advantage of reducing the possibility of a decrease in control accuracy due to variations in calculation time in model predictive control.
- the motion controller 100 (see Figure 1) is equipped with a trajectory generation system 1 (see Figure 1) to which the control system 10 is applied.
- the control system 10 it is assumed that all of the functions of the control system 10 are implemented within the motion controller 100.
- the MPC solves an optimization problem for the prediction interval K1 (see Figure 6: finite interval) based on a model of the controlled object 2 (here, a two-axis stage), and the trajectory generation system 1 (control system 10) uses the results to generate trajectory data.
- the motion controller 100 performs feedback control on the movement of the controlled object 2 based on the trajectory data from the trajectory generation system 1.
- the motion controller 100 (trajectory generation system 1) uses the prediction results from the MPC to provide control input to the controlled object 2.
- feedback control does not necessarily have to be performed on the motion controller 100 side; it may also be performed by the X-axis amplifier A1 and Y-axis amplifier A2 of the controlled object 2.
- a point in time after a certain point in time may refer to the point in time following the certain point in time, or to a point in time one or more points in time after the certain point in time.
- control target 2 is a plant as an example.
- trajectory generation system 1 will be described assuming that the control target 2 is a two-axis stage.
- the control object 2 includes, for example, a stage 20 (base), an X-axis 21 that can move the stage 20 in the X-axis direction, and a Y-axis 22 that can move the stage 20 in the Y-axis direction.
- a workpiece to be processed by a laser processing machine, cutting machine, coating device, or the like can be placed on the stage 20.
- the X-axis 21 includes a first motor M1 (servo motor) and an X-axis amplifier A1 that drives and controls the first motor M1.
- the first motor M1 is, for example, a rotary motor, but may also be a linear motor.
- the Y-axis 22 includes a second motor M2 (servo motor) and a Y-axis amplifier A2 that drives and controls the second motor M2.
- the second motor M2 is, for example, a rotary motor, but may also be a linear motor.
- the X-axis 21 and Y-axis 22 are synchronously controlled so that the stage 20 moves to a predetermined X-Y coordinate position.
- the control system 10 executes commands related to the motion control of the control object 2.
- the control system 10 is applied as a trajectory generation system 1 (see Figure 1). That is, in this embodiment, as an example, the functions of the control system 10 are used to generate a trajectory for the stage 20.
- the trajectory generation system 1 generates trajectory data related to the motion control of the control object 2.
- the trajectory data will be described as an example, focusing on a case where the stage 20 of the control object 2 moves along a two-dimensional L-shaped path (hereinafter referred to as L-shaped path Q1) including positions Pt1, Pt2, and Pt3, as schematically shown in Figure 1, along the dashed arrow.
- L-shaped path Q1 two-dimensional L-shaped path
- the trajectory data will be described as an example, focusing on a case where the stage 20 moves along a path parallel to the X-axis direction from position Pt1 to position Pt2, and along a path parallel to the Y-axis direction from position Pt2 to position Pt3.
- the movement of the control target 2 is not limited to movement at right angles, but can also include movement at obtuse or acute angles, or movement in a curved shape (for example, a circular or elliptical shape).
- the motion controller 100 controls the operation of the control object 2 (synchronous control of the X-axis 21 and Y-axis 22) based on the trajectory data generated by the trajectory generation system 1.
- the motion controller 100 is connected to the control object 2 so that it can communicate with them.
- the motion controller 100 is connected to each of the X-axis amplifier A1 and the Y-axis amplifier A2 so that it can communicate with them individually.
- the motion controller 100 is also connected to the upper controller 5 so that it can communicate with them.
- the motion controller 100 obtains a control output (control amount) from the control object 2.
- the control object 2 is provided with encoders that measure the positions and speeds of the first motor M1 and the second motor M2, and force sensors that measure thrust (or torque).
- the control object 2 may also be provided with an external sensor that measures the position and speed of the stage 20. The measurement results of the external sensor can be output to the X-axis amplifier A1 and the Y-axis amplifier A2.
- the motion controller 100 acquires data such as the position, speed, and thrust of the first motor M1, the second motor M2, and the stage 20 as control variables from the control object 2.
- control variables may also include disturbances such as vibrations that occur in the control object 2.
- the motion controller 100 obtains a control output (control amount) from the control object 2 and performs feedback control on the motion controller 100 side, but this is not limited to this.
- the motion controller 100 may only execute commands to the control object 2, and feedback control may be performed by the X-axis amplifier A1 and Y-axis amplifier A2 of the control object 2.
- the functions of the control system 10 may be implemented in at least one of the X-axis amplifier A1 and Y-axis amplifier A2 of the control object 2.
- the motion controller 100 includes a computer system having one or more processors and memory. At least some of the functions of the motion controller 100 are realized by the processor of the computer system executing a program stored in the memory of the computer system.
- the program may be stored in memory, or may be provided via a telecommunications line such as the Internet, or may be provided recorded on a non-transitory recording medium such as a memory card.
- the motion controller 100 comprises a trajectory generation system 1 (control system 10), a movement control unit 3, and a state estimation unit 4.
- the motion controller 100 has the functions of the control system 10, the functions of the movement control unit 3, and the functions of the state estimation unit 4. It is assumed that these multiple functions of the motion controller 100 are housed in a single housing, but this is not limitative and they may be housed separately in multiple housings.
- the state estimation unit 4 receives signals including control variable data based on measurement results from encoders, force sensors, external sensors, etc. from the X-axis amplifier A1 and Y-axis amplifier A2 of the controlled object 2.
- the state estimation unit 4 estimates the state of the controlled object 2 based on the control variable data and outputs the estimation results to the trajectory generation system 1.
- the state estimation unit 4 estimates the position (specifically, the X-Y coordinate position of the stage 20) and speed of the controlled object 2 based on the control variable.
- the trajectory generation system 1 (control system 10) has an MPC function. As shown in FIG. 1, the trajectory generation system 1 includes a memory unit 14.
- the memory unit 14 includes an electrically rewritable non-volatile semiconductor memory such as a flash memory.
- the memory unit 14 stores a prediction model (predictor) for the control object 2.
- a prediction model for example, a transfer function model or a state space model may be used.
- control profile is optimized for a certain period of time (prediction interval K1 in Figure 6) from the current time (present) to a certain future time based on the estimation results from the state estimation unit 4.
- the trajectory generation system 1 (control system 10) further includes a control unit 10A (see Figure 1).
- the control unit 10A uses model predictive control to perform optimization calculations for the control input corresponding to the prediction interval K1.
- receding horizon control also known as receding horizon control
- the optimized control profile is then used for the actual control input profile.
- two or more prediction elements C0 are used for the actual control input profile, and the two or more prediction elements C0 may or may not include the initial prediction element C0.
- the control unit 10A recedes one or more horizons H1 and performs optimization calculations for the control input corresponding to the next prediction interval K1.
- one control period corresponds to one horizon H1 (one step) in Figure 6.
- One control period corresponds to the period during which the operation of the controlled object 2 is controlled.
- the length from each time (each point in time) to the time following that time (the point following that point in time) corresponds to one control period.
- the control period may be the same as or different from the data sampling period of the controlled variable acquired from the controlled object 2.
- the L-shaped path Q1 including positions Pt1, Pt2, and Pt3 shown in Figure 1 may be a path that is part of the predetermined operating range of the controlled object 2.
- the starting point and destination point of the predetermined operating range may also be positions Pt1 and Pt3.
- the control unit 10A repeatedly performs optimization calculations, for example, by moving the horizon H1 back by one or more units from the starting point of a predetermined operating range of the controlled object 2 to the destination point. That is, using model predictive control, the control unit 10A repeatedly performs optimization calculations for the control input corresponding to the prediction interval K1 while moving the horizon H1 back by one or more units.
- the memory unit 14 stores two or more prediction elements C0 (which have been stocked, as described below).
- Figure 3 is a conceptual diagram illustrating control command processing in a comparative system for comparison with the control system 10 of this embodiment.
- Figure 4 is a conceptual diagram illustrating receding horizon control in the comparative system, showing the prediction horizon.
- Figure 4 includes a first time series D1 showing an example of characteristic E1, which is the result of executing an optimization calculation at the present time (time t0) (hereinafter also referred to as "prediction 1").
- Characteristic E1 of "prediction 1" shows the actual measurement element P1 (actual measurement value) at time t0 (the present time) and the predicted element C0 (predicted value) at each point in time (each time) from times t1 to t8.
- Figure 4 also includes a second time series D2 showing an example of characteristic E1 of the results of executing the optimization calculation at the present time (time t1) (hereinafter also referred to as "prediction 2").
- Characteristic E1 of "prediction 2" shows the actual measurement element P1 at time t1 (the present time) and the predicted element C0 at each of times t2 to t9.
- Figure 4 also includes a third time series D3 showing an example of characteristic E1 of the results of executing the optimization calculation at the present time (time t2) (hereinafter also referred to as "Prediction 3").
- Characteristic E1 of "Prediction 3" shows the actual measurement element P1 at time t2 (the present time) and the predicted element C0 at each of times t3 to t10.
- Figure 4 also shows the prediction interval K1.
- the prediction interval K1 is made up of multiple horizons H1 (steps).
- the prediction interval K1 is also called the prediction horizon.
- the prediction interval K1 includes multiple prediction elements C0 (e.g., 25 elements).
- Each prediction element C0 is a predicted value predicted by MPC for each control cycle in the prediction interval K1 from the present onwards, including the present.
- each prediction element C0 is a predicted value at the corresponding time.
- each prediction element C0 is a predicted value such as the position (coordinate position) and speed of the controlled object 2.
- Figure 4 shows only a portion of the prediction interval K1, the prediction interval K1 is a finite interval.
- one control period (horizon H1) has passed since the first time series D1.
- the second time series D2 shows the results of the optimization calculation executed next after the optimization calculation corresponding to the first time series D1 was executed.
- the horizon H1 has been moved back by one period relative to the first time series D1, which shows the results of the previous optimization calculation.
- the horizon H1 has been moved back by one period relative to the second time series D2, which shows the results of the previous optimization calculation.
- the control unit of the comparative example system uses model predictive control to execute an optimization calculation for the control input corresponding to the next prediction interval K1, which is moved back by one horizon H1.
- each of the first time series D1 to the third time series D3 exhibits a characteristic E2 that indicates the control input (control command) corresponding to each prediction element C0.
- the control input (control command) is the manipulated variable actually input to the controlled object 2 (plant) and is calculated based on the predicted value.
- the control command "1-1" that will actually be input to the controlled object 2 between times t0 and t1 can be calculated based on the first prediction element C0 (prediction element at time t1) in "Prediction 1" predicted based on the current time (time t0).
- the control command "2-1" that will actually be input to the controlled object 2 between times t1 and t2 can be calculated based on the first prediction element C0 (prediction element at time t2) in "Prediction 2" predicted based on the current time (time t1).
- the control command "3-1" that is actually input to the controlled object 2 between times t2 and t3 can be calculated based on the first prediction element C0 (prediction element at time t3) in "Prediction 3,” which is predicted based on the current time (time t2).
- control trajectory T1 of the controlled object 2 includes a sudden change in trajectory, such as the L-shaped path Q1 (corner) shown in Figure 1, in control command processing such as in the comparative system, a situation may arise in which the generation of the next "prediction” is not completed while the control command is being input and executed. For example, a situation may arise in which the generation of the next "prediction 2" is not completed even after the input and execution of control command "1-1" is completed.
- the prediction calculation load on the MPC for controlling the operation of the controlled object 2 increases, and the calculation processing may not be able to keep up, resulting in an increase in the calculation time required to generate the next "prediction.”
- fluctuations in the prediction calculation load on the MPC may cause variations in calculation time, which may result in a decrease in control accuracy due to variations in the calculation time in the MPC.
- control unit 10A of the control system 10 includes a generation unit 11, a storage unit 12, and a control input unit 13.
- the control unit 10A executes control command processing using the control input unit 13.
- the control unit 10A generates a control trajectory T1 (reference trajectory) for the control object 2.
- the control trajectory T1 is a trajectory for controlling the operation of the plant.
- the control unit 10A generates the control trajectory T1 based on CAD (Computer Aided Design) data or CAM (Computer Aided Manufacturing) data for the operation trajectory of the stage 20 of the control object 2.
- the control unit 10A can generate the control trajectory T1 based on data for a reference trajectory that is set directly by manual input by the user.
- the generation unit 11 of the control unit 10A generates multiple prediction elements C0 predicted based on each time point using model predictive control for the control trajectory T1 for the control object 2.
- the control method in this embodiment includes a generation step in which multiple prediction elements C0 predicted based on each time point using model predictive control for the control trajectory T1 for the control object 2 are generated.
- the "multiple prediction elements C0 predicted based on each time point" referred to here may correspond, for example, to the eight prediction elements C0 from times t1 to t8 predicted based on the current time t0 in Figure 6, or may correspond to the eight prediction elements C0 from times t2 to t9 predicted based on the current time t1.
- Figures 4 and 6 show only a portion of the entire prediction interval K1 (prediction horizon) that includes the current time point, and the actual number of prediction elements C0 generated by the generation unit 11 may be, for example, 25. In other words, the number of "multiple prediction elements C0 predicted based on each time point" is not limited to eight.
- the storage unit 12 of the control unit 10A accumulates (stocks) multiple prediction elements C0 generated based on each time point.
- the control method in this embodiment further includes an accumulation step in which the generated multiple prediction elements C0 are accumulated (stocked).
- the storage unit 12 for example, accumulates eight prediction elements C0 from times t1 to t8 predicted (generated) based on the present (time t0).
- the items to be stored are all prediction elements C0 generated by the generation unit 11 (e.g., 25 prediction elements C0), but two or more items may be sufficient, such as the eight prediction elements C0 shown in FIG. 6.
- the storage unit 12 stores information on the two or more prediction elements C0 to be stored in the memory unit 14.
- the control input unit 13 of the control unit 10A executes control command processing. That is, while the generation unit 11 is generating multiple prediction elements C0 predicted based on a point in time later than a certain point in time, the control input unit 13 applies control input based on two or more of the multiple prediction elements C0 generated and stored based on the certain point in time, and controls the control object 2.
- the control method in this embodiment further includes a control input step, in which, while the generation step is generating multiple prediction elements C0 predicted based on a point in time later than a certain point in time, the control input step applies control input based on two or more of the multiple prediction elements C0 generated and stored based on the certain point in time, and controls the control object 2.
- Fig. 5 is a conceptual diagram for explaining the control command processing of the control input unit 13.
- Fig. 6 is a conceptual diagram for explaining the receding horizon control in the control system 10, showing a prediction horizon.
- Figure 6 includes a first time series B1 showing an example of characteristic F1 of the results of executing an optimization calculation at a time point in the past (i.e., time t0) (hereinafter, also referred to as "Prediction 1," as in the explanation of the comparative example).
- the first time series B1 shows the actual measurement element P1 (actual measurement value) at time t0 (the present time) and the predicted element C0 (predicted value) at each time point (each time) from times t1 to t8 of "Prediction 1.”
- the generated “Prediction 1" is stored in the accumulation unit 12.
- FIG. 6 also includes a second time series B2 showing an example of the characteristic F1 of the results of the optimization calculation at the present time t0 (hereinafter, also referred to as "Prediction 2," as in the explanation of the comparative example).
- the second time series B2 shows the actual measurement element P1 at time t1 (the present time) and the predicted element C0 at each of times t2 to t9 of "Prediction 2.”
- the generated "Prediction 2" is stored in the accumulation unit 12.
- FIG. 6 also includes a third time series B3 showing an example of characteristic F1 of the results of execution of the optimization calculation at the present time (time t4) (hereinafter, as in the explanation of the comparative example, also referred to as "Prediction 3").
- the third time series B3 shows the actual measurement element P1 at time t4 (the present time) and the predicted element C0 at each time point from t5 to t12 of "Prediction 3.”
- the generated "Prediction 3" is stored in the accumulation unit 12.
- Prediction 1 when “Prediction 1,” “Prediction 2,” “Prediction 3,” etc. are not to be distinguished for the sake of explanation, they may be simply referred to as “predictions.” With regard to the timing of storing prediction elements C0, it is assumed that the accumulation unit 12 stores multiple prediction elements C0 all at once when the generation of each "prediction” is completed. However, they may also be stored sequentially in units of prediction elements C0 while each "prediction" is being generated.
- Figure 6 also shows the prediction interval K1.
- the prediction interval K1 is made up of multiple horizons H1 (steps).
- the prediction interval K1 is also called the prediction horizon.
- the prediction interval K1 includes multiple prediction elements C0 (e.g., 25 elements).
- Each prediction element C0 is a predicted value predicted by MPC for each control cycle in the prediction interval K1 from the present onwards, including the present.
- each prediction element C0 is a predicted value at the corresponding time.
- each prediction element C0 is a predicted value such as the position (coordinate position) and speed of the controlled object 2.
- Figure 6 shows only a portion of the prediction interval K1, the prediction interval K1 is a finite interval.
- the second time series B2 shows a situation where the current time is one hour ahead of the first time series B1.
- the third time series B3 shows a situation where the current time is three hours ahead of the second time series B2.
- the control unit 10A of the control system 10 uses model predictive control to perform optimization calculations for the control input corresponding to the next prediction interval K1, which is obtained by moving back the horizon H1 by one or more horizons.
- the number of horizons H1 moved back can vary depending on the length of the "prediction" generation time (TA1, TA2, TA3: see Figure 5). Note that the "generation time” is assumed to be roughly the same as the calculation time for the MPC prediction.
- each of the first time series B1 to the third time series B3 shows a characteristic F2 of the control input (control command) corresponding to each prediction element C0.
- the control input (control command) is the manipulated variable actually input to the controlled object 2 (plant) and is calculated based on the predicted value.
- control commands "1-1,” “1-2,” ... for the controlled object 2 can be calculated from time t0 onwards based on multiple prediction elements C0 (including the first prediction element C0 at time t1) in "Prediction 1,” which is generated and stored based on a time point in the past (i.e., the present) prior to time t0.
- Prediction 1 a time point in the past
- control commands "3-1", “3-2”, ... for the control object 2 can be calculated from time t4 onwards based on multiple prediction elements C0 (including the first prediction element C0 at time t5) in "Prediction 3" that are generated and stored based on the present (time t4).
- Prediction 2 the present (i.e., the present) prior to time t0.
- control commands "3-1", “3-2”, ... for the control object 2 can be calculated from time t4 onwards based on multiple prediction elements C0 (including the first prediction element C0 at time t5) in "Prediction 3" that are generated and stored based on the present (time t4).
- not all of the control commands calculated based on each "prediction” will necessarily be actually applied to the control object 2.
- control command "1-1" based on “Prediction 1” generated and stored based on a point in time prior to the present (time t0) is actually input to controlled object 2 between times t0 and t1. Furthermore, at time t0, when input execution of control command "1-1" begins, generation of the next "Prediction 2" begins. Furthermore, control command "1-2" is actually input to controlled object 2 between times t1 and t2.
- control commands "1-1" to "1-4" are input and executed based on "Prediction 1," which was generated and stored based on a point in time prior to the present (time t0).
- the control input unit 13 applies four control inputs based on the four prediction elements C0 of "Prediction 1,” which were generated and stored based on a certain point in time (a point in time earlier than time t0), to control control object 2.
- the generated "Prediction 2" is stored.
- the dashed-dotted box in the first time series B1 in Figure 6 indicates the control inputs (control commands) applied during the generation of "Prediction 2.”
- control commands "2-1" to “2-3” based on “Prediction 2” are not applied because control commands "1-2" to "1-4” based on "Prediction 1" have already been applied during the generation of Prediction 2.
- the control input unit 13 applies four control inputs based on the four prediction elements C0 of "Prediction 2,” which are generated and stored based on a certain point in time (time t0), to control control object 2.
- the generated "Prediction 3" is stored.
- the dashed-dotted box in the second time series B2 in Figure 6 indicates the control inputs (control commands) applied during the generation of "Prediction 3.”
- control command "3-1" to "3-4" based on “Prediction 3” are not applied because control commands "2-4" to "2-7” based on "Prediction 2" were already applied during the generation of Prediction 3.
- the control input unit 13 applies three control inputs based on the three prediction elements C0 of "Prediction 3,” which were generated and stored based on a certain point in time (time t4), to control the control object 2.
- the generated "Prediction 4" is stored.
- the dashed-dotted box in the third time series B3 of Figure 6 indicates the control inputs (control commands) applied during the generation of "Prediction 4.”
- generation time TA1 is the time from the start to the completion of generation of "Prediction 2”
- generation time TA2 is the time from the start to the completion of generation of "Prediction 3”
- generation time TA3 is the time from the start to the completion of generation of "Prediction 4.”
- generation time TA1 25 ms
- generation time TA2 32 ms
- generation time TA3 28 ms.
- control input unit 13 automatically adjusts (sets) the number of prediction elements C0 to be applied from among the multiple prediction elements C0 stored, depending on the generation time of the "prediction" currently being generated. In other words, for example, if the generation of "prediction 3" is completed between time t7 and time t8, the application of the prediction elements C0 for "prediction 2" will automatically end up until time t8, and from time t8 onwards the prediction elements C0 for the next new "prediction 3" will be applied.
- the number of prediction elements C0 to be applied may be set as a fixed value based on external operational input. For example, if the fixed value is "5", even if the generation of "Prediction 3" is completed between time t7 and time t8, as long as the number of prediction elements C0 of "Prediction 2" applied by time t8 is less than five, the application of prediction elements C0 of "Prediction 2" will continue. Application of prediction elements C0 of "Prediction 3" will begin from the point after the number of prediction elements C0 of "Prediction 2" applied reaches five.
- the control unit 10A outputs trajectory data related to the motion control of the controlled object 2 to the motion control unit 3 based on the applied control input.
- the trajectory generation system 1 further comprises a setting unit 15 (see Figure 1).
- the setting unit 15 performs various settings based on external operational input.
- the trajectory generation system 1 also comprises an operation unit 16 as a user interface 6 (see Figure 1).
- the operation unit 16 includes, for example, one or more of a mouse, keyboard, and pointing device.
- the trajectory generation system 1 also comprises a display unit 17 (display device) as a user interface 6 (see Figure 1).
- the display unit 17 displays, for example, information related to the settings of the setting unit 15 on a screen. The user operates the operation unit 16 to perform operational input while looking at the screen of the display unit 17.
- the operation unit 16 can receive operation input from the user regarding the setting of the number of prediction elements C0 to be applied as control input from among the multiple prediction elements C0.
- the display unit 17 can display an input screen for setting the number of prediction elements C0, etc., in response to operation input from the user.
- the user operates the operation unit 16 while viewing the input screen displayed on the display unit 17, for example, to set (specify) the number of prediction elements C0 to be applied.
- control system 10 further includes a setting unit 15, which sets the number of prediction elements C0 to be applied as control inputs in response to external operational inputs. This makes it easier for the user's requests regarding the setting of the number of prediction elements C0 to be applied as control inputs to be reflected in the control system (10), improving convenience.
- the control system 10 may present information such as that shown in Figures 5 and 6 to the user via the display unit 17.
- the operation unit 16 and display unit 17 are illustrated inside the motion controller 100, but they may also be provided in a terminal that is separate from the motion controller 100 and communicatively connected to the motion controller 100.
- the terminal may be, for example, a desktop PC, a notebook PC, or a tablet terminal. If the terminal is equipped with a touch panel display device (display unit 17), the display device may also function as the operation unit 16.
- the motion controller 100 of this embodiment controls, for example, data based on the control amount output from the controlled object 2 so that it matches a command value (target value) input from the host controller 5.
- the command value (target value) includes data specifying the position and speed of the controlled object 2 operating within a predetermined operating range.
- the motion controller 100 defines state variables using, for example, a state space model of the controlled object 2, with the estimation results of position, speed, etc. from the state estimation unit 4 as state quantities.
- the motion controller 100 then calculates, as the control input described above, an operation amount (required change amount) that optimizes (for example, minimizes) the deviation of the position and speed (difference from the target value) at each time.
- the motion controller 100 may be equipped with a disturbance observer that estimates disturbances such as vibrations that may be included in the control amount from the controlled object 2, and the trajectory generation system 1 may acquire the estimation results from the disturbance observer.
- the manipulated variable (control input) is not limited to the required amount of change in the speed of the controlled object 2.
- the manipulated variable (control input) may be the required amount of change in at least one of the position of the controlled object 2, joint angle (in the case of a multi-joint robot), posture, acceleration (angular acceleration), thrust, and torque.
- the control unit 10A outputs a control signal (e.g., a digital signal) indicating trajectory data based on the applied control input to the operation control unit 3.
- a control signal e.g., a digital signal
- the host controller 5 generates a command signal including an operation command (command value data) related to a specified work process and transmits it to the motion controller 100 for control.
- the operation command (command value data) may include target values related to the position, speed, etc. of the control target 2 described above.
- the operation control unit 3 controls the operation of the controlled object 2 based on the operation amounts in the trajectory data output from the trajectory generation system 1. Specifically, the operation control unit 3 determines the operation amounts for each of the X-axis 21 and Y-axis 22 individually for each control cycle based on the operation amounts from the trajectory generation system 1, and inputs these to the X-axis amplifier A1 and Y-axis amplifier A2 (control input).
- the operation amounts input to the X-axis amplifier A1 and Y-axis amplifier A2, respectively, may be current command values for the drive currents supplied to the first motor M1 and second motor M2, etc.
- the control system 10 in this embodiment has the function of executing auxiliary processing on prediction elements C0 that are applied (stored) as control input.
- the auxiliary processing can be a synthesis process as shown in FIG. 7 or a correction process as shown in FIG. 8.
- the control method in this embodiment further includes an auxiliary processing step, in which synthesis processing or correction processing is performed on prediction elements C0 that are applied as control input, out of multiple prediction elements C0 that have been generated and stored based on a certain point in time.
- the function of executing auxiliary processing is provided in the control input unit 13 of the control unit 10A.
- FIG. 7 is a graph showing a prediction horizon for explaining the synthesis process.
- the graph shows the same first time series B1 to third time series B3 as in FIG. 6.
- the explanation of the first time series B1 to third time series B3 may be omitted as appropriate.
- control commands (control inputs) enclosed in dashed lines. Specifically, these are the first control command “u18" based on the prediction element C0 at time t8 in "Prediction 1" stored in the past, the second control command “u27” based on the prediction element C0 at time t8 in "Prediction 2" stored in the past, and the third control command "u34" based on the prediction element C0 at time t8 in "Prediction 3" stored in the past.
- the control input unit 13 executes the combination process to combine multiple control commands (control inputs) at the same time period that are candidates for combination, and generates the control command to be applied.
- the multiple control commands at the same time period are the first control command "u18,” second control command "u27,” and third control command "u34" described above.
- the control input unit 13 weights (weighted averages) the first control command "u18", the second control command "u27", and the third control command "u34" so that the more recent the prediction result based on the control command, the greater the influence, and then combines them, as shown in the following equation (1):
- the control input unit 13 applies the synthesized control command "u" obtained, for example, by equation (1) between times t7 and t8 while "Prediction 4" is being generated, to control the controlled object 2.
- synthesized control command control input
- [Correction processing] 8 is a graph showing a prediction horizon for explaining the correction process, and for convenience, shows the fourth time series B4, which is a time series based on time t20. Note that, regarding the fourth time series B4, descriptions of parts common to the first time series B1 to the third time series B3 may be omitted as appropriate.
- the upper and lower sections show a fourth time series B4 including the characteristic F2 before correction, and a fourth time series B4 including the characteristic F3 obtained by correcting the characteristic F2.
- Figure 8 shows four measured elements P1 (measured values) that are the results of applying control commands (control inputs) based on the results of executing an optimization calculation at a time before time t20 (hereinafter referred to as "prediction 1A") at times t20 to t23, respectively, so that they can be easily compared with characteristic F1.
- Prediction 1B begins at time t20 and is completed between times t22 and t23.
- Prediction 1B after Prediction 1A may refer to the prediction 1B following Prediction 1A, or to the prediction 1B following Prediction 1A with one or more additional "predictions” in between.
- the fourth time series B4 in the upper part of Figure 8 shows an example of characteristic F1 of "Prediction 1B," the result of the optimization calculation at the present time (time t20).
- Characteristic F1 of "Prediction 1B" indicates the actual measurement element P1 (actual measurement value) at time t20 (the present time) and the prediction element C0 (predicted value) at each point in time (each time) from times t21 to t28. Furthermore, the fourth time series B4 in the upper part of Figure 8 shows characteristic F2 (before correction) of the control command corresponding to each prediction element C0 of "Prediction 1B.” The generated “Prediction 1B" is stored in the storage unit 12.
- FIG. 8 shows that as control commands based on "Prediction 1A" are applied at times t20 to t23 during the generation of "Prediction 1B," an error X1 occurs between the actual measurement element P1 and the prediction element C0 of "Prediction 1B," for example, at time t23. Let the value of error X1 be, for example, "3.”
- the control input unit 13 therefore executes a correction process to correct the control command (control input) to compensate for the error X1.
- the control input unit 13 performs a correction by adding correction amounts of "-2" and "-1" to the two control commands corresponding to the two prediction elements C0 at times t24 and t25 of "Prediction 1B,” respectively, thereby canceling out the "3" in the error X1 (see characteristic F3).
- the correction amounts for the three control commands corresponding to the three prediction elements C0 at times t26 to t28 are set to " ⁇ 0.”
- the control input unit 13 applies the corrected control command and controls the controlled object 2.
- the actual measurement element P1 actual measurement value
- the corrected control command control input in this way, it becomes easier to eliminate the error X1 between the prediction result at the time when generation of "Prediction 1B" is completed and the current state, for example, and control accuracy can be improved.
- the control system 10 may present information such as that shown in Figures 7 and 8 to the user via the display unit 17.
- control system 10 has the function of executing an adjustment process that automatically adjusts the length of the prediction horizon in the MPC according to the generation time of the prediction element C0.
- the generation unit 11 then generates multiple prediction elements C0 using the MPC with the adjusted prediction horizon length.
- the control method in this embodiment further includes an adjustment step.
- the generation times e.g., generation times TA1, TA2, and TA3 shown in FIG. 5
- the prediction horizon length is adjusted according to the predicted generation times.
- multiple prediction elements C0 are generated by model predictive control with the adjusted prediction horizon length.
- the function of executing the adjustment process is provided in the generation unit 11 of the control unit 10A.
- the generation unit 11 When generating multiple prediction elements C0 at the current time using MPC, the generation unit 11, for example, references the immediately preceding generation time required to generate the prediction elements C0 and estimates the generation time required to generate the multiple prediction elements C0 at that time based on the immediately preceding generation time.
- the generation unit 11 when generating "Prediction 3," the generation unit 11 references the generation time TA1 of the immediately preceding "Prediction 2" and estimates in advance the generation time TA2 required to generate "Prediction 3" based on the generation time TA1. For example, if the immediately preceding generation time TA1 is 25 ms, the generation unit 11 estimates that the next generation time TA2 will also be 25 ms.
- the generation time referenced for estimation is not limited to the immediately preceding generation time, and may be two or more previous generation times including the immediately preceding generation time. If the two or more previous generation times are trending upward or downward, the generation unit 11 may estimate the next generation time based on the rate of change, etc.
- generation times may also be estimated using machine learning, lookup tables, etc.
- the generation unit 11 automatically adjusts the prediction horizon length according to the estimated generation time. That is, the generation unit 11 increases or decreases the number of horizons H1 (steps). Here, it is assumed that if the estimated generation time exceeds half of the most recent prediction horizon length, the generation time is adjusted by shortening the next prediction horizon length (reducing the number of steps). For example, data on the correspondence between generation time and prediction horizon length may be stored in advance in the storage unit 14, and the generation unit 11 may refer to the correspondence data to determine the prediction horizon length that corresponds to the estimated generation time.
- the control system 10 acquires command value (target value) data from the host controller 5 for the controlled object 2 from the starting point to the destination point of a predetermined operating range (including the L-shaped path Q1) (step ST1).
- control trajectory T1 a reference trajectory that can be generated based on CAD data or CAM data regarding the motion trajectory of the stage 20 of the controlled object 2 (step ST2).
- the control system 10 obtains the estimation result (the state of the controlled object 2 estimated based on the control amount) from the state estimation unit 4 (step ST3).
- the control system 10 begins generating a "prediction" using the MPC (step ST4). Note that when the control system 10 begins generating a "prediction,” it may perform an adjustment process, as described above, to adjust the prediction horizon length in the MPC.
- the control system 10 is implemented in a motion controller 100 between the host controller 5 and the control object 2.
- the control system 10 may be implemented in a host controller 5 (e.g., a host PC) that also has the functions of the motion controller 100, and the host controller 5 may be connected to communicate with the control object 2.
- the host controller 5 may acquire control amount information from the control object 2, estimate the state of the control object 2, and perform optimization calculations using an MPC.
- the host controller 5 may also generate trajectory data and perform synchronous control of the X-axis 21 and Y-axis 22.
- control system 10 may be implemented in, for example, the X-axis amplifier A1 of the controlled object 2.
- the X-axis amplifier A1 may also have the functionality of the motion controller 100.
- the host controller 5 may be connected to communicate with the X-axis amplifier A1 of the controlled object 2.
- the X-axis amplifier A1 may acquire command value (target value) data for the controlled object 2 from the host controller 5, from the start point to the destination point of a predetermined operating range (including the L-shaped path Q1).
- the X-axis amplifier A1 may acquire information on the control amount of the first motor M1 and also acquire information on the control amount of the second motor M2 via the Y-axis amplifier A2, estimate the state of the controlled object 2, and perform optimization calculations using an MPC.
- the motion controller 100 implemented in the control system 10 includes a motion control unit 3 and a state estimation unit 4.
- each of the X-axis amplifier A1 and the Y-axis amplifier A2 of the controlled object 2 may also include a motion control unit 3 and a state estimation unit 4.
- the state estimation unit 4 of each of the X-axis amplifier A1 and the Y-axis amplifier A2 estimates the state of its corresponding axis, and each amplifier may use the estimation result for feedback control.
- Each amplifier may also transmit the estimation result by the state estimation unit 4 to the control system 10.
- the control object 2 is a two-axis machining center with an X axis and a Y axis.
- the control object 2 is not limited to "two axes" and may be, for example, a three-axis machining center with an X axis, a Y axis, and a Z axis, or a four-axis or five-axis machining center.
- the machining center is not limited to a "stage.”
- the control object 2 may be a multi-joint robot.
- the control object 2 may be an arm-type vertical multi-joint robot.
- the control object 2 may be a control object with a different drive system.
- the control object 2 may be, for example, equipment such as a conveying device, or a mobile object such as an automobile, an aircraft, a drone, or a self-propelled vacuum cleaner.
- control object 2 is a plant.
- control object 2 is not limited to being a plant, nor is it limited to being a mobile object.
- the control object 2 may be an air conditioner, and the control method and control system 10 may execute commands related to temperature control and air volume control of the air conditioner.
- control trajectory referred to in this disclosure is not limited to a control trajectory related to the operation of a processing machine or a mobile object, etc., but may also be a control trajectory related to changes in environmental factors such as temperature or air volume.
- control system 10 of the above embodiment is configured to apply control inputs based on "two or more" prediction elements C0 out of a plurality of prediction elements C0 stored in the past during the generation of a "prediction.”
- control input unit 13 applies control input based on "one or more" of the multiple prediction elements C0 generated and stored based on a certain point in time, depending on the generation time during which the multiple prediction elements C0 are generated, and controls the control object 2.
- control input step of the control method while the generation unit 11 is generating multiple prediction elements C0 predicted based on a point in time later than a certain point in time, the control input is applied based on "one or more" of the multiple prediction elements C0 generated and stored based on a certain point in time, depending on the generation time during which the multiple prediction elements C0 are generated, and controls the control object 2.
- control system 10 of this modified example is configured so that, depending on the length of time it takes to generate a "prediction" currently being generated, only the control input based on one prediction element C0 is applied, and the system can move on to generating the next "prediction.”
- the generation of "Prediction 3" in the second time series B2 begins at time t4 and is completed between times t7 and t8, during the input execution of control command "2-7" based on the stored "Prediction 2.”
- the generation of "Prediction 3" in the second time series B2 can begin at time t4 and be completed between times t4 and t5 (in other words, within a period shorter than the control cycle) while the input of control command "2-4" based on the stored "Prediction 2" is in progress.
- control command "2-4" based on "one" prediction element C0 will be applied.
- the control system 10 according to this modified example also reduces the possibility of a decrease in control accuracy due to variations in calculation time in model predictive control. Furthermore, because the control system 10 according to this modified example also does not need to complete "prediction" within the time of one control cycle, it may be possible to generate "predictions" by setting the prediction horizon interval (1 step: horizon H1) shorter than the actual control cycle. For example, if the actual control cycle is 10 ms, the prediction horizon interval can be set to 1 ms. As a result, the control system 10 is also capable of more accurate control.
- control system 10 according to Modification 2 (this modification) is configured to start generating the next "prediction” while a "prediction” is being generated.
- control system 10 according to this modification is configured to perform parallel calculations of "predictions.”
- the control system 10 begins generating "Prediction 4" between the start time t4 of generation of "Prediction 3" and the completion time t8. For example, while “Prediction 3" is being generated at time t7, the control system 10 also begins generating "Prediction 4" for the present (time t7). In other words, the generation periods for "Prediction 3" and "Prediction 4" partially overlap.
- control system 10 of this modified example compares, for example, the prediction element C0 stored at time t8 in "Prediction 3" with the prediction element C0 stored at the same time t8 in "Prediction 4,” and selects the prediction element C0 of "Prediction 4," which has a newer current reference. This makes it easier for the control system 10 of this modified example to apply control inputs based on the prediction element C0 stored more recently at the same time.
- the control method includes a generation step, an accumulation step, and a control input step.
- a plurality of prediction elements (C0) are generated by model predictive control for a control trajectory (T1) related to a control object (2) that is predicted based on each time point.
- the generated plurality of prediction elements (C0) are stored.
- the control input step while the generation step is generating a plurality of prediction elements (C0) that are predicted based on a time point after a certain time point, a control input based on two or more prediction elements (C0) of the plurality of prediction elements (C0) generated and stored based on the certain time point is applied to control the control object (2).
- the above aspect reduces the possibility of a decrease in control accuracy due to variations in calculation time in model predictive control.
- the control method includes a generation step, an accumulation step, and a control input step.
- a generation step a plurality of prediction elements (C0) are generated by model predictive control for a control trajectory (T1) related to the control object (2), predicted based on each time point.
- the generated plurality of prediction elements (C0) are stored.
- control input step during the generation of the plurality of prediction elements (C0) predicted based on a time point after a certain time point in the generation step, a control input based on one or more prediction elements (C0) of the plurality of prediction elements (C0) generated and stored based on a certain time point is applied according to the generation time during the generation of the plurality of prediction elements (C0), thereby controlling the control object (2).
- the above aspect reduces the possibility of a decrease in control accuracy due to variations in calculation time in model predictive control.
- the control method according to the third aspect is the same as the first or second aspect, but further includes an auxiliary processing step.
- auxiliary processing step a synthesis process or correction process is performed on a prediction element (C0) to be applied as a control input, out of multiple prediction elements (C0) generated and stored based on a certain point in time.
- the controlled object (2) is a plant.
- the control trajectory (T1) is a trajectory related to the operation control of the plant.
- the above aspect reduces the possibility that the control accuracy of plant operation control will decrease due to variations in calculation time in model predictive control.
- the above aspect provides a function that reduces the possibility of control accuracy decreasing due to variations in calculation time in model predictive control.
- the above aspect provides a control system (10) that reduces the possibility of a decrease in control accuracy due to variations in calculation time in model predictive control.
- a control system (10) includes a generation unit (11), a storage unit (12), and a control input unit (13).
- the generation unit (11) generates a plurality of prediction elements (C0) predicted based on each time point by model predictive control for a control trajectory (T1) related to a control object (2).
- the storage unit (12) stores the generated plurality of prediction elements (C0).
- the control input unit (13) applies a control input based on one or more of the plurality of prediction elements (C0) generated and stored based on a certain time point, in accordance with the generation time (TA1, TA2, TA3) during the generation of the plurality of prediction elements (C0), thereby controlling the control object (2).
- the above aspect provides a control system (10) that reduces the possibility of a decrease in control accuracy due to variations in calculation time in model predictive control.
- the control system (10) according to the ninth aspect is the seventh or eighth aspect, further comprising a setting unit (15).
- the setting unit (15) sets the number of prediction elements (C0) to be applied as control input in response to an external operation input.
- the user's wishes regarding the setting of the number of prediction elements (C0) to be applied as control inputs are more easily reflected in the control system (10), improving convenience.
- the configurations according to the third to fifth aspects are not essential for the control methods of the first or second aspects and may be omitted as appropriate. Furthermore, the configuration according to the ninth aspect is not essential for the control system (10) of the seventh or eighth aspect and may be omitted as appropriate.
- Control system 11 Generation unit 12 Storage unit 13 Control input unit 15 Setting unit 2 Control object C0 Prediction element T1 Control trajectory TA1, TA2, TA3 Generation time
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Automation & Control Theory (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Computation (AREA)
- Medical Informatics (AREA)
- Software Systems (AREA)
- Feedback Control In General (AREA)
Abstract
本開示は、モデル予測制御における演算時間のばらつきに起因して制御精度が低下してしまう可能性を低減することを目的とする。制御方法は、生成ステップと、蓄積ステップと、制御入力ステップとを含む。生成ステップでは、制御対象に関する制御軌道について、モデル予測制御により、各時点を基準として予測される複数の予測要素(C0)を生成する。蓄積ステップでは、生成された複数の予測要素(C0)を蓄える。制御入力ステップでは、生成ステップにてある時点より後の時点を基準として予測される複数の予測要素(C0)の生成中において、ある時点を基準として生成され蓄えられた複数の予測要素(C0)のうちの2つ以上の予測要素(C0)に基づく制御入力を適用し、制御対象の制御を実施する。
Description
本開示は、一般に、制御方法、プログラム、及び制御システムに関する。より詳細には本開示は、制御対象についての制御軌道に関する制御方法、プログラム、及び制御システムに関する。
特許文献1には、自走式掃除機等の移動体を目標経路に沿って精度良く効率的に移動させるために、モデル予測制御により移動体の移動を制御する移動体制御方法に関する技術が開示されている。この移動体制御方法では、制御タイミングにおいて、最適化問題を解くことにより得られた未来の制御入力の時系列のうち最初の制御指示を移動体に入力する。次の制御タイミングにおいて、実際の移動体の状態をセンサから取得し、再び最適化問題を解くことにより、目標経路と実際の走行経路とのずれを補正するような制御指示を移動体に入力する。
ところで、モデル予測制御を利用する場合、モデル予測制御の各時点における予測の演算時間にばらつきが生じ得る。この演算時間のばらつきに起因して制御精度が担保されない可能性がある。
本開示は上記事由に鑑みてなされ、モデル予測制御における演算時間のばらつきに起因して制御精度が低下してしまう可能性を低減できる制御方法、プログラム、及び制御システムを提供することを目的とする。
本開示の一態様に係る制御方法は、生成ステップと、蓄積ステップと、制御入力ステップとを含む。前記生成ステップでは、制御対象に関する制御軌道について、モデル予測制御により、各時点を基準として予測される複数の予測要素を生成する。前記蓄積ステップでは、生成された前記複数の予測要素を蓄える。前記制御入力ステップでは、前記生成ステップにてある時点より後の時点を基準として予測される前記複数の予測要素の生成中において、前記ある時点を基準として生成され蓄えられた前記複数の予測要素のうちの2つ以上の予測要素に基づく制御入力を適用し、前記制御対象の制御を実施する。
本開示の別の一態様に係る制御方法は、生成ステップと、蓄積ステップと、制御入力ステップとを含む。前記生成ステップでは、制御対象に関する制御軌道について、モデル予測制御により、各時点を基準として予測される複数の予測要素を生成する。前記蓄積ステップでは、生成された前記複数の予測要素を蓄える。前記制御入力ステップでは、前記生成ステップにてある時点より後の時点を基準として予測される前記複数の予測要素の生成中において、当該複数の予測要素の生成中の生成時間に応じて、前記ある時点を基準として生成され蓄えられた前記複数の予測要素のうちの1つ以上の予測要素に基づく制御入力を適用し、前記制御対象の制御を実施する。
本開示の一態様に係るプログラムは、1以上のプロセッサに、上記のいずれかの制御方法を実行させるためのプログラムである。
本開示の一態様に係る制御システムは、生成部と、蓄積部と、制御入力部とを備える。前記生成部は、制御対象に関する制御軌道について、モデル予測制御により、各時点を基準として予測される複数の予測要素を生成する。前記蓄積部は、生成された前記複数の予測要素を蓄える。前記制御入力部は、前記生成部にてある時点より後の時点を基準として予測される前記複数の予測要素の生成中において、前記ある時点を基準として生成され蓄えられた前記複数の予測要素のうちの2つ以上の予測要素に基づく制御入力を適用し、前記制御対象の制御を実施する。
本開示の別の一態様に係る制御システムは、生成部と、蓄積部と、制御入力部とを備える。前記生成部は、制御対象に関する制御軌道について、モデル予測制御により、各時点を基準として予測される複数の予測要素を生成する。前記蓄積部は、生成された前記複数の予測要素を蓄える。前記制御入力部は、前記生成部にてある時点より後の時点を基準として予測される前記複数の予測要素の生成中において、当該複数の予測要素の生成中の生成時間に応じて、前記ある時点を基準として生成され蓄えられた前記複数の予測要素のうちの1つ以上の予測要素に基づく制御入力を適用し、前記制御対象の制御を実施する。
(概要)
以下、実施形態及び変形例に係る制御方法、プログラム、及び制御システムについて、図面を用いて説明する。なお、下記の実施形態及び変形例は、本開示の様々な実施形態の一つに過ぎない。また、下記の実施形態及び変形例は、本開示の目的を達成できれば、設計等に応じて種々の変更が可能である。また、下記の各変形例の構成を下記の実施形態又は他の変形例と適宜組み合わせることも可能である。
以下、実施形態及び変形例に係る制御方法、プログラム、及び制御システムについて、図面を用いて説明する。なお、下記の実施形態及び変形例は、本開示の様々な実施形態の一つに過ぎない。また、下記の実施形態及び変形例は、本開示の目的を達成できれば、設計等に応じて種々の変更が可能である。また、下記の各変形例の構成を下記の実施形態又は他の変形例と適宜組み合わせることも可能である。
一態様に係る制御方法は、各時刻(各時点)を基準として未来の応答を予測しながら最適化を行うモデル予測制御(Model Predictive Control、以下、MPCと略することもある)の機能を用いて、制御対象2(図1参照:プラント)の動作制御に関する指令を実行する。また、一態様に係る制御システム10(図1、図2参照)は、MPCによる予測結果を利用して、上記指令を実行する。
以下では、制御対象2(プラント)は、一例として、X軸及びY軸の2軸機械(多軸機械)である2軸ステージ(加工機)であることを想定して説明する。2軸ステージは、左右の移動を行う「X軸」と前後の移動を行う「Y軸」の2つの軸を持った位置決めステージである。2軸ステージは、例えば2軸ステージとは別の加工機(レーザー加工機、又は切削加工機等)或いは塗布装置等による作業対象となるワークをステージ上にて位置決めする。
一態様に係る制御方法は、生成ステップと、蓄積ステップと、制御入力ステップとを含む。生成ステップでは、制御対象2に関する制御軌道T1(図1参照)について、モデル予測制御により、各時点を基準として予測される複数の予測要素C0(図6参照:予測値)を生成する。蓄積ステップでは、生成された複数の予測要素C0を蓄える。制御入力ステップでは、生成ステップにてある時点より後の時点を基準として予測される複数の予測要素C0の生成中において、ある時点を基準として生成され蓄えられた複数の予測要素C0のうちの2つ以上の予測要素C0に基づく制御入力を適用し、制御対象2の制御を実施する。なお、ここで言う「各時点を基準として予測される複数の予測要素C0」は、図6で言えば、例えば、現在=時刻t0を基準として予測される時刻t1~t8の8個の予測要素C0に相当し、或いは、現在=時刻t1を基準として予測される時刻t2~t9の8個の予測要素C0に相当し得る。
上記の一態様に係る制御方法によれば、ある時点より後の時点を基準として予測される複数の予測要素C0の生成中において、ある時点を基準として生成され蓄えられた複数の予測要素C0のうちの2つ以上の予測要素C0に基づく制御入力が適用される。そのため、ある時点より後の時点を基準とした複数の予測要素C0の生成に要する演算時間が遅延したとしても、ある時点を基準として生成され蓄えられた2つ以上の予測要素C0に基づき制御対象2が滞りなく制御維持され得る。つまり、演算時間の遅延により、制御対象2の制御が間に合わなくなるといった状況が起こりにくくなる。結果的に、上記の制御方法には、モデル予測制御における演算時間のばらつきに起因して制御精度が低下してしまう可能性を低減できる、という利点がある。
上記の一態様に係る制御方法は、コンピュータシステム(制御システム10)上で用いられる。つまり、上記の一態様に係る制御方法は、コンピュータプログラムでも具現化可能である。一態様に係るプログラムは、上記の一態様に係る制御方法を1以上のプロセッサに実行させるためのプログラムである。プログラムは、コンピュータで読み取り可能な非一時的記録媒体に記録されていてもよい。
一態様に係る制御システム10は、図1、図2に示すように、生成部11と、蓄積部12と、制御入力部13とを備える。生成部11は、制御対象2に関する制御軌道T1について、モデル予測制御により、各時点を基準として予測される複数の予測要素C0を生成する。蓄積部12は、生成された複数の予測要素C0を蓄える。制御入力部13は、生成部11にてある時点より後の時点を基準として予測される複数の予測要素C0の生成中において、ある時点を基準として生成され蓄えられた複数の予測要素C0のうちの2つ以上の予測要素C0に基づく制御入力を適用し、制御対象2の制御を実施する。上記の一態様に係る制御システム10においても、モデル予測制御における演算時間のばらつきに起因して制御精度が低下してしまう可能性を低減できる、という利点がある。
また、別の一態様に係る制御方法は、生成ステップと、蓄積ステップと、制御入力ステップとを含む。生成ステップでは、制御対象2に関する制御軌道T1について、モデル予測制御により、各時点を基準として予測される複数の予測要素C0を生成する。蓄積ステップでは、生成された複数の予測要素C0を蓄える。制御入力ステップでは、生成ステップにてある時点より後の時点を基準として予測される複数の予測要素C0の生成中において、当該複数の予測要素C0の生成中の生成時間(TA1、TA2、TA3:図5参照)に応じて、ある時点を基準として生成され蓄えられた複数の予測要素C0のうちの1つ以上の予測要素C0に基づく制御入力を適用し、制御対象2の制御を実施する。
上記の一態様に係る制御方法によれば、ある時点より後の時点を基準として予測される複数の予測要素C0の生成中において、その生成時間(演算時間)に応じて、ある時点を基準として生成され蓄えられた複数の予測要素C0のうちの1つ以上の予測要素C0に基づく制御入力が適用される。そのため、ある時点より後の時点を基準とした複数の予測要素C0の生成に要する演算時間が遅延したとしても、ある時点を基準として生成され蓄えられた1つ以上の予測要素C0に基づき制御対象2が滞りなく制御維持され得る。つまり、演算時間の遅延により、制御対象2の制御が間に合わなくなるといった状況が起こりにくくなる。結果的に、上記の制御方法には、モデル予測制御における演算時間のばらつきに起因して制御精度が低下してしまう可能性を低減できる、という利点がある。
上記の別の一態様に係る制御方法は、コンピュータシステム(制御システム10)上で用いられる。つまり、上記の別の一態様に係る制御方法は、コンピュータプログラムでも具現化可能である。一態様に係るプログラムは、上記の別の一態様に係る制御方法を1以上のプロセッサに実行させるためのプログラムである。プログラムは、コンピュータで読み取り可能な非一時的記録媒体に記録されていてもよい。
また、別の一態様に係る制御システム10は、生成部11と、蓄積部12と、制御入力部13とを備える。生成部11は、制御対象2に関する制御軌道T1について、モデル予測制御により、各時点を基準として予測される複数の予測要素C0を生成する。蓄積部12は、生成された複数の予測要素C0を蓄える。制御入力部13は、生成部11にてある時点より後の時点を基準として予測される複数の予測要素C0の生成中において、当該複数の予測要素C0の生成中の生成時間(TA1、TA2、TA3)に応じて、ある時点を基準として生成され蓄えられた複数の予測要素C0のうちの1つ以上の予測要素C0に基づく制御入力を適用し、制御対象2の制御を実施する。上記の別の一態様に係る制御システム10においても、モデル予測制御における演算時間のばらつきに起因して制御精度が低下してしまう可能性を低減できる、という利点がある。
なお、以下では、制御システム10が適用された軌道生成システム1(図1参照)を、モーションコントローラ100(図1参照)が備えることを想定する。つまり、一例として、制御システム10の機能の全てがモーションコントローラ100内に実装されていることを想定する。
そして、MPCは、制御対象2(ここでは2軸ステージ)のモデルに基づいて、予測区間K1(図6参照:有限区間)について最適化問題を解き、軌道生成システム1(制御システム10)は、その結果を使って軌道データを生成する。モーションコントローラ100は、軌道生成システム1からの軌道データに基づき、制御対象2の動作についてフィードバック制御する。すなわち、モーションコントローラ100(軌道生成システム1)は、MPCによる予測結果を利用し、制御対象2に対して制御入力を与える。なお、フィードバック制御が、モーションコントローラ100側で行われることは必須ではなく、制御対象2のX軸アンプA1、及びY軸アンプA2にて行われてもよい。
また、本開示における「ある時点より後の時点」とは、ある時点の次の時点でもよいし、ある時点から1個以上の時点を間に挟んだ後の時点でもよい。
(詳細)
(1)全体構成
以下、本実施形態に係る制御システム10、モーションコントローラ100及びその周辺構成を含んだ全体のシステムについて、図1~図8を参照しながら詳しく説明する。上述の通り、以下では一例として、制御対象2は、プラントである。特に、制御対象2が2軸ステージであることを想定して軌道生成システム1を説明する。
(1)全体構成
以下、本実施形態に係る制御システム10、モーションコントローラ100及びその周辺構成を含んだ全体のシステムについて、図1~図8を参照しながら詳しく説明する。上述の通り、以下では一例として、制御対象2は、プラントである。特に、制御対象2が2軸ステージであることを想定して軌道生成システム1を説明する。
制御対象2は、例えば、図1に示すように、ステージ20(基台)と、ステージ20をX軸方向に移動可能なX軸21と、ステージ20をY軸方向に移動可能なY軸22と、を備える。ステージ20上には、レーザー加工機、切削加工機又は塗布装置等による作業対象となるワークが設置され得る。
X軸21は、図1に示すように、第1モータM1(サーボモータ)と、第1モータM1を駆動制御するX軸アンプA1と、を備える。第1モータM1は、例えば回転型のモータであるが、リニアモータでもよい。Y軸22は、図1に示すように、第2モータM2(サーボモータ)と、第2モータM2を駆動制御するY軸アンプA2と、を備える。第2モータM2は、例えば回転型のモータであるが、リニアモータでもよい。X軸21とY軸22とは、ステージ20が所定のX-Y座標位置に移動するように同期制御される。
制御システム10(図1、図2参照)は、制御対象2の動作制御に関する指令を実行する。本実施形態では一例として、制御システム10は、軌道生成システム1として適用される(図1参照)。つまり、本実施形態では一例として、制御システム10の機能は、ステージ20の軌道生成に利用される。軌道生成システム1は、制御対象2の動作制御に関する軌道データを生成する。以下では、制御対象2のステージ20が、図1に模式的に示す位置Pt1、位置Pt2、及び位置Pt3を含む二次元のL字形状の経路(以下、L字経路Q1)を破線の矢印に沿って移動する場合に着目して、軌道データについて例示的に説明することがある。言い換えると、ステージ20が、位置Pt1から位置Pt2までのX軸方向に平行な経路を移動し、位置Pt2から位置Pt3までのY軸方向に平行な経路を移動する場合に着目して、軌道データについて例示的に説明することがある。ただし、制御対象2の動作は、直角に移動する動作に限定されず、鈍角又は鋭角に移動する動作、或いは曲線状(例えば円形状又は楕円形状)に移動する動作も含み得る。
モーションコントローラ100は、軌道生成システム1で生成された軌道データ等に基づき、制御対象2の動作制御(X軸21及びY軸22の同期制御)を実行する。モーションコントローラ100は、制御対象2と通信可能に接続されている。詳細には、モーションコントローラ100は、X軸アンプA1とY軸アンプA2の各々と個別に通信可能に接続されている。また、モーションコントローラ100は、上位コントローラ5と通信可能に接続されている。
モーションコントローラ100は、制御対象2から制御出力(制御量)を取得する。例えば、制御対象2には、第1モータM1、第2モータM2の位置、及び速度等を測定するエンコーダ、推力(又はトルク)を測定する力覚センサ等が設けられている。また、ステージ20の位置、及び速度等を計測する外部センサが、制御対象2に設けられることもある。外部センサの計測結果は、X軸アンプA1とY軸アンプA2とに出力され得る。
モーションコントローラ100は、制御対象2から制御量として第1モータM1、第2モータM2、ステージ20についての位置、速度、及び推力等のデータを取得する。なお、制御量には、制御対象2に発生する振動等の外乱も含まれ得る。
以下では、モーションコントローラ100が、制御対象2から制御出力(制御量)を取得して、モーションコントローラ100側でフィードバック制御が行われることを想定するが、この限りではない。モーションコントローラ100は、制御対象2に対して指令のみを実行し、フィードバック制御は、制御対象2のX軸アンプA1、及びY軸アンプA2にて行われてもよい。また、制御システム10の機能が、制御対象2のX軸アンプA1、及びY軸アンプA2の少なくとも一方に実装されてもよい。
モーションコントローラ100は、1以上のプロセッサ及びメモリを有するコンピュータシステムを含んでいる。コンピュータシステムのメモリに記録されたプログラムを、コンピュータシステムのプロセッサが実行することにより、モーションコントローラ100の少なくとも一部の機能が実現される。プログラムは、メモリに記録されていてもよいし、インターネット等の電気通信回線を通して提供されてもよく、メモリカード等の非一時的記録媒体に記録されて提供されてもよい。
モーションコントローラ100は、図1に示すように、軌道生成システム1(制御システム10)と、動作制御部3と、状態推定部4と、を備える。言い換えると、モーションコントローラ100は、制御システム10としての機能、動作制御部3としての機能、状態推定部4としての機能を有する。モーションコントローラ100のこれらの複数の機能は、1つの筐体に収容されていることを想定するが、その限りでなく、複数の筐体に分散して収容されてもよい。
状態推定部4は、制御対象2のX軸アンプA1及びY軸アンプA2から、エンコーダ、力覚センサ、及び外部センサ等による測定結果に基づく制御量のデータを含む信号を受信する。状態推定部4は、制御量のデータに基づき、制御対象2の状態を推定し、その推定結果を軌道生成システム1に出力する。一例として、状態推定部4は、制御量に基づき、制御対象2の位置(具体的には、ステージ20のX―Y座標の位置)と速度を推定する。
軌道生成システム1(制御システム10)は、MPC機能を有する。軌道生成システム1は、図1に示すように、記憶部14を備える。記憶部14は、フラッシュメモリ等の電気的に書き換え可能な不揮発性の半導体メモリを含む。記憶部14は、制御対象2に関する予測モデル(予測器)を記憶している。予測モデルとしては、例えば、伝達関数モデル、又は状態空間モデル等が利用され得る。
MPCでは、状態推定部4からの推定結果に基づき、現時刻(現在)からある未来の時間までの一定時間(図6の予測区間K1)の制御プロファイルを最適化する。
軌道生成システム1(制御システム10)は、制御部10Aを更に備える(図1参照)。
制御部10Aは、モデル予測制御を用いて、予測区間K1に対応する制御入力について最適化演算を実行する。本実施形態におけるMPCでは、各時刻(例えば図6の第1時系列B1では、時刻t0、t1、t2、・・・の各時刻)において、有限区間の未来までの応答を最適化する制御手法の1つであり、後退ホライズン制御とも呼ばれるReceding Horizon制御(RH制御)が行われる。そして、最適化された制御プロファイルが、実際の制御入力プロファイルに利用される。特に本実施形態では、後述の通り、2つ以上の予測要素C0が実際の制御入力プロファイルに利用され、その2つ以上の予測要素C0には、最初の予測要素C0を含む場合もあれば、含まない場合もあり得る。また制御部10Aは、後述の通り、1又は複数個分のホライズンH1を後退させて、次の予測区間K1に対応する制御入力について最適化演算を実行する。
ここでは、1個分の制御周期は、図6における1個分のホライズンH1(1ステップ)に相当する。制御対象2が動作制御される周期に、1個分の制御周期が相当する。つまり、各時刻(各時点)から、当該時刻の次の時刻(当該時点の次の時点)までの長さ(例えば、時刻t0から時刻t1までの長さ)は、1個分の制御周期に相当する。制御周期は、制御対象2側から取得される制御量のデータサンプリング周期と同じでもよいし、異なってもよい。
本実施形態では、図1に示した位置Pt1、位置Pt2、及び位置Pt3を含むL字経路Q1は、制御対象2の所定の動作範囲の一部の経路であり得る。所定の動作範囲の出発点及び目的点が、位置Pt1及び位置Pt3でもよい。
制御部10Aは、例えば、制御対象2の所定の動作範囲の出発点から目的点まで、ホライズンH1を1又は複数個分後退させながら、最適化演算を繰り返し実行する。すなわち、制御部10Aは、モデル予測制御を用いて、ホライズンH1を1又は複数個分後退させながら予測区間K1に対応する制御入力について最適化演算を繰り返し実行する。記憶部14は、(後述の通りストック対象となった)2つ以上の予測要素C0を記憶する。
ここで図3及び図4について説明する。図3は、本実施形態における制御システム10と比較するための比較例のシステムにおける制御指令処理を説明するための概念図である。図4は、比較例のシステムにおける後退ホライズン制御を説明するための概念図であり、予測ホライズンを示す。
図4は、現在=時刻t0における最適化演算の実行結果(以下「予測1」とも呼ぶ)の特性E1の一例を示す第1時系列D1を含む。「予測1」の特性E1は、時刻t0(現時点)の実測要素P1(実測値)と、時刻t1~t8の各時点(各時刻)における予測要素C0(予測値)を示す。
また、図4は、現在=時刻t1における最適化演算の実行結果(以下「予測2」とも呼ぶ)の特性E1の一例を示す第2時系列D2を含む。「予測2」の特性E1は、時刻t1(現時点)の実測要素P1と、時刻t2~t9の各時点における予測要素C0を示す。
また、図4は、現在=時刻t2における最適化演算の実行結果(以下「予測3」とも呼ぶ)の特性E1の一例を示す第3時系列D3を含む。「予測3」の特性E1は、時刻t2(現時点)の実測要素P1と、時刻t3~t10の各時点における予測要素C0を示す。
また、図4は、予測区間K1を示す。予測区間K1は、複数個のホライズンH1(ステップ)で構成される。予測区間K1は、予測ホライズンとも呼ぶ。予測区間K1は、複数の予測要素C0(例えば25個等)を含む。各予測要素C0は、現在を含む現在以降の予測区間K1において、MPCにより制御周期ごとに予測された予測値である。つまり、各予測要素C0は、対応する時刻における予測値である。各予測要素C0は、一例として制御対象2の位置(座標位置)及び速度等の予測値である。図4では、予測区間K1の一部のみを示すが、予測区間K1は、有限区間である。
第2時系列D2では、第1時系列D1から1個分の制御周期(ホライズンH1)が経過している。特に、第2時系列D2は、第1時系列D1に対応する最適化演算が実行されてから、その次に実行される最適化演算の実行結果を示す。言い換えると、第2時系列D2では、前回の最適化演算の実行結果を示す第1時系列D1に対して、ホライズンH1を1個分後退させている。同様に、第3時系列D3では、前回の最適化演算の実行結果を示す第2時系列D2に対して、ホライズンH1を1個分後退させている。すなわち、比較例のシステムの制御部は、モデル予測制御を用いて、ホライズンH1を1個分後退させた次の予測区間K1に対応する制御入力について最適化演算を実行する。
また、第1時系列D1~第3時系列D3の各々は、各予測要素C0に対応する制御入力(制御指令)を示す特性E2を示す。制御入力(制御指令)は、制御対象2(プラント)に対して実際に入力される操作量であり、予測値に基づき演算される。例えば、第1時系列D1で言えば、現在=時刻t0を基準として予測された「予測1」における最初の予測要素C0(時刻t1の予測要素)に基づき、時刻t0~t1の間に制御対象2に対して実際に入力される制御指令「1-1」が演算され得る。第2時系列D2で言えば、現在=時刻t1を基準として予測された「予測2」における最初の予測要素C0(時刻t2の予測要素)に基づき、時刻t1~t2の間に制御対象2に対して実際に入力される制御指令「2-1」が演算され得る。第3時系列D3で言えば、現在=時刻t2を基準として予測された「予測3」における最初の予測要素C0(時刻t3の予測要素)に基づき、時刻t2~t3の間に制御対象2に対して実際に入力される制御指令「3-1」が演算され得る。
ここで、図3に示すように、比較例のシステムの制御指令処理では、MPCによる「予測1」の生成完了後、時刻t0で次の「予測2」の生成を開始し、また、(図4でも示した)制御指令「1-1」が時刻t0~t1の間に制御対象2に対して実際に入力される。「予測2」の生成は、制御指令「1-1」の入力実行中の時刻t0~t1の間で完了し得る。「予測2」の生成完了後、時刻t1で次の「予測3」の生成を開始し、また、(図4でも示した)制御指令「2-1」が時刻t1~t2の間に制御対象2に対して実際に入力される。「予測3」の生成は、制御指令「2-1」の入力実行中の時刻t1~t2の間で完了し得る。「予測3」の生成完了後、時刻t2で次の「予測4」の生成を開始し、また、(図4でも示した)制御指令「3-1」が時刻t2~t3の間に制御対象2に対して実際に入力される。「予測4」の生成は、制御指令「3-1」の入力実行中の時刻t2~t3の間で完了し得る。「予測4」の生成完了後、時刻t3で次の「予測5」(図4では不図示)の生成を開始し、また、制御指令「4-1」(図4では不図示)が時刻t3~t4の間に制御対象2に対して実際に入力される。
要するに、比較例のシステムでは、複数の予測要素C0のうち最初の予測要素C0に基づく制御入力が入力(指令)され、図3の例では、各制御指令の入力実行中に、次の「予測」の生成が完了している。
ところが、制御対象2の制御軌道T1が、例えば図1に示したL字経路Q1(コーナー)等の急な軌道変化を含む場合、比較例のシステムのような制御指令処理では、制御指令の入力実行中に、次の「予測」の生成が完了しない状況が発生し得る。例えば制御指令「1-1」の入力実行が完了しても、次の「予測2」の生成が完了しない状況が発生し得る。例えば制御軌道T1がコーナー等の急な軌道変化を含む場合、比較例のシステムでは、制御対象2の動作制御に対するMPCの予測演算負荷が増し、演算処理が間に合わず、次の「予測」の生成に要する演算時間が増加する可能性がある。言い換えると、比較例のシステムでは、MPCの予測演算負荷の増減により演算時間にばらつきが生じ得るため、MPCにおける演算時間のばらつきに起因して制御精度が低下してしまう可能性がある。
そこで、本実施形態における制御システム10の制御部10Aは、生成部11と、蓄積部12と、制御入力部13とを備える。制御部10Aは、制御入力部13にて制御指令処理を実行する。
制御部10Aは、制御対象2に関する制御軌道T1(参照軌道)を生成する。ここでは、制御軌道T1は、プラントの動作制御に関する軌道である。具体的には、制御部10Aは、制御対象2のステージ20の動作軌道に関するCAD(Computer Aided Design)データ、又はCAM(Computer Aided Manufacturing)データに基づき、制御軌道T1を生成する。或いは、制御部10Aは、ユーザの手入力により直接設定された参照軌道に関するデータに基づき、制御軌道T1を生成し得る。
制御部10Aの生成部11は、制御対象2に関する制御軌道T1について、モデル予測制御により、各時点を基準として予測される複数の予測要素C0を生成する。言い換えると、本実施形態における制御方法は、生成ステップを含み、生成ステップでは、制御対象2に関する制御軌道T1について、モデル予測制御により、各時点を基準として予測される複数の予測要素C0を生成する。ここで言う「各時点を基準として予測される複数の予測要素C0」は、図6で言えば、例えば、現在=時刻t0を基準として予測される時刻t1~t8の8個の予測要素C0に相当し、或いは、現在=時刻t1を基準として予測される時刻t2~t9の8個の予測要素C0に相当し得る。なお、上述の通り、図4及び図6では、全体の予測区間K1(予測ホライズン)のうち、現時点を含む一部の予測区間K1だけを示していて、例えば、生成部11で生成される実際の予測要素C0の個数は25個等であり得る。つまり、「各時点を基準として予測される複数の予測要素C0」の個数は8個に限定されない。
制御部10Aの蓄積部12は、各時点を基準として生成された複数の予測要素C0を蓄える(ストックする)。言い換えると、本実施形態における制御方法は、蓄積ステップを更に含み、蓄積ステップでは、生成された複数の予測要素C0を蓄える(ストックする)。図6で言えば、蓄積部12は、例えば、現在=時刻t0を基準として予測(生成)された時刻t1~t8の8個の予測要素C0をストックする。ここでは、ストック対象が、生成部11で生成された全ての予測要素C0(例えば25個の予測要素C0)であることを想定するが、2個以上であればよく、例えば図6で示す8個の予測要素C0でもよい。蓄積部12は、ストック対象の2個以上の予測要素C0の情報を記憶部14に記憶する。
制御部10Aの制御入力部13は、制御指令処理を実行する。すなわち、制御入力部13は、生成部11にてある時点より後の時点を基準として予測される複数の予測要素C0の生成中において、ある時点を基準として生成され蓄えられた複数の予測要素C0のうちの2つ以上の予測要素C0に基づく制御入力を適用し、制御対象2の制御を実施する。言い換えると、本実施形態における制御方法は、制御入力ステップを更に含み、制御入力ステップでは、生成ステップにてある時点より後の時点を基準として予測される複数の予測要素C0の生成中において、ある時点を基準として生成され蓄えられた複数の予測要素C0のうちの2つ以上の予測要素C0に基づく制御入力を適用し、制御対象2の制御を実施する。
[制御入力部の制御指令処理]
以下、制御入力部13の制御指令処理について、図5、図6を参照しながら説明する。図5は、制御入力部13の制御指令処理を説明するための概念図である。図6は、制御システム10における後退ホライズン制御を説明するための概念図であり、予測ホライズンを示す。
以下、制御入力部13の制御指令処理について、図5、図6を参照しながら説明する。図5は、制御入力部13の制御指令処理を説明するための概念図である。図6は、制御システム10における後退ホライズン制御を説明するための概念図であり、予測ホライズンを示す。
図6は、現在=時刻t0より過去の時点における最適化演算の実行結果(以下、比較例の説明と同様に、「予測1」とも呼ぶ)の特性F1の一例を示す第1時系列B1を含む。第1時系列B1は、時刻t0(現時点)の実測要素P1(実測値)と、「予測1」の時刻t1~t8の各時点(各時刻)における予測要素C0(予測値)を示す。生成された「予測1」は、蓄積部12にてストックされる。
また、図6は、現在=時刻t0における最適化演算の実行結果(以下、比較例の説明と同様に、「予測2」とも呼ぶ)の特性F1の一例を示す第2時系列B2を含む。第2時系列B2は、時刻t1(現時点)の実測要素P1と、「予測2」の時刻t2~t9の各時点における予測要素C0を示す。生成された「予測2」は、蓄積部12にてストックされる。
また、図6は、現在=時刻t4における最適化演算の実行結果(以下、比較例の説明と同様に、「予測3」とも呼ぶ)の特性F1の一例を示す第3時系列B3を含む。第3時系列B3は、時刻t4(現時点)の実測要素P1と、「予測3」の時刻t5~t12の各時点における予測要素C0を示す。生成された「予測3」は、蓄積部12にてストックされる。
なお、以下では、「予測1」、「予測2」及び「予測3」等を説明上区別しない場合には、単に「予測」と呼ぶこともある。予測要素C0のストックするタイミングについては、蓄積部12は、各「予測」の生成が完了したタイミングで複数の予測要素C0を一括でストックすることを想定する。ただし、各「予測」の生成中に予測要素C0の単位で順次ストックしてもよい。
また、図6は、予測区間K1を示す。予測区間K1は、複数個のホライズンH1(ステップ)で構成される。予測区間K1は、予測ホライズンとも呼ぶ。予測区間K1は、複数の予測要素C0(例えば25個等)を含む。各予測要素C0は、現在を含む現在以降の予測区間K1において、MPCにより制御周期ごとに予測された予測値である。つまり、各予測要素C0は、対応する時刻における予測値である。各予測要素C0は、一例として制御対象2の位置(座標位置)及び速度等の予測値である。図6では、予測区間K1の一部のみを示すが、予測区間K1は、有限区間である。
第2時系列B2では、第1時系列B1に対して、現在の時刻が1時刻進んだ状況を示す。また、第3時系列B3では、第2時系列B2に対して、現在の時刻が3時刻進んだ状況を示す。
制御システム10の制御部10Aは、モデル予測制御を用いて、ホライズンH1を1又は複数個分後退させた次の予測区間K1に対応する制御入力について最適化演算を実行する。特に、比較例と違って、後退させるホライズンH1の数は、「予測」の生成時間(TA1、TA2、TA3:図5参照)の長さに応じて変わり得る。なお、「生成時間」は、MPCの予測の演算時間と概ね同じであることを想定する。
また、第1時系列B1~第3時系列B3の各々は、各予測要素C0に対応する制御入力(制御指令)の特性F2を示す。制御入力(制御指令)は、制御対象2(プラント)に対して実際に入力される操作量であり、予測値に基づき演算される。例えば、第1時系列B1で言えば、現在=時刻t0より過去の時点を基準として生成されてストックされた「予測1」における(時刻t1の最初の予測要素C0を含む)複数の予測要素C0に基づき、時刻t0以降において制御対象2に対する制御指令「1-1」、「1-2」、・・・が演算され得る。第2時系列B2で言えば、現在=時刻t0を基準として生成されてストックされた「予測2」における(時刻t2の最初の予測要素C0を含む)複数の予測要素C0に基づき、時刻t1以降において制御対象2に対する制御指令「2-1」、「2-2」、・・・が演算され得る。第3時系列B3で言えば、現在=時刻t4を基準として生成されてストックされた「予測3」における(時刻t5の最初の予測要素C0を含む)複数の予測要素C0に基づき、時刻t4以降において制御対象2に対する制御指令「3-1」、「3-2」、・・・が演算され得る。ただし、各「予測」に基づき演算した制御指令の全てが制御対象2に対して実際に適用されるとは限らない。
ここで、図5、図6に示すように、制御システム10の制御指令処理では、MPCによる「予測1」の生成とストックの完了後、現在=時刻t0より過去の時点を基準として生成されてストックされた「予測1」に基づく制御指令「1-1」が時刻t0~t1の間に制御対象2に対して実際に入力される。また、制御指令「1-1」の入力実行が開始される時刻t0で、次の「予測2」の生成を開始する。また、制御指令「1-2」が時刻t1~t2の間に制御対象2に対して実際に入力される。
そして、「予測2」の生成中に、現在=時刻t0より過去の時点を基準として生成されてストックされた「予測1」に基づく制御指令「1-1」~「1-4」が入力実行されている。
図5、図6の例では、「予測2」の生成が、ストックされた「予測1」に基づく制御指令「1-4」の入力実行中の時刻t3~t4の間で完了している。つまり、「予測2」の生成が完了するまでの間、ストックされた「予測1」における時刻t1~t4の4個の予測要素C0にそれぞれ基づく4個の制御指令「1-1」~「1-4」の入力により、制御対象2が維持制御されている。言い換えると、制御入力部13は、ある時点(時刻t0より過去の時点)より後の時点(時刻t0)を基準として予測される「予測2」の生成中において、ある時点(時刻t0より過去の時点)を基準として生成され蓄えられた「予測1」のうちの4つの予測要素C0に基づく4つの制御入力を適用し、制御対象2の制御を実施している。なお、生成された「予測2」は、ストックされる。図6の第1時系列B1における一点鎖線の枠は、「予測2」の生成中において適用された制御入力(制御指令)を示す。
「予測2」の生成とストックの完了後、時刻t4で、次の「予測3」の生成を開始し、また、現在=時刻t0を基準として生成されてストックされた「予測2」に基づく制御指令「2-4」が時刻t4~t5の間に制御対象2に対して実際に入力される。つまり、「予測2」に基づく制御指令「2-1」~「2-3」については、予測2の生成中に「予測1」に基づく制御指令「1-2」~「1-4」を適用済みのため、適用されない。
そして、「予測3」の生成中に、現在=時刻t0を基準として生成されてストックされた「予測2」に基づく制御指令「2-4」~「2-7」が入力実行されている。
図5、図6の例では、「予測3」の生成が、ストックされた「予測2」に基づく制御指令「2-7」の入力実行中の時刻t7~t8の間で完了している。つまり、「予測3」の生成が完了するまでの間、ストックされた「予測2」における時刻t5~t8の4個の予測要素C0にそれぞれ基づく4個の制御指令「2-4」~「2-7」の入力により、制御対象2が維持制御されている。言い換えると、制御入力部13は、ある時点(時刻t1)より後の時点(時刻t4)を基準として予測される「予測3」の生成中において、ある時点(時刻t0)を基準として生成され蓄えられた「予測2」のうちの4つの予測要素C0に基づく4つの制御入力を適用し、制御対象2の制御を実施している。なお、生成された「予測3」は、ストックされる。図6の第2時系列B2における一点鎖線の枠は、「予測3」の生成中において適用された制御入力(制御指令)を示す。
「予測3」の生成とストックの完了後、時刻t8で、次の「予測4」の生成を開始し、また、現在=時刻t4を基準として生成されてストックされた「予測3」に基づく制御指令「3-5」が時刻t8~t9の間に制御対象2に対して実際に入力される。つまり、「予測3」に基づく制御指令「3-1」~「3-4」については、予測3の生成中に「予測2」に基づく制御指令「2-4」~「2-7」を適用済みのため、適用されない。
そして、「予測4」の生成中に、現在=時刻t4を基準として生成されてストックされた「予測3」に基づく制御指令「3-5」~「3-7」が入力実行されている。
図5、図6の例では、「予測4」の生成が、ストックされた「予測3」に基づく制御指令「3-7」の入力実行中の時刻t10~t11の間で完了している。つまり、「予測4」の生成が完了するまでの間、ストックされた「予測3」における時刻t9~t11の3個の予測要素C0にそれぞれ基づく3個の制御指令「3-5」~「3-7」の入力により、制御対象2が維持制御されている。言い換えると、制御入力部13は、ある時点(時刻t4)より後の時点(時刻t8)を基準として予測される「予測4」の生成中において、ある時点(時刻t4)を基準として生成され蓄えられた「予測3」のうちの3つの予測要素C0に基づく3つの制御入力を適用し、制御対象2の制御を実施している。なお、生成された「予測4」は、ストックされる。図6の第3時系列B3における一点鎖線の枠は、「予測4」の生成中において適用された制御入力(制御指令)を示す。
図5に示す生成時間TA1は「予測2」の生成開始から完了までの時間であり、生成時間TA2は「予測3」の生成開始から完了までの時間であり、生成時間TA3は「予測4」の生成開始から完了までの時間である。一例として、生成時間TA1=25ms、生成時間TA2=32ms、生成時間TA3=28msであり得る。
このように、各「予測」の生成時間(演算時間)にはばらつきが発生し得るが、制御入力部13の制御指令処理では、生成時間にばらつきが発生しても、ストックされていた2つ以上の予測要素C0に基づく制御入力を適用して、制御対象2の制御を実施している。
なお、図5、図6の例では、ストックされていた複数の予測要素C0のうち、適用する予測要素C0の数については、制御入力部13が、生成中の「予測」の生成時間に応じて自動的に調整(設定)している。つまり、例えば、時刻t7と時刻t8との間で「予測3」の生成が完了すれば、時刻t8までを最後として「予測2」の予測要素C0の適用を自動的に終えて、時刻t8からは次の新しい「予測3」の予測要素C0を適用する。
ただし、後述の通り、適用する予測要素C0の数は、外部からの操作入力に基づき固定値として設定されてよい。例えば固定値=「5」であれば、時刻t7と時刻t8との間で「予測3」の生成が完了しても、時刻t8までに適用した「予測2」の予測要素C0の数が5個未満であれば、「予測2」の予測要素C0の適用を継続する。適用した「予測2」の予測要素C0の数が5個に到達した時点の次から「予測3」の予測要素C0の適用を開始する。
制御部10Aは、適用する制御入力に基づき、制御対象2の動作制御に関する軌道データを動作制御部3に出力する。
軌道生成システム1は、設定部15を更に備える(図1参照)。設定部15は、外部からの操作入力に基づき、各種の設定を行う。また、軌道生成システム1は、ユーザインタフェース6として操作部16を更に備える(図1参照)。操作部16は、例えば、マウス、キーボード、及びポインティングデバイス等のうち1以上を含む。また、軌道生成システム1は、ユーザインタフェース6として表示部17(表示装置)を更に備える(図1参照)。表示部17は、例えば設定部15の設定に関する情報を画面上に表示する。ユーザは、表示部17の画面を見ながら、操作部16を操作して操作入力を行う。
操作部16は、複数の予測要素C0の中から制御入力として適用する予測要素C0の数の設定に関する操作入力をユーザから受け付け得る。例えば、表示部17は、ユーザからの操作入力に応じて、予測要素C0の数の設定等の入力画面を表示し得る。ユーザは、例えば表示部17に表示される入力画面を見ながら、操作部16を操作して、適用する予測要素C0の数を設定(指定)する。
設定部15は、操作部16による操作入力に基づき、「予測」の生成中に適用する予測要素C0の数の設定を行う。設定部15は、例えば適用する予測要素C0の数の設定情報を記憶部14に格納(保存)する。例えば、制御システム10では、設定部15により、予測要素C0の数の設定についてユーザが決めた「固定値」とするか制御システム10による「自動調整」とするかを選択できる。なお、固定値の場合、予測要素C0の数はある程度多いことが好ましく、例えば、予測ホライズンのホライズン(ステップ)総数が25個であれば、予測要素C0の数はその半分程度の数であることが好ましい。
要するに、制御システム10は、設定部15を更に備え、設定部15は、外部からの操作入力に応じて、制御入力として適用する予測要素C0の数を設定する。そのため、制御入力として適用する予測要素C0の数の設定に対するユーザの要望が制御システム(10)に反映され易くなり、利便性が向上する。
制御システム10は、図5、図6に示したような情報を、表示部17を介して、ユーザに提示してもよい。
図1では、便宜上、操作部16及び表示部17は、モーションコントローラ100内に図示されているが、例えばモーションコントローラ100とは別体でモーションコントローラ100と通信可能に接続される端末に設けられ得る。端末は、例えばデスクトップPC、ノートPC、又はタブレット端末等であり得る。端末がタッチパネルディスプレイの表示装置(表示部17)を備える場合、当該表示装置が操作部16の機能を兼ね得る。
本実施形態のモーションコントローラ100は、例えば、制御対象2から出力される制御量に基づくデータを、上位コントローラ5から入力される指令値(目標値)に一致させるように制御する。指令値(目標値)には、所定の動作範囲内で動作する制御対象2の位置及び速度を指定するデータが含まれている。モーションコントローラ100は、例えば、制御対象2の状態空間モデルを用いて、状態推定部4からの位置及び速度等の推定結果を状態量として状態変数を定義する。そして、モーションコントローラ100は、各時刻において位置及び速度の偏差(目標値との差)を最適化(例えば最小化)するような操作量(必要変化量)を上述した制御入力として計算する。モーションコントローラ100は、制御対象2からの制御量に含まれ得る振動等の外乱を推定する外乱オブザーバ(Disturbance Observer)を備えてもよく、軌道生成システム1は、外乱オブザーバからの推定結果を取得してもよい。
なお、操作量(制御入力)は、制御対象2の速度に関する必要変化量に限定されない。操作量(制御入力)は、制御対象2の種類によっては、制御対象2の位置、(多関節ロボットであれば)関節角度、姿勢、加速度(角加速度)、推力、及びトルクの少なくとも1つに関する必要変化量であり得る。
制御部10Aは、適用する制御入力に基づく軌道データを示す制御信号(例えばデジタル信号)を動作制御部3に出力する。
上位コントローラ5は、例えばプログラマブルロジックコントローラ(PLC)として構成されている。上位コントローラ5は、モーションコントローラ100(軌道生成システム1)と通信可能に接続されている。上位コントローラ5は、上位PC(パーソナルコンピュータ)として構成されてもよい。
上位コントローラ5は、所定の作業工程に関する動作指令(指令値データ)を含む指令信号を生成し、モーションコントローラ100に送信して制御する。動作指令(指令値データ)は、上述した制御対象2の位置、及び速度等に関する目標値を含み得る。
動作制御部3は、軌道生成システム1から出力される軌道データにおける操作量に基づき、制御対象2の動作を制御する。具体的には、動作制御部3は、軌道生成システム1からの操作量に基づき、制御周期ごとに、X軸21とY軸22の各々の操作量を個別に決定し、X軸アンプA1及びY軸アンプA2に入力する(制御入力)。X軸アンプA1及びY軸アンプA2にそれぞれ入力される操作量は、第1モータM1及び第2モータM2に供給する駆動電流の電流指令値等であり得る。
X軸アンプA1及びY軸アンプA2の各々は、対応するモータ(第1モータM1、第2モータM2)に電力を供給するインバータ回路を有する。すなわち、動作制御部3は、制御周期ごとの操作量である速度指令値等に基づき、第1モータM1及び第2モータM2に供給する駆動電流の電流値を個別に決定する。そして、動作制御部3は、X軸アンプA1及びY軸アンプA2の各々のインバータ回路を制御して、対応するモータに供給する駆動電流を調整する。なお、駆動電流の電流値の決定は、X軸アンプA1及びY軸アンプA2の各々で行われてもよい。
(2)予測要素に対する補助処理
以下、制御システム10における予測要素C0に対する補助処理について、図7、図8を参照しながら説明する。
以下、制御システム10における予測要素C0に対する補助処理について、図7、図8を参照しながら説明する。
本実施形態における制御システム10は、制御入力として適用される(ストックされていた)予測要素C0に対する補助処理を実行する機能を有する。補助処理は、図7に示すような合成処理、又は図8に示すような補正処理であり得る。すなわち、本実施形態における制御方法は、補助処理ステップを更に含み、補助処理ステップでは、ある時点を基準として生成され蓄えられた複数の予測要素C0のうち、制御入力として適用される予測要素C0に対して合成処理又は補正処理を行う。ここでは一例として、補助処理を実行する機能が、制御部10Aの制御入力部13に設けられているとする。
[合成処理]
図7は、合成処理を説明するための予測ホライズンを示すグラフであり、ここでは説明の便宜上、図6と同じ第1時系列B1~第3時系列B3を示しており、以下では、第1時系列B1~第3時系列B3に関して適宜説明を省略することがある。
図7は、合成処理を説明するための予測ホライズンを示すグラフであり、ここでは説明の便宜上、図6と同じ第1時系列B1~第3時系列B3を示しており、以下では、第1時系列B1~第3時系列B3に関して適宜説明を省略することがある。
図7に示すように、例えば時刻t7~t8の間においては、一点鎖線の枠で囲んだ3つの制御指令(制御入力)が存在している。具体的には、過去にストックされた「予測1」における時刻t8の予測要素C0に基づく第1制御指令「u18」、過去にストックされた「予測2」における時刻t8の予測要素C0に基づく第2制御指令「u27」、及び過去にストックされた「予測3」における時刻t8の予測要素C0に基づく第3制御指令「u34」の3つである。
例えば、「予測4」の生成が、時刻t7から開始されることを想定する。「予測4」の生成中の時刻t7~t8の間において、ストックされた直近の「予測3」における時刻t8の予測要素C0に基づく第3制御指令「u34」がそのまま適用されてもよいが、合成処理による合成結果となる制御指令が適用される。すなわち、制御入力部13は、合成処理を実行し、合成候補となる同時刻帯の複数の制御指令(制御入力)を合成して、適用する制御指令を生成する。図7の例では、同時刻帯の複数の制御指令とは、上述した第1制御指令「u18」、第2制御指令「u27」、及び第3制御指令「u34」の3つである。
制御入力部13は、例えば下記の式(1)のように、第1制御指令「u18」、第2制御指令「u27」、及び第3制御指令「u34」について、新しい予測結果に基づく制御指令ほど影響度が高くなるように重み付け(重み付き平均)をして合成する。
制御入力部13は、「予測4」の生成中の時刻t7~t8の間において、例えば式(1)で得られた合成後の制御指令「u」を適用し、制御対象2の制御を実施する。このように合成後の制御指令(制御入力)が適用されることで、例えば各最適化演算での制御入力について「ばらつき」による誤差が低減されやすくなり、制御精度が向上し得る。
[補正処理]
図8は、補正処理を説明するための予測ホライズンを示すグラフであり、ここでは便宜上、時刻t20を基準とする時系列である第4時系列B4を示している。なお、第4時系列B4について、第1時系列B1~第3時系列B3と共通する箇所に関して適宜説明を省略することがある。
図8は、補正処理を説明するための予測ホライズンを示すグラフであり、ここでは便宜上、時刻t20を基準とする時系列である第4時系列B4を示している。なお、第4時系列B4について、第1時系列B1~第3時系列B3と共通する箇所に関して適宜説明を省略することがある。
図8は、上段と下段のそれぞれに、補正前の特性F2を含む第4時系列B4と、特性F2が補正された特性F3を含む第4時系列B4とを示している。
先ず、図8の上段(補正前の特性F2)について説明する。図8は、時刻t20より手前のある時刻における最適化演算の実行結果(以下「予測1A」とも呼ぶ)に基づく制御指令(制御入力)が時刻t20~t23にてそれぞれ適用された結果である4つの実測要素P1(実測値)を、特性F1と比較し易いように示す。
図8の上段の例では、「予測1A」より後の「予測1B」の生成が、時刻t20から開始されて、時刻t22~t23の間で完了したとする。ここで言う「予測1Aより後の予測1B」とは、予測1Aの次の予測1Bでもよいし、予測1Aから1以上の別の「予測」を間に挟んだ後の予測1Bでもよい。図8の上段の第4時系列B4は、現在=時刻t20における最適化演算の実行結果「予測1B」の特性F1の一例を示す。「予測1B」の特性F1は、時刻t20(現時点)の実測要素P1(実測値)と、時刻t21~t28の各時点(各時刻)における予測要素C0(予測値)を示す。また、図8の上段の第4時系列B4は、「予測1B」の各予測要素C0に対応する制御指令の(補正前の)特性F2を示す。生成された「予測1B」は、蓄積部12にてストックされる。
図8の上段は、「予測1B」の生成中において「予測1A」に基づく制御指令が時刻t20~t23にてそれぞれ適用されていくことで、例えば時刻t23で、実測要素P1と「予測1B」の予測要素C0との間に誤差X1が生じていることを示している。誤差X1の値を例えば「3」とする。
そこで、制御入力部13は、補正処理を実行し、誤差X1を埋めるように制御指令(制御入力)を補正する。制御入力部13は、例えば図8の下段に示すように、「予測1B」の時刻t24、t25における2つの予測要素C0に対応する2つの制御指令について、それぞれ補正量「-2」、「-1」を加算する補正を行い、誤差X1の「3」を相殺し得る(特性F3参照)。なお、時刻t26~t28における3つの予測要素C0に対応する3つの制御指令に対する補正量は「±0」とする。
制御入力部13は、例えば「予測1B」の次の「予測1C」の生成が時刻t23から開始された時には、補正後の制御指令を適用し、制御対象2の制御を実施する。その結果、図8の下段に示すように、時刻t24以降の実測要素P1(実測値)は「予測1B」に近づくように修正されていく。このように補正後の制御指令(制御入力)が適用されることで、例えば「予測1B」の生成完了時点における予測結果と現時点での状態との誤差X1が解消されやすくなり、制御精度が向上し得る。
制御システム10は、図7、図8に示したような情報を、表示部17を介して、ユーザに提示してもよい。
(3)予測ホライズン長さの調整処理
以下、制御システム10における予測ホライズン長さの調整処理について説明する。
以下、制御システム10における予測ホライズン長さの調整処理について説明する。
本実施形態における制御システム10は、MPCにおける予測ホライズンの長さを予測要素C0の生成時間に応じて自動的に調整する調整処理を実行する機能を有する。そして、生成部11は、予測ホライズン長さが調整されたMPCにより、複数の予測要素C0を生成する。
すなわち、本実施形態における制御方法は、調整ステップを更に含む。調整ステップでは、生成ステップにて複数の予測要素C0を生成する生成時間(例えば図5に示す生成時間TA1、TA2、TA3)を予測し、予測した生成時間に応じて予測ホライズン長さを調整する。生成ステップでは、予測ホライズン長さが調整されたモデル予測制御により、複数の予測要素C0を生成する。ここでは一例として、調整処理を実行する機能が、制御部10Aの生成部11に設けられているとする。
生成部11は、MPCにより現在の時刻における複数の予測要素C0を生成する際に、例えば、予測要素C0の生成に要した直前の生成時間を参照し、直前の生成時間に基づき、当該時刻における複数の予測要素C0の生成に要する生成時間を推定する。図5の例で言えば、生成部11は、「予測3」を生成する際に、直前の「予測2」の生成時間TA1を参照し、生成時間TA1に基づき「予測3」の生成に要する生成時間TA2を事前に推定する。例えば、生成部11は、直前の生成時間TA1=25msなら次の生成時間TA2も25msと推定する。なお、推定するために参照する生成時間は、直前の生成時間に限定されず、直前の生成時間を含めて過去の2個以上の生成時間であってもよい。生成部11は、過去の2個以上の生成時間が増加傾向、又は減少傾向であれば、その変化率等に応じて次の生成時間を推定してもよい。
また、生成時間の推定は、過去の生成時間を参照する以外にも、機械学習又はルックアップテーブル等を利用して行われてもよい。
生成部11は、推定した生成時間に応じて、予測ホライズン長さを自動的に調整する。すなわち、生成部11は、ホライズンH1(ステップ)の数の増減を行う。ここでは、推定された生成時間が、直近の予測ホライズン長さの半分を超過する場合は、次回の予測ホライズン長さを短くして(ステップ数を削減して)生成時間を調整することを想定する。例えば、生成時間と予測ホライズン長さとの対応関係のデータが予め記憶部14に記憶されていて、生成部11は、対応関係のデータを参照して、推定した生成時間に対応する予測ホライズン長さを決定してもよい。
このような調整処理が実行されることで、例えば予測ホライズンが長くてモデル予測制御による予測が間に合わない可能性を減らすことができ、制御精度が向上し得る。
(4)制御システムの動作
以下、制御システム10(軌道生成システム1)の動作に関する処理の一連の流れについて図9を参照して説明する。図9に示すフローチャートは、制御システム10に関する動作フローの一例に過ぎず、処理の順序が適宜変更されてもよいし、処理が適宜追加又は省略されてもよい。
以下、制御システム10(軌道生成システム1)の動作に関する処理の一連の流れについて図9を参照して説明する。図9に示すフローチャートは、制御システム10に関する動作フローの一例に過ぎず、処理の順序が適宜変更されてもよいし、処理が適宜追加又は省略されてもよい。
制御システム10は、上位コントローラ5から、制御対象2の所定の動作範囲(L字経路Q1を含む)の出発点から目的点までについての指令値(目標値)のデータを取得する(ステップST1)。
また、制御システム10は、制御対象2のステージ20の動作軌道に関するCADデータ、又はCAMデータに基づき生成され得る参照軌道(制御軌道T1)を取得する(ステップST2)。
制御システム10は、状態推定部4から推定結果(制御量に基づき推定された制御対象2の状態)を取得する(ステップST3)。
制御システム10は、MPCを用いて「予測」の生成を開始する(ステップST4)。なお、制御システム10は、「予測」の生成を開始する時、上述の通り、調整処理を行って、MPCにおける予測ホライズン長さを調整し得る。
また、制御システム10は、「予測」の生成中において、ストックしていた直近の「予測」の予測要素C0に基づく制御入力を適用し(ステップST5)、制御入力の情報を含む軌道データを出力する。その結果、動作制御部3は、制御入力の情報を含む軌道データに基づき、X軸21及びY軸22の同期制御を行う。なお、制御システム10は、制御入力を適用する時、上述の通り、合成処理又は補正処理を行って、合成後又は補正後の制御入力を適用し得る。
そして、「予測」の生成が完了すれば(ステップST6:Yes)、制御システム10は、生成した「予測」をストックする(ステップST7)。一方、「予測」の生成が完了していなければ(ステップST6:No)、制御システム10は、ステップST5に戻りストックしていた予測要素C0に基づく制御入力を適用し、制御入力の情報を含む軌道データを出力する。
ステップST3~ST7は、制御対象2が目的点に到達するまで繰り返し実行され得る。
(5)利点
以上の通り、本実施形態に係る制御システム10によれば、ある時点より後の時点を基準として予測される複数の予測要素C0の生成中において、ある時点を基準として生成され蓄えられた複数の予測要素C0のうちの2つ以上の予測要素C0に基づく制御入力が適用される。そのため、ある時点より後の時点を基準とした複数の予測要素C0の生成に要する演算時間が遅延したとしても、ある時点を基準として生成され蓄えられた2つ以上の予測要素C0に基づき制御対象2が滞りなく制御維持され得る。つまり、演算時間の遅延により、制御対象2の制御が間に合わなくなるといった状況が起こりにくくなる。ま結果的に、上記の制御方法には、モデル予測制御における演算時間のばらつきに起因して制御精度が低下してしまう可能性を低減できる、という利点がある。
以上の通り、本実施形態に係る制御システム10によれば、ある時点より後の時点を基準として予測される複数の予測要素C0の生成中において、ある時点を基準として生成され蓄えられた複数の予測要素C0のうちの2つ以上の予測要素C0に基づく制御入力が適用される。そのため、ある時点より後の時点を基準とした複数の予測要素C0の生成に要する演算時間が遅延したとしても、ある時点を基準として生成され蓄えられた2つ以上の予測要素C0に基づき制御対象2が滞りなく制御維持され得る。つまり、演算時間の遅延により、制御対象2の制御が間に合わなくなるといった状況が起こりにくくなる。ま結果的に、上記の制御方法には、モデル予測制御における演算時間のばらつきに起因して制御精度が低下してしまう可能性を低減できる、という利点がある。
また、本実施形態に係る制御システム10では、1制御周期分の時間内で「予測」を完了する必要性がなくなるため、予測ホライズンの間隔(1ステップ:ホライズンH1)を実際の制御周期よりも短く設定して「予測」を生成することも可能になり得る。例えば実際の制御周期が10msとすると、予測ホライズンの間隔を1msとすることができる。そのため、制御システム10はより高精度な制御も可能である。
特に、制御システム10では、制御周期以上の時間を予測演算に使用できるようになるため、複雑な制御軌道T1(例えば非線形の制御軌道)についても制御可能となり得る。また、制御システム10は、離散的なシステムだけでなく、連続的なシステムにも適用可能である。
(6)変形例
以下、上記実施形態の変形例を列挙する。
以下、上記実施形態の変形例を列挙する。
上記実施形態に係る制御システム10と同様の機能は、制御方法、コンピュータプログラム、又はコンピュータプログラムを記録した非一時的記録媒体等で具現化されてもよい。
本開示における制御システム10は、コンピュータシステムを含んでいる。コンピュータシステムは、ハードウェアとしてのプロセッサ及びメモリを主構成とする。コンピュータシステムのメモリに記録されたプログラムをプロセッサが実行することによって、本開示における制御システム10としての機能が実現される。プログラムは、コンピュータシステムのメモリに予め記録されてもよく、電気通信回線を通じて提供されてもよく、コンピュータシステムで読み取り可能なメモリカード、光学ディスク、ハードディスクドライブ等の非一時的記録媒体に記録されて提供されてもよい。コンピュータシステムのプロセッサは、半導体集積回路(IC)又は大規模集積回路(LSI)を含む1ないし複数の電子回路で構成される。ここでいうIC又はLSI等の集積回路は、集積の度合いによって呼び方が異なっており、システムLSI、VLSI(Very Large Scale Integration)、又はULSI(Ultra Large Scale Integration)と呼ばれる集積回路を含む。さらに、LSIの製造後にプログラムされる、FPGA(Field-Programmable Gate Array)、又はLSI内部の接合関係の再構成若しくはLSI内部の回路区画の再構成が可能な論理デバイスについても、プロセッサとして採用することができる。複数の電子回路は、1つのチップに集約されていてもよいし、複数のチップに分散して設けられていてもよい。複数のチップは、1つの装置に集約されていてもよいし、複数の装置に分散して設けられていてもよい。ここでいうコンピュータシステムは、1以上のプロセッサ及び1以上のメモリを有するマイクロコントローラを含む。したがって、マイクロコントローラについても、半導体集積回路又は大規模集積回路を含む1ないし複数の電子回路で構成される。
また、制御システム10における複数の機能が、1つのハウジング内に集約されていることは必須の構成ではない。例えば、制御システム10の構成要素は、複数のハウジングに分散して設けられていてもよい。
反対に、制御システム10における複数の機能が、1つのハウジング内に集約されてもよい。さらに、制御システム10の少なくとも一部の機能、例えば、制御システム10の一部の機能がクラウド(クラウドコンピューティング)等によって実現されてもよい。
上記実施形態では、制御システム10における全ての機能がモーションコントローラ100内に実装されている。ただし、この限りではなく、制御システム10の機能の少なくとも一部の機能が、モーションコントローラ100以外の装置(例えば図1に示す上位コントローラ5、X軸アンプA1、又はY軸アンプA2)内に実装されてもよい。
具体的には、上記実施形態では、図1で示したように、制御システム10は、上位コントローラ5と制御対象2との間のモーションコントローラ100に実装されている。しかし、例えば制御システム10は、モーションコントローラ100の機能も兼ね備えた上位コントローラ5(例えば上位PC)に実装され、上位コントローラ5は、制御対象2と通信するように接続されてもよい。上位コントローラ5は、制御対象2から制御量の情報を取得し、制御対象2の状態を推定し、MPCを用いて最適化演算を実行してもよい。上位コントローラ5は、軌道データを生成して、X軸21及びY軸22の同期制御を行ってもよい。
或いは、制御システム10は、例えば、制御対象2のX軸アンプA1に実装されてもよい。X軸アンプA1は、モーションコントローラ100の機能も兼ね備えてもよい。上位コントローラ5は、制御対象2のX軸アンプA1と通信するように接続されてもよい。X軸アンプA1は、上位コントローラ5から制御対象2の所定の動作範囲(L字経路Q1を含む)の出発点から目的点までについての指令値(目標値)のデータを取得してもよい。X軸アンプA1は、第1モータM1の制御量の情報を取得し、またY軸アンプA2を介して第2モータM2の制御量の情報を取得し、制御対象2の状態を推定し、MPCを用いて最適化演算を実行してもよい。X軸アンプA1は、軌道データを生成して、X軸21及びY軸22の同期制御を行うように、X軸21に関する操作量を第1モータM1に出力し、また、Y軸22に関する操作量をY軸アンプA2に出力してもよい。
また上記実施形態では、図1で示したように、制御システム10の実装されたモーションコントローラ100が、動作制御部3及び状態推定部4を備えている。しかし、この限りではなく、制御対象2のX軸アンプA1及びY軸アンプA2の各々が、動作制御部3及び状態推定部4を備えてもよい。X軸アンプA1及びY軸アンプA2の各々の状態推定部4は、対応する自身の軸の状態について推定を行い、各アンプは、その推定結果をフィードバック制御に利用してもよい。また各アンプは、状態推定部4による推定結果を制御システム10に送信してもよい。制御システム10は、X軸アンプA1及びY軸アンプA2の各々から、対応する軸の状態についての推定結果を受信し、MPCを用いて最適化演算を実行してもよい。制御システム10は、軌道データを生成して、X軸アンプA1及びY軸アンプA2の各々に出力してもよい。X軸アンプA1及びY軸アンプA2の各々の動作制御部3は、受信した軌道データと、対応する軸の状態についての推定結果とに基づくフィードバック制御を実行して、その結果、X軸アンプA1及びY軸アンプA2の同期制御が行われてもよい。
上記実施形態では、制御対象2は、X軸、Y軸の2軸加工機である。しかし、制御対象2は、「2軸」に限定されず、例えばX軸、Y軸、Z軸の3軸加工機でもよいし、或いは4軸、5軸の加工機でもよい。また、加工機は「ステージ」に限定されない。例えば、制御対象2は、多関節ロボットでもよい。具体的には制御対象2は、アーム型の垂直多関節ロボットでもよい。さらに、制御対象2は、他の駆動方式の制御対象でもよい。制御対象2は、例えば搬送装置等の設備であってもよいし、自動車、航空機、ドローン機、又は自走式掃除機等の移動体であってもよい。
上記実施形態では、制御対象2は、プラントである。しかし、制御対象2は、プラントであることに限定されず、また移動体であることにも限定されない。例えば、制御対象2は、空気調和機であってもよく、制御方法、及び制御システム10において、空気調和機の温度制御・風量制御に関する指令を実行してよい。つまり、本開示で言う「制御軌道」は、加工機又は移動体等の動作に関する制御軌道に限定されず、温度又は風量等の環境要素の変化に関する制御軌道でもよい。
[変形例1]
ところで、上記実施形態の制御システム10では、「予測」の生成中において、過去のストックされている複数の予測要素C0のうちの「2つ以上」の予測要素C0に基づく制御入力を適用する構成である。
ところで、上記実施形態の制御システム10では、「予測」の生成中において、過去のストックされている複数の予測要素C0のうちの「2つ以上」の予測要素C0に基づく制御入力を適用する構成である。
これに対して、変形例1(本変形例)に係る制御システム10では、制御入力部13は、生成部11にてある時点より後の時点を基準として予測される複数の予測要素C0の生成中において、当該複数の予測要素C0の生成中の生成時間に応じて、ある時点を基準として生成され蓄えられた複数の予測要素C0のうちの「1つ以上」の予測要素C0に基づく制御入力を適用し、制御対象2の制御を実施する。言い換えると、本変形例に係る制御方法における制御入力ステップでは、生成ステップにてある時点より後の時点を基準として予測される複数の予測要素C0の生成中において、当該複数の予測要素C0の生成中の生成時間に応じて、ある時点を基準として生成され蓄えられた複数の予測要素C0のうちの「1つ以上」の予測要素C0に基づく制御入力を適用し、制御対象2の制御を実施する。
要するに、本変形例の制御システム10は、生成中にある「予測」の生成時間の長さ次第では、1つの予測要素C0に基づく制御入力だけが適用されて、次の「予測」の生成に移り得るように構成される。
図6の例を用いて説明すると、上記実施形態では、例えば第2時系列B2において「予測3」の生成開始が時刻t4から開始し、ストックされた「予測2」に基づく制御指令「2-7」の入力実行中の時刻t7~t8の間で完了している。
本変形例では、例えば第2時系列B2において「予測3」の生成開始が時刻t4から開始し、ストックされた「予測2」に基づく制御指令「2-4」の入力実行中の時刻t4~t5の間(言い換えると、制御周期よりも短い期間内)で完了することも可能である。この場合、「1つ」の予測要素C0に基づく制御入力(制御指令「2-4」)のみが適用されることになる。
本変形例に係る制御システム10においても、モデル予測制御における演算時間のばらつきに起因して制御精度が低下してしまう可能性を低減できる。また、本変形例に係る制御システム10においても、1制御周期分の時間内で「予測」を完了する必要性がなくなるため、予測ホライズンの間隔(1ステップ:ホライズンH1)を実際の制御周期よりも短く設定して「予測」を生成することも可能になり得る。例えば実際の制御周期が10msとすると、予測ホライズンの間隔を1msとすることができる。そのため、制御システム10はより高精度な制御も可能である。
[変形例2]
上記実施形態の制御システム10では、「予測」の生成が完了してから、次の「予測」の生成を開始している。
上記実施形態の制御システム10では、「予測」の生成が完了してから、次の「予測」の生成を開始している。
これに対して、変形例2(本変形例)に係る制御システム10は、「予測」の生成中に、次の「予測」の生成を開始するように構成される。言い換えると、本変形例に係る制御システム10は、「予測」の並列演算を行うように構成される。
図5、図6の例を用いて説明すると、上記実施形態では、「予測3」の生成が時刻t8で完了し、「予測4」の生成が時刻t8から開始している。つまり、上記実施形態では、「予測3」の生成期間と「予測4」の生成期間とは重複していない。
本変形例に係る制御システム10は、「予測3」の生成の開始時刻t4から、完了時刻t8までの間に、「予測4」の生成を開始する。例えば、制御システム10は、「予測3」の生成中である時刻t7に、現在=時刻t7における「予測4」の生成も開始する。つまり、「予測3」の生成期間と「予測4」の生成期間とが部分的に重複する。
そして、本変形例の制御システム10は、例えば「予測3」における時刻t8のストックされた予測要素C0と「予測4」における同じ時刻t8のストックされた予測要素C0とを比較して、現在基準が新しい「予測4」の方の予測要素C0を選択する。このため、本変形例の制御システム10は、同時刻でより新しくストックされた予測要素C0に基づく制御入力を適用しやすくなる。
(まとめ)
以上説明した実施形態等から、以下の態様が開示されている。
以上説明した実施形態等から、以下の態様が開示されている。
第1の態様に係る制御方法は、生成ステップと、蓄積ステップと、制御入力ステップとを含む。生成ステップでは、制御対象(2)に関する制御軌道(T1)について、モデル予測制御により、各時点を基準として予測される複数の予測要素(C0)を生成する。蓄積ステップでは、生成された複数の予測要素(C0)を蓄える。制御入力ステップでは、生成ステップにてある時点より後の時点を基準として予測される複数の予測要素(C0)の生成中において、ある時点を基準として生成され蓄えられた複数の予測要素(C0)のうちの2つ以上の予測要素(C0)に基づく制御入力を適用し、制御対象(2)の制御を実施する。
上記の態様によれば、モデル予測制御における演算時間のばらつきに起因して制御精度が低下してしまう可能性を低減できる。
第2の態様に係る制御方法は、生成ステップと、蓄積ステップと、制御入力ステップとを含む。生成ステップでは、制御対象(2)に関する制御軌道(T1)について、モデル予測制御により、各時点を基準として予測される複数の予測要素(C0)を生成する。蓄積ステップでは、生成された複数の予測要素(C0)を蓄える。制御入力ステップでは、生成ステップにてある時点より後の時点を基準として予測される複数の予測要素(C0)の生成中において、当該複数の予測要素(C0)の生成中の生成時間に応じて、ある時点を基準として生成され蓄えられた複数の予測要素(C0)のうちの1つ以上の予測要素(C0)に基づく制御入力を適用し、制御対象(2)の制御を実施する。
上記の態様によれば、モデル予測制御における演算時間のばらつきに起因して制御精度が低下してしまう可能性を低減できる。
第3の態様に係る制御方法は、第1又は第2の態様において、補助処理ステップを更に含む。補助処理ステップでは、ある時点を基準として生成され蓄えられた複数の予測要素(C0)のうち、制御入力として適用される予測要素(C0)に対して合成処理又は補正処理を行う。
上記の態様によれば、例えば予測完了時点における予測結果と現時点での状態との誤差が解消されやすくなり、制御精度が向上し得る。
第4の態様に係る制御方法は、第1~第3の態様のいずれか1つにおいて、調整ステップを更に含む。調整ステップでは、生成ステップにて複数の予測要素(C0)を生成する生成時間(TA1、TA2、TA3)を予測し、予測した生成時間(TA1、TA2、TA3)に応じて予測ホライズン長さを調整する。生成ステップでは、予測ホライズン長さが調整されたモデル予測制御により、複数の予測要素(C0)を生成する。
上記の態様によれば、例えばモデル予測制御による予測が間に合わない可能性を減らすことができ、制御精度が向上し得る。
第5の態様に係る制御方法に関して、第1~第4の態様のいずれか1つにおいて、制御対象(2)は、プラントである。制御軌道(T1)は、プラントの動作制御に関する軌道である。
上記の態様によれば、モデル予測制御における演算時間のばらつきに起因してプラントの動作制御に関する制御精度が低下してしまう可能性を低減できる。
第6の態様に係るプログラムは、1以上のプロセッサに、第1~第5の態様のいずれか1つにおける制御方法を実行させるためのプログラムである。
上記の態様によれば、モデル予測制御における演算時間のばらつきに起因して制御精度が低下してしまう可能性を低減する機能を提供できる。
第7の態様に係る制御システム(10)は、生成部(11)と、蓄積部(12)と、制御入力部(13)とを備える。生成部(11)は、制御対象(2)に関する制御軌道(T1)について、モデル予測制御により、各時点を基準として予測される複数の予測要素(C0)を生成する。蓄積部(12)は、生成された複数の予測要素(C0)を蓄える。制御入力部(13)は、生成部(11)にてある時点より後の時点を基準として予測される複数の予測要素(C0)の生成中において、ある時点を基準として生成され蓄えられた複数の予測要素(C0)のうちの2つ以上の予測要素(C0)に基づく制御入力を適用し、制御対象(2)の制御を実施する。
上記の態様によれば、モデル予測制御における演算時間のばらつきに起因して制御精度が低下してしまう可能性を低減する制御システム(10)を提供できる。
第8の態様に係る制御システム(10)は、生成部(11)と、蓄積部(12)と、制御入力部(13)とを備える。生成部(11)は、制御対象(2)に関する制御軌道(T1)について、モデル予測制御により、各時点を基準として予測される複数の予測要素(C0)を生成する。蓄積部(12)は、生成された複数の予測要素(C0)を蓄える。制御入力部(13)は、生成部(11)にてある時点より後の時点を基準として予測される複数の予測要素(C0)の生成中において、当該複数の予測要素(C0)の生成中の生成時間(TA1、TA2、TA3)に応じて、ある時点を基準として生成され蓄えられた複数の予測要素(C0)のうちの1つ以上の予測要素(C0)に基づく制御入力を適用し、制御対象(2)の制御を実施する。
上記の態様によれば、モデル予測制御における演算時間のばらつきに起因して制御精度が低下してしまう可能性を低減する制御システム(10)を提供できる。
第9の態様に係る制御システム(10)は、第7又は第8の態様において、設定部(15)を更に備える。設定部(15)は、外部からの操作入力に応じて、制御入力として適用する予測要素(C0)の数を設定する。
上記の態様によれば、制御入力として適用する予測要素(C0)の数の設定に対するユーザの要望が制御システム(10)に反映され易くなり、利便性が向上する。
第3~5の態様に係る構成については、第1又は第2の態様の制御方法に必須の構成ではなく、適宜省略可能である。また、第9の態様に係る構成については、第7又は第8の態様の制御システム(10)に必須の構成ではなく、適宜省略可能である。
10 制御システム
11 生成部
12 蓄積部
13 制御入力部
15 設定部
2 制御対象
C0 予測要素
T1 制御軌道
TA1、TA2、TA3 生成時間
11 生成部
12 蓄積部
13 制御入力部
15 設定部
2 制御対象
C0 予測要素
T1 制御軌道
TA1、TA2、TA3 生成時間
Claims (9)
- 制御対象に関する制御軌道について、モデル予測制御により、各時点を基準として予測される複数の予測要素を生成する生成ステップと、
生成された前記複数の予測要素を蓄える蓄積ステップと、
前記生成ステップにてある時点より後の時点を基準として予測される前記複数の予測要素の生成中において、前記ある時点を基準として生成され蓄えられた前記複数の予測要素のうちの2つ以上の予測要素に基づく制御入力を適用し、前記制御対象の制御を実施する制御入力ステップと、
を含む、
制御方法。 - 制御対象に関する制御軌道について、モデル予測制御により、各時点を基準として予測される複数の予測要素を生成する生成ステップと、
生成された前記複数の予測要素を蓄える蓄積ステップと、
前記生成ステップにてある時点より後の時点を基準として予測される前記複数の予測要素の生成中において、当該複数の予測要素の生成中の生成時間に応じて、前記ある時点を基準として生成され蓄えられた前記複数の予測要素のうちの1つ以上の予測要素に基づく制御入力を適用し、前記制御対象の制御を実施する制御入力ステップと、
を含む、
制御方法。 - 前記ある時点を基準として生成され蓄えられた前記複数の予測要素のうち、前記制御入力として適用される前記予測要素に対して合成処理又は補正処理を行う補助処理ステップを更に含む、
請求項1又は2に記載の制御方法。 - 前記生成ステップにて前記複数の予測要素を生成する生成時間を予測し、予測した前記生成時間に応じて予測ホライズン長さを調整する調整ステップを更に含み、
前記生成ステップでは、前記予測ホライズン長さが調整された前記モデル予測制御により、前記複数の予測要素を生成する、
請求項1~3のいずれか1項に記載の制御方法。 - 前記制御対象は、プラントであり、
前記制御軌道は、前記プラントの動作制御に関する軌道である、
請求項1~4のいずれか1項に記載の制御方法。 - 1以上のプロセッサに、請求項1~5のいずれか1項に記載の制御方法を実行させるためのプログラム。
- 制御対象に関する制御軌道について、モデル予測制御により、各時点を基準として予測される複数の予測要素を生成する生成部と、
生成された前記複数の予測要素を蓄える蓄積部と、
前記生成部にてある時点より後の時点を基準として予測される前記複数の予測要素の生成中において、前記ある時点を基準として生成され蓄えられた前記複数の予測要素のうちの2つ以上の予測要素に基づく制御入力を適用し、前記制御対象の制御を実施する制御入力部と、
を備える、
制御システム。 - 制御対象に関する制御軌道について、モデル予測制御により、各時点を基準として予測される複数の予測要素を生成する生成部と、
生成された前記複数の予測要素を蓄える蓄積部と、
前記生成部にてある時点より後の時点を基準として予測される前記複数の予測要素の生成中において、当該複数の予測要素の生成中の生成時間に応じて、前記ある時点を基準として生成され蓄えられた前記複数の予測要素のうちの1つ以上の予測要素に基づく制御入力を適用し、前記制御対象の制御を実施する制御入力部と、
を備える、
制御システム。 - 外部からの操作入力に応じて、前記制御入力として適用する前記予測要素の数を設定する設定部を更に備える、
請求項7又は8に記載の制御システム。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2024039353 | 2024-03-13 | ||
| JP2024-039353 | 2024-03-13 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2025192527A1 true WO2025192527A1 (ja) | 2025-09-18 |
Family
ID=97063587
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/JP2025/008811 Pending WO2025192527A1 (ja) | 2024-03-13 | 2025-03-10 | 制御方法、プログラム、及び制御システム |
Country Status (1)
| Country | Link |
|---|---|
| WO (1) | WO2025192527A1 (ja) |
Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2010004611A1 (ja) * | 2008-07-07 | 2010-01-14 | 本田技研工業株式会社 | 制御装置 |
| JP2017528848A (ja) * | 2015-06-02 | 2017-09-28 | 三菱電機株式会社 | 機械の動作を制御するための方法およびシステム |
-
2025
- 2025-03-10 WO PCT/JP2025/008811 patent/WO2025192527A1/ja active Pending
Patent Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2010004611A1 (ja) * | 2008-07-07 | 2010-01-14 | 本田技研工業株式会社 | 制御装置 |
| JP2017528848A (ja) * | 2015-06-02 | 2017-09-28 | 三菱電機株式会社 | 機械の動作を制御するための方法およびシステム |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| Sun et al. | A novel adaptive-feedrate interpolation method for NURBS tool path with drive constraints | |
| Zhao et al. | A parametric interpolator with minimal feed fluctuation for CNC machine tools using arc-length compensation and feedback correction | |
| US9513623B2 (en) | Method for generating trajectory for numerical control process | |
| CN111278613B (zh) | 校准装置、校准方法和控制装置 | |
| CN111687838B (zh) | 机械手轨迹跟随误差的在线补偿方法、系统及存储介质 | |
| JP2017102617A (ja) | 補正装置、補正装置の制御方法、情報処理プログラム、および記録媒体 | |
| JP6585666B2 (ja) | 速度一定が要求されるアプリケーションにおいて学習制御を行うロボット及びその制御方法 | |
| CN109562518B (zh) | 并联连杆机构的控制装置 | |
| US10139803B2 (en) | Instruction value generation device | |
| Baek et al. | Fast and precision NURBS interpolator for CNC systems | |
| WO2025192527A1 (ja) | 制御方法、プログラム、及び制御システム | |
| WO2025225204A1 (ja) | 軌道決定システム、軌道決定方法及びプログラム | |
| Abdar Esfahani et al. | Neural network-based modeling of CNC machines trajectory generation | |
| CN121132619A (zh) | 多关节机器人的轨迹确定方法及电子设备 | |
| Kim et al. | Real-time tool path modification for machine tool contour error reduction | |
| JP7047794B2 (ja) | 制御装置および制御プログラム | |
| WO2025182356A1 (ja) | 制御方法、プログラム、及び制御システム | |
| WO2025182357A1 (ja) | 制御方法、プログラム、及び制御システム | |
| WO2025120889A1 (ja) | 制御システム、制御方法、及びプログラム | |
| CN110262291A (zh) | 控制装置、控制方法以及存储介质 | |
| CN116931420A (zh) | 一种基于指令输入的数控系统前馈控制方法 | |
| CN116088425A (zh) | 一种数控加工的伺服控制方法、装置、设备和存储介质 | |
| Zhao et al. | Smooth trajectory generation based on contour error constraint and parameter correction b-spline | |
| JP2020001107A (ja) | 学習制御を行うロボットシステム | |
| WO2025204359A1 (ja) | 制御システム、制御方法、及びプログラム |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 25769496 Country of ref document: EP Kind code of ref document: A1 |