Control system, control method, and program

The control system addresses constraint violations in model predictive control by integrating auxiliary conditions, ensuring accurate and efficient operation by maintaining the transient state within target ranges.

WO2026033963A1PCT designated stage Publication Date: 2026-02-12PANASONIC INTELLECTUAL PROPERTY MANAGEMENT CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
PCT/JP2025/019130
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Priority Date
2024-08-07
Filing Date
2025-05-27
Publication Date
2026-02-12

AI Technical Summary

Technical Problem

Existing control systems using model predictive control may result in constraint violations between discrete control target points, leading to inefficiencies and reduced control accuracy.

Method used

A control system that generates control target points using model predictive control while incorporating auxiliary conditions to ensure that the transient state between consecutive points falls within a target range, thereby avoiding constraint violations.

Benefits of technology

The system effectively prevents constraint violations, enhancing control accuracy and efficiency by formulating auxiliary conditions alongside conventional constraints, reducing the risk of transient state deviations.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure JP2025019130_12022026_PF_FP_ABST
    Figure JP2025019130_12022026_PF_FP_ABST
Patent Text Reader

Abstract

The present invention avoids a constraint violation between discrete control target points. A control system (10) generates a command related to operation control of a control target (2). The control system (10) comprises a control unit (11) and a calculation unit (12). The control unit (11) executes optimization calculation using the model prediction control, and discretely generates control target points serving as commands corresponding to respective time points so as to satisfy the constraint condition for the control target (2). The calculation unit (12) formulates an auxiliary condition to be activated under a predetermined condition in addition to the constraint condition in the optimization calculation. The constraint condition is that the control target points fall within a target range including an allowable error with respect to a target path (T1) of the control target (2). The auxiliary condition is that a transient state between two consecutive control target points falls within a target range.
Need to check novelty before this filing date? Find Prior Art

Description

Control system, control method, and program

[0001] The present disclosure generally relates to a control system, a control method, and a program, and more particularly to a control system, a control method, and a program that generate commands related to operational control of a controlled object.

[0002] Patent Literature 1 discloses a technology relating to a mobile body control method for controlling the movement of a mobile body, such as a self-propelled vacuum cleaner, by model predictive control in order to move the mobile body accurately and efficiently along a target path. In this mobile body control method, at a control timing, the first control instruction in a time series of future control inputs obtained by solving an optimization problem is input to the mobile body. At the next control timing, the actual state of the mobile body is acquired from a sensor, and the optimization problem is solved again, thereby inputting a control instruction to the mobile body that corrects the deviation between the target path and the actual travel path.

[0003] International Publication No. 2022 / 044470

[0004] However, when generating control instructions (commands) for controlling the operation of a controlled object using model predictive control, there is a possibility that optimization will only be possible at discretely generated control target points (discrete points), which may result in constraint violations between two consecutive control target points.

[0005] The present disclosure has been made in view of the above-mentioned circumstances, and aims to provide a control system, a control method, and a program that can avoid constraint violations occurring between discrete control target points.

[0006] A control system according to one aspect of the present disclosure generates commands related to operational control of a controlled object. The control system includes a control unit and a calculation unit. The control unit executes an optimization calculation using model predictive control and discretely generates control target points that serve as commands corresponding to each time point so as to satisfy constraint conditions for the controlled object. The calculation unit formulates auxiliary conditions that are enabled under predetermined conditions in addition to the constraint conditions in the optimization calculation. The constraint condition is that the control target point falls within a target range that includes a tolerance for a target path of the controlled object. The auxiliary condition is that a transient state between two consecutive control target points falls within the target range.

[0007] A control method according to one aspect of the present disclosure is applied to a control system that generates commands related to operational control of a controlled object. The control method includes a control step and a calculation step. In the control step, an optimization calculation is performed using model predictive control to discretely generate control target points that serve as commands corresponding to each time point so as to satisfy constraint conditions for the controlled object. In the calculation step, auxiliary conditions that are enabled under predetermined conditions in addition to the constraint conditions in the optimization calculation are formulated. The constraint condition is that the control target point falls within a target range that includes a tolerance for a target path of the controlled object. The auxiliary condition is that a transient state between two consecutive control target points falls within the target range.

[0008] A program according to one aspect of the present disclosure is a program for causing one or more processors to execute the above-described control method.

[0009] The present disclosure has the advantage of being able to avoid constraint violations between discrete control target points.

[0010] FIG. 1 is a block diagram of a controller and its peripheral components that include a control system according to an embodiment. FIG. 2 is a conceptual diagram illustrating a prediction horizon in a control system according to an embodiment. FIG. 3 is a conceptual diagram illustrating a constraint violation occurring when a target path includes a corner. FIG. 4 is a conceptual diagram illustrating a constraint violation occurring when an auxiliary condition in a control system according to an embodiment is enabled, resulting in a constraint violation occurring when a target path includes a corner. FIG. 5 is a conceptual diagram illustrating problems that may arise when a sampling period is shortened to avoid a constraint violation. FIG. 6 is a flowchart illustrating the operation of a control system according to an embodiment. FIG. 7 is a conceptual diagram illustrating an auxiliary condition in a control system according to a first modification. FIG. 8 is a conceptual diagram illustrating a constraint violation occurring when a target path includes a circular path. FIG. 9 is a conceptual diagram illustrating a constraint violation occurring when an auxiliary condition in a control system according to a second modification is enabled, resulting in a constraint violation occurring when a target path includes a circular path. FIG. 10 is a flowchart illustrating the operation of a control system according to a third modification. Fig. 11 is a conceptual diagram for explaining an example of a distance from a change point of a route shape in a control system according to Modification 3. Fig. 12 is a conceptual diagram for explaining another example of a distance from a change point of a route shape in a control system according to Modification 3. Fig. 13 is a conceptual diagram for explaining an allowable error for a target route in a control system according to Modification 4. Fig. 14 is a block configuration diagram of a control system and its peripheral configuration according to Modification 5. Fig. 15 is a block configuration diagram of a control system and its peripheral configuration according to Modification 6. Fig. 16 is a block configuration diagram of a control system and its peripheral configuration according to Modification 7.

[0011] (Summary) Below, a control system, a control method, and a program according to embodiments and modifications will be described with reference to the drawings. Note that the following embodiments and modifications are merely examples of various embodiments of the present disclosure. Furthermore, the following embodiments and modifications can be modified in various ways depending on the design, etc., as long as the object of the present disclosure can be achieved. Furthermore, the configuration of each of the modifications can be appropriately combined with the following embodiments or other modifications. Furthermore, the figures described in this disclosure are schematic diagrams, and the ratios of the sizes and thicknesses of the components in the figures do not necessarily reflect the actual dimensional ratios.

[0012] 1, a control system 10 according to one embodiment generates commands related to operational control of a controlled object 2 (a plant). The control system 10 generates commands related to operational control of the controlled object 2 using a model predictive control (hereinafter sometimes abbreviated as MPC) function that performs optimization while predicting future responses at each time (each point in time).

[0013] In the following description, it is assumed that the controlled object 2 (plant) is, as an example, a two-axis stage, which is a two-axis machine (multi-axis machine) with an X axis and a Y axis. The two-axis stage is a positioning stage with two axes: the "X axis" for left-right movement and the "Y axis" for front-back movement. The two-axis stage positions a workpiece, such as a laser processing machine, a cutting machine, or a coating device, on the stage.

[0014] As shown in FIG. 1 , a control system 10 according to one embodiment includes a control unit 11 and a calculation unit 12. The control unit 11 executes an optimization calculation using model predictive control to discretely generate a control target point S1 (see FIG. 4 ), which serves as a command corresponding to each time point, for a controlled object 2 so as to satisfy a constraint condition. The calculation unit 12 formulates an auxiliary condition that is enabled under a predetermined condition in addition to the constraint condition in the optimization calculation. The constraint condition is that the control target point S1 falls within a target range R1 (see FIG. 4 ) that includes an allowable error Δe1 with respect to a target path T1 of the controlled object 2. The auxiliary condition is that a transient state between two consecutive control target points S1 falls within the target range R1.

[0015] According to the control system 10 according to the above aspect, in addition to the constraint conditions, auxiliary conditions that are enabled under predetermined conditions are formulated, and the transient state between the discrete control target points S1 is likely to fall within the target range R1. As a result, the control system 10 has the advantage of being able to avoid constraint violations occurring between the discrete control target points S1.

[0016] A control method according to one aspect is applied to a control system 10 that generates commands related to operational control of a control object 2. The control method includes a control step and a calculation step. In the control step, an optimization calculation is performed using model predictive control to discretely generate a control target point S1 that serves as a command corresponding to each time point for the control object 2 so as to satisfy a constraint condition. In the calculation step, an auxiliary condition that is enabled under a predetermined condition in addition to the constraint condition in the optimization calculation is formulated. The constraint condition is that the control target point S1 falls within a target range R1 that includes an allowable error Δe1 with respect to a target path T1 of the control object 2. The auxiliary condition is that a transient state between two consecutive control target points S1 falls within the target range R1.

[0017] The configuration of the control method according to the above aspect also has the advantage that it is possible to avoid the occurrence of constraint violations between discrete control target points S1.

[0018] This control method is used on a computer system (control system 10). That is, this control method can also be embodied as a computer program. A program according to one aspect is a program for causing one or more processors to execute the above-described control method. The program may be recorded on a computer-readable non-transitory recording medium. Furthermore, a computer program product according to one aspect includes a computer program that, when executed by one or more processors, implements the steps of the above-described control method.

[0019] In the following, it is assumed that the control system 10 is provided in a controller 100 (see FIG. 1 ). That is, as an example, it is assumed that all of the functions of the control system 10 are implemented in the controller 100. The controller 100 is, for example, a motion controller.

[0020] The MPC then solves an optimization problem for a prediction interval K1 (see FIG. 2 : a finite interval) based on a model of the controlled object 2 (here, a two-axis stage), and the control system 10 uses the result to generate commands related to the operation control of the controlled object 2. The controller 100 performs feedback control of the operation of the controlled object 2 based on the commands of the control system 10. In other words, the controller 100 provides a control input to the controlled object 2 using the prediction results from the MPC.

[0021] (Details) (1) Overall Configuration An overall system including a control system 10 according to this embodiment and its peripheral configuration will be described in detail below with reference to FIG. 1. FIG. 1 is a block diagram of a controller 100 equipped with a control system 10 according to one embodiment and its peripheral configuration. As described above, the control target 2 below is a plant, as an example. In particular, the control system 10 will be described assuming that the control target 2 is a two-axis stage.

[0022] 1, the control target 2 includes a stage 20 (base), an X-axis 21 that can move the stage 20 in the X-axis direction, and a Y-axis 22 that can move the stage 20 in the Y-axis direction. A workpiece such as a laser processing machine, a cutting machine, or a coating device can be placed on the stage 20.

[0023] As shown in FIG. 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 may also be a linear motor. As shown in FIG. 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 may also be a linear motor. The X-axis 21 and Y-axis 22 are synchronously controlled so that the stage 20 moves to a predetermined X-Y coordinate position.

[0024] The control system 10 generates commands related to the motion control of the control target 2. In the present embodiment, as an example, the control system 10 acquires target data including a target path T1 from a host PC 5 (host personal computer) and generates a trajectory command related to the motion control of the control target 2 based on the target path T1. Hereinafter, the target data will be described as an example, focusing on a case where the stage 20 of the control target 2 moves along the two-dimensional, L-shaped target path T1 including positions Pt1, Pt2, and Pt3, as shown schematically in FIG. 1 , along the dashed arrow. In other words, the target path T1 includes a corner. Hereinafter, the target data will be described as an example, focusing on a case where the stage 20 moves along a path parallel to the X-axis direction from position Pt1 to position Pt2 and along a path parallel to the Y-axis direction from position Pt2 to position Pt3. In short, the focus will be on a case where the stage 20 performs a cornering operation, such as turning a substantially right-angle (approximately 90-degree) corner. However, the movement of the control target 2 is not limited to a movement at a right angle, but may also include a movement at an obtuse angle or an acute angle, or a movement in a curved shape (for example, a circular or elliptical shape).

[0025] The controller 100 executes motion control of the control target 2 (synchronous control of the X-axis 21 and the Y-axis 22) based on the trajectory command generated by the control system 10. The controller 100 is communicably connected to the control target 2. Specifically, the controller 100 is communicably connected to each of the X-axis amplifier A1 and the Y-axis amplifier A2 individually. The controller 100 is also communicably connected to the upper PC 5.

[0026] The controller 100 acquires a control amount (control output) from the controlled object 2. For example, the controlled object 2 is provided with encoders that measure the positions, speeds, etc. of the first motor M1 and the second motor M2, and force sensors that measure thrust (or torque). The controlled object 2 may also be provided with external sensors that measure the position, speed, etc. of the stage 20. The measurement results of the external sensors can be output to the X-axis amplifier A1 and the Y-axis amplifier A2.

[0027] The controller 100 acquires data such as the position, speed, and thrust of the first motor M1, the second motor M2, and the stage 20 as control variables from the control target 2. Note that the control variables may also include disturbances such as vibrations that occur in the control target 2.

[0028] In the following, it is assumed that the controller 100 acquires a control amount from the controlled object 2 and performs feedback control on the controller 100 side, but this is not a limitation. The feedback control may be performed by the X-axis amplifier A1 and the Y-axis amplifier A2 of the controlled object 2.

[0029] The controller 100 (control system 10) includes a computer system having one or more processors and a memory. At least some of the functions of the controller 100 (control system 10) are realized by the processor of the computer system executing a program recorded in the memory of the computer system. The program may be recorded in the memory, or may be provided via a telecommunications line such as the Internet, or may be provided by being recorded on a non-transitory recording medium such as a memory card.

[0030] 1, the controller 100 includes 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 the control system 10, the functions of the operation control unit 3, and the functions of the state estimation unit 4. It is assumed that these multiple functions of the controller 100 are housed in a single housing, but this is not limitative and they may be housed distributed across multiple housings.

[0031] The state estimation unit 4 receives signals including control variable data based on measurement results from an encoder, a force sensor, an external sensor, etc. from the X-axis amplifier A1 and the Y-axis amplifier A2 of the controlled object 2. The state estimation unit 4 estimates the state of the controlled object 2 based on the control variable data and outputs the estimation result to the control system 10. As an example, the state estimation unit 4 estimates the position (specifically, the position of the X-Y coordinates of the stage 20) and speed of the controlled object 2 based on the control variable.

[0032] The control system 10 has an MPC function. As shown in FIG. 1 , the control system 10 includes a storage unit 14. The storage unit 14 includes an electrically rewritable non-volatile semiconductor memory such as a flash memory. The storage unit 14 stores a prediction model (predictor) related to the controlled object 2. For example, a transfer function model, a state space model, or the like may be used as the prediction model.

[0033] In the MPC, a control profile is optimized for a certain time period (prediction interval K1 in FIG. 2) from the current time (present) to a certain future time, based on the estimation result from the state estimation unit 4.

[0034] The control system 10 further includes a control unit 11 and a calculation unit 12 (see FIG. 1).

[0035] The control unit 11 performs an optimization calculation for a control input corresponding to a prediction interval K1 using model predictive control based on target data including a target path T1 acquired from the host PC 5 and the estimation results from the state estimation unit 4. The MPC in this embodiment uses receding horizon control (RH control), also known as receding horizon control, which is a control method for optimizing a response up to a finite future time interval at each time point (time points t0, t1, t2, ... in the first time series B1 in FIG. 2 ). The first value of the optimized control profile (first prediction element C1) is then used for the actual control input profile. The control unit 11 retracts one horizon H1 and performs an optimization calculation for a control input corresponding to the next prediction interval K1.

[0036] Here, one control period corresponds to one horizon H1 (one step) in Fig. 2. One control period corresponds to the period during which the operation of the controlled object 2 is controlled. It is assumed that the control period is the same as the data sampling period of the controlled variable acquired from the controlled object 2 side, but it may be different.

[0037] FIG. 2 will now be described. FIG. 2 is a conceptual diagram illustrating a prediction horizon in a control system 10 according to an embodiment. More specifically, FIG. 2 is a conceptual diagram illustrating “receding horizon control” according to this embodiment. FIG. 2 includes a first time series B1 illustrating an example of the execution result of an optimization calculation at the present time (t0) and a second time series B2 illustrating an example of the execution result of the optimization calculation at the present time (t1). In the second time series B2, one control period (horizon H1) has elapsed since the first time series B1. In particular, the second time series B2 illustrates the execution result of the optimization calculation executed next after the execution of the optimization calculation corresponding to the first time series B1. In other words, in the second time series B2, the horizon H1 has been regressed by one period relative to the first time series B1, which illustrates the execution result of the previous optimization calculation. That is, the control unit 11 uses model predictive control to execute the optimization calculation for a control input corresponding to the next prediction interval K1, which is regressed by one horizon H1.

[0038] For each of the first time series B1 and the second time series B2, the horizontal axis represents time, and the vertical axis represents a control input to the controlled object 2 (plant). The control input is, for example, a command value for the position (coordinate position) or speed of the controlled object 2. For each of the first time series B1 and the second time series B2, the black plots represent actual values ​​of the commanded control input, and the open plots represent prediction elements. Each of the first time series B1 and the second time series B2 also represents a prediction interval K1. The prediction interval K1 is composed of multiple horizons H1 (steps). The prediction interval K1 is also referred to as a prediction horizon. The prediction interval K1 includes multiple prediction elements (e.g., 25 elements). Each prediction element is a predicted value of the control input (e.g., a command value for position or speed) predicted by the MPC for each control cycle within the prediction interval K1 from the present onward, including the present. In other words, each prediction element is a predicted value of the control input at the corresponding time. Although FIG. 2 shows only a part of the prediction interval K1, the prediction interval K1 is a finite interval.

[0039] In the first time series B1, a prediction element C1 at time t0 (present) among the multiple prediction elements is designated as the actual control input. In the second time series B2, a prediction element C1 at time t1 (present) among the multiple prediction elements is designated as the actual control input.

[0040] In this embodiment, the target path T1 including positions Pt1, Pt2, and Pt3 shown in Fig. 1 may be a path that is part of a predetermined motion range of the control target 2. The starting point and destination point of the predetermined motion range may be positions Pt1 and Pt3.

[0041] The control unit 11 repeatedly executes an optimization calculation, for example, while moving the horizon H1 back by one unit from the start point to the destination point of a predetermined operating range of the controlled object 2. That is, the control unit 11 repeatedly executes an optimization calculation for a control input corresponding to a prediction interval K1 by moving the horizon H1 back by one unit using model predictive control. The storage unit 14 stores the prediction element C1 as an actual control input.

[0042] Furthermore, the control unit 11 generates control data (trajectory command data) related to the motion control of the control target 2 based on the prediction element C1, which is the actual control input, and outputs the control data to the motion control unit 3. The trajectory command data is data based on the control target point S1 (see FIG. 4) corresponding to the prediction element C1.

[0043] Here, the control unit 11 executes an optimization calculation using model predictive control, and discretely generates a control target point S1, which is a command corresponding to each time point, so as to satisfy the constraint conditions for the controlled object 2.

[0044] A target path T1 (reference trajectory) for the control object 2 is generated, for example, by the host PC 5. The target path T1 is a trajectory on the X-axis and Y-axis for plant operation control. Specifically, the host 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 control object 2. Alternatively, the host PC 5 may generate the target path T1 based on data related to a reference trajectory that is manually set by the user.

[0045] The control unit 11 can use the MPC to discretely generate control target points S1 for a target path T1 for the control object 2 on the X-Y coordinate system as shown in FIGS. 3 to 5 so as to satisfy the constraint conditions. FIG. 3 is a conceptual diagram illustrating that a constraint violation is "present" when the target path T1 includes a corner. FIG. 4 is a conceptual diagram illustrating that a constraint violation is "not present" when the target path T1 includes a corner by enabling auxiliary conditions in the control system 10 according to an embodiment. FIG. 5 is a conceptual diagram illustrating problems that may arise when shortening the sampling period to avoid constraint violations. FIGS. 3 to 5 show the target path T1 acquired from the host PC 5. The target range R1 in FIGS. 3 to 5 is a range that includes the allowable error Δe1 for the target path T1 of the control object 2. The target range R1 is a range within which the control target point S1 can be generated. In other words, the allowable error Δe1 is set for the target path T1.

[0046] In the examples of FIGS. 3 to 5 , for a linear path along the X-axis direction on the L-shaped target path T1, an allowable error Δe1 is set on both the positive and negative sides of the Y-axis direction relative to the linear path. Also, in the examples of FIGS. 3 to 5 , for a linear path along the Y-axis direction on the L-shaped target path T1, an allowable error Δe1 is set on both the positive and negative sides of the X-axis direction relative to the linear path. The aforementioned "constraint condition" is that the control target point S1 falls within the target range R1. As an example, if the lengths of the linear paths along the X-axis direction and the linear paths along the Y-axis direction on the target path T1 shown in FIGS. 3 to 5 are each 1 mm, the allowable error Δe1 is 10 μm. The boundary line R10 of the target range R1 shown in FIGS. 3 to 5 is a line indicating the allowable error Δe1 inside corners of the target path T1.

[0047] 3 to 5 indicate target positions at abrupt trajectory changes, such as corners, set on the target route T1. That is, the change points Q1 are points at which the route shape of the target route T1 changes. The control unit 11 can acquire target data including the target route T1, the target range R1, and the change points Q1 from the upper PC 5.

[0048] Basically, it is assumed that the stage 20 of the control target 2 is controlled to move along a target path T1 so as to pass through a change point Q1 (target angle). In particular, if the target path T1 is, for example, a linear trajectory along the X-axis, the stage 20 can be controlled to move along the target path T1. However, in order to improve productivity and take into consideration the shortening (reduction) of takt time, it is necessary to set an allowable error Δe1 (margin) for the target path T1, as described above, and the region including the allowable error Δe1 corresponds to the target range R1.

[0049] The MPC basically executes an optimization calculation so that the stage 20 follows a target path T1 within a target range R1 that includes an allowable error Δe1 while observing the above-described "constraints," and can determine a control target point S1. For example, the control target point S1 is generated based on a prediction element C1 of a control profile optimized at the corresponding current time (see FIG. 2). Specifically, the control target point S1 includes elements such as time, position (coordinate position), and velocity.

[0050] FIG. 3 shows an example of a control target point S1 that is considered to violate a constraint when the target path T1 includes a corner. If the MPC observes only the constraints described above, in order to reduce takt time, optimization calculations may be performed to trace a predicted trajectory of an out-in-out curve, as shown in FIG. 3, so that the stage 20 can efficiently corner. As a result, as shown in FIG. 3, even if each discretely generated control target point S1 falls within the target range R1 without deviating, the transient state (transient path) between two consecutive control target points S1 at a corner position may fall outside the target range R1. This may result in insufficient control accuracy (a problem).

[0051] To solve these problems, the control system 10 in this embodiment includes a calculation unit 12. The calculation unit 12 formulates "auxiliary conditions" that are enabled under predetermined conditions in addition to "constraint conditions" in the optimization calculation. The auxiliary condition is that the transient state (transient path) between two consecutive control target points S1 falls within a target range R1. Here, as an example, the predetermined condition is that the setting unit 15 sets the auxiliary conditions to be enabled (in response to an operation input from the user), as described below.

[0052] The "formulation of auxiliary conditions" will be described in detail below with reference to Fig. 4. Fig. 4 shows an example of a control target point S1 that is considered to have "no" constraint violations when the auxiliary conditions are enabled in a case where the target path T1 includes a corner.

[0053] As shown in Fig. 4, the calculation unit 12 identifies a first line segment L1 connecting two consecutive control target points S1. The calculation unit 12 also identifies a second line segment L2 connecting a first point P1 and a second point P2 on a boundary line R10 of the target range R1. The calculation unit 12 uses a cross product to formulate an auxiliary condition for preventing the first line segment L1 from intersecting with the second line segment L2. The first point P1 is set before the corner. The second point P2 is set at the corner.

[0054] Here, as an example, the first point P1 corresponds to point A on the boundary line R10 shown in Figures 3 and 4. This point A is, for example, at the same X coordinate position as the starting point (position Pt1) in Figure 1, but is located at a position away from position Pt1 on the positive side of the Y axis direction by an allowable error Δe1. The second point P2 corresponds to point B on the boundary line R10 shown in Figures 3 and 4. This point B is, for example, located at a position on the boundary line R10 closest to the change point Q1 (position Pt2 in Figure 1). One of the two consecutive control target points S1 at a corner position corresponds to point C shown in Figures 3 and 4, and the other corresponds to point D shown in Figures 3 and 4.

[0055] The condition (first condition) for the first line segment L1 (line segment CD) to intersect with the line passing through points A and B is to satisfy (Sp1 * Tp1 < 0). Sp1 is the cross product of a vector having point A as its start point and point B as its end point, and a vector having point A as its start point and point C as its end point, and Tp1 is the cross product of a vector having point A as its start point and point B as its end point, and a vector having point A as its start point and point D as its end point. When expressed using points A to D, the cross products Sp1 and Tp1 are as shown in the following "Mathematical Expression 1."

[0056]

[0057] In other words, if point C and point D are on opposite sides of the line passing through point A and point B, the product of the cross product Sp1 and the cross product Tp1 is negative, satisfying the first condition. Note that the result of Sp1 * Tp1 in the first condition is treated as a scalar and compared with zero (0).

[0058] In addition to the first condition, the condition (second condition) for the second line segment L2 (line segment AB) to intersect with the line passing through points C and D is to satisfy (Sp2 * Tp2 < 0). Sp2 is the cross product of a vector having point C as its start point and point D as its end point, and a vector having point C as its start point and point A as its end point, and Tp2 is the cross product of a vector having point C as its start point and point D as its end point, and a vector having point C as its start point and point B as its end point. When expressed using points A to D, the cross products Sp2 and Tp2 are as shown in the following "Mathematical Expression 2."

[0059]

[0060] In other words, if point A and point B are on opposite sides of the line passing through point C and point D, the product of the cross product Sp2 and the cross product Tp2 is negative, satisfying the second condition. Note that the result of Sp2 * Tp2 in the second condition is treated as a scalar and compared with zero (0).

[0061] Considering the first and second conditions described above, the auxiliary condition for the first line segment L1 (line segment CD) and the second line segment L2 (line segment AB) not to intersect is {(Sp1 * Tp1 ≧ 0) or (Sp2 * Tp2 ≧ 0)}.

[0062] The calculation unit 12 uses the cross product in this manner to formulate an auxiliary condition that the first line segment L1 and the second line segment L2 do not intersect with each other for the two control target points S1 of interest (points C and D in FIGS. 3 and 4).The control unit 11 then generates the control target point S1 so as to comply with both the constraint condition and the auxiliary condition formulated by the calculation unit 12.As a result, a predicted trajectory (optimal trajectory) with "no" constraint violations is obtained, as shown in FIG.

[0063] The control unit 11 generates trajectory command data (command) including information on the control target point S1 and outputs it to the operation control unit 3, so that the operation control unit 3 controls the control object 2 so that the control object 2 passes through the control target point S1.

[0064] The control system 10 further includes a setting unit 15 (see FIG. 1). The setting unit 15 performs various settings based on operational input from outside. The control system 10 also includes an operation unit 16 as a user interface 6 (see FIG. 1). The operation unit 16 includes, for example, one or more of a mouse, a keyboard, and a pointing device. The control system 10 also includes a display unit 17 (display device) as the user interface 6 (see FIG. 1). The display unit 17 displays, for example, information related to the settings of the setting unit 15 on a screen. A user operates the operation unit 16 to perform operational input while viewing the screen of the display unit 17.

[0065] The operation unit 16 may receive an operation input from a user regarding the setting of enabling an auxiliary condition. For example, the display unit 17 may display information about a target route T1 that includes a corner, for example, in response to the operation input from the user. The user may operate the operation unit 16 while viewing the information about the target route T1 displayed on the display unit 17 to set (specify) the coordinate positions at which the enabling of the auxiliary condition is to be started and at which the auxiliary condition is to be disabled. For example, the user may set the auxiliary condition to be enabled at a coordinate position just before a corner on the target route T1, and to be disabled at a coordinate position after the corner on the target route T1.

[0066] The setting unit 15 enables / disables the auxiliary condition based on operation input from the operation unit 16. That is, the predetermined condition for enabling the auxiliary condition is, for example, the setting unit 15 enabling the auxiliary condition in response to operation input from the user via the operation unit 16. The setting unit 15 stores (saves) the setting information for enabling / disabling the auxiliary condition in the memory unit 14. The calculation unit 12 references the setting information for enabling / disabling the auxiliary condition in the memory unit 14, and when the auxiliary condition is enabled, identifies the first line segment L1 and the second line segment L2 and formulates the auxiliary condition using the cross product. On the other hand, when the auxiliary condition is disabled, the calculation unit 12 does not formulate the auxiliary condition. The provision of the setting unit 15 in this manner reduces the possibility of excessively enabling the auxiliary condition and increasing the MPC calculation time. Furthermore, user requests are more easily reflected in the control system 10, improving convenience.

[0067] 1, for convenience, the operation unit 16 and the display unit 17 are illustrated inside the controller 100, but they may be, for example, devices provided separately from the controller 100. When the display unit 17 is a touch panel display device, the display device may also function as the operation unit 16.

[0068] The controller 100 of this embodiment controls, for example, data based on the control amount output from the controlled object 2 so that it matches a command value (target value) in the target data input from the host PC 5. The command value (target value) includes data specifying the position and speed of the controlled object 2 operating within a predetermined operating range. For example, the controller 100 defines state variables using a state space model of the controlled object 2, with the estimation results of the position, speed, etc. from the state estimation unit 4 as state quantities. The controller 100 then calculates, as the control input (e.g., a command value for the position or speed), an operation amount (a required change amount) that optimizes (e.g., minimizes) the deviation of the position or speed (difference from the target value) at each time. The controller 100 may also include a disturbance observer that estimates disturbances, such as vibrations, that may be included in the controlled amount from the controlled object 2, and the control system 10 may acquire the estimation results from the disturbance observer.

[0069] The manipulated variable (control input) is not limited to the required amount of change in the speed of the controlled object 2. Depending on the type of the controlled object 2, the manipulated variable (control input) may be the required amount of change in at least one of the position of the controlled object 2, and (in the case of a multi-joint robot) the joint angle, posture, acceleration (angular acceleration), thrust, and torque.

[0070] The control unit 11 outputs a control signal (for example, a digital signal) indicating trajectory command data based on the control target point S1 to the operation control unit 3.

[0071] The host PC 5 is communicably connected to the controller 100. The host PC 5 generates a signal including target data related to a predetermined work process and transmits it to the controller 100 for control. The target data may include the above-mentioned target path T1, target range R1, change point Q1, command values ​​(target values) related to the position and speed of the control target 2, and the like.

[0072] The operation control unit 3 controls the operation of the control target 2 based on a command (trajectory command data based on the control target point S1) output from the control system 10. Specifically, the operation control unit 3 determines the operation amounts for the X-axis 21 and the Y-axis 22 individually for each control cycle based on the command from the control system 10, and inputs them to the X-axis amplifier A1 and the Y-axis amplifier A2. The operation amounts input to the X-axis amplifier A1 and the Y-axis amplifier A2, respectively, may be current command values ​​for the drive currents supplied to the first motor M1 and the second motor M2, or the like.

[0073] Each of the X-axis amplifier A1 and the Y-axis amplifier A2 has an inverter circuit that supplies power to the corresponding motor (first motor M1, second motor M2). That is, the operation control unit 3 individually determines the current value of the drive current to be supplied to the first motor M1 and the second motor M2 based on the speed command value, which is the manipulated variable for each control period. The operation control unit 3 then controls the inverter circuit of each of the X-axis amplifier A1 and the Y-axis amplifier A2 to adjust the drive current to be supplied to the corresponding motor. Note that the drive current value may be determined individually by the X-axis amplifier A1 and the Y-axis amplifier A2.

[0074] (2) Operation of the Control System A series of processing flows related to the operation of the control system 10 will be described below with reference to FIG. 6. FIG. 6 is a flowchart for explaining the operation of the control system 10 according to one embodiment. The flowchart shown in FIG. 6 is merely an example of the operation flow related to the control system 10, and the order of processing may be changed as appropriate, and processing may be added or omitted as appropriate. Note that the following description of the operation will be given, as an example, assuming that the setting unit 15 has set the auxiliary condition to always be enabled in response to a user specification.

[0075] The control system 10 acquires target data including a target path T1 from a start point to a destination point within a predetermined motion range of the controlled object 2 from the host PC 5 (step ST1).

[0076] The control system 10 acquires the estimation result (the state of the controlled object 2 estimated based on the control amount) from the state estimation unit 4 (step ST2).

[0077] The control system 10 performs an optimization operation on the control input corresponding to the prediction interval K1 (prediction horizon) using MPC to generate discrete control target points S1 (step ST3). At this time, the control system 10 generates the control target points S1 so that two consecutive control target points S1 comply with the (enabled) auxiliary condition in addition to the constraint condition.

[0078] The control system 10 outputs trajectory command data based on the control target point S1 to the operation control unit 3 (step ST4).

[0079] As a result, based on the trajectory command data, the motion control unit 3 performs synchronous control of the X-axis 21 and the Y-axis 22. For example, steps ST2 to ST4 can be repeatedly executed until the control target 2 reaches the destination point.

[0080] (3) Advantages As described above, according to the control system 10 of this embodiment, in addition to the constraint conditions, auxiliary conditions that are enabled under predetermined conditions are formulated, making it easier for the transient state between the discrete control target points S1 to fall within the target range R1. As a result, it is possible to avoid constraint violations between the discrete control target points S1, making it easier to ensure control accuracy.

[0081] In particular, in the control system 10, when the target path T1 includes a corner, the calculation unit 12 identifies a first line segment L1 connecting the control target points S1 and identifies a second line segment L2 connecting the first point P1 and the second point P2. The calculation unit 12 then uses a cross product to formulate an auxiliary condition that the first line segment L1 and the second line segment L2 do not intersect. Therefore, when the target path T1 includes a corner, it is possible to avoid a constraint violation such as that shown in FIG. 3 occurring between the discrete control target points S1.

[0082] Incidentally, shortening the data sampling period of the control variable acquired from the control target 2 (the control period of the control target 2) can be considered as a method for avoiding the occurrence of constraint violations as shown in FIG. 3 even when only the constraint conditions are observed without adding auxiliary conditions. By using this method, the distance between two consecutive control target points S1 is shortened, as shown in FIG. 5 , and the transient state (transient path) between the control target points S1 may be less likely to deviate from the target range R1. However, in this case, the MPC calculation time in the control unit 11 may significantly increase compared to when auxiliary conditions are added. Specifically, compared to when constraint violations as shown in FIG. 3 occur when only the constraint conditions are observed, adding auxiliary conditions may increase the MPC calculation time by approximately 1.5 times, whereas shortening the data sampling period may increase the MPC calculation time by approximately 2 times. From this perspective, adding a single constraint, namely an auxiliary condition, not only avoids constraint violations but also has the advantage of suppressing increases in MPC calculation time.

[0083] (4) Modifications Modifications of the above embodiment are listed below.

[0084] (4.1) Modification 1 The control system 10 according to Modification 1 will be described below with reference to Fig. 7. Fig. 7 is a conceptual diagram for explaining the auxiliary conditions in the control system 10 according to Modification 1.

[0085] The control system 10 according to the first modification differs from the control system 10 according to the above embodiment in the formulation of the auxiliary constraints.

[0086] Specifically, in Modification 1, the target path T1 also includes a corner, as shown in FIGS. 3 and 4 . The calculation unit 12 of the control system 10 according to Modification 1 identifies a first line segment L1 connecting two consecutive control target points S1, and identifies a third line segment L3 connecting a third point P3 and a fourth point P4 (see FIG. 7 ). The calculation unit 12 uses a cross product to formulate an auxiliary condition in which the third line segment L3 is located more inwardly of the corner than the first line segment L1. The third point P3 is set at one of the control target points S1 forming the first line segment L1 (in the example of FIG. 7 , the control target point S1 closer in the direction of travel). The fourth point P4 is set at a corner on the boundary line R10 of the target range R1.

[0087] FIG. 7 is a schematic diagram focusing only on points B, C, and D shown in FIG. 4 . That is, point C in FIG. 7 is one of two consecutive control target points S1 (the control target point S1 closer in the direction of travel) and corresponds to point C shown in FIG. 4 . Point D in FIG. 7 is the other of the two consecutive control target points S1 and corresponds to point D shown in FIG. 4 . Point B in FIG. 7 is set at a corner on boundary line R10 of target range R1 and corresponds to point B shown in FIG. 4 . In the example of FIG. 7 , third point P3 corresponds to point C, and fourth point P4 corresponds to point B. "θ" shown in FIG. 7 is the angle of third line segment L3 (line segment CB) relative to first line segment L1 (line segment CD). Note that, for convenience, angle θ is exaggerated and enlarged in FIG. 7 to make it easier to understand, and the positional relationship of points B to D has been adjusted from the positional relationship in FIG. 4 .

[0088] The calculation unit 12 of the first modified example formulates, as an auxiliary condition, the condition that the third line segment L3 (line segment CB) is located inside the corner of the first line segment L1 (line segment CD) (in Figures 4 and 7, to the left of the first line segment L1), i.e., the condition that "0 < θ < π".

[0089] This condition of "0 < θ < π" can be expressed by the following "Equation 3" using the cross product Sp. The following "Equation 3" is an auxiliary condition formulated by the calculation unit 12 of Modification 1, in which the third line segment L3 is located more inside the corner than the first line segment L1.

[0090]

[0091] In the first modification, the transient state between the discrete control target points S1 is also likely to fall within the target range R1. As a result, it is possible to avoid the occurrence of constraint violations such as those shown in FIG. 3, and it is easy to ensure control accuracy.

[0092] (4.2) Modification 2 A control system 10 according to Modification 2 will be described below with reference to Figs. 8 and 9. Fig. 8 is a conceptual diagram for explaining that a constraint violation is "present" when the target route T1 includes a circular route. Fig. 9 is a conceptual diagram for explaining that a constraint violation is "not present" when the target route T1 includes a circular route because an auxiliary condition in the control system according to Modification 2 becomes effective.

[0093] The control system 10 according to the above embodiment and Modification 1 avoids constraint violations that may occur when the target path T1 includes a corner. The control system 10 according to Modification 2 avoids constraint violations that may occur when the target path T1 includes a circular path (or a circular arc path) as shown in FIG.

[0094] In the examples of Figures 8 and 9, the entire target path T1 is a circular path. Point J1 is the center point of the circular target path T1. An allowable error Δe1 is set on the center side of the circle (toward point J1) and on the outside of the circle with respect to the target path T1. The constraint condition in Modification 2 is that the control target point S1 falls within a doughnut-shaped target range R1. A boundary line R10 of the target range R1 shown in Figures 8 and 9 is a line that indicates the allowable error Δe1 on the center side of the circle (toward point J1) with respect to the target path T1.

[0095] FIG. 8 shows an example of a control target point S1 that is considered to violate constraints when the target path T1 includes a circular path. If the MPC observes only the constraints described above, it may perform optimization calculations to trace a linear predicted trajectory, as shown in FIG. 8, so as to efficiently operate the stage 20 and reduce takt time. As a result, as shown in FIG. 8, even if each discretely generated control target point S1 falls within the target range R1, the transient state (transient path) between two consecutive control target points S1 may fall outside the target range R1. This may result in insufficient control accuracy (a problem).

[0096] To solve this problem, the calculation unit 12 (of the control system 10) according to Modification 2 identifies a first line segment L1 connecting two consecutive control target points S1. Furthermore, the calculation unit 12 according to Modification 2 uses a cross product to formulate an auxiliary condition that the first line segment L1 does not intersect with a boundary line R10 inside the target range R1 that is concentric with a circular path (or a circular arc path). Figure 9 shows an example of a control target point S1 that is considered to have "no" constraint violations due to the activation of the auxiliary condition when the target path T1 includes a circular path.

[0097] In the examples of Figures 8 and 9, point J1 is the center point of the circular path (target path T1) and also the center point of the boundary line R10 inside the target range R1, and corresponds to point A in Figures 8 and 9. Point C in Figures 8 and 9 is one of two consecutive control target points S1 (for example, the control target point S1 closer in the direction of travel), and point D in Figures 8 and 9 is the other of the two consecutive control target points S1. The radius of boundary line R10 is "R". Furthermore, the angle of line segment CA with respect to first line segment L1 (line segment CD) is "φ".

[0098] Here, the condition under which the first line segment L1 (line segment CD) intersects with the circle of radius R (boundary line R10) is {|CA|·sinφ<R}. Therefore, the calculation unit 12 of the second modification formulates, as an auxiliary condition, the condition under which the first line segment L1 does not intersect with the boundary line R10, {|CA|·sinφ≧R}.

[0099] The calculation unit 12 of the second modification obtains this |CA|·sinφ from, for example, the following cross product formula.

[0100]

[0101] In the second modification, too, the transient state between the discrete control target points S1 is more likely to fall within the target range R1. As a result, it is possible to avoid the occurrence of constraint violations such as those shown in Figure 8, and it is easier to ensure control accuracy. Note that even when the target path T1 includes only a portion of a circular path (an arc path) such as those shown in Figures 8 and 9, the calculation unit 12 in the second modification can formulate, as an auxiliary condition, the condition {|CA|·sinφ≧R} under which the first line segment L1 and the boundary line R10 do not intersect.

[0102] (4.3) Modification 3 A control system 10 according to Modification 3 will be described below with reference to FIGS.

[0103] In the control system 10 according to the above embodiment, the setting unit 15 sets the auxiliary conditions to be enabled or disabled based on an operation input (from the user) via the operation unit 16. That is, the predetermined condition is that the setting unit 15 sets the auxiliary conditions to be enabled (in response to an operation input from the user). The flowchart in FIG. 6 has described, as an example of the operation of the control system 10 according to the above embodiment, a case in which the auxiliary conditions are always enabled in addition to the constraint conditions in the optimization calculation in response to the enable setting of the setting unit 15.

[0104] In contrast, in the control system 10 according to Modification 3, the predetermined condition is the presence of a change point Q1 (target angle) at which the path shape changes in the target path T1. Fig. 10 is a flowchart for explaining the operation of the control system 10 according to Modification 3. As shown in the flowchart of Fig. 10, the control system 10 according to Modification 3 differs from the control system 10 according to the above embodiment in that, when the target path T1 is not a straight path, that is, when the change point Q1 exists on the target path T1, the control system 10 according to Modification 3 (automatically) validates an auxiliary condition in addition to a constraint condition.

[0105] Specifically, when a change point Q1 exists on the target path T1, the calculation unit 12 (of the control system 10) according to Modification 3 activates the auxiliary condition based on the distance from the change point Q1. For example, when the target path T1 includes a corner as shown in FIG. 4, the calculation unit 12 determines that the change point Q1 (target angle) exists on the target path T1. When the change point Q1 exists, if at least one of two control target points S1 of interest enters within a range of a predetermined linear distance D1 (see FIG. 11) along the X-axis direction from the change point Q1 (in FIG. 11, within a range enclosed by a square whose one side is the length of the distance D1), the calculation unit 12 automatically activates the auxiliary condition. For example, if both of the two control target points S1 of interest pass through the change point Q1 (or move outside the range of the square), the calculation unit 12 automatically activates the auxiliary condition. Note that Figure 11 is a conceptual diagram for explaining an example of the distance from the change point Q1 of the route shape in the control system 10 according to Modification 3, and is a simplified diagram of the target route T1 including the corner shown in Figure 4.

[0106] As another example, as shown in Figure 12, if a change point Q1 exists, and at least one of two control target points S1 of interest enters a range surrounded by a circle whose center is the change point Q1 and whose radius is a distance D1, the calculation unit 12 automatically changes the auxiliary condition from invalid to valid. For example, if both of the two control target points S1 of interest pass through the change point Q1 (or move outside the range of the circle), the calculation unit 12 automatically changes the auxiliary condition from valid to invalid. Note that Figure 12 is a conceptual diagram for explaining another example of the distance from the change point Q1, and, like Figure 11, is a simplified diagram of the target route T1 including a corner shown in Figure 4.

[0107] A series of processing flows related to the operation of the control system 10 according to Modification 3 will be described below with reference to Fig. 10. The flowchart shown in Fig. 10 is merely an example of the operation flow related to the control system 10 according to Modification 3, and the order of processing may be changed as appropriate, and processing may be added or omitted as appropriate.

[0108] The control system 10 acquires target data including a target route T1 from a start point to a destination point within a predetermined motion range of the controlled object 2 from the host PC 5 (step ST11).

[0109] The control system 10 acquires the estimation result (the state of the controlled object 2 estimated based on the control amount) from the state estimation unit 4 (step ST12).

[0110] The control system 10 determines whether the target path T1 is a straight path, i.e., whether the change point Q1 (target angle) is present on the target path T1 (step ST13). If the target path T1 is a straight path (step ST13: Yes), i.e., if the change point Q1 is not present on the target path T1, the control system 10 performs an optimization calculation on the control input corresponding to the prediction interval K1 (prediction horizon) using MPC to generate discrete control target points S1 (step ST14). In this case, in step ST14, the control system 10 generates the control target points S1 so that two consecutive control target points S1 comply only with the constraint conditions (i.e., the auxiliary conditions are invalid).

[0111] On the other hand, if the target path T1 is not a straight path (step ST13: No), that is, if the change point Q1 is present on the target path T1, the control system 10 performs an optimization calculation on the control input corresponding to the prediction interval K1 (prediction horizon) using the MPC to generate discrete control target points S1 (step ST15). However, in step ST15, the control system 10 generates the control target points S1 so that two consecutive control target points S1 comply with the auxiliary condition in addition to the constraint condition (i.e., the auxiliary condition is enabled). In this case, the auxiliary condition can be switched from disabled to enabled based on the distance from the change point Q1, as described above.

[0112] The control system 10 outputs trajectory command data based on the control target point S1 to the operation control unit 3 (step ST16). As a result, the operation control unit 3 performs synchronous control of the X-axis 21 and the Y-axis 22 based on the trajectory command data. For example, steps ST12 to ST16 can be repeatedly executed until the control object 2 reaches the destination point.

[0113] According to the third modification, it is possible to reduce the possibility that the auxiliary conditions will be excessively enabled, thereby increasing the calculation time of the MPC.

[0114] (4.4) Modification 4 A control system 10 according to Modification 4 will now be described with reference to Fig. 13. Fig. 13 is a conceptual diagram for explaining the allowable error Δe1 for the target path T1 in the control system 10 according to Modification 4.

[0115] In the control system 10 according to the above embodiment, as shown in Fig. 4, for a straight path along the X-axis direction in the L-shaped target path T1, an allowable error Δe1 is set on both the positive and negative sides in the Y-axis direction with respect to the straight path. Also, as shown in Fig. 4, for a straight path along the Y-axis direction in the L-shaped target path T1, an allowable error Δe1 is set on both the positive and negative sides in the X-axis direction with respect to the straight path. In the control system 10 according to the above embodiment, the target range R1 is defined by setting such an allowable error Δe1.

[0116] 13, in the control system 10 according to the fourth modification, the target range R1 is defined with the radial distance (for example, 10 μm) from the change point Q1 (target angle) as the allowable error Δe1. In the fourth modification as well, the transient state between the discrete control target points S1 tends to fall within the target range R1.

[0117] (4.5) Modification 5 A control system 10 according to Modification 5 will be described below with reference to Fig. 14. Fig. 14 is a block diagram of the control system 10 according to Modification 5 and its peripheral configuration.

[0118] The control system 10 according to the above embodiment is implemented in a controller 100 (motion controller) between a host PC 5 and a control target 2, as shown in FIG.

[0119] 14 , the control system 10 according to the fifth modification is implemented on a host PC 5 that also has the functions of a controller 100 (motion controller), and the host PC 5 is connected to communicate with a control target 2. The host PC 5 acquires control amount information from the control target 2, estimates the state of the control target 2, and executes optimization calculations using an MPC. The host PC 5 generates trajectory command data based on a control target point S1, and performs synchronous control of the X-axis 21 and the Y-axis 22.

[0120] In the fifth modification, the transient state between the discrete control target points S1 also tends to fall within the target range R1.

[0121] (4.6) Modification 6 A control system 10 according to Modification 6 will now be described with reference to Fig. 15. Fig. 15 is a block diagram of the control system 10 according to Modification 6 and its peripheral configuration.

[0122] The control system 10 according to the above embodiment is implemented in a controller 100 (motion controller) between a host PC 5 and a control target 2, as shown in FIG.

[0123] As shown in FIG. 15 , the control system 10 according to the sixth modification is implemented in an X-axis amplifier A1 of a controlled object 2. The X-axis amplifier A1 also functions as a controller 100 (motion controller). A host 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 a target path T1, from the host PC 5. The X-axis amplifier A1 acquires information on the control amount of the first motor M1 and, via the Y-axis amplifier A2, information on the control amount of the second motor M2, estimates the state of the controlled object 2, and performs optimization calculations using an MPC. The X-axis amplifier A1 generates trajectory command data based on a control target point S1 and outputs a manipulated variable for the X-axis 21 to the first motor M1 and a manipulated variable for the Y-axis 22 to the Y-axis amplifier A2 so as to synchronize the X-axis 21 and the Y-axis 22.

[0124] In Modification 6, the transient state between the discrete control target points S1 also tends to fall within the target range R1. As another example, the control system 10 according to Modification 6 may be implemented in the Y-axis amplifier A2 of the controlled object 2, or multiple functions of the control system 10 may be distributed and implemented in the X-axis amplifier A1 and the Y-axis amplifier A2.

[0125] (4.7) Modification 7 A control system 10 according to Modification 7 will now be described with reference to Fig. 16. Fig. 16 is a block diagram of the control system 10 according to Modification 7 and its peripheral configuration.

[0126] The control system 10 according to the above embodiment is implemented in a controller 100 (motion controller) between a host PC 5 and a control target 2, as shown in FIG. 1, and the controller 100 includes an operation control unit 3 and a state estimation unit 4.

[0127] 16, the control system 10 according to the seventh modification is implemented in a host PC 5 that also has the functions of a controller 100 (motion controller), and the host PC 5 is connected to communicate with the control target 2 (this is similar to the above-described fifth modification shown in FIG. 14). However, in the seventh modification, unlike the above-described embodiment and the fifth modification, as shown in FIG. 16, the X-axis amplifier A1 and the Y-axis amplifier A2 of the control target 2 each include an operation control unit 3 and a state estimating unit 4.

[0128] The state estimation unit 4 of each of the X-axis amplifier A1 and the Y-axis amplifier A2 estimates the state of its corresponding axis, and each amplifier uses the estimation result for feedback control. Each amplifier also transmits the estimation result by the state estimation unit 4 to the host PC 5.

[0129] The host PC 5 receives the estimation results for the states of the corresponding axes from each of the X-axis amplifier A1 and the Y-axis amplifier A2 and performs optimization calculations using the MPC. The host PC 5 generates trajectory command data based on the control target point S1 and outputs it to each of the X-axis amplifier A1 and the Y-axis amplifier A2. The operation control units 3 of each of the X-axis amplifier A1 and the Y-axis amplifier A2 perform feedback control based on the received trajectory command data and the estimation results for the states of the corresponding axes. As a result, synchronous control of the X-axis amplifier A1 and the Y-axis amplifier A2 is performed.

[0130] In Modification 7 as well, the transient state between the discrete control target points S1 tends to fall within the target range R1. As another example, the control system 10 according to Modification 7 may be implemented in the controller 100 (motion controller) between the host PC 5 and the control target 2, similar to the control system 10 according to the above embodiment.

[0131] (4.8) Other Modifications Functions similar to those of the control system 10 according to the above embodiment may be embodied as a control method, a computer program, or a non-transitory recording medium on which a computer program is recorded.

[0132] The control system 10 of the present disclosure includes a computer system. The computer system is primarily composed of a processor and memory as hardware. The processor executes a program stored in the memory of the computer system to realize the functions of the control system 10 of the present disclosure. The program may be pre-recorded in the memory of the computer system, provided via a telecommunications line, or provided on a non-transitory recording medium readable by the computer system, such as a memory card, optical disk, or hard disk drive. The processor of the computer system is composed of one or more electronic circuits including a semiconductor integrated circuit (IC) or a large-scale integrated circuit (LSI). The integrated circuits, such as ICs and LSIs, are referred to by different names depending on the degree of integration, and include integrated circuits called system LSIs, very large-scale integrations (VLSIs), or ultra-large-scale integrations (ULSIs). Furthermore, field-programmable gate arrays (FPGAs), which are programmed after the LSI is manufactured, or logic devices that allow the reconfiguration of internal connections or internal circuit partitions of the LSI, can also be used as processors. The electronic circuits may be integrated into one chip or distributed across multiple chips. The chips may be integrated into one 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 is also composed of one or more electronic circuits including a semiconductor integrated circuit or a large-scale integrated circuit.

[0133] Furthermore, it is not essential that the multiple functions of the control system 10 be concentrated in one housing. For example, the components of the control system 10 may be distributed across multiple housings.

[0134] Conversely, multiple functions of the control system 10 may be integrated into one 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 realized by the cloud (cloud computing) or the like.

[0135] In the above embodiment, the control object 2 is a two-axis processing machine with an X axis and a Y axis. However, the control object 2 is not limited to "two axes" and may be, for example, a three-axis processing machine with an X axis, a Y axis, and a Z axis, or a four-axis or five-axis processing machine. Furthermore, the processing machine is not limited to a "stage." For example, the control object 2 may be an articulated robot. Specifically, the control object 2 may be an arm-type vertical articulated robot. The control object 2 is not limited to machine tools such as processing machines and may be a coating device. The control object 2 may also be a control object with another drive system. The control object 2 may be, for example, equipment such as a conveying device, or a mobile object such as an automobile, an aircraft, a drone, or a self-propelled vacuum cleaner.

[0136] In the above embodiment and Modification 3, the change point Q1 at which the path shape changes in the target path T1 is a target angle (corner). Furthermore, in Modification 3, it has been described that the calculation unit 12 automatically activates the auxiliary condition when a change point Q1 that is a target angle (corner) exists. On the other hand, for example, even when the target path T1 includes a circular path (or a circular arc path) as in Modification 2, the calculation unit 12 may determine that an infinite number of change points Q1 exist. In the case of a circular path (or a circular arc path), the calculation unit 12 may also automatically activate the auxiliary condition.

[0137] (Summary) The above-described embodiments and the like disclose the following aspects.

[0138] A control system (10) according to a first aspect generates commands related to the operation control of a controlled object (2). The control system (10) includes a control unit (11) and a calculation unit (12). The control unit (11) executes an optimization calculation using model predictive control and discretely generates control target points (S1) that serve as commands corresponding to each time point for the controlled object (2) so as to satisfy constraint conditions. The calculation unit (12) formulates auxiliary conditions that are enabled under predetermined conditions in addition to the constraint conditions in the optimization calculation. The constraint condition is that the control target point (S1) falls within a target range (R1) that includes an allowable error (Δe1) with respect to a target path (T1) of the controlled object (2). The auxiliary condition is that a transient state between two consecutive control target points (S1) falls within the target range (R1).

[0139] According to the above aspect, it is possible to avoid the occurrence of constraint violations between discrete control target points (S1).

[0140] Regarding the control system (10) according to the second aspect, in the first aspect, the target path (T1) includes a corner. The calculation unit (12) identifies a first line segment (L1) connecting two consecutive control target points (S1) and identifies a second line segment (L2) connecting a first point (P1) and a second point (P2) on a boundary line (R10) of the target range (R1). The calculation unit (12) uses a cross product to formulate an auxiliary condition for the first line segment (L1) and the second line segment (L2) not to intersect. The first point (P1) is set before the corner. The second point (P2) is set at the corner.

[0141] According to the above aspect, when the target path (T1) includes a corner, it is possible to avoid a constraint violation occurring between discrete control target points (S1).

[0142] Regarding the control system (10) according to the third aspect, in the first aspect, the target path (T1) includes a corner. The calculation unit (12) identifies a first line segment (L1) connecting two consecutive control target points (S1) and identifies a third line segment (L3) connecting a third point (P3) and a fourth point (P4). The calculation unit (12) uses a cross product to formulate an auxiliary condition that the third line segment (L3) is located closer to the corner than the first line segment (L1). The third point (P3) is set at one of the control target points (S1) that make up the first line segment (L1). The fourth point (P4) is set at a corner on a boundary line (R10) of the target range (R1).

[0143] According to the above aspect, when the target path (T1) includes a corner, it is possible to avoid a constraint violation occurring between discrete control target points (S1).

[0144] In the first aspect of the control system (10) according to the fourth aspect, the target path (T1) includes a circular path or a circular arc path. The calculation unit (12) identifies a first line segment (L1) connecting two consecutive control target points (S1). The calculation unit (12) uses a cross product to formulate an auxiliary condition that the first line segment (L1) does not intersect with an inner boundary line (R10) of a target range (R1) that is concentric with the circular path or the circular arc path.

[0145] According to the above aspect, when the target path (T1) includes a circular path or a circular arc path, it is possible to avoid the occurrence of constraint violations between discrete control target points (S1).

[0146] In the control system (10) according to the fifth aspect, in any one of the first to fourth aspects, the predetermined condition is that a change point (Q1) at which a path shape changes is present in the target path (T1). If the change point (Q1) is present in the target path (T1), the calculation unit (12) activates the auxiliary condition based on the distance from the change point (Q1).

[0147] According to the above aspect, it is possible to reduce the possibility that the auxiliary conditions become excessively effective.

[0148] The control system (10) according to the sixth aspect, in any one of the first to fifth aspects, further includes a setting unit (15) that sets the enable / disable of auxiliary conditions on the target route (T1) in response to an operation input to the operation unit (16).

[0149] According to the above aspect, user convenience is improved and the possibility that an excessive auxiliary condition will be enabled can be reduced.

[0150] A control method according to a seventh aspect is applied to a control system (10) that generates commands related to operational control of a controlled object (2). The control method includes a control step and a calculation step. In the control step, an optimization calculation is performed using model predictive control to discretely generate control target points (S1) that serve as commands corresponding to each time point for the controlled object (2) so as to satisfy constraint conditions. In the calculation step, auxiliary conditions that are enabled under predetermined conditions in addition to the constraint conditions in the optimization calculation are formulated. The constraint condition is that the control target point (S1) falls within a target range (R1) that includes an allowable error (Δe1) with respect to a target path (T1) of the controlled object (2). The auxiliary condition is that a transient state between two consecutive control target points (S1) falls within the target range (R1).

[0151] According to the above aspect, it is possible to provide a control method that avoids the occurrence of constraint violations between discrete control target points (S1).

[0152] A program according to an eighth aspect is a program for causing one or more processors to execute the control method according to the seventh aspect.

[0153] According to the above aspect, it is possible to provide a function for avoiding constraint violations between discrete control target points (S1).

[0154] The configurations according to the second to sixth aspects are not essential for the control system (10) of the first aspect, and can be omitted as appropriate.

[0155] The control system, control method, and program disclosed herein can avoid constraint violations between discrete control target points, and are thus industrially useful.

[0156] REFERENCE SIGNS LIST 10 Control system 11 Control unit 12 Calculation unit 15 Setting unit 16 Operation unit 2 Control object L1 First line segment L2 Second line segment L3 Third line segment P1 First point P2 Second point P3 Third point P4 Fourth point Q1 Change point R1 Target range R10 Boundary line S1 Control target point T1 Target path Δe1 Allowable error

Claims

1. A control system that generates commands related to the operation control of a controlled object, comprising: a control unit that executes an optimization calculation using model predictive control and discretely generates control target points that become the commands corresponding to each time point so as to satisfy constraint conditions for the controlled object; and a calculation unit that formulates auxiliary conditions that are enabled under predetermined conditions in addition to the constraint conditions in the optimization calculation, wherein the constraint conditions are that the control target points fall within a target range that includes an allowable error for a target path of the controlled object, and the auxiliary condition is that the transient state between two consecutive control target points falls within the target range.

2. The control system of claim 1, wherein the target path includes a corner, and the calculation unit: identifies a first line segment connecting two consecutive control target points; identifies a second line segment connecting a first point and a second point on the boundary line of the target range; uses a cross product to formulate the auxiliary condition that the first line segment and the second line segment do not intersect; the first point is set before the corner; and the second point is set at the corner.

3. The control system of claim 1, wherein the target path includes a corner, and the calculation unit: identifies a first line segment connecting two consecutive control target points; identifies a third line segment connecting a third point and a fourth point; uses a cross product to formulate the auxiliary condition in which the third line segment is located more inside the corner than the first line segment; the third point is set to one of the control target points that make up the first line segment; and the fourth point is set to the corner on the boundary line of the target range.

4. The control system of claim 1, wherein the target path includes a circular path or a circular arc path, and the calculation unit identifies a first line segment connecting two consecutive control target points, and uses a cross product to formulate the auxiliary condition that the first line segment does not intersect with an inner boundary line of the target range that is concentric with the circular path or the circular arc path.

5. A control system according to any one of claims 1 to 4, wherein the predetermined condition is that a change point at which the route shape changes exists on the target route, and when the change point exists on the target route, the calculation unit activates the auxiliary condition based on the distance from the change point.

6. The control system according to any one of claims 1 to 5, further comprising a setting unit that sets the auxiliary conditions for the target route to be enabled or disabled in response to an operation input to an operation unit.

7. A control method applied to a control system that generates commands related to the operation control of a controlled object, comprising: a control step of performing an optimization calculation using model predictive control and discretely generating control target points that become the commands corresponding to each time point so as to satisfy constraint conditions for the controlled object; and a calculation step of formulating auxiliary conditions that are enabled under predetermined conditions in addition to the constraint conditions in the optimization calculation, wherein the constraint conditions are that the control target points fall within a target range that includes an allowable error for the target path of the controlled object, and the auxiliary condition is that the transient state between two consecutive control target points falls within the target range.

8. A program for causing one or more processors to execute the control method according to claim 7.

Citation Information

Patent Citations

  • A system equipped with a support control device for assisting system operators, a control operation support device, a control operation support method, a driving operation support device, and a driving operation support method.

    JP2012504269A

  • Mobile body control method, mobile body control device, and mobile body

    WO2022044470A1