Control method, program, and control system

The control method and system address command generation failures in predictive control by storing commands for at least two cycles before output, ensuring stability and reducing abnormal operations.

WO2026070113A1PCT designated stage Publication Date: 2026-04-02PANASONIC INTELLECTUAL PROPERTY MANAGEMENT CO LTD
View PDF 6 Cites 0 Cited by

Patent Information

Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Filing Date
2025-08-20
Publication Date
2026-04-02

AI Technical Summary

Technical Problem

Existing control systems using predictive control are prone to failures in generating commands, which can lead to abnormal operations such as runaway or emergency stops, especially when the control cycle is long.

Method used

A control method and system that includes a generation process, storage process, and output process, where commands are generated at discrete times and stored for at least two control cycles before being output, allowing for recovery and reducing the likelihood of command failures.

Benefits of technology

The system minimizes the occurrence of abnormalities by ensuring that even if command generation fails, stored commands can be output, providing a grace period for recovery and maintaining control stability.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure JP2025029239_02042026_PF_FP_ABST
    Figure JP2025029239_02042026_PF_FP_ABST
Patent Text Reader

Abstract

A control method disclosed herein is applied to a control system that generates commands related to operation control of a control target. The control method includes a generation processing step, an accumulation processing step, and an output processing step. In the generation processing step, prediction control based on each time point is executed for the control target, and control target points serving as commands are generated. In the accumulation processing step, the generated commands are accumulated in a storage unit. In the output processing step, the commands are sequentially extracted from the storage unit and output each control cycle. The commands generated in the generation processing step are output in the output processing step at the time point after two cycles of the control cycle from the time point of the generation of the commands.
Need to check novelty before this filing date? Find Prior Art

Description

Control Method, Program, and Control System

[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 that generate commands for controlling the operation of a control target.

[0002] Patent Document 1 discloses a control device configured to include a controller that controls a control target at a high speed with a control cycle shorter than the control cycle of model predictive control (high-speed control cycle) in addition to the controller of model predictive control.

[0003] According to this control device, even when the control cycle of model predictive control is long, the control target is controlled at high speed for each high-speed control cycle. Therefore, for example, it is possible to quickly follow changes in the target value for the control amount or the influence of disturbances with rapid changes, and it is possible to suppress a decrease in control performance.

[0004] Japanese Patent No. 7283646, Japanese Unexamined Patent Application Publication No. 2004-114243

[0005] By the way, when a control device (control system) generates a command related to the operation control of a control target using predictive control such as model predictive control, for example, there is a possibility of failure in generating the command due to reasons such as an infeasible problem (optimization problem) being set. If the generation of the command fails, abnormal operations such as runaway or emergency stop of the control target may occur.

[0006] The present disclosure has been made in view of the above reasons, and an object thereof is to provide a control method, a program, and a control system in which abnormalities are unlikely to occur even if the generation of a command fails.

[0007] A control method according to one aspect of the present disclosure is a control method applied to a control system that generates commands relating to the operation control of a controlled object. The control method includes a generation process step, a storage process step, and an output process step. In the generation process step, the time at which control is executed on the controlled object is a discrete time of the control cycle, and predictive control is executed on the controlled object based on the time, generating a control target point that becomes the command. In the storage process step, the generated command is stored in a storage unit. In the output process step, the command is sequentially retrieved from the storage unit and output for each control cycle. The command generated in the generation process step is output in the output process step at a time two or more cycles of the control cycle from the time the command was generated.

[0008] A program according to one aspect of this disclosure is a program that causes one or more processors to execute the control method described above.

[0009] A control system according to one aspect of the present disclosure generates commands relating to the operation control of a controlled object. The control system comprises a generation unit, a storage unit, and an output unit. The generation unit performs predictive control on the controlled object based on each time point, with the time point being a discrete time of the control cycle, and generates a control target point that becomes the command. The storage unit stores the generated command in a storage unit. The output unit sequentially retrieves the command from the storage unit and outputs it for each control cycle. The command generated by the generation unit is output by the output unit at the time points two or more control cycles after the time the command was generated.

[0010] According to this disclosure, there is an advantage in that even if the generation of instructions fails, anomalies are less likely to occur.

[0011] 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 online mode in the control system. Figure 3 is a conceptual diagram for explaining the operating principle of the online mode in the control system. Figure 4 is a conceptual diagram for explaining the operating principle of the semi-online mode in the control system. Figure 5 is a conceptual diagram for explaining the operating principle of the semi-online mode in the control system. Figure 6 is a conceptual diagram for explaining the operating principle of the semi-online mode in the control system. Figure 7 is a conceptual diagram for explaining the case where command generation fails in the online mode in the control system. Figure 8 is a conceptual diagram for explaining the case where command generation fails in the semi-online mode in the control system. Figure 9 is a flowchart for explaining the operation in the semi-online mode in the control system. Figure 10 is a conceptual diagram for explaining the operating principle of the control system according to Modification 1. Figure 11 is a conceptual diagram for explaining the case where the upper limit of the number of stored items is set by a "time constraint" in the control system according to Modification 2. Figure 12 is a conceptual diagram for explaining the case where the upper limit of the number of stored items is set by a "distance constraint" in Modification 2. Figure 13 is a conceptual diagram illustrating the case where the upper limit of the number of stored items is set by "interval constraints" in the modified example 2 above. Figure 14 is a flowchart illustrating the case where the command is recalculated by "condition change" when command generation fails in the control system according to modified example 3 above. Figure 15 is a flowchart illustrating the case where the command is recalculated by "rollback" when command generation fails in the modified example 3 above. Figure 16 is a flowchart illustrating the case where the command is recalculated by "analytical method" when command generation fails in the modified example 3 above. Figure 17 is a conceptual diagram illustrating the control system according to modified example 4. Figure 18 is a conceptual diagram illustrating the setting screen in the control system according to modified example 6. Figure 19 is a block diagram of the control system and its surrounding configuration according to modified example 7. Figure 20 is a block diagram of the control system and its surrounding configuration according to modified example 8. Figure 21 is a block diagram of the control system and its surrounding configuration according to modified example 9.

[0012] (Summary) The following describes the control methods, programs, and control systems 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 modification 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.

[0013] One aspect of the control method is a control method applied to a control system 10 (see Figure 1) that generates commands (control commands) relating to the operation control of the controlled object 2. 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 having 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 that is to be worked on by, for example, a laser processing machine, a cutting machine, or a coating device.

[0014] The control method includes a generation process step, an accumulation process step, and an output process step. In the generation process step, predictive control is performed on the control target 2 based on each time point, and a control target point S1, which becomes a command, is generated. In the following explanation, it is assumed that the predictive control is Model Predictive Control (hereinafter sometimes abbreviated as MPC). In the generation process step, MPC is used to optimize the control on the control target while predicting future responses based on each time point (each time), assuming that the time at which control is performed on the control target is a discrete time of the control period. However, the term "predictive control" here is not limited to Model Predictive Control, and may 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.

[0015] In the storage processing step, the generated commands are stored (stocked) in the storage unit 15. In the output processing step, the commands are sequentially retrieved from the storage unit 15 and output for each control cycle. The commands generated in the generation processing step are output in the output processing step at a point two or more control cycles after the time the commands were generated.

[0016] According to the control method described above, the command output in the output processing step is a command that has been generated and stored at least two control cycles in advance. Therefore, even if the generation of a command fails in the generation processing step, the stored command is output in the output processing step, making it unlikely that a command will be immediately missing in the output processing step. Furthermore, even if the generation of a command fails in the generation processing step, there is a grace period of at least two control cycles, allowing for recovery by regenerating (recalculating) the command within that period. As a result, there is an advantage in that even if the generation of a command fails, it is less likely to cause an abnormality.

[0017] 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.

[0018] A control system 10 according to one embodiment (see Figure 1) generates commands related to the operation control of the controlled object 2. The control system 10 comprises a generation unit 12, a storage unit 13, and an output unit 14 (see Figure 1). The generation unit 12 performs predictive control on the controlled object 2 based on each point in time and generates a control target point S1 which becomes a command. The storage unit 13 stores the generated commands in a storage unit 15. The output unit 14 sequentially retrieves the commands from the storage unit 15 and outputs them for each control cycle. The commands generated by the generation unit 12 are output by the output unit 14 at the aforementioned point in time, two or more control cycles after the time the command was generated.

[0019] Even in the configuration of the control system 10 according to the above embodiment, there is an advantage in that abnormalities are less likely to occur even if the generation of commands fails.

[0020] In the following, we assume that the control system 10 is provided by the controller 100 (see Figure 1). In other words, as an example, we assume that all the functions of the control system 10 are implemented within the controller 100. The controller 100 is, for example, a motion controller.

[0021] The MPC then solves an optimization problem for the prediction interval K1 (see Figure 2: finite interval) based on the model of the controlled object 2 (in this case, a two-axis stage), and the control system 10 uses the result to generate commands for controlling the operation of the controlled object 2. The controller 100 then provides control inputs (manipulated variables) to the controlled object 2 based on the generated commands.

[0022] (Details) (1) Overall Configuration Below, the entire system, including the control system 10 and its peripheral configuration according to this embodiment, will be described in detail 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.

[0023] 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.

[0024] 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.

[0025] The control system 10 generates commands related to the operation control of the controlled object 2. In this embodiment, as an example, the control system 10 obtains target data, including the target path T1 (see Figure 1), from the upper-level PC 5 (upper-level personal computer), and generates trajectory commands related to the operation control of the controlled object 2 based on the target path T1. In other words, as an example here, the commands are commands related to the trajectory of the controlled object 2.

[0026] In the following, the "command" will be explained illustratively, focusing on the case where the stage 20 of the controlled object 2 moves along the two-dimensional U-shaped target path T1 schematically shown in Figure 1 in the direction of the arrow. That is, the target path T1 includes a first straight path along the Y axis, a second straight path along the X axis, and a third straight path along the Y axis, and includes two 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).

[0027] The controller 100 performs motion control (synchronous control of the X-axis 21 and Y-axis 22) of the controlled object 2 based on the trajectory commands generated by the control system 10. The controller 100 is connected to the controlled object 2 in a communicative manner. In detail, the controller 100 is individually connected in a communicative manner to the X-axis amplifier A1 and the Y-axis amplifier A2. The controller 100 is also connected in a communicative manner to the host PC 5.

[0028] The controller 100 may acquire a control variable (control output) 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). External sensors for measuring the position and speed of the stage 20 may also be provided on the controlled object 2. The measurement results from the external sensors can be output to the X-axis amplifier A1 and the Y-axis amplifier A2.

[0029] The controller 100 may acquire data such as position, velocity, and thrust for the first motor M1, the second motor M2, and the stage 20 as control variables from the controlled object 2. Note that the control variables may also include disturbances such as vibrations occurring in the controlled object 2.

[0030] In the following, it is assumed that the controller 100 acquires the control quantity from the controlled object 2 and performs feedback control on the controller 100 side, but this is not limited to this. Feedback control may also be performed by the X-axis amplifier A1 and Y-axis amplifier A2 of the controlled object 2, as shown in Modification 9 (described later).

[0031] The controller 100 (control system 10) includes a computer system having one or more processors and memory. At least some of the functions of the controller 100 (such as the control unit 11, generation unit 12, storage unit 13, output unit 14, and setting unit 18 of the control system 10, which will be described later) are realized by the computer system's processor executing a program recorded in the computer system's memory. 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.

[0032] 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.

[0033] The 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 and outputs the estimation result to the control system 10. As an 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.

[0034] (2) Configuration of the control system The control system 10 has an MPC function. As shown in Figure 1, the control system 10 includes a storage unit 15. The storage unit 15 includes an electrically rewritable non-volatile semiconductor memory such as flash memory. The storage unit 15 stores a prediction model (predictor) related to the controlled object 2. As the prediction model, for example, a transfer function model or a state-space model may be used. The storage unit 15 also stores (stores) target data including the target path T1 (reference trajectory) acquired from the upper-level PC 5.

[0035] The MPC optimizes the control profile for a certain period of time up to a future time (corresponding to the prediction interval K1 in Figure 2) based on target data including the target path T1 for the controlled object 2 received from the higher-level PC 5, using each point in time as a reference. The MPC may also consider the estimation results of the state estimation unit 4. In this embodiment, the target path T1 shown in Figure 1 may be a path that is part of a predetermined operating range of the controlled object 2.

[0036] The target path T1 is generated, for example, by the higher-level PC 5. The target path T1 is the trajectory on the X and Y axes related to the operation control of the plant. Specifically, the higher-level PC 5 generates the target path T1 based on CAD (Computer-Aided Design) data or CAM (Computer-Aided Manufacturing) data related to the operation trajectory of the stage 20 of the controlled object 2. Alternatively, the higher-level PC 5 may generate the target path T1 based on data related to a reference trajectory directly set by the user's manual input. In order to improve productivity, it is necessary to set a tolerance (margin) for the target path T1, taking into consideration the reduction of the cycle time, and a tolerance is set for the target path T1.

[0037] As shown in Figure 1, the control system 10 includes a control unit 11, a generation unit 12, a storage unit 13, and an output unit 14. The control system 10 also includes an operation unit 16, a display unit 17, and a setting unit 18, as shown in Figure 1.

[0038] The control unit 11 controls the overall operation of the control system 10. The generation unit 12 performs predictive control (in this case, MPC) based on each point in time for the controlled object 2 and generates control target points S1 (see Figures 1, 2, 4, and 5) which become commands (execution of generation process). That is, the generation unit 12 discretely generates control target points S1 which become control commands based on each point in time. The control target points S1 are generated based on the predicted values ​​of the optimized control profile at the corresponding time. Specifically, the control target points S1 include elements such as time, position (coordinate position), and velocity (predicted values). The storage unit 13 stores the generated commands in the storage unit 15 (execution of storage process). However, in the online mode described later, the storage process is not performed. The output unit 14 outputs commands for each control cycle (execution of output process).

[0039] The control system 10 generates control data (trajectory command data) related to the operation control of the controlled object 2 based on a command (control target point S1) and outputs it to the operation control unit 3. The trajectory command data is data based on the control target point S1. By outputting the generated trajectory command data to the operation control unit 3, the operation control unit 3 controls the controlled object 2 so that the controlled object 2 passes through the control target point S1.

[0040] Here, for example, the control unit 11 has three modes as operation modes: an online mode, a semi-online mode, and an offline mode.

[0041] Regarding which of the three operation modes to execute, the setting unit 18 makes a setting according to an operation input to the operation unit 16 from the user, and the control unit 11 selects an operation mode based on the setting by the setting unit 18. The three operation modes have different execution timings for generating commands in the generation unit 12. In other words, the setting unit 18 makes a setting regarding the execution timing for generating commands in the generation unit 12 according to an operation input to the operation unit 16. The following describes these three operation modes.

[0042] [Operation of the online mode] Hereinafter, the operation of the online mode will be described while referring to FIGS. 2 and 3.

[0043] In any operation mode, the generation unit 12 executes an optimization calculation for a command (control target point S1) corresponding to the prediction interval K1 (see FIG. 2) using model predictive control based on the target data including the target path T1 (reference trajectory) acquired from the host PC 5. However, in the online mode, the output unit 14 sequentially outputs the command (control target point S1) generated by the generation unit 12 without accumulating (stocking) it in the accumulation unit 13.

[0044] FIG. 2 is a conceptual diagram for explaining the operation principle of the online mode. FIG. 2 shows the target path T1 and commands (control target points S1) at each time (each time point) of time t = k, k + 1, k + 2.

[0045] FIG. 3 is a conceptual diagram for explaining the operating principle of the online mode. FIG. 3 shows the processing timings (command generation timing and command transmission timing) of the control system 10 (controller 100) at each of the times t = k, k + 1, k + 2, and the control execution periods (control cycles) on the sides of the X-axis amplifier A1 and the Y-axis amplifier A2. That is, in the example of FIG. 3, each of the periods from time t = k to k + 1, from time t = k + 1 to k + 2, from time t = k + 2 to k + 3,... corresponds to the control cycle. In FIG. 3, the X-axis amplifier A1 and the Y-axis amplifier A2 are collectively referred to as the "servo amplifier".

[0046] MPC is one of the control methods that optimizes the response up to the future of a finite interval based on each time (in FIGS. 2 and 3, each of the times t = k, k + 1, k + 2,...), and Receding Horizon control (RH control), also called backward horizon control, is performed. Then, the first value (the first predicted value) of the optimized control profile is used for the actual control input profile. The control input is, for example, the command values of the position (coordinate position) and speed of the control object 2.

[0047] The generation unit 12 repeatedly executes an optimization calculation while retreating the horizon by one cycle from the starting point to the target point of the target path T1, for example. That is, the generation unit 12 repeatedly executes an optimization calculation for the command (control target point S1) corresponding to the prediction interval K1 while retreating the horizon by one cycle using model predictive control.

[0048] The actual result point V1 at time t = k in FIG. 2 indicates the state of the control object 2 at time t = k. Similarly, the actual result point V1 at time t = k + 1 in FIG. 2 indicates the state of the control object 2 at time t = k + 1, and the actual result point V1 at time t = k + 2 in FIG. 2 indicates the state of the control object 2 at time t = k + 2. The actual result point V1 is the actual result value of the command that has been output from the output unit 14 and for which the control execution has been completed on the control object 2 side.

[0049] The command C0 (solution) at time t=k in Figure 2 is the command output from the control system 10 (output unit 14) immediately before time t=k, and between times t=k and k+1, the servo amplifier receives control input based on that command C0 and performs control (see Figure 3). Similarly, the command C0 at time t=k+1 in Figure 2 is the command output from the control system 10 immediately before time t=k+1, and the command C0 at time t=k+2 in Figure 2 is the command output from the control system 10 immediately before time t=k+2.

[0050] The command C1 (solution) and the multiple (only three are shown in Figure 2 for convenience) predictions C2 (solutions) at each time point in Figure 2 are prediction results obtained by the MPC performing an optimization calculation for the command (control target point S1) corresponding to the prediction interval K1. In the example in Figure 2, the prediction interval K1 is defined as the interval from command C0 to the last prediction C2. The prediction interval K1 is a prediction horizon composed of multiple periodic horizons (steps), and the generation unit 12 regresses the horizon by one period each time t = k, k+1, k+2, ... and performs an optimization calculation for the command (control target point S1) corresponding to the next prediction interval K1 (prediction horizon). Here, one control period (the period in which the controlled object 2 is operated) corresponds to one periodic horizon (one step). Note that the intervals between the discrete points (V1, C0, C1, C2) at each time point t = k, k+1, k+2, ... in Figure 2 correspond to one control cycle.

[0051] Command C1, which contains the first of the four prediction results (solutions to the optimization problem) at time t=k, becomes the command generated at time t=k and is output from the output unit 14 immediately before time t=k+1 (see Figure 3), becoming command C0 at time t=k+1. In other words, this command C1 contains the prediction value corresponding to time t=k+1, with time t=k as the reference point. The remaining three prediction results, C2, contain the prediction values ​​corresponding to times t=k+2, k+3, and k+4, respectively, with time t=k as the reference point.

[0052] Furthermore, the command C1 at time t = k + 1 becomes the command generated at time t = k + 1 and is output from the output unit 14 immediately before time t = k + 2 (see Figure 3). In other words, this command C1 includes the predicted value corresponding to time t = k + 2, with time t = k + 1 as the reference point. The remaining three prediction results, C2, include the predicted values ​​corresponding to times t = k + 3, k + 4, and k + 5, respectively, with time t = k + 1 as the reference point.

[0053] Similarly, the command C1 at time t = k + 2 becomes the command generated at time t = k + 2 and is output from the output unit 14 immediately before time t = k + 3 (see Figure 3). In other words, this command C1 includes a predicted value corresponding to time t = k + 3, with reference to time t = k + 2.

[0054] Furthermore, the control unit 11 discards the three predictions C2 at each time point shown in Figure 2 in online mode without outputting them from the output unit 14.

[0055] In short, in online mode, the command generation period (hereinafter also referred to as the "command generation period") is synchronized with the command output (transmission) period, that is, the control period in which the servo amplifier performs control. Also in online mode, the command generated by the generation unit 12 is output from the output unit 14 at a point approximately one control cycle in the future from the command generation time (for example, just before time t = k + 1). Specifically, it is output from the output unit 14 within the period from the command generation time until (one control cycle) has elapsed.

[0056] [Semi-online mode operation] The operation of semi-online mode will be explained below with reference to Figures 4 to 6.

[0057] The semi-online mode is a mode in which the command (control target point S1) generated by the generation unit 12 is stored (stocked) in the storage unit 15 by the storage unit 13, and the output unit 14 sequentially retrieves the command from the storage unit 15 and outputs it at each control cycle. In particular, in the semi-online mode, the command generated by the generation unit 12 is output by the output unit 14 at the aforementioned time points two cycles or more after the command generation time (for example, the start time of execution of the generation process: each of the times t = t1, t2, t3, t4, t5, ... in Figure 6).

[0058] Figure 4 is a conceptual diagram illustrating the operating principle of the semi-online mode. Figure 4 shows the target path T1 and commands (control target point S1), etc., at each time point t=k, k+1, k+2, etc. In particular, Figure 4 shows, at each time point, a command C1 that is stocked and will be transmitted next time, and multiple predictions C2 (hereinafter sometimes referred to as command C2) that are stocked and will be transmitted sequentially in subsequent times. In other words, the multiple commands C2 at each time point in Figure 4, unlike the "prediction C2" that is discarded at each time point in Figure 2, represent the commands that are stocked at that time. Note that the intervals between the discrete points (V1, C0, C1, C2) at each time point t=k, k+1, k+2, ... in Figure 4 correspond to one control cycle.

[0059] Figure 5 is a conceptual diagram illustrating the operating principle of the semi-online mode. Figure 5 shows the target path T1 and commands (control target points S1), etc., at each time point (each point in time) that is a time series of time "a" minutes in the future from time t, namely time t' = k+a, k+a+1, k+a+2, k+a+3, ... In other words, Figure 5 shows the predicted results of the generation process in semi-online mode. In semi-online mode, the generation process is executed in parallel with the output process that sequentially outputs the stocked commands C1, but at a timing independent of the control cycle. The generation unit 12 generates commands based on the time series of time t' = k+a, k+a+1, k+a+2, k+a+3, ..., which is a time series in the future from the time t, at each time point (t = t1, t2, t3, t4, ...) that executes the MPC and starts command generation (see Figure 6). Note that the intervals between the discrete points (V1X, C1X, C2X) at each time point t' = k+a, k+a+1, k+a+2, k+a+3, ... in Figure 5 correspond to one control cycle.

[0060] Figure 6 is a conceptual diagram illustrating the operating principle of the semi-online mode. Figure 6 shows the processing timing (command generation timing and command transmission timing) of the control system 10 (controller 100) at each time t=k, k+1, k+2, and k+3, and the control execution period (control cycle) on the X-axis amplifier A1 and Y-axis amplifier A2 sides. In the example of Figure 6, as with Figure 3, the period from time t=k to k+1, the period from time t=k+1 to k+2, the period from time t=k+2 to k+3, ... each corresponds to the control cycle. In Figure 6, as with Figure 3, the X-axis amplifier A1 and Y-axis amplifier A2 are collectively referred to as "servo amplifier".

[0061] As shown in Figure 6, in semi-online mode, the command generation cycle is independent of the control cycle. In semi-online mode, the start timing of command generation is offset from the start timing of servo amplifier control execution. Also, in semi-online mode, there is no wait period during which no commands are generated; as soon as command generation based on a certain time is completed, command generation based on the next time point begins immediately. In particular, in semi-online mode, the commands transmitted immediately before each time point t = k, k+1, k+2, ... are not the most recently generated commands, but rather commands that were stored in the memory unit 15 (predicted in the past).

[0062] The generation unit 12 uses model predictive control to perform optimization calculations for commands (control target points S1) corresponding to the predicted interval K1 (predicted horizon) based on target data including the target path T1 acquired from the upper PC 5. The predicted interval K1 is a predicted horizon composed of multiple periodic horizons (steps), and the generation unit 12 sequentially moves back one period of the horizon for each reference future time t' = k+a, k+a+1, k+a+2, k+a+3, ... and performs optimization calculations for commands (control target points S1) corresponding to the next predicted interval K1 (predicted horizon). One control period corresponds to one periodic horizon (one step). In semi-online mode, the MPC optimizes the response up to a finite future interval based on each of the future times t' = k+a, k+a+1, k+a+2, k+a+3, ... in parallel with the output processing that sequentially outputs the stocked commands C1. The storage unit 13 then stores the command C1, which includes the first value (first predicted value) of the optimized control profile, in the memory unit 15. Here, as an example, it is assumed that the command C1 is stored in the memory unit 15 using a FIFO (First-In First-Out) data structure. The output unit 14 retrieves the stored command C1 in chronological order.

[0063] Next, Figure 4 will be explained in more detail. The actual point V1 at time t=k in Figure 4 indicates the state of the controlled object 2 at time t=k. Similarly, the actual point V1 at time t=k+1 in Figure 4 indicates the state of the controlled object 2 at time t=k+1, and the actual point V1 at time t=k+2 in Figure 4 indicates the state of the controlled object 2 at time t=k+2. The actual point V1 is the actual value of the command output from the output unit 14 and for which control execution has been completed on the controlled object 2 side.

[0064] The command C0 (solution) at time t=k in Figure 4 is the command output from the control system 10 (output unit 14) immediately before time t=k, and between times t=k and k+1, the servo amplifier receives control input based on that command C0 and performs control (see Figure 6). Similarly, the command C0 at time t=k+1 in Figure 4 is the command output from the control system 10 immediately before time t=k+1, and the command C0 at time t=k+2 in Figure 4 is the command output from the control system 10 immediately before time t=k+2.

[0065] The command C1 (solution) and the multiple commands C2 (solutions) at each time point in Figure 4 are commands that were generated at least two control cycles prior to time t=k and stored in the memory unit 15. The command C1 at time t=k in Figure 4 was generated at least two control cycles prior to time t=k and stored in the memory unit 15, and is output from the output unit 14 immediately before time t=k+1 (see Figure 6), becoming the command C0 at time t=k+1. The multiple commands C2 are commands that will be output sequentially in subsequent cycles.

[0066] Furthermore, the command C1 at time t = k + 1 in Figure 4 is a command that was generated at least two control cycles prior to time t = k + 1 and stored in the memory unit 15. It is output from the output unit 14 immediately before time t = k + 2 (see Figure 6), becoming the command C0 at time t = k + 2. Similarly, the command C1 at time t = k + 2 in Figure 4 is a command that was generated at least two control cycles prior to time t = k + 2 and stored in the memory unit 15. It is output from the output unit 14 immediately before time t = k + 3 (see Figure 6), becoming the command C0 at time t = k + 3.

[0067] Next, Figure 5 will be explained in more detail. Each prediction point V1X in Figure 5 indicates the state (predicted value) of the controlled object 2 at the corresponding time in the future t' = k+a, k+a+1, k+a+2, k+a+3, ... The command C1X included in each prediction result in Figure 5 is a command (control target point S1) that is stored in the memory unit 15 as a command at the corresponding time in the future t' = k+a, k+a+1, k+a+2, k+a+3, ... The multiple (three) predictions C2X included in each prediction result in Figure 5 are discarded without being stored in the memory unit 15.

[0068] More specifically, in the target path T1 shown first from the left in Figure 5, the prediction result of the MPC is shown based on a future time t' = k + a at the first time t1 in the time series of time t (see Figure 6). The command C1X generated in the generation process, which starts at the first time t1, is stored in the memory unit 15 and is used when time t = k + a actually occurs in the time series of time t (it is retrieved from the memory unit 15 and output). Time t = k + a is two control cycles or more after the command generation time (first time t1).

[0069] In the target path T1 shown second from the left in Figure 5, the prediction result of the MPC is shown based on a future time t' = k + a + 1 at the second time t2 (see Figure 6), which follows the first time t1 in the time series for time t. The command C1X generated in the generation process, which starts execution at the second time t2, is stored in the memory unit 15 and used when the time t = k + a + 1 actually occurs in the time series for time t. The time t = k + a + 1 is two control cycles or more after the command generation time (second time t2).

[0070] In the target path T1 shown third from the left in Figure 5, the prediction result of the MPC is shown based on a future time t' = k + a + 2 at the third time t3 (see Figure 6), which follows the second time t2 in the time series of time t. The command C1X generated in the generation process, which starts execution at the third time t3, is stored in the memory unit 15 and used when the time t = k + a + 2 actually occurs in the time series of time t. The time t = k + a + 2 is two control cycles or more after the command generation time (third time t3).

[0071] In the target path T1 shown fourth from the left in Figure 5, the prediction result of the MPC is shown based on a future time t' = k + a + 3 at the fourth time t4 (see Figure 6), which follows the third time t3 in the time series of time t. The command C1X generated in the generation process, which starts execution at the fourth time t4, is stored in the memory unit 15 and used when the time t = k + a + 3 actually occurs in the time series of time t. The time t = k + a + 3 is the aforementioned time point two cycles or more after the command generation time (fourth time t4) in the control cycle.

[0072] Thus, in semi-online mode, the start timing of command generation is independent of the start timing of servo amplifier control execution (see Figure 6). In other words, in the generation process (step) of semi-online mode, predictive control is executed at a timing independent of the control cycle.

[0073] However, in semi-online mode, predictive control is not limited to being performed at a timing independent of the control cycle. In semi-online mode, the start timing of command generation may coincide with the start timing of control execution of the servo amplifier. Specifically, in Figure 6, the first time t1 may coincide with time t=k, the second time t2 may coincide with time t=k+1, and the third time t3 may coincide with time t=k+2. In short, if the command is output by the output unit 14 at the aforementioned time points two or more cycles into the control cycle from the time of command generation, predictive control may be performed at the same cycle as the control cycle in the generation process (step) of semi-online mode.

[0074] [Offline Mode Operation] The operation of offline mode is described below.

[0075] In offline mode, similar to semi-online mode, the command (control target point S1) generated by the generation unit 12 is stored (stocked) in the storage unit 15 by the storage unit 13, and the output unit 14 sequentially retrieves the command from the storage unit 15 and outputs it at each control cycle.

[0076] However, in offline mode, the generation process by the generation unit 12 is not executed in parallel with the output process that sequentially outputs the stored commands C1. Offline mode is a mode in which the generation process by the generation unit 12 is performed in advance while the output process is still "offline" and the storage process by the storage unit 13 is also completed. In other words, even in offline mode, the commands generated by the generation unit 12 are output by the output unit 14 at a point two or more cycles into the control cycle from the time the commands are generated.

[0077] In offline mode, the start timing of command generation is independent of the start timing of servo amplifier control execution. In other words, in the offline mode generation process (step), predictive control is executed at a timing independent of the control cycle.

[0078] Note that the generation, storage, and output processes are essentially the same as those in semi-online mode, so their explanation here will be omitted.

[0079] [Challenges of Online Mode and Advantages of Semi-Online Mode] However, in online mode, there is a possibility that the generation of commands using predictive control may fail due to reasons such as deficiencies in the constraints of the MPC, or the setting of an unexecutable problem (optimization problem). Failure to generate commands can cause abnormal operation such as runaway or emergency stop of the controlled object 2. Figure 7 is a conceptual diagram to explain the case when command generation fails in online mode.

[0080] As shown in Figure 7, for example, if the generation unit 12 fails to generate a command at time t = k + 1 (in the illustrated example, it fails to generate three predictions C3), the command C1 that was originally scheduled to be output by the output unit 14 immediately before the next time t = k + 2 will no longer exist. As a result, at time t = k + 2, the controlled object 2 will not be able to obtain a control input based on the command C1 (control target point S1) (no control command), which may cause abnormal operation such as runaway behavior or emergency stop of the controlled object 2.

[0081] In contrast, in semi-online mode (or similarly in offline mode), even if the generation unit 12 fails to generate a command using predictive control (MPC), the output unit 14 can sequentially retrieve and output commands from the storage unit 15 for each control cycle. In other words, even if the generation unit 12 fails to generate a command, the output unit 14 outputs a stored command, making it less likely to immediately cause abnormal operation, and the generation unit 12 has a grace period to regenerate (recalculate) the command.

[0082] Figure 8 shows the operation flow of the generation process of the generation unit 12 when command generation in semi-online mode (or offline mode) fails. Note that detailed explanations of the symbols in Figure 8 that are common with those in Figure 5 are omitted.

[0083] In the target path T1 shown second from the left in Figure 8, at the second time t2 in the time series of time t (see Figure 6), the generation of commands based on the future time t' = k + a + 1 has failed. That is, the generation of four commands (labeled "C3X" for convenience in Figure 8) based on time t' = k + a + 1 has failed. However, as mentioned above, in semi-online mode (or offline mode), there is a grace period for command regeneration (recalculation). Therefore, the generation unit 12 performs command recalculation. The generation unit 12 performs recalculation by changing, for example, the constraints of the MPC (such as the allowable error for the target path T1 and the weights of the cost function). Note that there are several variations of this recalculation method, which will be explained in detail in the third modification described later. In the target path T1 shown third from the left in Figure 8, the command recalculation generates command C1X based on the future time t' = k + a + 1, and three predictions C2X (command generation successful). This command C1X is stored in the memory unit 15 and is actually used when the time t = k + a + 1 occurs in the time series of time t.

[0084] [Configuration of Setting Unit, Operation Unit, and Display Unit] As described above, the control system 10 includes a setting unit 18 (see Figure 1). The setting unit 18 performs various settings based on operation input from an external source. The control system 10 also includes an operation unit 16 as a user interface (see Figure 1). The operation unit 16 includes one or more of the following: a mouse, keyboard, and pointing device. The control system 10 also includes a display unit 17 (display device) as a user interface (see Figure 1). The display unit 17 displays information related to the settings of the setting unit 18 on its screen. The user performs operation input by operating the operation unit 16 while viewing the screen of the display unit 17. As will be described in detail later, the control system 10 can, for example, display the setting screen G1 shown in Figure 18 on the display unit 17.

[0085] The operation unit 16 receives operations for selecting an operating mode and operations for setting commands recalculation, etc., via the first area R1 of the setting screen G1 shown in Figure 18. The setting unit 18 stores various setting information in the storage unit 15 based on the operation input from the operation unit 16.

[0086] In Figure 1, for convenience, the operation unit 16 and the display unit 17 are shown within the controller 100, but they could be separate devices attached to the controller 100. If the display unit 17 is a touch panel display, the display unit can also perform the functions of the operation unit 16.

[0087] (3) Controller and Host PC The host PC 5 in this embodiment is connected to the controller 100 in a communicative manner. The host PC 5 generates a signal containing target data related to a predetermined work process and transmits it to the controller 100 for control. The target data may include the target path T1 described above.

[0088] The controller 100 of this embodiment controls, for example, data based on a control variable output from the controlled object 2 to match the target value of the trajectory command data output from the control system 10. The target value of the trajectory command data includes data specifying the position and velocity of the controlled object 2 operating within a predetermined operating range. The controller 100 defines state variables as state variables using, for example, a state-space model of the controlled object 2, based on the estimation results of position, velocity, etc., from the state estimation unit 4. The controller 100 then calculates an operation variable (required change) that optimizes (for example, minimizes) the deviation (difference from the target value) of position and velocity at each time point, as a control input (for example, a command value for position or velocity). The controller 100 may also include a disturbance observer that estimates disturbances such as vibrations that may be included in the control variable from the controlled object 2, and may acquire estimation results from the disturbance observer.

[0089] Furthermore, the manipulated variable (control input) is not limited to the required change in the velocity of the controlled object 2. Depending on the type of controlled object 2, the manipulated variable (control input) may be the required change in at least one of the following: position, (if it is a multi-joint robot) joint angle, posture, acceleration (angular acceleration), thrust, and torque of the controlled object 2.

[0090] The operation control unit 3 of the controller 100 controls the operation of the controlled object 2 based on the trajectory command data from the control system 10. Specifically, the operation control unit 3 individually determines the respective control amounts for the X-axis 21 and Y-axis 22 for each control cycle based on the trajectory command data from the control system 10, and inputs these to the X-axis amplifier A1 and Y-axis amplifier A2. The control amounts input to the X-axis amplifier A1 and 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.

[0091] 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). That is, 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 speed command value, which is an input variable for each control cycle. 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.

[0092] (4) Operation of the Control System The following describes the sequence of operations of the control system 10 (hereinafter referred to as the command execution process) with reference to Figure 9. The flowchart shown in Figure 9 is merely one example of the operation flow of the control system 10, and the order of operations may be changed as appropriate, or operations may be added or omitted as appropriate. In the following description of operations, as an example, we will describe the case in which the control system 10 operates in semi-online mode in response to a specification from the user.

[0093] The control system 10 acquires target data from the upper-level PC 5, including the target path T1, etc., for the starting point to the destination point within a predetermined operating range of the controlled object 2 (start of command execution processing).

[0094] The control system 10 sequentially retrieves commands stored in the memory unit 15 for each control cycle from the starting point to the destination point (queue out: step ST1), and transmits control inputs based on the retrieved commands to the servo amplifiers (X-axis amplifier A1 and Y-axis amplifier A2) (step ST2). In the example in Figure 9, steps ST1 and ST2 correspond to output processing.

[0095] The control system 10 then determines whether the controlled object 2 has reached the target point (objective point) (step ST3). That is, if the control system 10 has not yet completed retrieving the command corresponding to the objective point and transmitting the control input (step ST3: No), it returns to step ST1. If the control system 10 has completed retrieving the command corresponding to the objective point and transmitting the control input (step ST3: Yes), it terminates the command execution process.

[0096] Meanwhile, the control system 10 performs generation and storage processing in parallel with the retrieval of commands and transmission of control inputs (output processing). The control system 10 performs generation and storage processing at timings independent of the control cycle, for example. The control system 10 performs predictive control (in this case, MPC) to generate commands based on future times t' = k+a, k+a+1, k+a+2, ... (step ST4), and sequentially saves the generated commands (stocks them in the memory unit 15) (queue-in: step ST5). In order to ensure that there are no stocked commands when step ST1 is executed for the first time immediately after the start of the command execution process, the command execution process may start the execution of steps ST4 and ST5 prior to the start of the first execution of step ST1.

[0097] In offline mode, the generation process (step ST4) and storage process (step ST5) are not executed in parallel with the command retrieval and control input transmission (steps ST1 to ST3), but are executed in advance.

[0098] (5) Advantages As described above, according to the control system 10 of this embodiment, the commands output by the output processing of the output unit 14 are commands that have been generated and stored at least two control cycles in advance. Therefore, even if the generation processing of the generation unit 12 fails to generate a command, the output processing will output the stored command, so it is unlikely that a situation will occur where the command to be output by the output processing is immediately missing (see Figure 7). In addition, even if the generation processing fails to generate a command, there is a grace period of at least two control cycles, so it is possible to recover by regenerating (recalculating) the command within that period (see Figure 8). As a result, there is an advantage that even if the generation of a command fails, it is less likely to cause an abnormality.

[0099] (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.

[0100] (6.1) Modification 1 The control system 10 relating to Modification 1 will be described below with reference to Figure 10.

[0101] In the control system 10 according to Modified Example 1, the storage unit 13 stores two or more control target points S1 from among the multiple control target points S1 generated in a single execution of predictive control as multiple commands in the storage unit 15. In other words, in the storage processing step of the control method according to Modified Example 1, two or more control target points S1 from among the multiple control target points S1 generated in a single execution of predictive control are stored in the storage unit 15 as multiple commands. It is preferable that the configuration of Modified Example 1 is applied when the operating mode is semi-online mode or offline mode.

[0102] In the example shown in Figure 10, in semi-online mode (or offline mode), the generation unit 12 generates five commands as prediction results based on a future time t' = k + a. The storage unit 13 stores (stocks) the first two commands C1X (control target point S1) of these five commands in the memory unit 15. These two stocked commands C1X are used in order when the time t = k + a and the time t = k + a + 1 occur in the actual time series of time t.

[0103] The generation unit 12 then skips the generation process based on the future time t' = k + a + 1 and performs the generation process based on the future time t' = k + a + 2. The storage unit 13 stores, for example, the first two commands C1X (control target point S1) out of the five commands obtained in the generation process based on the future time t' = k + a + 2 in the storage unit 15. These two stored commands C1X are then used in order when the time t = k + a + 2 and the time t = k + a + 3 occur in the actual time series of time t.

[0104] According to the configuration of the first modified example, the number of times predictive control is performed to generate commands is reduced, thereby lowering the computational load required for command generation.

[0105] (6.2) Modification 2 and subsequent modifications will describe the control system 10 relating to Modification 2 with reference to Figures 11 to 13.

[0106] In the control system 10 according to the second modified example, an upper limit is set on the number of commands stored (stocked) in the memory unit 15. It is preferable that the configuration of the second modified example is applied when the operating mode is semi-online mode or offline mode.

[0107] Here, we assume that the upper limit (maximum number of stocked commands) is restricted by one of the following: a time constraint, a distance constraint, or an interval constraint.

[0108] Figure 11 is a conceptual diagram illustrating the case where the upper limit of the number of stocks is set by a time constraint in semi-online mode (or offline mode). In the example in Figure 11, multiple commands (C1, C2) corresponding to the time "a" minutes from time t=k to time t=k+a are set as the upper limit of the number of stocks to be generated and stored. The output unit 14 sequentially extracts and outputs command C1 for each control cycle. Regarding the time constraint, it can also be said that the upper limit of the number of stocks is set by the number of cycles in the control cycle. For example, by specifying the number of cycles in the second area R2 of the setting screen G1 shown in Figure 18, the user can set the upper limit of the number of stocks due to a time constraint.

[0109] Figure 12 is a conceptual diagram illustrating the case where an upper limit on the number of stocks is set by distance constraints in semi-online mode (or offline mode). In the example in Figure 12, multiple commands (C1, C2) corresponding to the distance "L" from the current travel distance s(k) to the travel distance s(k) + L on the target path T1 are set as the upper limit on the number of stocks to be generated and stored. The output unit 14 sequentially extracts and outputs the command C1 for each control cycle. For example, by specifying the distance "L" in the second area R2 of the setting screen G1 shown in Figure 18, the user can set an upper limit on the number of stocks by distance constraints.

[0110] Figure 13 is a conceptual diagram illustrating the case where an upper limit on the number of stocks is set by interval constraints in semi-online mode (or offline mode). In the example in Figure 13, multiple commands (C1, C2) corresponding to the interval two cycles ahead from the current point A to point C on the target path T1 are set as the upper limit on the number of stocks to be generated and stored. The output unit 14 sequentially extracts and outputs command C1 for each control cycle. For example, by specifying the number of intervals in the second area R2 of the setting screen G1 shown in Figure 18, the user can set an upper limit on the number of stocks by interval constraints.

[0111] If the current number of stocks reaches the set maximum number of stocks, the generation unit 12 may temporarily stop the generation process until the current number of stocks falls below the maximum number of stocks by consuming the commands that the output unit 14 has stocked.

[0112] When predictive control is used to generate commands based on a time in the distant future, the surrounding environment of the controlled object 2 may change, potentially reducing the accuracy of the prediction. According to the configuration of the second modified example, an upper limit is set on the number of commands stored (stock), which reduces the possibility of a decrease in prediction accuracy.

[0113] (6.3) Modification 3 and subsequent modifications will describe the control system 10 relating to Modification 3 with reference to Figures 14 to 16.

[0114] In the above embodiment, as an example, the generation unit 12, if it fails to generate a command, for example, changes the constraints of the MPC (tolerance error and weights of the cost function) and performs a recalculation. However, if command generation fails, it is not limited to changing the constraints of the MPC and performing a recalculation. In the control system 10 according to Modification 3, if the generation unit 12 fails to generate a command, it changes the conditions or methods applied when generating the command and generates (recalculates) the command again. In other words, in the generation processing step of the control method according to Modification 3, if command generation fails, it changes the conditions or methods applied when generating the command and generates the command again. It is preferable that the configuration of Modification 3 is applied when the operating mode is semi-online mode or offline mode.

[0115] Here, it is assumed that the generation unit 12 will perform a recalculation by applying one of the following methods: condition change, rollback, or analytical method, in the event of a command generation failure.

[0116] Figure 14 is a flowchart illustrating the case in semi-online mode (or offline mode) where, in the event of a command generation failure, the generation unit 12 performs a "condition change" in predictive control (e.g., MPC) to recalculate the command. This "condition change" may be, as in the above embodiment, a change in the constraints of the MPC (such as the allowable error for the target path T1 or the weights of the cost function).

[0117] As shown in Figure 14, the control system 10 performs predictive control (MPC) to generate commands based on future times t' = k+a, k+a+1, k+a+2, ... (step ST11). If the command generation is successful (step ST12: Yes), the control system 10 saves the generated command (stocks it in the memory unit 15) (step ST13). On the other hand, if the command generation fails (step ST12: No), the control system 10 changes the constraints of the predictive control (MPC) (step ST14) and returns to step ST11 to try generating the failed command again.

[0118] Figure 15 is a flowchart illustrating the case in semi-online mode (or offline mode) where the generation unit 12 performs a "rollback" and recalculates the command when command generation fails. This "rollback" involves discarding some or all of the commands stored in the memory unit 15 and then changing the constraints of the MPC (such as the allowable error for the target path T1 and the weights of the cost function) as described above.

[0119] As shown in Figure 15, the control system 10 performs predictive control (MPC) to generate commands based on future times t' = k+a, k+a+1, k+a+2, ... (step ST21). If the command generation is successful (step ST22: Yes), the control system 10 saves the generated command (step ST23). On the other hand, if the command generation fails (step ST22: No), the control system 10 discards some or all of the commands stored in the memory unit 15 (step ST24) and changes the constraints of the predictive control (MPC) (step ST25). Then, the control system 10 returns to step ST21 and performs the generation again, going back to the commands that were discarded as well as the commands that failed.

[0120] Figure 16 is a flowchart illustrating the case in semi-online mode (or offline mode) where the generation unit 12 recalculates the command by performing an "analytical method" when command generation fails. This "analytical method" is a method different from predictive control (MPC) and is a method that can generate commands without failure. The "analytical method" is assumed to be a method that generates commands (control target point S1) by geometric calculations, for example. Geometric calculations may be calculations based on the state of the controlled object 2 on the target path T1 (position, velocity, and acceleration, etc.) and the shape of the target path T1 (corner position and corner angle, etc.).

[0121] As shown in Figure 16, the control system 10 performs predictive control (MPC) to generate commands based on future times t' = k+a, k+a+1, k+a+2, ... (step ST31). If the command generation is successful (step ST32: Yes), the control system 10 saves the generated command (step ST33). On the other hand, if the command generation fails (step ST32: No), the control system 10, instead of using predictive control (MPC), uses an "analytical method" to attempt to generate the failed command again (step ST34) and saves the generated command (step ST33).

[0122] The configuration of the third modified example increases the likelihood of successful command generation. For example, in the third area R3 of the setting screen G1 shown in Figure 18, the user can set the recalculation method in the event of command generation failure by specifying one of the following: condition change, rollback, or analytical method.

[0123] (6.4) Modification 4 and subsequent modifications will describe the control system 10 relating to Modification 4 with reference to Figure 17.

[0124] In the control system 10 according to Modified Example 4, if there is an error of a predetermined value or more between the predicted point V1X, which indicates the state of the controlled object 2 at the time the command is generated by predictive control (here, MPC), and the actual point V1, which indicates the actual state of the controlled object 2 at the time the command is output, the generation unit 12 generates (recalculates) the command again based on the actual point V1. In other words, in the generation processing step of the control method according to Modified Example 4, if there is an error of a predetermined value or more between the predicted point V1X, which indicates the state of the controlled object 2 at the time the command is generated by predictive control, and the actual point V1, which indicates the actual state of the controlled object 2 at the time the command is output, the command is generated again based on the actual point V1. It is preferable that the configuration of Modified Example 4 is applied when the operating mode is semi-online mode or offline mode.

[0125] In the leftmost target path T1 in Figure 17, the actual point V1 and commands C0, C1, and C2 at time t=k are shown. After time "x" has elapsed from time t=k, at time t=k+x, the actual point V1 immediately after turning the corner on the target path T1 has moved away from the target path T1.

[0126] Here, the predicted point V1X is also shown in Figure 17 for easier comparison with the actual point V1. The predicted point V1X represents the current state (predicted state) relative to a future time t' at the time when command C1 is generated and stored at time t = k + x. In short, there is an error e1 in position, etc., between the state at time t = k + x (predicted state) as seen from the time command C1 is generated and stored, and the state at time t = k + x when command C1 is output (actual state).

[0127] The error e1 can increase as the surrounding environment of the controlled object 2 changes more significantly, or as commands are generated based on a more distant future time. If the error e1 is greater than or equal to a predetermined value, the generation unit 12 discards the stored commands (C1, C2) and generates (recalculates) commands again based on the actual point V1 (actual state). The generation unit 12 performs the recalculation by applying one of the following methods: condition change, rollback, or analytical method, similar to the recalculation method in the case of command generation failure in the modified example 3. For example, in the third area R3 of the setting screen G1 shown in Figure 18, the user can set the recalculation method for when the error e1 is greater than or equal to a predetermined value by specifying one of the following: condition change, rollback, or analytical method.

[0128] According to the configuration of the fourth modified example, if the error e1 is greater than or equal to a predetermined value, the command is recalculated based on the actual point V1 (actual state), thereby suppressing a decrease in prediction accuracy.

[0129] (6.5) Modification 5 and below will describe the control system 10 relating to Modification 5.

[0130] In the control system 10 according to Modification 5, the generation unit 12 generates commands by changing the conditions or methods applied when generating commands according to the number of commands stored (stock) in the storage unit 15. In other words, in the generation processing step of the control method according to Modification 5, commands are generated by changing the conditions or methods applied when generating commands according to the number of commands stored in the storage unit 15. It is preferable that the configuration of Modification 5 is applied when the operating mode is semi-online mode or offline mode. Here, it is assumed that one of three command generation methods (analytical method, generation method by predictive control, generation method by high-precision predictive control) is applied according to the number of stocks.

[0131] If the number of commands stored in the memory unit 15 is relatively small (for example, 10% or less of the maximum number of commands), the generation unit 12 generates commands using a time-saving method that does not require long computation times such as predictive control, for example, by the "analytical method" described in Modification 3. If the number of commands stored in the memory unit 15 is moderate (for example, greater than 10% of the maximum number of commands but 50% or less), the generation unit 12 generates commands using predictive control (for example, MPC). If the number of commands stored in the memory unit 15 is large (for example, greater than 50% of the maximum number of commands but 100% or less), the generation unit 12 changes conditions such as extending the prediction interval (for example, increasing the number of steps in the prediction horizon from 20 to 30) to generate commands using more accurate predictive control (MPC).

[0132] According to the configuration of Modification 5, it is possible to generate appropriate commands stably.

[0133] (6.6) Modification Six and subsequent modifications will describe the control system 10 relating to Modification Six with reference to Figure 18.

[0134] The control system 10 according to Modification Six displays a setting screen G1 (see Figure 18) on the display unit 17 so that the user can visually input various settings using the operation unit 16. The setting screen G1 includes seven areas (the first area R1 to the seventh area R7). The setting unit 18 of the control system 10 according to Modification Six performs various settings based on input to the setting screen G1 using the operation unit 16, that is, stores the setting information in the storage unit 15.

[0135] The first region R1, as described in the above embodiment, is a region where input can be made to specify one of three operating modes: online mode, semi-online mode, and offline mode. The setting unit 18 sets the operating mode in response to input to the first region R1 using the operation unit 16. In other words, the setting unit 18 sets the execution timing for generating commands in the generation unit 12 in response to operation input to the operation unit 16.

[0136] It is assumed that the input for specifying the operating mode is performed by using the operation unit 16, for example, by pressing the triangular mark at the right end of the first area R1, which displays a pull-down list, and then selecting one of the three selectable modes displayed on that list. In the example in Figure 18, the semi-online mode is specified by the user.

[0137] The second area R2, as explained in the modified example 2 above, is an area where input can be made to specify the upper limit (maximum number of stocks) of the number of commands to be stocked (number of stocks). The setting unit 18 sets the maximum number of stocks in response to the input to the second area R2 using the operation unit 16. In other words, the setting unit 18 sets the number of commands to be stocked by the stocking unit 13 in response to the operation input to the operation unit 16.

[0138] In the second region R2, the "period" corresponds to the time constraint, and by checking the checkbox on the far left using the operation unit 16, the command for 50 control periods can be specified as the upper limit of the number of stocks. The user may also input any desired value for the period (50 in Figure 18).

[0139] In the second region R2, "mm" corresponds to the distance constraint, and by checking the checkbox on the far left using the operation unit 16, a command for a distance of 100 mm can be specified as the upper limit of the stock quantity. The user may also input their desired numerical value and unit for the distance (100 in Figure 18) and the unit of distance (mm in Figure 18).

[0140] In the second region R2, the "interval" corresponds to the interval constraint, and by checking the checkbox on the far left using the operation unit 16, the command for an interval two cycles ahead can be specified as the upper limit of the number of stocks. An interval two cycles ahead, in the example in Figure 13, is the interval from point A on the target path T1 to point C. The user may also input any desired value for the interval (2 in Figure 18).

[0141] In the example in Figure 18, the "Period" checkbox is checked, so the user has specified a command for 50 control cycles as the upper limit for the number of stocks. The user can also check two or more checkboxes at the same time. If two or more checkboxes are checked, and the current number of stocks reaches the maximum number of stocks corresponding to any one of the two or more constraints, the generation unit 12 may temporarily stop the generation process until the current number of stocks falls below the maximum number of stocks.

[0142] The third area R3, as explained in the above modifications 3 and 4, is an area where input can be made to specify a recalculation method to be applied when command generation fails or when the error e1 is greater than or equal to a predetermined value. In the third area R3, input can be made to specify one of the following as the recalculation method: condition change, rollback, or analytical method. The setting unit 18 sets the recalculation method in response to the input to the third area R3 using the operation unit 16. In other words, the setting unit 18 selects and sets the conditions or methods related to command generation to be applied when command generation fails, in response to the operation input to the operation unit 16. If command generation fails, the generation unit 12 generates the command again using the conditions or methods selected and set by the setting unit 18.

[0143] It is assumed that the input for specifying the recalculation method is performed by using the operation unit 16, for example, by pressing the triangular mark at the right end of the third region R3, which displays a pull-down list, and then selecting one of the three selectable recalculation methods displayed on that list. In the example in Figure 18, the analytical method is specified by the user.

[0144] The fourth area R4 is an area where input can be made to specify the command generation method to be applied according to the number of commands stored in the memory unit 15, as described in the modified example 5 above. In the fourth area R4, input can be made to specify one of the following command generation methods: analytical method, predictive control generation method, and predictive control (high accuracy) generation method. Predictive control (high accuracy), as described above, is the process of performing predictive control with higher accuracy by changing conditions such as extending the prediction interval. The setting unit 18 sets the command generation method according to the input to the fourth area R4 using the operation unit 16. In other words, the setting unit 18 selects and sets the conditions or methods to be applied when generating commands according to the number of commands stored in the memory unit 15, in response to the operation input to the operation unit 16. The generation unit 12 generates commands using the conditions or methods selected and set by the setting unit 18 according to the number of commands stored.

[0145] Here, we assume that the command generation method can be specified individually for each of the three patterns of stock quantity: 100% or less, 50% or less, and 10% or less of the maximum stock quantity. We assume that the input for specifying the command generation method is done by pressing the triangle mark on the far right, which displays a pull-down list, and selecting one of the three selectable command generation methods displayed on that list. The user may also input their desired values ​​for the percentages "100", "50", and "10" in the example in Figure 18.

[0146] The fifth region R5, the sixth region R6, and the seventh region R7 are regions where inputs can be made to specify the above-mentioned predictive control (high accuracy), generation method by predictive control, and option settings (settings such as the number of horizons and weight coefficients). The setting unit 18 sets the option settings for the command generation method specified in the fourth region R4 in response to inputs to the fifth region R5, the sixth region R6, and the seventh region R7 using the operation unit 16.

[0147] According to the configuration of Modification Six, the user's desired settings regarding the timing of command generation and the user's desired number of stored commands are applied, thus improving convenience. Furthermore, the user's desired conditions or methods are applied when command generation fails, thus improving convenience. Additionally, the user's desired conditions or methods are applied according to the number of stored commands, thus improving convenience.

[0148] (6.7) Modification seven and subsequent modifications will describe the control system 10 relating to Modification Seven with reference to Figure 19.

[0149] As shown in Figure 1, the control system 10 according to the above embodiment is implemented in the controller 100 (motion controller) between the upper-level PC 5 and the controlled object 2.

[0150] As shown in Figure 19, the control system 10 according to Modification Seven is implemented on a higher-level PC 5 that also functions as a controller 100 (motion controller), and the higher-level PC 5 is connected to communicate with the controlled object 2. The higher-level PC 5 acquires information on the controlled quantity from the controlled object 2, estimates the state of the controlled object 2, and performs optimization calculations using the MPC. The higher-level PC 5 generates trajectory command data based on the control target point S1 and performs synchronous control of the X axis 21 and Y axis 22. Even in the configuration of Modification Seven, abnormalities are less likely to occur even if the command generation fails.

[0151] (6.8) Modification eight and subsequent modifications will describe the control system 10 relating to Modification eight with reference to Figure 20.

[0152] As shown in Figure 1, the control system 10 according to the above embodiment is implemented in the controller 100 (motion controller) between the upper-level PC 5 and the controlled object 2.

[0153] The control system 10 according to Modification 8 is implemented in the X-axis amplifier A1 of the controlled object 2, as shown in Figure 20. 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. The X-axis amplifier A1 acquires target data, including the target path T1, from the upper-level PC 5. The X-axis amplifier A1 acquires information on the control amount of the first motor M1 and also acquires information on the control amount of the second motor M2 via the Y-axis amplifier A2, estimates the state of the controlled object 2, and performs optimization calculations using the MPC. The X-axis amplifier A1 generates trajectory command data based on the control target point S1 and outputs the manipulated amount for the X-axis 21 to the first motor M1 and the manipulated amount for the Y-axis 22 to the Y-axis amplifier A2 in order to perform synchronous control of the X-axis 21 and Y-axis 22. Even in the configuration of Modification 8, abnormalities are less likely to occur even if the command generation fails.

[0154] (6.9) Modification nine and below will be described with reference to Figure 21 regarding the control system 10 relating to Modification nine.

[0155] As shown in Figure 1, the control system 10 according to the above embodiment is implemented in a controller 100 (motion controller) between the upper-level PC 5 and the controlled object 2, and the controller 100 includes an motion control unit 3 and a state estimation unit 4.

[0156] As shown in Figure 21, the control system 10 according to Modification 9 is implemented on a higher-level PC 5 that also functions as a controller 100 (motion controller), and the higher-level PC 5 is connected to communicate with the controlled object 2 (this is the same as in Modification 7 shown in Figure 19). However, in Modification 9, unlike the above embodiment and Modification 7, as shown in Figure 21, each of the X-axis amplifier A1 and Y-axis amplifier A2 of the controlled object 2 is equipped with an motion control unit 3 and a state estimation unit 4.

[0157] 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.

[0158] The upper-level PC 5 receives estimation results for the state of the corresponding axis from the X-axis amplifier A1 and Y-axis amplifier A2, and performs optimization calculations using the MPC. The upper-level PC 5 generates trajectory command data based on the control target point S1 and outputs it to the X-axis amplifier A1 and Y-axis amplifier A2, respectively. The operation control units 3 of the X-axis amplifier A1 and Y-axis amplifier A2 perform feedback control based on the received trajectory command data and the estimation results for the state of the corresponding axis. As a result, synchronous control of the X-axis amplifier A1 and Y-axis amplifier A2 is performed. Even in the configuration of the modified example nine, abnormalities are less likely to occur even if command generation fails.

[0159] As another example, the control system 10 according to Modification 9 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.

[0160] (6.10) 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.

[0161] 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.

[0162] 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.

[0163] 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.

[0164] In the above embodiment, the controlled object 2 is a two-axis machining center with X and Y axes. However, 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. Furthermore, 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.

[0165] In the above embodiment, the control system 10 has three operating modes: online mode, semi-online mode, and offline mode. However, having an online mode as an operating mode is not essential. It is preferable that the control system 10 has at least one of the semi-online mode and the offline mode as operating modes.

[0166] (Summary) Based on the embodiments described above, the following embodiments are disclosed.

[0167] The control method according to the first embodiment is a control method applied to a control system (10) that generates commands relating to the operation control of a controlled object (2). The control method includes a generation process step, a storage process step, and an output process step. In the generation process step, predictive control is performed on the controlled object (2) based on each point in time, and control target points (S1) that become commands are generated. In the storage process step, the generated commands are stored in a storage unit (15). In the output process step, commands are sequentially retrieved from the storage unit (15) and output for each control cycle. The commands generated in the generation process step are output in the output process step at a point in time two or more control cycles from the time the commands were generated.

[0168] According to the above configuration, even if the generation of commands fails, abnormalities are less likely to occur.

[0169] With respect to the control method according to the second embodiment, in the first embodiment, in the storage processing step, two or more control target points (S1) from among the multiple control target points (S1) generated in a single execution of predictive control are stored in the storage unit (15) as multiple commands.

[0170] According to the above embodiment, the number of times predictive control is performed to generate commands is reduced, thereby lowering the computational load required for command generation.

[0171] With respect to the control method relating to the third embodiment, in the first or second embodiment, an upper limit is set on the number of commands stored in the storage unit (15).

[0172] According to the above configuration, the possibility of a decrease in prediction accuracy can be reduced by setting an upper limit on the number of commands that can be stored.

[0173] Regarding the control method relating to the fourth embodiment, in any one of the first to third embodiments, if the generation of a command fails in the generation process step, the conditions or method applied during command generation are changed and the command is generated again.

[0174] According to the above embodiment, the probability of successfully generating a command can be increased.

[0175] With respect to the control method relating to the fifth embodiment, in any one of the first to fourth embodiments, in the generation processing step, if there is an error of a predetermined value or more between the predicted point (V1X) which indicates the state of the controlled object (2) at the time the command is generated by predictive control and the actual point (V1) which indicates the actual state of the controlled object (2) at the time the command is output, the command is generated again based on the actual point (V1).

[0176] According to the above embodiment, the decrease in prediction accuracy can be suppressed.

[0177] Regarding the control method relating to the sixth embodiment, in any one of the first to fifth embodiments, in the generation processing step, the conditions or methods applied when generating the command are changed according to the number of commands stored in the storage unit (15) and the command is generated.

[0178] According to the above embodiment, it is possible to generate appropriate commands stably.

[0179] With respect to the control method relating to the seventh aspect, in any one of the first to sixth aspects, the predictive control is either predictive control or model predictive control.

[0180] According to the above embodiment, even if the predictive control is either foresight control or model predictive control, abnormalities are less likely to occur when command generation fails.

[0181] With respect to the control method relating to the eighth aspect, in any one of the first to seventh aspects, the command is a command relating to the trajectory of the controlled object (2).

[0182] According to the above embodiment, even if the command is a command relating to the trajectory of the controlled object (2), abnormalities are less likely to occur in the event of a command generation failure.

[0183] Regarding the control method relating to the ninth aspect, in any one of the first to eighth aspects, in the generation processing step, predictive control is performed at a timing independent of the control cycle.

[0184] According to the above embodiment, the possibility of an anomaly occurring in the event of a command generation failure can be further reduced.

[0185] With respect to the control method according to the tenth embodiment, in any one of the first to eighth embodiments, in the generation processing step, predictive control is performed with the same period as the control cycle.

[0186] According to the above embodiment, even when predictive control is performed with the same period as the control cycle, abnormalities are less likely to occur when command generation fails.

[0187] The program according to the eleventh embodiment is a program that causes one or more processors to execute the control method according to any one of the first to tenth embodiments.

[0188] According to the above embodiment, a function can be provided that makes it less likely for abnormalities to occur even if the generation of commands fails.

[0189] The control system (10) according to the twelfth embodiment generates commands relating to the operation control of the controlled object (2). The control system (10) comprises a generation unit (12), a storage unit (13), and an output unit (14). The generation unit (12) performs predictive control on the controlled object (2) based on each point in time and generates a control target point (S1) which becomes a command. The storage unit (13) stores the generated commands in a memory unit (15). The output unit (14) sequentially retrieves the commands from the memory unit (15) and outputs them for each control cycle. The commands generated by the generation unit (12) are output by the output unit (14) at a point in time two or more control cycles from the time the command was generated.

[0190] According to the above embodiment, a control system (10) can be provided that is less likely to cause abnormalities even if the generation of commands fails.

[0191] The control system (10) according to the thirteenth embodiment further comprises a setting unit (18) in the twelfth embodiment. The setting unit (18) sets the execution timing for generating commands in the generation unit (12) in response to an operation input to the operation unit (16).

[0192] According to the above configuration, user-desired settings regarding execution timing are applied, thus improving convenience.

[0193] The control system (10) according to the 14th embodiment further comprises a setting unit (18) in the 12th or 13th embodiment. The setting unit (18) sets the number of commands to be stored by the storage unit (13) in response to an operation input to the operation unit (16).

[0194] According to the above configuration, the user's desired setting for the number of items to be stored is applied, thus improving convenience.

[0195] The control system (10) according to the 15th embodiment further comprises a setting unit (18) in any one of the 12th to 14th embodiments. The setting unit (18) selects and sets conditions or methods for generating commands to be applied when command generation fails, in response to an operation input to the operation unit (16). If command generation fails, the generation unit (12) generates a command again using the conditions or methods selected and set by the setting unit (18).

[0196] According to the above embodiment, if the generation of a command fails, the conditions or method desired by the user will be applied, thus improving convenience.

[0197] The control system (10) according to the 16th embodiment further comprises a setting unit (18) in any one of the 12th to 15th embodiments. The setting unit (18) selects and sets conditions or methods to be applied when generating commands according to the number of commands stored in the storage unit (15) in response to an operation input to the operation unit (16). The generation unit (12) generates commands using the conditions or methods selected and set by the setting unit (18) according to the number of commands stored.

[0198] According to the above embodiment, the conditions or methods desired by the user are applied according to the number of accumulated commands, thus improving convenience.

[0199] A non-temporary recording medium according to the 17th embodiment is a non-temporary recording medium in which a program is written for one or more processors to cause a computer to execute a control method according to any one of the first to tenth embodiments.

[0200] According to the above embodiment, a function can be provided that makes it less likely for abnormalities to occur even if the generation of commands fails.

[0201] A control method according to the 18th aspect is a control method in the first aspect that receives a signal containing data of a control quantity of the controlled object, and estimates the state of the controlled object based on the data of the control quantity.

[0202] According to the above embodiment, the estimation result is received and predictive control is performed.

[0203] The control method according to the 19th embodiment is a control method according to the first embodiment or the 18th embodiment in which the command is output to a control unit that controls the controlled object.

[0204] According to the above embodiment, the control unit performs control of the controlled object so that the controlled object passes through the control target point.

[0205] 2 Controlled object 10 Control system 11 Control unit 12 Generation unit 13 Storage unit 14 Output unit 15 Memory unit 16 Operation unit 17 Display unit 18 Setting unit S1 Control target point V1 Actual point V1X Predicted point

Claims

A control method applied to a control system that generates commands relating to the operation control of a controlled object, The point in time at which control is performed on the controlled object is a discrete time of the control period, and predictive control is performed on the controlled object based on the point in time to generate the control target point which becomes the command. The generated command is stored in the memory unit. For each control cycle, the command is sequentially retrieved from the storage unit and output. Includes, The command is output at the time from the time the command is generated to the time two or more cycles of the control cycle. Control method.   When storing the command in the memory unit, two or more of the control target points generated in a single execution of the predictive control are stored in the memory unit as multiple commands. The control method according to claim 1.   An upper limit is set on the number of commands stored in the storage unit. The control method according to claim 1 or 2.   If the generation of the aforementioned command fails, the conditions or methods applied during the generation of the aforementioned command are changed, and the command is generated again. The control method according to any one of claims 1 to 3.   When generating the command, if there is an error of a predetermined value or more between the predicted point, which indicates the state of the controlled object at the time the command is generated by the predictive control, and the actual point, which indicates the actual state of the controlled object at the time the command is output, the command is generated again based on the actual point. The control method according to any one of claims 1 to 4.   When generating the command, the conditions or methods applied during the generation of the command are changed according to the number of commands stored in the memory unit. The control method according to any one of claims 1 to 5.   The aforementioned predictive control is either predictive control or model predictive control. The control method according to any one of claims 1 to 6.   The aforementioned command is a command relating to the trajectory of the controlled object. The control method according to any one of claims 1 to 7.   When generating the command, the predictive control is executed at a timing independent of the control cycle. The control method according to any one of claims 1 to 8.   When generating the control target point that will be the command, the predictive control is executed with the same period as the control period. The control method according to any one of claims 1 to 8.   A program for causing one or more processors to execute the control method described in any one of claims 1 to 10.   A control system that generates commands related to the operation control of a controlled object, A generation unit that performs predictive control on the control target based on each time point and generates the control target point that becomes the command, A storage unit that stores the generated command in a memory unit, An output unit that sequentially retrieves the commands from the storage unit and outputs them for each control cycle, Equipped with, The command generated by the generation unit is output by the output unit at the time from the time the command is generated to the time two or more cycles of the control cycle. Control system.   The system further includes a setting unit that sets the execution timing for generating the command in the generation unit in response to an operation input to the operation unit. The control system according to claim 12.   The system further includes a setting unit that sets the number of commands to be stored in the storage unit in response to an operation input to the operation unit. The control system according to claim 12 or 13.   The system further includes a setting unit that, in response to an operation input to the control unit, selects and sets conditions or methods for generating the command that are applied when the generation of the command fails, If the generation unit fails to generate the command, it will generate the command again using the conditions or method selected and set by the setting unit. The control system according to any one of claims 12 to 14.   The system further includes a setting unit that, in response to an operation input to the operation unit, selects and sets conditions or methods to be applied when generating the command, according to the number of commands stored in the storage unit. The generation unit generates the command using the conditions or method selected and set by the setting unit, according to the number of commands accumulated. The control system according to any one of claims 12 to 15.

Citation Information

Patent Citations

  • Model prediction controller

    JP2006072791A

  • Model prediction controller

    JP2009294879A

  • Control system

    JP2019109598A

  • Control system and control method

    JP2021026617A

  • Control device, model creation method, control program

    WO2020162199A1