Control method, program, and control system
A control method for self-propelled devices alternates between predictive and non-predictive control to minimize computational load, ensuring efficient and accurate movement control.
Patent Information
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2025-07-10
- Publication Date
- 2026-04-02
AI Technical Summary
Existing movement control methods for self-propelled devices, such as vacuum cleaners, incur high computational loads due to the need for frequent optimization calculations using model predictive control at each control timing.
A control method that alternates between predictive control and non-predictive control for generating control commands, reducing computational load by selectively using model predictive control only when necessary.
Reduces computational burden while maintaining accurate control of the device by strategically applying predictive control, thus enhancing efficiency and reducing resource utilization.
Smart Images

Figure JP2025024784_02042026_PF_FP_ABST
Abstract
Description
Control Method, Program, and Control System
[0006]
[0001] The present disclosure generally relates to a control method, a program, and a control system. More specifically, the present disclosure relates to a control method, a program, and a control system regarding a control trajectory for a control target.
[0002] Patent Document 1 discloses a technology related to a movement control method for controlling the movement of a moving body such as a self-propelled vacuum cleaner along a target path accurately and efficiently by model predictive control. In this movement control method, at the control timing, the first control instruction in the time series of future control inputs obtained by solving an optimization problem is input to the moving body. At the next control timing, the state of the actual moving body is acquired from a sensor, and by solving the optimization problem again, a control instruction for correcting the deviation between the target path and the actual travel path is input to the moving body.
[0003] International Publication No. 2022 / 044470
[0004] In the movement control method of Patent Document 1, a time series of future control inputs is obtained by solving an optimization problem for each control timing, and the computational load is large.
[0005] An object of the present disclosure is to reduce the computational load.
[0006] A control method according to an aspect of the present disclosure is a control method applied to a control system that generates a plurality of control commands respectively used for operation control of a control target at a plurality of consecutive time points at intervals of a control cycle. The control method includes a determination step and a generation step. In the determination step, a method for generating a control command for a target time point, which is the time point next to the target time point among the plurality of time points, is determined to be either a first method or a second method. The first method is a method for generating the control command by performing predictive control based on the target time point for the control target. The second method is a method for generating the control command without using the predictive control based on the target time point for the control target. In the generation step, the control command for the target time point is generated by the method determined in the determination step among the first method and the second method.
[0007] A program according to one aspect of this disclosure is a program that causes one or more processors to execute the control method.
[0008] A control system according to one aspect of the present disclosure generates a plurality of control commands used for controlling the operation of a controlled object at a plurality of consecutive time points at intervals of the control cycle. The control system comprises a determination unit and a generation unit. The determination unit determines whether to use a first method or a second method for generating a control command for a target time point, which is the time point following the time point of interest among the plurality of time points. The first method is a method for generating the control command by performing predictive control based on the time point of interest for the controlled object. The second method is a method for generating the control command without using the predictive control based on the time point of interest for the controlled object. The generation unit generates the control command for the target time point using the method determined by the determination unit from among the first method and the second method.
[0009] According to this disclosure, it becomes possible to reduce the computational load.
[0010] Figure 1 is a block diagram of a controller and its peripheral configuration equipped with a control system according to one embodiment. Figure 2 is a conceptual diagram for explaining the operating principle of the first mode in the control system. Figure 3 is a flowchart for explaining the operation of the first mode in the control system. Figure 4 is a flowchart for explaining the operation of the second mode in the control system. Figure 5 is a conceptual diagram for explaining example operation 1 of the control system. Figure 6 is a flowchart for explaining example operation 2 of the control system. Figure 7 is a conceptual diagram for explaining example operation 2 of the control system. Figure 8 is a conceptual diagram for explaining example operation 3 of the control system. Figure 9 is a conceptual diagram for explaining example operation 4 of the control system. Figure 10 is a conceptual diagram for explaining example operation 5 of the control system. Figure 11 is a conceptual diagram for explaining example operation 6 of the control system. Figure 12 is a conceptual diagram for explaining example operation 7 of the control system. Figure 13 is a conceptual diagram for explaining example operation 7 of the control system, and is a continuation of Figure 12. Figure 14 is a conceptual diagram illustrating the settings screen in the control system described above. Figure 15 is a block diagram of the control system and its surrounding components according to Modification 1. Figure 16 is a block diagram of the control system and its surrounding components according to Modification 2. Figure 17 is a block diagram of the control system and its surrounding components according to Modification 3.
[0011] (Summary) The following describes the control system, control method, and program relating to embodiments and modifications, with reference to the drawings. Note that the embodiments and modifications described below are only one of the various embodiments of this disclosure. Furthermore, the embodiments and modifications described below can be modified in various ways depending on the design, etc., as long as the objectives of this disclosure are achieved. It is also possible to appropriately combine the configuration of each of the modifications described below with the embodiments or other modifications described below. In addition, the figures described in this disclosure are schematic diagrams, and the ratios of the size and thickness of each component in the figures do not necessarily reflect the actual dimensional ratios.
[0012] One aspect of the control method is a control method applied to a control system 10 (see Figure 1) that generates control commands C1 related to the operation control of the controlled object 2. More specifically, the control system 10 generates a plurality of control commands C1 that are used for the operation control of the controlled object 2 at a plurality of consecutive time points at intervals of the control cycle T. In the following description, the controlled object 2 is assumed to be, for example, a plant. Specifically, the controlled object 2 (plant) is assumed to be a two-axis stage, which is a two-axis machine (multi-axis machine) with X and Y axes. A two-axis stage is a positioning stage with two axes: the "X axis" which moves left and right, and the "Y axis" which moves forward and backward. The two-axis stage positions a workpiece on the stage, for example, a laser processing machine, a cutting machine, or a coating device.
[0013] The control method includes a decision step and a generation step.
[0014] In the decision step, a method is chosen from either the first method or the second method to generate a control command C1 for the target time, which is the time immediately following the time of interest among multiple time points. In this disclosure, "target time" means any one time point among multiple time points that is the target of the generation of the "control command C1". In other words, the "target time" is a point in time when control of the controlled object 2 during the control cycle T, which includes this time point, is (planned) to be executed using the "control command C1" generated for this time point. The "time of interest" means the time point immediately preceding the target time among multiple time points. The "multiple time points" means multiple time points from the start time to the end time when controlling the operation of the controlled object 2. When the controlled object 2 is moved along the target path T1 (described later), each of the "multiple time points" corresponds to each time point obtained by dividing the time it takes for the controlled object 2 to reach the target point from the starting point of the target path T1 by the control cycle T.
[0015] The first method is a method that performs predictive control based on a point in time of interest for the controlled object 2, and generates a control command C1 for that point in time.
[0016] In this embodiment, the predictive control used in the first method, etc., is Model Predictive Control (hereinafter sometimes abbreviated as MPC). For example, in the first method, optimization calculations are performed using MPC while predicting the future responses of the controlled object 2 and the surrounding environment. However, the term "predictive control" as used herein is not limited to Model Predictive Control, and may also be, for example, predictive control as disclosed in Japanese Patent Application Publication No. 2004-114243. In other words, predictive control can be either predictive control or Model Predictive Control.
[0017] The second method generates a control command C1 for a target time point without using predictive control based on the target time point for the controlled object 2. In other words, the second method is different from the first method. Details of the second method will be described later.
[0018] In the generation step, the control command C1 for the target time point is generated using the method determined in the decision step, which is either the first method or the second method.
[0019] According to the control method according to one embodiment described above, a control command C1 for any single point in time among multiple points in time can be generated by the second method. The first method generates the control command C1 by performing predictive control (e.g., MPC) based on the point in time of interest, and therefore has a relatively high computational load. On the other hand, the second method generates the control command C1 without performing predictive control based on the point in time of interest, and therefore tends to have a lower computational load than the first method. For this reason, the control method according to one embodiment described above has the advantage of reducing the computational load compared to the case where predictive control is performed for all of the multiple points in time to generate the control command C1 (e.g., the "first mode" described below).
[0020] The above control method is used on a computer system (control system 10). In other words, the above control method can also be implemented as a computer program. A program according to one embodiment is a program that causes one or more processors to execute the above control method. The program may be recorded on a computer-readable non-temporary recording medium. A computer program product according to one embodiment includes a computer program that realizes the steps of the above control method when executed by one or more processors.
[0021] A control system 10 according to one embodiment (see Figure 1) generates a control command C1 relating to the operation control of a controlled object 2. The control system 10 comprises a determination unit 14 and a generation unit 12. The determination unit 14 determines whether to use a first method or a second method for generating a control command C1 for a target time, which is the next time point in a group of time points after the time point of interest. The first method is a method that generates a control command C1 by performing predictive control based on the time point of interest for the controlled object 2. The second method is a method that generates a control command C1 without using predictive control based on the time point of interest for the controlled object 2. The generation unit 12 generates a control command C1 for the target time using the method determined by the determination unit 14 from among the first method and the second method.
[0022] The configuration of the control system 10 according to the above embodiment also has the advantage of being able to reduce the computational load.
[0023] (Details) (1) Overall Configuration Below, the entire system, including the control system 10 and its peripheral configuration according to this embodiment, will be described with reference to Figure 1. As mentioned above, in the following example, the controlled object 2 is a plant. In particular, the control system 10 will be described assuming that the controlled object 2 is a two-axis stage.
[0024] The controlled object 2, for example as shown in Figure 1, includes a stage 20 (base), an X-axis 21 that allows the stage 20 to move in the X-axis direction, and a Y-axis 22 that allows the stage 20 to move in the Y-axis direction. A workpiece (parts, work in progress, etc.) to be processed by a laser processing machine, cutting machine, coating device, etc., can be placed on the stage 20.
[0025] As shown in Figure 1, 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 it may also be a linear motor. As shown in Figure 1, 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 it may also be a linear motor. The X-axis 21 and the Y-axis 22 are synchronously controlled so that the stage 20 moves to a predetermined X-Y coordinate position.
[0026] The operation of the controlled object 2 is controlled by the controller 100. The controlled object 2 is connected to the controller 100 in a communication manner. The controller 100 is, for example, a motion controller. In this case, the controller 100 is individually connected to the X-axis amplifier A1 and the Y-axis amplifier A2 in a communication manner.
[0027] The control system 10 generates a control command C1 related to the operation control of the controlled object 2. The controller 100 executes the operation control of the controlled object 2 (synchronous control of the X axis 21 and Y axis 22) based on the control command C1 generated by the control system 10. In this embodiment, as shown in Figure 1, the control system 10 is provided in the controller 100.
[0028] In this embodiment, the control system 10 generates trajectory commands for controlling the movement of the controlled object 2 based on the target path T1. In other words, the (multiple) control commands C1 generated by the control system 10 are (multiple) trajectory commands for moving the controlled object 2 along the target path T1. The target path T1 is the trajectory on the X and Y axes related to the movement control of the controlled object 2. The target path T1 is generated, for example, by a higher-level PC 5 (see Figure 1) and provided to the controller 100.
[0029] In the following, we may provide illustrative explanations focusing on the case where the stage 20 of the controlled object 2 moves along the two-dimensional L-shaped target path T1 (or a straight section thereof) schematically shown in Figure 1, in the direction of the arrow. That is, the target path T1 includes a first straight section along the X-axis and a second straight section along the Y-axis, and includes corners (points of change in the path) where the controlled object 2 moves at approximately right angles. However, the target path T1 may also include paths where the controlled object 2 moves at obtuse or acute angles, or curved paths (for example, circular or elliptical).
[0030] (2) Host PC and Controller (2.1) Host PC As shown in Figure 1, the host PC 5 of this embodiment is connected to the controller 100 in a communicative manner.
[0031] As described above, the upper-level PC 5 generates the target path T1. Specifically, the upper-level PC 5 generates the target path T1 based on CAD (Computer-Aided Design) data or CAM (Computer-Aided Manufacturing) data relating to the operating trajectory of the stage 20 of the controlled object 2. Alternatively, the upper-level PC 5 may generate the target path T1 based on data relating to a reference trajectory directly set by the user's manual input. In order to improve productivity, it is necessary to set an allowable error (margin) for the target path T1, taking into consideration the reduction of the cycle time, and an allowable error is set for the target path T1.
[0032] The upper-level PC 5 generates a signal containing target data and transmits it to the controller 100. The target data includes the target path T1 mentioned above.
[0033] (2.2) Controller The controller 100 includes a computer system having one or more processors and memory. At least some of the functions of the controller 100 are realized when the processor of the computer system executes a program recorded in the memory of the computer system. The program may be recorded in memory, provided via a telecommunications line such as the Internet, or provided on a non-temporary recording medium such as a memory card.
[0034] As shown in Figure 1, the controller 100 comprises a control system 10, an operation control unit 3, and a state estimation unit 4. In other words, the controller 100 has the functions of a control system 10, an operation control unit 3, and a state estimation unit 4. While it is assumed that these multiple functions of the controller 100 are housed in a single enclosure, this is not limited to that, and they may be distributed and housed in multiple enclosures.
[0035] As described above, the control system 10 generates a trajectory command (control command C1) based on the target path T1 included in the target data received from the upper-level PC 5. The control system 10 also generates control data (trajectory command data) related to the operation control of the controlled object 2 based on the generated trajectory command (control command C1) and outputs it to the operation control unit 3.
[0036] The motion control unit 3 controls the operation of the controlled object 2 based on the trajectory command data from the control system 10. Specifically, based on the trajectory command data from the control system 10, the motion control unit 3 individually determines the control inputs for the X-axis 21 and Y-axis 22 for each control period T and outputs them to the X-axis amplifier A1 and the Y-axis amplifier A2. The control inputs output to the X-axis amplifier A1 and the Y-axis amplifier A2, respectively, may be current command values for the drive current supplied to the first motor M1 and the second motor M2.
[0037] Each of the X-axis amplifier A1 and Y-axis amplifier A2 has an inverter circuit that supplies power to the corresponding motors (first motor M1 and second motor M2). The motion control unit 3 individually determines the current value of the drive current supplied to the first motor M1 and the second motor M2 based on the trajectory command data for each control cycle T. The motion control unit 3 then controls the inverter circuits of each of the X-axis amplifier A1 and Y-axis amplifier A2 to adjust the drive current supplied to the corresponding motors. The determination of the current value of the drive current may be performed by each of the X-axis amplifier A1 and Y-axis amplifier A2.
[0038] The controller 100 may acquire a control variable (control output) from the controlled object 2. For example, the controller 100 may acquire 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 controlled object 2. For example, the controlled object 2 is equipped with encoders for measuring the position and speed of the first motor M1 and the second motor M2, and force sensors for measuring thrust (or torque). Alternatively, an external sensor for measuring the position and speed of the stage 20 is provided on the controlled object 2, and the measurement results of the external sensor are output to the X-axis amplifier A1 and the Y-axis amplifier A2. The data measured by these can then be transmitted to the controller 100 as a control variable from the X-axis amplifier A1 and the Y-axis amplifier A2 of the controlled object 2. The control variable may include disturbances such as vibrations occurring in the controlled object 2.
[0039] The controller's state estimation unit 4 receives signals from the X-axis amplifier A1 and Y-axis amplifier A2 of the controlled object 2, including data on control quantities based on measurement results from encoders, force sensors, and external sensors. Based on the data on control quantities, the state estimation unit 4 estimates the state of the controlled object 2. For example, based on the control quantities, the state estimation unit 4 estimates the position (specifically, the X-Y coordinate position of the stage 20) and velocity of the controlled object 2.
[0040] In this embodiment, it is assumed that the controller 100 (state estimation unit 4) acquires a control amount from the control target 2 and performs feedback control on the controller 100 side, but this is not the case in all situations. The feedback control may be performed, for example, by the X-axis amplifier A1 and the Y-axis amplifier A2 of the control target 2.
[0041] (3) Configuration of the control system As shown in FIG. 1, the control system 10 includes a control unit 11, a generation unit 12, and a storage unit 16.
[0042] The control unit 11 controls the overall operation in the control system 10.
[0043] The generation unit 12 generates a plurality of control commands C1 that are respectively used for the operation control of the control target 2 at a plurality of consecutive time points at intervals of the control period T. The generation unit 12 generates a control command C1 for each target time point, with each of the plurality of consecutive time points at intervals of the control period T as the target time point. The generation unit 12 generates one control command C1 for one time point. The generation unit 12 generates a control command C1 for the target time point using the first method or the second method. The control command C1 includes elements (predicted values) such as time (time point), position (coordinate position), and speed.
[0044] As shown in FIG. 1, the generation unit 12 includes a first arithmetic unit 121 (predictive control arithmetic unit) as the main body for executing the first method.
[0045] The first arithmetic unit 121 has an MPC function. In the MPC by the first arithmetic unit 121, based on the target data including the target path T1 regarding the control target 2 received from the host PC 5, at each time point, a control profile for a certain period until a certain future time (corresponding to the prediction interval K1 in FIG. 2) is optimized. In MPC, the control command C1 is generated based on the predicted value of the optimized control profile. At this time, MPC may consider the estimation result of the state estimation unit 4.
[0046] As shown in FIG. 1, the generation unit 12 includes a second arithmetic unit 122 (analysis arithmetic unit) and an accumulation unit 123 as the main body for executing the second method. The second arithmetic unit 122 and the accumulation unit 123 will be described later.
[0047] The control system 10 generates control data (trajectory command data) related to the operation control of the control target 2 based on the control command C1 generated by the generation unit 12 and outputs it to the operation control unit 3. The trajectory command data is data based on the control command C1. By the control system 10 generating the trajectory command data and outputting it to the operation control unit 3, the operation control unit 3 controls the control target 2 so that the control target 2 passes through the position indicated by the control command C1.
[0048] The storage unit 16 includes an electrically rewritable non-volatile semiconductor memory such as a flash memory. The storage unit 16 stores information for the first arithmetic unit 121 to realize the MPC function. That is, the storage unit 16 stores a prediction model (predictor) related to the control target 2. As the prediction model, for example, a transfer function model, a state space model, or the like can be used. In addition, the storage unit 16 stores (stores) target data including the target path T1 (reference trajectory) received from the upper PC 5.
[0049] As shown in FIG. 1, the control system 10 further includes a setting unit 17 and a user interface 6.
[0050] The setting unit 17 performs various settings based on an external operation input.
[0051] The user interface 6 includes an operation unit 18. The operation unit 18 includes, for example, one or more of a mouse, a keyboard, and a pointing device. In addition, the user interface 6 further includes a display unit 19 (display device). The display unit 19 displays various information.
[0052] In FIG. 1, for the sake of convenience, the operation unit 18 and the display unit 19 are shown in the controller 100, but they can be, for example, devices attached separately from the controller 100. When the display unit 19 is a display device of a touch panel display, the display device can also serve as the function of the operation unit 18.
[0053] The display unit 19 displays, for example, setting information related to the settings by the setting unit 17 on the screen. The user performs an operation input by operating the operation unit 18 while looking at the screen of the display unit 19, for example.
[0054] The control system 10 can, for example, display the setting screen G1 shown in Figure 14 on the display unit 19. The operation unit 18 receives operations to make various settings of the control system 10, for example, via the setting screen G1 shown in Figure 14. The setting unit 17 stores (stores) various setting information in the storage unit 16 based on the operation input from the operation unit 18.
[0055] Furthermore, as shown in Figure 1, the control system 10 further includes a determination unit 13 and a decision unit 14. The determination unit 13 and the decision unit 14 will be described later.
[0056] (4) Operating modes of the control system The control system 10 has a first mode and a second mode as operating modes.
[0057] The first mode is a mode in which multiple control commands C1 for multiple time points are generated by predictive control. In the first mode, all of the multiple time points are sequentially treated as target time points. Then, in the first mode, control commands C1 for the target time points are generated by the first method. As described above, the first method is a method that generates control commands C1 for the target time point by performing predictive control based on the time point of interest (the time point immediately preceding the target time point) for the control object 2. In short, the first mode is a mode in which the first calculation unit 121 of the generation unit 12 generates control commands C1 by performing predictive control for each of the multiple time points.
[0058] On the other hand, the second mode is a mode in which multiple control commands for multiple points in time are generated by the first method or the second method according to the decision of the decision unit 14.
[0059] The setting unit 17 determines which of the two operating modes will be executed based on user input to the operation unit 18, and the control unit 11 operates in the operating mode set by the setting unit 17. Specifically, in the first area R1 of the setting screen G1 shown in Figure 14, the operating mode of the control unit 11 is set by selecting one of the two options: "predictive control only" (i.e., first mode) or "predictive control (in combination with other methods)" (i.e., second mode). In this way, the setting unit 17 sets the operating mode of the control system 10 in response to user input to the operation unit 18.
[0060] Furthermore, the control system 10 may allow selection of "normal predictive control" and "high-precision predictive control" as first modes. "High-precision predictive control" may be, for example, predictive control performed under conditions where the length of the prediction interval K1 is longer (the number of steps in the prediction horizon is greater) than in "normal predictive control".
[0061] Furthermore, constraints in predictive control (such as the number of steps in the predictive horizon and the weights of the cost function) can be appropriately set by inputting numerical values into the third region R3 and the fourth region R4 of the setting screen G1 shown in Figure 14.
[0062] (4.1) First Mode (4.1.1) Details of the First Mode First, the first mode will be explained with reference to Figure 2.
[0063] The first mode, as described above, is a mode in which multiple control commands C1 for multiple time points are generated by predictive control (more specifically, model predictive control). In the first mode, the control commands C1 are generated by the first calculation unit 121 provided in the generation unit 12.
[0064] In the first mode, the generation unit 12 (first calculation unit 121) uses model predictive control to perform optimization calculations for control content corresponding to the prediction interval K1 (see Figure 2) based on target data including the target path T1 (reference trajectory) acquired from the upper PC 5. Here, "control content" includes a control command C1 corresponding to the target time point within the prediction interval K1, and two or more control predictions C2 corresponding to two or more time points after the target time point. The control predictions C2 include elements such as time (time point), position (coordinate position), and velocity (predicted values), similar to the control command C1.
[0065] Figure 2 is a conceptual diagram illustrating the operating principle of the first mode (predictive control). Figure 2 shows the target path T1 and control details (control command C1 and control prediction C2) at each time point t = k (upper part of Figure 2), t = k + T (middle part of Figure 2), and t = k + 2T (lower part of Figure 2). Here, T is the control period.
[0066] MPC is a control method that optimizes the response up to the future over a finite interval (in the example in Figure 2, the prediction interval K1) based on each time point (in Figure 2, each of time points t=k, t=k+T, t=k+2T, ...). In MPC, for example, Receding Horizon control (RH control), also known as backward horizon control, is performed. The first predicted value of the optimized control profile (corresponding to control command C1) is then used in the actual control input profile.
[0067] The generation unit 12 (first calculation unit 121) repeatedly performs optimization calculations, for example, by moving the horizon back one unit from the starting point to the destination point of the target path T1. That is, in the first mode, the generation unit 12 uses model prediction control to repeatedly perform optimization calculations for the control content (control command C1 and control prediction C2) corresponding to the prediction interval K1, while moving the horizon back one unit.
[0068] The actual point V1 at time t=k in Figure 2 indicates the state of the controlled object 2 at time t=k. Similarly, the actual point V1 at time t=k+T in Figure 2 indicates the state of the controlled object 2 at time t=k+T. The actual point V1 at time t=k+2T in Figure 2 indicates the state of the controlled object 2 at time t=k+2T. The actual point V1 indicates the actual value of the control command C1 output from the control system 10 and whose control execution has been completed on the controlled object 2 side. The actual point V1 includes elements such as the position (coordinate position) and velocity (actual values) of the controlled object 2 at the time of interest.
[0069] Furthermore, the control command C0 at time t=k in Figure 2 is the control command output from the control system 10 immediately before time t=k. The "control command C0 at time t=k" corresponds to the "control command C1 generated by the control system 10 based on the previous time t=k-T". Between time t=k and time t=k+T, the servo amplifiers (X-axis amplifier A1 and Y-axis amplifier A2) receive control input based on the control command C0 and execute control. Similarly, the control command C0 at time t=k+T in Figure 2 is the control command output from the control system 10 immediately before time t=k+T. The "control command C0 at time t=k+T" (see the middle section of Figure 2) corresponds to the "control command C1 generated by the control system 10 based on the previous time t=k" (see the upper section of Figure 2). Furthermore, the control command C0 at time t = k + 2T in Figure 2 is the control command output from the control system 10 immediately before time t = k + 2T. The "control command C0 at time t = k + 2T" (see the lower part of Figure 2) corresponds to the "control command C1 generated by the control system 10 based on the immediately preceding time t = k + T" (see the middle part of Figure 2).
[0070] The control commands C1 and the multiple (only three are shown in Figure 2 for convenience) control predictions C2 at each point in time in Figure 2 are prediction results obtained by the first calculation unit 121 performing an optimization calculation on the control content corresponding to the prediction interval K1 using the MPC function. In the example in Figure 2, the prediction interval K1 is defined as the interval from control command C0 to the last control prediction C2. The prediction interval K1 is a prediction horizon composed of multiple horizons (steps), and the generation unit 12 moves back one horizon each time a point in time t=k, t=k+T, t=k+2T, ... passes, and performs an optimization calculation on the control input corresponding to the next prediction interval K1 (prediction horizon). Here, one control period T (the period in which the controlled object 2 is operated) corresponds to one horizon (one step).
[0071] The control command C1 that includes the first solution (first predicted value) among the four predicted results (solutions to the optimization problem) at time t = k (see upper part of Figure 2) becomes the "control command C1 for time t = k + T". In other words, the control command C1 for time t = k + T (the target time) is generated by executing predictive control (MPC) based on the time of interest immediately preceding the target time (time t = k).
[0072] The control command C1 for time t = k + T (the target time) includes a predicted value corresponding to time t = k + T (the target time) relative to time t = k (the time of interest). The remaining three control predictions C2 include predicted values corresponding to future times t = k + 2T, k + 3T, and k + 4T, respectively, relative to time t = k (the time of interest). In other words, the time intervals between the control command C1 and the three control predictions C2 in the upper part of Figure 2 (time t = k) correspond to the control period T.
[0073] Then, the control command C1 generated at the time of interest t=k for the target time t=k+T is output immediately before the target time t=k+T (corresponding to the control command C0 at time t=k+T in the middle of Figure 2), and is used to control the controlled object 2 during the period from the target time t=k+T to the next time t=k+2T.
[0074] Similarly, the control command C1 that includes the first solution (first predicted value) among the four predicted results (solutions to the optimization problem) at time point t = k + T (see the middle section of Figure 2) becomes the "control command C1 for time point t = k + 2T". In other words, the control command C1 for time point t = k + 2T (the target time point) is generated by performing predictive control (MPC) based on the time point of interest immediately preceding the target time point (time point t = k + T).
[0075] The control command C1 for time t = k + 2T (the target time) includes a predicted value corresponding to time t = k + 2T (the target time) relative to time t = k + T (the time of interest). The remaining three predicted control predictions C2 include predicted values corresponding to future times t = k + 3T, k + 4T, and k + 5T, respectively, relative to time t = k + T (the time of interest). In other words, the time intervals between the control command C1 and the three control predictions C2 in the middle section of Figure 2 (time t = k + T) correspond to the control period T.
[0076] Then, the control command C1 generated at the time of interest t = k + T for the target time t = k + 2 T is output immediately before the target time t = k + 2 T (corresponding to the control command C0 at time t = k + 2 T in the lower part of Figure 2), and is used to control the controlled object 2 during the period from the target time t = k + 2 T to the next time t = k + 3 T.
[0077] Furthermore, the control command C1 that includes the first solution (the first predicted value) among the four predicted results (solutions to the optimization problem) at time t = k + 2T (see the lower part of Figure 2) becomes the "control command C1 for time t = k + 3T". In other words, the control command C1 for time t = k + 3T (the target time) is generated by performing predictive control (MPC) based on the time of interest immediately preceding the target time (time t = k + 2T).
[0078] The control command C1 for time t = k + 3T (the target time) includes a predicted value corresponding to time t = k + 3T (the target time) relative to time t = k + 2T (the time of interest). The remaining three control predictions C2 include predicted values corresponding to future times t = k + 4T, k + 5T, and k + 6T, respectively, relative to time t = k + 2T (the time of interest). In other words, the time intervals between the control command C1 and the three control predictions C2 in the lower part of Figure 2 (time t = k + 2T) correspond to the control period T.
[0079] Then, the control command C1 generated at the time of interest t = k + 2T for the target time t = k + 3T is output immediately before the target time t = k + 3T, and is used to control the controlled object 2 during the period from the target time t = k + 3T to the next time t = k + 4T.
[0080] In the first mode, the control unit 11 discards the three control predictions C2 at each point in time without outputting them.
[0081] Thus, in the first mode, multiple control commands for multiple time points (t=k, t=k+T, t=k+2T, ...) are generated by predictive control based on the time point immediately preceding each time point.
[0082] (4.1.2) Processing flow of the first mode The processing flow of the control system 10 when operating in the first mode will be explained with reference to Figure 3.
[0083] When operation begins, the control system 10 (first calculation unit 121) generates a control command C1 for a time (time t=T) after a control cycle T has elapsed from the start of operation (for example, time t=0) by performing predictive control based on the start of operation (time t=0) (step ST1).
[0084] The operation control unit 3 of the controller 100 provides a control input to the controlled object 2 for time t=T based on the control command C1 generated for time t=T (step ST2). As a result, the controlled object 2 is controlled based on the control command C1 for time t=T.
[0085] Furthermore, the control system 10 determines whether the position of the controlled object 2, indicated by the control command C1 for time t=T, has reached the target point (for example, the endpoint of the target path T1) (step ST3).
[0086] If the target point has not been reached (Step ST3: No), the control system 10 returns to Step ST1 and repeats the process.
[0087] If the target point is reached (Step ST3: Yes), the control system 10 terminates the process.
[0088] (4.1.3) Challenges of the first mode In this first mode, predictive control (MPC) is performed each time for all of the multiple time points in time to generate the control command C1. Therefore, the first mode has the challenge of having a relatively high computational load.
[0089] Therefore, the control system 10 of this embodiment further has a second mode.
[0090] (4.2) Second Mode (4.2.1) Outline of the Second Mode As described above, the second mode is a mode in which multiple control commands C1 for multiple time points are generated by the first method or the second method according to the decision of the decision unit 14. In this embodiment, the decision unit 14 determines, based on the decision result of the determination unit 13, whether to use the first method or the second method to generate the control commands C1 for the target time point.
[0091] The determination unit 13 determines, based on the determination conditions, whether to use the first method or the second method as the method for generating the control command C1 for the target time point. The determination conditions are conditions relating to the calculation result of the control command C1 for any of the multiple time points.
[0092] The determination condition includes at least one of the latest calculation result condition and the past calculation result condition. The latest calculation result condition is a condition relating to the calculation result of control command C1 for the target time (i.e., the latest time). The past calculation result condition is a condition relating to the calculation result of control command C1 for a past time prior to the target time.
[0093] Examples of the latest calculation result conditions include the prediction success / failure condition and the (first) corner passing condition. The prediction success / failure condition is a condition relating to the result of whether or not the generation of the control command C1 for the target time point was successful when the control command C1 for the target time point was generated by the first method. The first corner passing condition is a condition relating to the result of whether or not the position of the controlled object 2, indicated by a specific control prediction C20 among the two or more control predictions C2 obtained when the control command C1 for the target time point was generated by the second method, has passed a corner on the target path T1.
[0094] Examples of past calculation result conditions include velocity conditions, acceleration conditions, and (second) corner passage conditions. The velocity condition is a condition relating to the velocity of the controlled object 2, indicated by a specific control prediction C20 among two or more control predictions C2 obtained when a control command C1 for a past time point was generated by the first method. The acceleration condition is a condition relating to the acceleration of the controlled object 2, indicated by a specific control prediction C20 among two or more control predictions C2 obtained when a control command C1 for a past time point was generated by the first method. The second corner passage condition is a condition relating to the result of whether or not the position of the controlled object 2 has passed a corner on the target path T1, indicated by a specific control prediction C20 among two or more control predictions C2 obtained when a control command C1 for a past time point was generated by the first method.
[0095] For details on each of the judgment conditions, see section (5) "Examples of operation in the second mode".
[0096] The decision unit 14 determines which of the first method and the second method is used to generate the control command C1 for the target time point.
[0097] In this embodiment, if the determination unit 13 determines that the first method should be used, the determination unit 14 decides to generate the control command C1 for the target time point using the first method. Also, if the determination unit 13 determines that the second method should be used, the determination unit 14 decides to generate the control command C1 for the target time point using the second method.
[0098] The generation unit 12 generates a control command C1 for the target time point using the method determined by the determination unit 14 from among the first method and the second method. In other words, in this embodiment, the generation unit 12 generates a control command C1 for the target time point using the method determined by the determination unit 13.
[0099] Thus, in the second mode, a control command C1 for a specific point in time among multiple points in time can be generated by the second method. As a result, the computational load can be reduced in the second mode compared to the first mode.
[0100] (4.2.2) First Method The "first method" is a method that generates a control command C1 for the target time by performing predictive control based on the time of interest for the controlled object 2.
[0101] In the first method, the first calculation unit 121 of the generation unit 12 executes the MPC to generate a control command C1 for the target time point. The method for generating the control command C1 in the first method is substantially the same as the method described in the section "(4.1.1) Details of the first mode," so a detailed explanation is omitted.
[0102] (4.2.3) Second Method (4.2.3.1) Types of Second Methods In this embodiment, the second method includes an analytical method and a method for reusing past results. That is, when it is decided that the control command C1 for the target time point will be generated by the second method, the method used can be selected from among several candidate methods (analytical method and method for reusing past results). In some cases, both the analytical method and the method for reusing past results may be used as the second method.
[0103] (4.2.3.2) Analytical Method The “analytical method” as used in this disclosure is a method for generating a control command C1 for a target time point without substantially using numerical calculations. The “analytical method” is, for example, a method for generating a control command C1 by geometric calculations. Geometric calculations may be calculations based on, for example, the state of the controlled object 2 on the target path T1 (position, velocity, acceleration, and jerk, etc.) and the shape of the target path T1 (corner position and corner angle, etc.). The “analytical method” is mainly executed by the second calculation unit 122 of the generation unit 12.
[0104] In one example, the second calculation unit 122 approximates the movement of the controlled object 2 along the target path T1 in a form that can be analytically solved using equations, and generates a control command C1 for the target time based on the solution to the equations. For example, the second calculation unit 122 approximates the target path T1 as a path formed by connecting multiple straight paths. The second calculation unit 122 then approximates that the controlled object 2 performs uniformly accelerated linear motion (or uniform jerk linear motion) near the start and end points of the straight paths. The second calculation unit 122 also approximates that the controlled object 2 performs uniform velocity linear motion in the central part of the straight paths (parts other than near the start and end points). Note that if the length of the straight path is short, there may be no section in which the controlled object 2 performs uniform velocity linear motion.
[0105] Various parameters may be set for the analytical method. Examples of parameters for the analytical method include the upper limit of acceleration in uniformly accelerated linear motion, the upper limit of jerk in uniformly jerk linear motion, and the upper limit of velocity in uniformly velocity linear motion. For example, in the fifth region R5 of the setting screen G1 shown in Figure 14, values (numerical values) for each parameter can be set and input.
[0106] As can be understood from the above explanation, the analytical method (second method) can generate multiple control commands C1 for each of multiple time points simultaneously. In other words, when the analytical method (second method) focuses on a particular time point among multiple time points, when generating a control command C1 for that time point, it can also simultaneously generate two or more control predictions C2 (= control commands C1) corresponding to two or more time points after that time point.
[0107] The "analytical method" executed by the second arithmetic unit 122 is not limited to the above example. The "analytical method" executed by the second arithmetic unit 122 only needs to be able to generate a control command C1 for the target time point without using numerical calculations, and other methods may be used.
[0108] (4.2.3.3) Past Result Reuse Method The "past result reuse method" as used in this disclosure is a method of reusing a control prediction C2 generated for a future point in time by the first method, etc., as a control command C1. The "past result reuse method" is mainly performed by the storage unit 123 of the generation unit 12.
[0109] Specifically, the storage unit 123 stores in the memory unit 16 at least a portion of the two or more control predictions C2 generated in a single predictive control performed by the first calculation unit 121. For example, the storage unit 123 stores in the memory unit 16 all of the two or more control predictions C2 generated in a single predictive control. In one specific example, the storage unit 123 stores in the memory unit 16 the control predictions C2 (see upper part of Figure 2) that correspond to time points t = k + 2T, k + 3T, and k + 4T, respectively, which are generated by performing predictive control based on time point t = k.
[0110] In this embodiment, the storage unit 123 updates the control prediction C2 stored in the memory unit 16 each time a control prediction C2 is generated (discarding old data and storing only the latest data). The memory unit 16 will store, for example, two or more control predictions C2 generated in the most recent single predictive control.
[0111] In the "past result reuse method," the control prediction C2 stored in the memory unit 16 in this manner is reused as the control command C1.
[0112] In the "past result reuse method," at least one of the two or more control predictions C2 stored in the memory unit 16 is reused as a control command C1. In one specific example, the control predictions C2 corresponding to time points t=k+2T, k+3T, and k+4T, which are generated by performing predictive control based on time point t=k and stored in the memory unit 16, are reused as control commands C1 for each time point t=k+2T, k+3T, and k+4T.
[0113] (4.2.3.4) When it is decided that the control command C1 for the target time point set by the second method will be generated by the second method, the method to be used is set by the setting unit 17. The setting unit 17 sets the second method from among a plurality of candidate methods (analytical methods and methods that reuse past results) in response to the operation input to the operation unit 18.
[0114] It is preferable that the choice of whether to use an analytical method or a method of reusing past results as the second method can be set for each judgment condition.
[0115] For example, in the example shown in Figure 14, the system is configured to use the "past results reuse method" for the prediction success / failure condition (when prediction fails), the "analytical method" for the acceleration condition (during steady-state operation), and the "past results reuse method" for the cornering condition (while passing a corner) (see the second region R2 in Figure 14).
[0116] (4.2.4) Processing flow of the second mode The processing flow of the control system 10 when operating in the second mode will be explained with reference to Figure 4.
[0117] When operation begins, the control system 10 (determination unit 13) determines whether to use the first method or the second method to generate a control command C1 for the time (time t=T) after a control cycle T has elapsed from the start of operation (for example, time t=0). In other words, the control system 10 determines whether predictive control is necessary (to use the first method) or not (to use the second method) in order to generate a control command C1 for time t=T as the target time (step ST11).
[0118] If predictive control is determined to be necessary (Step ST11: Yes), the control system 10 generates a control command C1 for the target time point t=T using the first method (predictive control) (Step ST12). If predictive control is determined to be unnecessary (Step ST11: No), the control system 10 generates a control command C1 for the target time point t=T using the second method (Step ST13).
[0119] The operation control unit 3 of the controller 100 provides a control input to the controlled object 2 for time t=T based on the control command C1 generated for time t=T (step ST14). As a result, the controlled object 2 is controlled according to the control command C1 for time t=T.
[0120] Furthermore, the control system 10 determines whether the position of the controlled object 2, indicated by the control command C1 for time t=T, has reached the target point (for example, the endpoint of the target path T1) (step ST15).
[0121] If the target point has not been reached (step ST15: No), the control system 10 returns to step ST11 and repeats the process.
[0122] If the target point is reached (step ST15: Yes), the control system 10 terminates the process.
[0123] (5) Example of operation in second mode Below, an example of operation of the control system 10 when operating in second mode will be described with reference to the drawings.
[0124] (5.1) Operation Example 1 Operation Example 1 will be explained with reference to Figures 5 and 6.
[0125] Operation Example 1 is an example of determining a method for generating a control command C1 for a target time point based on the "prediction success / failure condition" among the latest calculation result conditions. As described above, the prediction success / failure condition is a condition related to whether or not the generation of the control command C1 for the target time point was successful when the first method was used to generate the control command C1.
[0126] In predictive control, there are cases where the generation of control command C1 fails, for example, if an unexecutable problem is set (step ST16: No. in Figure 6). In such cases, the determination unit 13 determines to generate control command C1 for the target time using the second method, and the generation unit 12 generates control command C1 for the target time using the second method (step ST13 in Figure 6).
[0127] In example 1, an analytical method is adopted as the second method.
[0128] Below, we will explain the first example of operation in more detail with reference to Figures 5 and 6.
[0129] At time point t = k (see upper part of Figure 5), the generation unit 12 generates a control command C1 for time point t = k + T (target time point) using predictive control (first method) based on this time point t = k (focus time point) (step ST12).
[0130] In the example in Figure 5, at time t = k, the control command C1 for time t = k + T (the target time) is successfully generated (Step ST16: Yes). Then, this control command C1 is used as control command C0 at the next time t = k + T (Step ST14).
[0131] Next, at the next time point t = k + T after the control period T has elapsed, the generation unit 12 generates a control command C1 for time point t = k + 2T (target time point) using predictive control (first method) based on this time point t = k + T (step ST12) via the first calculation unit 121.
[0132] In the example shown in Figure 5, at time point t = k + T, the generation of the control command C1 for time point t = k + 2T (the target time point) has failed (see the lower left of Figure 5) (Step ST16: No). In this case, the generation of two or more control predictions C2 also fails simultaneously. For convenience, in Figure 5, the failures in the generation of the control command C1 and control prediction C2 are indicated by dashed circles.
[0133] In this case, the determination unit 13 determines that it will generate a control command C1 for the target time (time t = k + 2T) using the second method (analytical method). As a result, the generation unit 12 generates a control command C1 for the target time (time t = k + 2T) using the second calculation unit 122 (see the lower right of Figure 5) (step ST13). In the example in Figure 5, the second calculation unit 122 approximates the movement path of the controlled object 2 as a trajectory that pauses at a corner and proceeds to the next straight section, and generates a control command C1 (and control prediction C2) using the analytical method.
[0134] As described above, in Operation Example 1, if the generation of control command C1 by predictive control fails (see lower left of Figure 5), the method for generating control command C1 is switched to an analytical method to generate control command C1. This makes it possible to reduce the occurrence of abnormal operations such as runaway behavior or emergency stop of the controlled object 2 caused by the failure to generate control command C1.
[0135] (5.2) Operation Example 2 Operation Example 2 will be explained with reference to Figure 7.
[0136] Operation Example 2, like Operation Example 1, is an example of determining a method for generating a control command C1 for a target time point based on the "prediction success / failure condition" among the latest calculation result conditions.
[0137] In the second example, the method of reusing past results is adopted as the second approach.
[0138] Below, we will explain the second example of operation in more detail with reference to Figure 7.
[0139] At time point t = k (see upper part of Figure 7), the generation unit 12 generates a control command C1 for time point t = k + T (target time point) using predictive control (first method) based on this time point t = k (time point of interest). At this time, the first calculation unit 121 generates two or more (seven in the example of Figure 7) control predictions C2. The storage unit 123 also stores the two or more (seven in the example of Figure 7) control predictions C2 generated simultaneously with the control command C1 in the storage unit 16.
[0140] Next, at the next time point t = k + T after the control period T has elapsed, the generation unit 12 attempts to generate a control command C1 for time point t = k + 2T (target time point) using predictive control (first method) via the first calculation unit 121, but fails to generate the control command C1.
[0141] In this case, the determination unit 13 determines to generate a control command C1 for the target time (time t = k + 2T) using the second method (past result reuse method). The generation unit 12 then reuses the control prediction C2 corresponding to time t = k + 2T from among the two or more control predictions C2 stored in the storage unit 16 as the control command C1 for time t = k + 2T (target time) (see the middle section of Figure 7). In the example of Figure 7, the generation unit 12 reuses the remaining control predictions C2 stored in the storage unit 16 (the remaining six control predictions C2 in the example of Figure 7) as control predictions C2.
[0142] In other words, even if the generation of control command C1 for time t = k + 2T (the target time) fails at time t = k + T, the control prediction C2 generated and stored at a previous time t = k will be reused as control command C1. This makes it possible to reduce the occurrence of abnormal operations such as runaway behavior or emergency stop of the controlled object 2 caused by the failure to generate control command C1.
[0143] In the example in Figure 7, the generation of the control command C1 for time t = k + 3T (target time) by predictive control (first method) also fails at the next time point t = k + 2T. In this case, the generation unit 12 can reuse the control prediction C2 corresponding to time t = k + 3T from the remaining control predictions C2 (6 in the example in Figure 7) stored in the storage unit 16 as the control command C1 for time t = k + 3T (target time) (see the lower part of Figure 7).
[0144] Thus, in Operation Example 2, if the generation of control command C1 by predictive control fails, the results of past predictive control are reused. This makes it possible to reduce the occurrence of abnormal operations such as runaway behavior or emergency stop of the controlled object 2 that result from the failure to generate control command C1.
[0145] In the second example of operation, if the generation of control command C1 by predictive control fails repeatedly, the control prediction C2 stored in the memory unit 16 may be depleted. In that case, the generation unit 12 may generate control command C1 using an analytical method.
[0146] (5.3) Operation Example 3 Operation Example 3 will be explained with reference to Figure 8.
[0147] Operation Example 3 is an example of determining a method for generating a control command C1 for a target time point based on the "velocity condition" among the past calculation result conditions. The velocity condition is a condition relating to the velocity u1 of the controlled object 2, as described above, and is indicated by a specific control prediction C20 among the two or more control predictions C2 obtained when the control command C1 for a past time point was generated by the first method.
[0148] In Operation Example 3, the determination unit 13, when generating a control command C1 for the target time using predictive control (first method), selects the most future control prediction C2 from the two or more control predictions C2 generated simultaneously as a specific control prediction C20. The determination unit 13 then compares the speed u1 (see Figure 8) of the controlled object 2 indicated by the specific control prediction C20 (most future control prediction C2) with the set speed u0. The determination unit 13 determines that if the speed u1 reaches the set speed u0, it will generate a control command C1 for the target time using the second method.
[0149] In example 3, the second method employs the reuse of past results and an analytical method.
[0150] The third example of operation will be explained in more detail below with reference to Figure 8. The third example of operation can be applied, for example, to a point in time after the controlled object 2 has started to move (move).
[0151] At time point t = k (see upper part of Figure 8), the generation unit 12 generates a control command C1 for time point t = k + T (target time point) using predictive control (first method) based on this time point t = k (time point of interest). At this time, the first calculation unit 121 generates two or more (eight in the example of Figure 8) control predictions C2. The storage unit 123 stores the two or more (eight in the example of Figure 8) control predictions C2 generated simultaneously with the control command C1 in the storage unit 16.
[0152] The determination unit 13 then compares the speed u1 indicated by a specific control prediction C20 (the most future control prediction C2) among the two or more generated control predictions C2 with the set speed u0.
[0153] In the example in Figure 8, at time t = k (see upper part of Figure 8), the velocity u1 is less than the set velocity u0 (u1 < u0). In this case, the determination unit 13 determines that the method of generating the control command C1 for the target time (time t = k + 2T) at the next time (time t = k + T) is the first method.
[0154] Thus, in the example in Figure 8, the method for generating the control command C1 for the target time (time t = k + 2T) is determined based on the calculation result of the control command C1 for a past time (time t = k + T) prior to the target time (a specific control prediction C20 generated by predictive control based on time t = k) (past calculation result condition).
[0155] Next, at the next time point t = k + T (see the middle section of Figure 8) after the control cycle T has elapsed, the generation unit 12 generates a control command C1 for time point t = k + 2T (target time point) using predictive control (first method) based on this time point t = k + T (point of interest). The storage unit 123 also stores two or more (eight in the example of Figure 8) control predictions C2 that were generated simultaneously with the control command C1 for time point t = k + 2T in the storage unit 16.
[0156] The determination unit 13 then compares the speed u1 indicated by a specific control prediction C20 (the most future control prediction C2) with the set speed u0, based on the two or more control predictions C2 generated at time t = k + T.
[0157] In the example in Figure 8, at time t = k + T (see the middle section of Figure 8), the velocity u1 is greater than or equal to the set velocity u0 (u1 ≥ u0), and the velocity u1 has reached the set velocity u0. In this case, the determination unit 13 determines that the method of generating the control command C1 for the target time (time t = k + 3T) at the next time point (time t = k + 2T) is the second method.
[0158] Then, at time t = k + 2T (see the lower part of Figure 8) after the control period T has elapsed, the generation unit 12 generates a control command C1 for time t = k + 3T (the target time) using the second method. Specifically, the generation unit 12 reuses the control prediction C2 corresponding to time t = k + 3T from among the two or more control predictions C2 stored in the storage unit 16 as the control command C1 for time t = k + 3T (the past result reuse method). In the example of Figure 8, the generation unit 12 reuses the remaining control predictions C2 (the remaining seven control predictions C2 in the example of Figure 8) stored in the storage unit 16 as control predictions C2.
[0159] Here, if one of the control predictions C2 stored in the memory unit 16 is reused as a control command C1, the number of control predictions C2 stored in the memory unit 16 decreases. Therefore, the generation unit 12 uses an analytical method to generate a new control prediction C2 (additional control prediction C200) for a further future point in time. Specifically, the generation unit 12 uses the most future control prediction C2 among the two or more control predictions C2 stored in the memory unit 16 as a reference and generates the additional control prediction C200 at a position moved by a set distance (= u0 × T) determined from the set speed u0 and the control period T (see the lower part of Figure 8).
[0160] Similarly, at subsequent points in time, the generation unit 12 generates a control command C1 for the target point in time using the past result reuse method, and also generates an additional control prediction C200.
[0161] Here, as time progresses, at the next time point, after all eight control predictions C2 generated at time point t = k + T (see the middle section of Figure 8) have been reused as control commands C1, the "additional control prediction C200" generated at time point t = k + 2T will be reused as control command C1. In other words, in the example of Figure 8, the control prediction C200 generated by the analytical method is also reused as control command C1. Therefore, it can be said that the analytical method is also used as a second method in the example of Figure 8.
[0162] As described above, in Operation Example 3, once the speed u1 reaches the set speed u0, the control command C1 is generated using the second method. This reduces the computational load.
[0163] The set speed u0 may be set by the setting unit 17 in response to user input to the operation unit 18, for example. However, a setting range (at least one of an upper limit and a lower limit) may be set in advance for the set speed u0. If the value input by the user exceeds the setting range, the setting unit 17 may set the set speed u0 so that it falls within the setting range.
[0164] (5.4) Operation Example 4 Operation Example 4 will be explained with reference to Figure 9.
[0165] Operation example four is an example of determining a method for generating a control command C1 for a target time based on the "acceleration condition" among the past calculation result conditions. The acceleration condition is a condition relating to the acceleration a1 of the controlled object 2, as described above, and is indicated by a specific control prediction C20 among the two or more control predictions C2 obtained when the control command C1 for a past time was generated by the first method.
[0166] In Operation Example 4, the determination unit 13, when generating a control command C1 for the target time using predictive control (first method), selects the most future control prediction C2 from the two or more control predictions C2 generated simultaneously as a specific control prediction C20. The determination unit 13 then determines whether the acceleration a1 (see Figure 9) of the controlled object 2, indicated by the specific control prediction C20 (most future control prediction C2), has become 0 (i.e., whether the operation of the controlled object 2 has reached a steady state). If the acceleration a1 has become 0, the determination unit 13 determines to generate a control command C1 for the target time using the second method.
[0167] In example four, the second method employs the reuse of past results and an analytical method.
[0168] The fourth example of operation will be explained in more detail below with reference to Figure 9. The fourth example of operation can be applied, for example, to a point in time after the controlled object 2 has started to move (move).
[0169] At time point t = k (see upper part of Figure 9), the generation unit 12 generates a control command C1 for time point t = k + T (target time point) using predictive control (first method) based on this time point t = k (time point of interest). At this time, the first calculation unit 121 generates two or more (eight in the example of Figure 9) control predictions C2. The storage unit 123 also stores the two or more (eight in the example of Figure 9) control predictions C2 generated simultaneously with the control command C1 in the storage unit 16.
[0170] The determination unit 13 then determines whether the acceleration a1 indicated by a specific control prediction C20 (the most future control prediction C2) among the two or more generated control predictions C2 has become 0.
[0171] In the example in Figure 9, at time t = k (see upper part of Figure 9), acceleration a1 is greater than 0 (a1 > 0). In this case, the determination unit 13 determines that the method of generating the control command C1 for the target time (time t = k + 2T) at the next time point (time t = k + T) is the first method.
[0172] As shown in the example in Figure 9, the method for generating the control command C1 for the target time (time t = k + 2T) is determined based on the calculation result of the control command C1 for a past time (time t = k + T) prior to the target time (a specific control prediction C20 generated by predictive control based on time t = k) (past calculation result condition).
[0173] Next, at the next time point t = k + T (see the middle section of Figure 9) after the control cycle T has elapsed, the generation unit 12 generates a control command C1 for time point t = k + 2T (target time point) using predictive control (first method) based on this time point t = k + T (point of interest). The storage unit 123 also stores two or more (eight in the example of Figure 9) control predictions C2 that were generated simultaneously with the control command C1 for time point t = k + 2T in the storage unit 16.
[0174] The determination unit 13 then determines whether the acceleration a1 indicated by a specific control prediction C20 (the most future control prediction C2) has become 0, based on the two or more control predictions C2 generated at time t = k + T.
[0175] In the example in Figure 9, at time t = k + T (see the middle section of Figure 9), the acceleration a1 is 0 (a1 = 0). In this case, the determination unit 13 determines that the method of generating the control command C1 for the target time (time t = k + 3T) at the next time point (time t = k + 2T) is the second method.
[0176] Then, at time t = k + 2T (see the lower part of Figure 9) after the control period T has elapsed, the generation unit 12 generates a control command C1 for time t = k + 3T (the target time) using the second method. Specifically, the generation unit 12 reuses the control prediction C2 corresponding to time t = k + 3T from among the two or more control predictions C2 stored in the storage unit 16 as the control command C1 for time t = k + 3T (the past result reuse method). In the example of Figure 9, the generation unit 12 reuses the remaining control predictions C2 (the remaining seven control predictions C2 in the example of Figure 9) stored in the storage unit 16 as control predictions C2.
[0177] Furthermore, the generation unit 12 uses analytical methods to generate a new control prediction C2 (additional control prediction C200) for a further future point in time. Specifically, the generation unit 12 uses the most future control prediction C2 among the two or more control predictions C2 stored in the storage unit 16 as a reference, and generates the additional control prediction C200 at a position moved by a distance (= u11 × T) determined from the velocity u1 = u11 (see middle section of Figure 9) and control period T indicated by the most future control prediction C2 (see lower section of Figure 9).
[0178] Similarly, at subsequent points in time, the generation unit 12 generates a control command C1 for the target point in time using the past result reuse method, and also generates an additional control prediction C200.
[0179] Here, as time progresses, at the next time point, after all eight control predictions C2 generated at time point t = k + T (see the middle section of Figure 9) have been reused as control commands C1, the "additional control prediction C200" generated at time point t = k + 2T will be reused as control command C1. In other words, in the example of Figure 9, the control prediction C200 generated by the analytical method is also reused as control command C1. Therefore, it can be said that the analytical method is also used as a second method in the example of Figure 9.
[0180] As described above, in operation example 4, the control command C1 is generated using the second method after the acceleration a1 becomes 0. This reduces the computational load.
[0181] The determination unit 13 is configured to determine whether to use the second method when the acceleration a1 becomes 0, but it is not limited to this configuration. The determination unit 13 may also be configured to determine whether to use the second method when the acceleration a1 becomes less than or equal to a reference value greater than 0.
[0182] (5.5) Operation Example Five Operation Example Five will be explained with reference to Figure 10.
[0183] Operation Example 5 is an example of determining a method for generating a control command C1 for a target time based on the "(first) corner passing condition" among the latest calculation result conditions. The first corner passing condition is a condition relating to the result of whether or not the position of the controlled object 2, indicated by a specific control prediction C20 among the two or more control predictions C2 obtained when the control command C1 for the target time was generated by the second method, has passed a corner on the target path T1.
[0184] In Operation Example 5, the determination unit 13 selects a specific control prediction C20 from among the two or more control predictions C2 generated simultaneously when the control command C1 for the target time point was generated using the second method (in the example in Figure 10, the seventh control prediction C2 from the control command C1). The determination unit 13 then determines whether the position of the controlled object 2 indicated by the specific control prediction C20 has passed the corner. If the position of the controlled object 2 indicated by the specific control prediction C20 has passed the corner, the determination unit 13 determines to generate (regenerate) the control command C1 for the target time point using the first method.
[0185] Below, with reference to Figure 10, Operation Example 5 will be explained in more detail. Operation Example 5 can be applied, for example, at a point in time after it has been determined that the operation of the controlled object 2 has reached a steady state in Operation Example 4.
[0186] At time point t = k (see upper part of Figure 10), the generation unit 12 generates a control command C1 for time point t = k + T (target time point) using the second method. Here, the generation unit 12 approximates that the controlled object 2 is moving at a constant velocity in a straight line along a straight path and generates the control command C1 using an analytical method. At this time, the generation unit 12 also simultaneously generates two or more (seven in the example of Figure 10) control predictions C2. The storage unit 123 stores the two or more (seven in the example of Figure 10) control predictions C2 generated simultaneously with the control command C1 in the storage unit 16.
[0187] The determination unit 13 then determines whether the position of the controlled object 2, indicated by a specific control prediction C20 among the two or more control predictions C2, has passed the corner.
[0188] In the example shown in Figure 10, at time t = k (see upper part of Figure 10), the position of the controlled object 2, indicated by the specific control prediction C20, is before the corner and has not yet passed the corner. In this case, the determination unit 13 determines that the method of generating the control command C1 for the target time (time t = k + 2T) at the next time point (time t = k + T) is the second method.
[0189] Next, at the next time point t = k + T after the control period T has elapsed (see the lower left of Figure 10), the generation unit 12 generates a control command C1 for time point t = k + 2T (the target time point) using the second method. The storage unit 123 also stores two or more (seven in the example of Figure 10) control predictions C2 that were generated simultaneously with the control command C1 for time point t = k + 2T in the storage unit 16.
[0190] Then, the determination unit 13 determines whether the position of the controlled object 2, indicated by a specific control prediction C20, has passed a corner, based on the two or more control predictions C2 generated at time t = k + T.
[0191] In the example in Figure 10, at time t = k + T (see lower left of Figure 10), the position of the controlled object 2, indicated by the specific control prediction C20, is located beyond the corner and has passed the corner. In this case, the determination unit 13 determines that at the current time (time t = k + T), the control command C1 for the target time (time t = k + 2T) should be generated (re-generated) using the first method (predictive control).
[0192] Then, the generation unit 12 regenerates the control command C1 for time t = k + 2 (target time) at the current time (time t = k + T) using the first method (predictive control) (see the lower right of Figure 10). At this time, as shown in the lower right of Figure 10, two or more control predictions C2 are also regenerated simultaneously.
[0193] Thus, in the example shown in Figure 10, the method for generating the control command C1 for the target time point (time point t = k + 2T) is determined based on the calculation result of the control command C1 for the target time point (time point t = k + 2T) (latest calculation result condition).
[0194] In operation example 5, the control command C1 is generated using the second method before the controlled object 2 approaches the corner. This reduces the computational load.
[0195] Furthermore, in Operation Example 5, when the controlled object 2 approaches a corner, the first method is used to generate the control command C1. This improves the control accuracy.
[0196] (5.6) Operation Example 6 Operation Example 6 will be explained with reference to Figure 11.
[0197] Operation example 6 is an example of determining a method for generating a control command C1 for a target time based on the "(second) corner passing condition" among the past calculation result conditions. The second corner passing condition is a condition related to whether or not the position of the controlled object 2, indicated by a specific control prediction C20 among the two or more control predictions C2 obtained when the control command C1 for a past time was generated by the second method, has passed a corner on the target path T1.
[0198] In Operation Example 6, the determination unit 13 selects a specific control prediction C2 (the seventh control prediction C2 from the control command C1 in the example in Figure 11) from among the two or more control predictions C2 generated simultaneously when the control command C1 for the target time point was generated using the second method, and designates it as a specific control prediction C20. The determination unit 13 then determines whether the position of the controlled object 2 indicated by the specific control prediction C20 has passed the corner. If the position of the controlled object 2 indicated by the specific control prediction C20 has passed the corner, the determination unit 13 determines that it will generate a control command C1 for the target time point using the first method.
[0199] Below, with reference to Figure 11, Operation Example 6 will be explained in more detail. Operation Example 6, like Operation Example 5, can be applied, for example, at a point in time after it has been determined that the operation of the controlled object 2 has reached a steady state in Operation Example 4.
[0200] At time point t = k (see upper part of Figure 11), the generation unit 12 generates a control command C1 for time point t = k + T (target time point) using the second method. Here, the generation unit 12 approximates that the controlled object 2 is moving at a constant velocity in a straight line along a straight path and generates the control command C1 using an analytical method. At this time, the generation unit 12 also simultaneously generates two or more (seven in the example of Figure 11) control predictions C2. The storage unit 123 stores the two or more (seven in the example of Figure 11) control predictions C2 generated simultaneously with the control command C1 in the storage unit 16.
[0201] The determination unit 13 then determines whether the position of the controlled object 2, indicated by a specific control prediction C20 among the two or more control predictions C2, has passed the corner.
[0202] In the example shown in Figure 11, at time t = k (see upper part of Figure 11), the position of the controlled object 2, indicated by the specific control prediction C20, is before the corner and has not yet passed the corner. In this case, the determination unit 13 determines that the method of generating the control command C1 for the target time (time t = k + 2T) at the next time point (time t = k + T) is the second method.
[0203] Next, at the next time point t = k + T (see the middle section of Figure 11) after the control period T has elapsed, the generation unit 12 generates a control command C1 for time point t = k + 2T (the target time point) using the second method. The storage unit 123 also stores two or more (seven in the example of Figure 11) control predictions C2, which were generated simultaneously with the control command C1 for time point t = k + 2T, in the storage unit 16.
[0204] Then, the determination unit 13 determines whether the position of the controlled object 2, indicated by a specific control prediction C20, has passed a corner, based on the two or more control predictions C2 generated at time t = k + T.
[0205] In the example shown in Figure 11, at time t = k + T (see the middle section of Figure 11), the position of the controlled object 2, indicated by a specific control prediction C20, is located beyond the corner and has passed the corner. In this case, the determination unit 13 determines that the method of generating a control command C1 for the target time (time t = k + 3T) at the next time point (time t = k + 2T) is the first method (predictive control).
[0206] Then, at the next time point t = k + 2T (see the lower part of Figure 11) after the control period T has elapsed, the generation unit 12 generates a control command C1 for time point t = k + 3T (target time point) using the first method (predictive control). At this time, as shown in the lower part of Figure 11, two or more control predictions C2 are also generated.
[0207] Thus, in the example shown in Figure 11, the method for generating the control command C1 for the target time (time t = k + 3T) is determined based on the calculation result of the control command C1 for a past time (time t = k + 2T) prior to the target time (past calculation result condition).
[0208] Operation example 6 can produce the same effect as operation example 5.
[0209] (5.7) Operation Example 7 Operation Example 7 will be explained with reference to Figures 12 and 13. Operation Example 7 is an example of controlling the operation of the controlled object 2 by appropriately switching between the first method and the second method according to the passage of time. Note that in the examples of Figures 12 and 13, the direction of the second straight path in the target path T1 is different from the example in Figure 1, etc., but this is only for the sake of illustration convenience.
[0210] The seventh operation example will be explained in more detail below with reference to Figures 12 and 13. The seventh operation example is an example in which the controlled object 2 passes through a corner on the target path T1. The seventh operation example can be applied, for example, at a point in time after it has been determined that the controlled object 2 is approaching a corner in the fifth and sixth operation examples.
[0211] At time point t = k (see upper part of Figure 12), the generation unit 12 generates a control command C1 for time point t = k + T (target time point) using predictive control (first method) based on this time point t = k (time point of interest). At this time, the first calculation unit 121 generates two or more (eight in the example of Figure 12) control predictions C2. The storage unit 123 also stores the two or more (eight in the example of Figure 12) control predictions C2 generated simultaneously with the control command C1 in the storage unit 16.
[0212] In the example shown in Figure 12, the determination unit 13 determines whether the position of the controlled object 2, indicated by a specific control prediction C20 (in this case, the fifth control prediction C2) among the two or more generated control predictions C2, has passed a corner.
[0213] In the example shown in Figure 12, at time t = k (see upper part of Figure 12), the position of the controlled object 2, indicated by the specific control prediction C20, is before the corner and has not yet passed the corner. In this case, the determination unit 13 determines that the method of generating the control command C1 for the target time (time t = k + 2T) at the next time point (time t = k + T) is the first method.
[0214] Next, at the next time point t = k + T (see the middle section of Figure 12) after the control period T has elapsed, the generation unit 12 generates a control command C1 for time point t = k + 2T (the target time point) using the first method (predictive control). The storage unit 123 also stores two or more (eight in the example of Figure 12) control predictions C2, which were generated simultaneously with the control command C1 for time point t = k + 2T, in the storage unit 16.
[0215] Then, the determination unit 13 determines whether the position of the controlled object 2, indicated by a specific control prediction C20, has passed a corner, based on the two or more control predictions C2 generated at time t = k + T.
[0216] In the example shown in Figure 12, at time t = k + T (see the middle section of Figure 12), the position of the controlled object 2, indicated by the specific control prediction C20, is located beyond the corner and has passed the corner. In this case, the determination unit 13 determines that the method of generating the control command C1 for the target time (time t = k + 3T) at the next time point (time t = k + 2T) is the second method.
[0217] Then, at the next time point t = k + 2T (see the lower part of Figure 12) after the control cycle T has elapsed, the generation unit 12 generates a control command C1 for time point t = k + 3T (target time point) using a second method. Here, the past result reuse method is adopted as the second method. That is, at time point t = k + 2T (see the lower part of Figure 12), the generation unit 12 reuses the control prediction C2 corresponding to time point t = k + 3T from among the two or more control predictions C2 stored in the storage unit 16 as the control command C1 for time point t = k + 3T (target time point) (past result reuse method). In the example of Figure 12, the generation unit 12 reuses the remaining control predictions C2 (the remaining seven control predictions C2 in the example of Figure 12) stored in the storage unit 16 as control predictions C2.
[0218] Although not shown in the diagram, the generation unit 12 subsequently reuses the corresponding control prediction C2 from among the two or more control predictions C2 stored in the storage unit 16 as the control command C1 at time points t = k + 3T, k + 4T, and k + 5T. Furthermore, as shown in the upper part of Figure 13, the generation unit 12 also reuses the corresponding control prediction C2 from among the two or more control predictions C2 stored in the storage unit 16 as the control command C1 at time point t = k + 6T. The generation unit 12 also reuses the remaining control predictions C2 stored in the storage unit 16 as control predictions C2.
[0219] Furthermore, the determination unit 13 determines whether the position of the controlled object 2, indicated by the control command C1, has passed the corner.
[0220] As shown in the lower part of Figure 12, at time t = k + 2T, the position of the controlled object 2, indicated by control command C1, is before the corner and has not passed through the corner. Similarly, at time t = k + 3T, k + 4T, and k + 5T, the position of the controlled object 2, indicated by control command C1, is before the corner and has not passed through the corner.
[0221] On the other hand, as shown in the upper part of Figure 13, at time t = k + 6T, the position of the controlled object 2, indicated by the control command C1, is located behind the corner and has passed the corner. In this case, the determination unit 13 determines that the method of generating the control command C1 for the target time (time t = k + 8T) at the next time (time t = k + 7T) is the first method.
[0222] Then, at the next time point t = k + 7T (see the middle section of Figure 13) after the control period T has elapsed, the generation unit 12 generates a control command C1 for time point t = k + 8T (target time point) using the first method (predictive control). At this time, as shown in the middle section of Figure 13, two or more control predictions C2 are also generated.
[0223] Furthermore, in the example shown in Figure 13, the generation unit 12 also generates a control command C1 for the target time point t = k + 9 T (see lower part of Figure 13) at the next time point t = k + 8 T (see lower part of Figure 13) after the control period T has elapsed, using the first method (predictive control). At this time, as shown in the lower part of Figure 13, two or more control predictions C2 are also generated.
[0224] In the examples shown in Figures 12 and 13, the second method (more specifically, the method of reusing past results) is used during the period when the vehicle is passing through the corner (times t = k + 2T to k + 6T), and the first method is used after the vehicle has passed the corner. This reduces the computational load while improving control accuracy.
[0225] (6) Modified Examples The following are modified examples of the above embodiments. In the following descriptions of modified examples, elements similar to those in the above embodiments may be given the same reference numerals and their descriptions may be omitted as appropriate.
[0226] (6.1) Modification Example 1 In Modification Example 1, as shown in Figure 15, the control system 10 is implemented on the upper-level PC 5. The upper-level PC 5 also functions as a controller 100 (motion controller). The upper-level PC 5 is connected to communicate with the controlled object 2.
[0227] Even in the configuration of the first modified example, it is possible to reduce the computational load.
[0228] (6.2) Modification 2 In Modification 2, as shown in Figure 16, the control system 10 is implemented on the X-axis amplifier A1 of the controlled object 2. The X-axis amplifier A1 also functions as a controller 100 (motion controller). The upper-level PC 5 is connected to communicate with the X-axis amplifier A1 of the controlled object 2.
[0229] In the second modified configuration, it is also possible to reduce the computational load.
[0230] (6.3) Modification 3 In Modification 3, as shown in Figure 17, the control system is implemented on the upper-level PC 5. The upper-level PC 5 is also connected to communicate with the controlled object 2. In Modification 3, each of the X-axis amplifier A1 and Y-axis amplifier A2 of the controlled object 2 is equipped with an operation control unit 3 and a state estimation unit 4.
[0231] Each state estimation unit 4 of the X-axis amplifier A1 and Y-axis amplifier A2 estimates the state of its corresponding axis, and each amplifier uses the estimation result for feedback control. Each amplifier also transmits the estimation result from the state estimation unit 4 to the higher-level PC 5.
[0232] In the configuration of the third modified example, it is also possible to reduce the computational load.
[0233] As another example, the control system 10 according to Modification 3 may be implemented in the controller 100 (motion controller) between the upper-level PC 5 and the controlled object 2, similar to the control system 10 according to the above embodiment.
[0234] (6.4) Modification 4 Modification 4 will be explained.
[0235] In modification four, the decision criteria include a first decision criterion and a second decision criterion. Furthermore, the second method includes multiple methods. These multiple methods of the second method include, for example, an analytical method and a method of reusing past results.
[0236] In the fourth variation, the determination unit 13 determines which of the multiple methods of the first and second methods to use, based on the determination result for the first determination condition and the determination result for the second determination condition. Specifically, the determination unit 13 determines which of the first method (predictive control), analytical method, and past result reuse method to use, based on the determination result for the first determination condition and the determination result for the second determination condition.
[0237] For example, the determination unit 13 determines that if the first determination condition is met, it will generate a control command C1 for the target time using the first method (regardless of the determination result of the second determination condition).
[0238] Furthermore, if the first determination condition is not met and the second determination condition is met, the determination unit 13 determines to generate a control command C1 for the target time using one of the multiple methods of the second method (for example, an analytical method).
[0239] Furthermore, if the first determination condition is not met and the second determination condition is not met, the determination unit 13 determines to generate a control command C1 for the target time using another method (for example, the method of reusing past results) from among the multiple methods of the second method.
[0240] The generation unit 12 generates a control command C1 for the target time point based on the determination result of the determination unit 13.
[0241] This modified version allows for a reduction in computational load and an improvement in control accuracy.
[0242] (6.5) Other Modifications Functions similar to the control system 10 according to the above embodiment may be embodied in a control method, a computer program, or a non-temporary recording medium on which a computer program is recorded.
[0243] The control system 10 in this disclosure includes a computer system. The computer system mainly consists of a processor and memory as hardware. The functions of the control system 10 in this disclosure are realized by the processor executing a program recorded in the memory of the computer system. The program may be pre-recorded in the memory of the computer system, provided via a telecommunications line, or provided on a non-temporary recording medium such as a memory card, optical disk, or hard disk drive that can be read by the computer system. The processor of the computer system is composed of one or more electronic circuits including semiconductor integrated circuits (ICs) or large-scale integrated circuits (LSIs). The integrated circuits such as ICs and LSIs referred to here are named differently depending on the degree of integration, and include integrated circuits called system LSIs, VLSIs (Very Large Scale Integrations), or ULSIs (Ultra Large Scale Integrations). Furthermore, FPGAs (Field-Programmable Gate Arrays) that are programmed after the LSI is manufactured, or logic devices capable of reconfiguring junctions or circuit compartments within the LSI, can also be used as processors. Multiple electronic circuits may be integrated onto a single chip or distributed across multiple chips. Multiple chips may be integrated into a single device or distributed across multiple devices. The computer system referred to here includes a microcontroller having one or more processors and one or more memories. Therefore, the microcontroller also consists of one or more electronic circuits, including semiconductor integrated circuits or large-scale integrated circuits.
[0244] Furthermore, it is not essential that the multiple functions of the control system 10 be integrated into a single housing. For example, the components of the control system 10 may be distributed across multiple housings.
[0245] Conversely, multiple functions in the control system 10 may be integrated into a single housing. Furthermore, at least some of the functions of the control system 10, for example, some of the functions of the control system 10, may be implemented by the cloud (cloud computing), etc.
[0246] In one modified example, the control system 10 does not need to include a determination unit 13. In that case, the decision unit 14 may decide which of the first and second methods to use as the method for generating the control command C1 for the target time point, according to a pre-set rule. Examples of pre-set rules include, for example, a rule that alternates between the first and second methods at each time point, or a rule in which the user decides whether to use the first or second method for each section of the target path T1 using a setting screen G1, and the system switches between the first and second methods according to this decision.
[0247] In one modified example, the control system 10 may have only the second mode as an operating mode. In other words, it is not essential that the control system 10 has the first mode as an operating mode.
[0248] In one modified example, the storage unit 123 may add the generated control prediction C2 to the storage unit 16 each time a control prediction C2 is generated by predictive control.
[0249] In the above embodiment, the control system 10 outputs a control command C1 each time it generates one, but this is not limited to this. In one modified example, the control system 10 may generate a plurality of control commands C1 necessary for the controlled object 2 to move from the starting point to the destination point of the target path T1 in advance and store them in the storage unit 16. Then, when the controlled object 2 actually moves, the controller 100 may sequentially provide the controlled object 2 with control inputs based on the plurality of control commands C1 that have been generated in advance and stored in the storage unit 16, at intervals of the control cycle T.
[0250] In the above embodiment, the controlled object 2 is a two-axis machining center with X and Y axes, but this is not limited to that. The controlled object 2 is not limited to "two axes" and may be a three-axis machining center with X, Y, and Z axes, or a four-axis or five-axis machining center. Also, the machining center is not limited to a "stage". For example, the controlled object 2 may be an articulated robot. Specifically, the controlled object 2 may be an arm-type vertical articulated robot. The controlled object 2 is not limited to machine tools such as machining centers, but may also be a coating device. The controlled object 2 may be a controlled object with other drive systems. The controlled object 2 may be equipment such as a conveying device, or a mobile device such as an automobile, aircraft, drone, or self-propelled vacuum cleaner.
[0251] (Modes) The following modes are disclosed from the embodiments described above.
[0252] The control method according to the first embodiment is a control method applied to a control system (10) that generates a plurality of control commands (C1) used for controlling the operation of a controlled object (2) at a plurality of consecutive time points at intervals of a control cycle (T). The control method includes a decision step and a generation step. In the decision step, the method for generating the control command (C1) for the target time point, which is the time point following the time point of interest among the plurality of time points, is decided to be either a first method or a second method. The first method is a method that generates the control command (C1) by performing predictive control based on the time point of interest for the controlled object (2). The second method is a method that generates the control command (C1) without using predictive control based on the time point of interest for the controlled object (2). In the generation step, the control command (C1) for the target time point is generated using the method determined in the decision step from the first method and the second method.
[0253] This embodiment allows for a reduction in computational load.
[0254] The control method of the second embodiment further includes a determination step in the first embodiment. In the determination step, it is determined, based on a determination condition, whether to use the first method or the second method as the method for generating a control command (C1) for a target time point. The determination condition is a condition relating to the calculation result of the control command (C1) for any of the multiple time points. In the decision step, based on the determination result in the determination step, it is decided whether to use the first method or the second method as the method for generating the control command (C1) for the target time point.
[0255] According to this embodiment, control accuracy can be improved compared to the case where either the first method or the second method is determined according to a predetermined rule.
[0256] In the third embodiment of the control method, in the second embodiment, the determination condition includes the latest calculation result condition relating to the calculation result of the control command (C1) for the target time point.
[0257] This embodiment allows for a reduction in computational load.
[0258] In the control method of the fourth embodiment, in the third embodiment, the latest calculation result condition includes a prediction success / failure condition. The prediction success / failure condition is a condition relating to the result of whether or not the generation of the control command (C1) for the target time was successful when the control command (C1) for the target time was generated by the first method. In the determination step, if the generation of the control command (C1) for the target time fails by the first method, it is determined to generate the control command (C1) for the target time using the second method.
[0259] According to this configuration, even if the generation of commands fails, abnormalities are less likely to occur.
[0260] In the fifth embodiment of the control method, in the third or fourth embodiment, the plurality of control commands (C1) are plurality of trajectory commands for moving the controlled object (2) along a target path (T1). The target path (T1) includes corners. In the second method, when generating a control command (C1) for a target time, two or more control predictions (C2) corresponding to two or more time points after the target time are generated. The latest calculation result condition includes a (first) corner passage condition. The (first) corner passage condition is a condition relating to whether or not the position of the controlled object (2), indicated by a specific control prediction (C20) among the two or more control predictions (C2) obtained when the control command (C1) for the target time was generated by the second method, has passed a corner. In the determination step, if the position of the controlled object (2), indicated by the specific control prediction (C20), has passed a corner, it is determined to generate a control command (C1) for the target time using the first method.
[0261] This embodiment allows for a reduction in computational load.
[0262] In the sixth embodiment of the control method, in any one of the second to fifth embodiments, the determination condition includes a past calculation result condition relating to the calculation result of a control command (C1) for a past time point prior to the target time point among a plurality of time points.
[0263] This embodiment allows for a reduction in computational load.
[0264] In the control method of the seventh embodiment, in the sixth embodiment, the plurality of control commands (C1) are plurality of trajectory commands for moving the controlled object (2) along a target path (T1). In the first method, when generating a control command (C1) for a past time point, two or more control predictions (C2) corresponding to two or more time points after the past time point are generated. The past calculation result conditions include a velocity condition. The velocity condition is a condition relating to the velocity (u1) of the controlled object (2), indicated by a specific control prediction (C20) among the two or more control predictions (C2) obtained when the control command (C1) for a past time point was generated by the first method. In the determination step, it is determined that if the velocity (u1) reaches a set velocity (u0), a control command (C1) for the target time point is generated using the second method.
[0265] This embodiment allows for a reduction in computational load.
[0266] In the control method of the eighth embodiment, in the sixth or seventh embodiment, the plurality of control commands (C1) are plurality of trajectory commands for moving the controlled object (2) along a target path (T1). In the first method, when generating a control command (C1) for a past time point, two or more control predictions (C2) corresponding to two or more time points after the past time point are generated. The past calculation result condition includes an acceleration condition. The acceleration condition is a condition relating to the acceleration (a1) of the controlled object (2), indicated by a specific control prediction (C20) among the two or more control predictions (C2) obtained when the control command (C1) for a past time point was generated by the first method. In the determination step, if the acceleration (a1) is 0, it is determined to generate a control command (C1) for the target time point using the second method.
[0267] This embodiment allows for a reduction in computational load.
[0268] In the control method of the ninth embodiment, in any one of the sixth to eighth embodiments, the plurality of control commands (C1) are plurality of trajectory commands for moving the controlled object (2) along a target path (T1). The target path (T1) includes corners. In the second method, when generating a control command (C1) for a past time point, two or more control predictions (C2) corresponding to two or more time points after the past time point are generated. The past calculation result condition includes a (second) corner passage condition. The (second) corner passage condition is a condition relating to the result of whether or not the position of the controlled object (2), indicated by a specific control prediction (C20) among the two or more control predictions (C2) obtained when the control command (C1) for a past time point was generated by the second method, has passed a corner. In the determination step, if the position of the controlled object (2), indicated by the specific control prediction (C20), has passed a corner, it is determined to generate a control command (C1) for the target time point using the first method.
[0269] This embodiment allows for a reduction in computational load.
[0270] In the control method of the tenth embodiment, in any one of the second to ninth embodiments, the determination condition includes a first determination condition and a second determination condition. The second method includes a plurality of methods. In the determination step, a determination is made as to which of the plurality of methods of the first method and the second method to use, based on the determination result for the first determination condition and the determination result for the second determination condition.
[0271] This embodiment allows for a reduction in computational load and an improvement in control accuracy.
[0272] In the control method of the eleventh embodiment, in the first embodiment, the decision step is to determine whether the method for generating a control command (C1) for the target time point according to a predetermined rule is the first method or the second method.
[0273] This embodiment allows for a reduction in computational load.
[0274] In the control method of the twelfth embodiment, in any one of the first to eleventh embodiments, the first method generates two or more control predictions (C2) corresponding to two or more time points after a certain point in time when generating a control command (C1) for a certain time point among a plurality of time points. The control method further includes a storage step of storing at least a portion of the two or more control predictions (C2) in a storage unit (16).
[0275] This embodiment allows for a reduction in computational load.
[0276] In the control method of the 13th embodiment, in the 12th embodiment, the second method reuses, from among the two or more control predictions (C2) generated when the first method generates a control command (C1) for a past time point prior to the target time point among a plurality of time points and stored in the memory unit (16), the control prediction (C2) corresponding to the target time point is used as the control command (C1) for the target time point.
[0277] This embodiment allows for a reduction in computational load.
[0278] In the control method of the 14th embodiment, in any one of the first to 13 embodiments, the second method is an analytical method.
[0279] This embodiment allows for a reduction in computational load.
[0280] In the control method of the 15th embodiment, in any one of the first to 14 embodiments, the predictive control is either predictive control or model predictive control.
[0281] This embodiment allows for a reduction in computational load.
[0282] In the sixteenth embodiment of the control method, in any one of the first to fifteenth embodiments, the plurality of control commands (C1) are a plurality of trajectory commands for moving the controlled object (2) along a target path (T1).
[0283] According to this embodiment, the computational load in the calculation of trajectory commands can be reduced.
[0284] The program of the 17th embodiment is a program that causes one or more processors to execute a control method of any one of the first to 16th embodiments.
[0285] This embodiment allows for a reduction in computational load.
[0286] The control system (10) of the 18th embodiment generates a plurality of control commands (C1) used to control the operation of a controlled object (2) at a plurality of consecutive time points at intervals of a control cycle (T). The control system (10) comprises a determination unit (14) and a generation unit (12). The determination unit (14) determines whether to use a first method or a second method for generating a control command (C1) for a target time point, which is the time point following the time point of interest among the plurality of time points. The first method is a method that generates a control command (C1) by performing predictive control based on the time point of interest for the controlled object (2). The second method is a method that generates a control command (C1) without using predictive control based on the time point of interest for the controlled object (2). The generation unit (12) generates a control command (C1) for the target time point using the method determined by the determination unit (14) from among the first method and the second method.
[0287] This embodiment allows for a reduction in computational load.
[0288] In the control system (10) of the 19th embodiment, in the 18th embodiment, the operating modes of the control system (10) include a first mode and a second mode. In the first mode, the control system (10) generates a plurality of control commands (C1) for a plurality of time points by predictive control. In the second mode, the control system (10) generates a plurality of control commands (C1) for a plurality of time points by a first method or a second method according to a decision by a decision unit (14). The control system (10) further includes a setting unit. The setting unit sets the operating mode of the control system (10) in response to an operation input to an operation unit.
[0289] This configuration improves user convenience.
[0290] The control system (10) of the 20th embodiment further comprises a setting unit in the 18th or 19th embodiment. The setting unit sets a method to be used when it is determined that a control command (C1) for a target time point is to be generated by a second method, from among a plurality of candidate methods, in accordance with the operation input to the operation unit.
[0291] This configuration improves user convenience.
[0292] The configurations relating to the second to sixteenth embodiments are not essential to the control method of the first embodiment and can be omitted as appropriate. The configurations relating to the nineteenth and twentyth embodiments are not essential to the control system (10) of the eighteenth embodiment and can be omitted as appropriate.
[0293] 10 Control system 12 Generation unit 14 Decision unit 16 Storage unit 2 Control target C0, C1 Control command C2, C200 Control prediction C20 Specific control prediction T Control period T1 Target path u1 Velocity u0 Set velocity a1 Acceleration
Claims
1. A control method applicable to a control system that generates control commands for the operation control of a controlled object at multiple consecutive time points in time at intervals of the control cycle, wherein the method for generating the control command for a target time point, which is the time point of interest among the multiple time points, is determined to be either a first method that generates the control command using predictive control based on the time point of interest for the controlled object, or a second method that generates the control command without using predictive control, and the control command for the target time point is generated using the method determined from the first method and the second method.
2. The control method according to claim 1, wherein it is determined whether to use the first method or the second method as a method for generating the control command for the target time point, based on a determination condition relating to the calculation result of the control command for any of the plurality of time points, and based on the determination result determined based on the determination condition, it is determined whether to use the first method or the second method as a method for generating the control command for the target time point.
3. The control method according to claim 2, wherein the determination condition includes the latest calculation result condition relating to the calculation result of the control command for the target time point.
4. The latest calculation result condition includes a prediction success or failure condition relating to whether or not the generation of the control command for the target time was successful when the control command for the target time was generated by the first method, and when making a determination based on the determination condition, it is determined that the control command for the target time will be generated using the second method if the generation of the control command for the target time fails using the first method.
5. The control method according to claim 3 or 4, wherein the control command is a trajectory command for moving the controlled object along a target path, the target path includes a corner, the second method generates two or more control predictions corresponding to two or more points in time after the target time when generating the control command for the target time, the latest calculation result condition includes a corner passage condition relating to whether or not the position of the controlled object, indicated by a specific control prediction among the two or more control predictions obtained when the control command for the target time was generated by the second method, has passed the corner, and when making a determination based on the determination condition, it is determined that the control command for the target time should be generated using the first method if the position of the controlled object, indicated by the specific control prediction, has passed the corner.
6. The control method according to any one of claims 2 to 5, wherein the determination condition includes a past calculation result condition relating to the calculation result of a control command for a past time point prior to the target time point among the plurality of time points.
7. The control method according to claim 6, wherein the control command is a trajectory command for moving the controlled object along a target path, the first method generates two or more control predictions corresponding to two or more points in time after the past point when generating the control command for the past point, the past calculation result condition includes a speed condition relating to the speed of the controlled object, indicated by a specific control prediction among the two or more control predictions obtained when the control command for the past point was generated by the first method, and when making a determination based on the determination condition, it is determined that the control command for the target point in time is generated using the second method when the speed reaches a set speed.
8. The control method according to claim 6 or 7, wherein the control command is a trajectory command for moving the controlled object along a target path, the first method generates two or more control predictions corresponding to two or more points in time after the past point when generating the control command for the past point, the past calculation result condition includes an acceleration condition relating to the acceleration of the controlled object, indicated by a specific control prediction among the two or more control predictions obtained when the control command for the past point was generated by the first method, and when making a determination based on the determination condition, it is determined to generate the control command for the target point in time using the second method if the operation of the controlled object has reached a steady state.
9. The control method according to any one of claims 6 to 8, wherein the control command is a trajectory command for moving the controlled object along a target path, the target path includes a corner, the second method generates two or more control predictions corresponding to two or more points in time after the past point when generating the control command for the past point, the past calculation result condition includes a corner passage condition relating to whether or not the position of the controlled object, indicated by a specific control prediction among the two or more control predictions obtained when the control command for the past point was generated by the second method, has passed the corner, and when making a determination based on the determination condition, it is determined that the control command for the target point in time is generated using the first method if the position of the controlled object, indicated by the specific control prediction, has passed the corner.
10. The control method according to any one of claims 2 to 9, wherein the determination condition includes a first determination condition and a second determination condition, the second method includes a plurality of methods, and when making a determination based on the determination condition, the method determines which of the plurality of methods of the first method and the second method to use, according to the determination result for the first determination condition and the determination result for the second determination condition.
11. The control method according to claim 1, wherein, when deciding between the first method and the second method, the method for generating the control command for the target time point is determined to be either the first method or the second method, according to a predetermined rule.
12. The control method according to any one of claims 1 to 11, wherein the first method generates a control command for one of the multiple time points, generates two or more control predictions corresponding to two or more time points after the one time point, and stores at least a portion of the two or more control predictions in a storage unit.
13. The control method according to claim 12, wherein the second method uses, among the two or more control predictions generated when the first method generates a control command for a past time point prior to the target time point among the plurality of time points and stored in the storage unit, the control prediction corresponding to the target time point is used as the control command for the target time point.
14. The control method according to any one of claims 1 to 13, wherein the second method is an analytical method.
15. The control method according to any one of claims 1 to 14, wherein the predictive control is predictive control or model predictive control.
16. The control method according to any one of claims 1 to 15, wherein the control command is a trajectory command for moving the controlled object along a target path.
17. A program for causing one or more processors to execute the control method described in any one of claims 1 to 16.
18. A control system that generates control commands for the operation control of a controlled object at multiple consecutive time points at intervals of a control cycle, comprising: a determination unit that determines which of the following methods for generating a control command for a target time point, which is the time point of interest among the multiple time points, is to generate the control command using predictive control based on the time point of interest for the controlled object; and a second method for generating the control command without using predictive control; and a generation unit that generates the control command for the target time point using the method determined by the determination unit from among the first and second methods.
19. The control system according to claim 18, wherein the operating modes of the control system include a first mode in which the control commands for each of the plurality of time points are generated by predictive control, and a second mode in which the control commands for each of the plurality of time points are generated by the first method or the second method in accordance with the determination of the determination unit, and further comprises a setting unit for setting the operating mode of the control system in accordance with the operation input to the operation unit.
20. The control system according to claim 18 or 19, further comprising a setting unit that sets a method to be used when it is determined that the control command for the target time point is to be generated by the second method, from among a plurality of candidate methods, in accordance with the operation input to the operation unit.
Citation Information
Patent Citations
Control device and control program
JP2020129291A
Mobile body control method, mobile body, and program
JP2022160941A