# US 10,871,752 B2 · Sequential deterministic optimization based control system and method

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 10,871,752 B2
- Document ID: US10871752B2
- Status: Granted
- Kind: B2
- Application number: 16/394,756
- Filed: 2019-04-25
- Published: 2019-08-15
- Granted: 2020-12-22
- Earliest claimed: 2013-03-15
- Assignees: Rockwell Automation Technologies, Inc.
- Applicants: Rockwell Automation Technologies, Inc.
- Inventors: Jan Kolinsky; Jiri Hanzlik; Petr Horacek; Bijan Sayyarrodsari
- Web page: https://patentgrep.com/patent/US10871752B2

## CPC

- G05B 13/047: {the criterion being a time optimal performance criterion}
- G06F 16/90335: {Query processing}
- G06F 17/11: for solving equations {, e.g. nonlinear equations, general mathematical optimization problems (optimization specially adapted for a specific administrative, business or logistic context G06Q10/04)}
- G05B: CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS (systems for controlling or regulating non-electric variables G05D; systems for regulating electric or magnetic variables G05F; control devices or systems insofar as characterised by mechanical features only G05G)
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

The embodiments described herein include one embodiment that a control method including executing an infeasible search algorithm during a first portion of a predetermined sample period to search for a feasible control trajectory of a plurality of variables of a controlled process, executing a feasible search algorithm during a second portion of the predetermined sample period to determine the feasible control trajectory if the infeasible search algorithm does not determine a feasible control trajectory, and controlling the controlled process by application of the feasible control trajectory.

## Claims

### Claim 1

A method of controlling operation of one or more actuators to facilitate performance of an industrial automation process, comprising:
performing, using a control system, an infeasible search starting at a first point outside a feasible region during a first portion of a predetermined sample period based at least in part on one or more sensor samples indicative of a state of the industrial automation process to determine a first control trajectory of a plurality of input variables of the industrial automation process;
performing, using the control system, a feasible search starting at a second point inside the feasible region during a second portion of the predetermined sample period based at least in part on the one or more sensor samples indicative of the state of the industrial automation process to determine a second control trajectory of the input variables of the industrial automation process in response to determining that the first control trajectory is not feasible; and
controlling, using the control system, performance of the industrial automation process at least in part by:
instructing the one or more actuators to perform a first control action determined based on the first control trajectory in response to determining that the first control trajectory is feasible; and
instructing the one or more actuators to perform a second control action determined based on the second control trajectory in response to determining that the first control trajectory is not feasible.

### Claim 2 (depends on 1)

The method of claim 1, wherein:
performing the infeasible search comprises solving a constrained quadratic programming problem of an optimization-based control algorithm; and
performing the feasible search comprises solving the constrained quadratic programming problem.

### Claim 3 (depends on 2)

The method of claim 2, wherein:
performing the infeasible search comprises executing a dual active set solver algorithm to solve the constrained quadratic programming problem; and
performing the feasible search comprises executing a primal active set solver algorithm to solve the constrained quadratic programming problem.

### Claim 4 (depends on 1)

The method of claim 1, comprising determining, using the control system, whether the first control trajectory is feasible based at least in part on constraints on performance of the industrial automation process.

### Claim 5 (depends on 1)

The method of claim 1, wherein the feasible region comprises points that meet each constraint on performance of the industrial automation process.

### Claim 6 (depends on 1)

The method of claim 1, wherein:
the first point violates one or more constraints on performance of the industrial automation process; and
the second point meets each of the one or more constraints on performance of the industrial automation process.

### Claim 7 (depends on 1)

The method of claim 1, comprising determining the second point based at least in part on the first control trajectory in response to determining that the first control trajectory is not feasible.

### Claim 8 (depends on 1)

The method of claim 1, comprising, in response to determining that the first control trajectory is not feasible:
determining, using the control system, a first stabilizing control trajectory by projecting the first control trajectory into the feasible region, wherein the first stabilizing control trajectory comprises a point in the feasible region closest to the first control trajectory;
determining, using the control system, a second stabilizing control trajectory by shifting and padding a third control trajectory determined in a previous sample period;
determining, using the control system, a first cost associated with the first stabilizing control trajectory and a second cost associated with the second stabilizing control trajectory based at least in part on an objective function;
selecting, using the control system, the first stabilizing control trajectory as the second point used to initiate the feasible search in response to determining that the first cost is lower than the second cost; and
selecting, using the control system, the second stabilizing control trajectory as the second point used to initiate the feasible search in response to determining that the second cost is lower than the first cost.

### Claim 9 (depends on 1)

The method of claim 1, wherein the one or more actuators are deployed in an industrial automation plant.

### Claim 10

A control system configured to control operation of one or more actuators to facilitate performance of an industrial automation process, wherein the control system comprises:
memory configured to store executable code; and
processing circuitry communicatively coupled to the memory, wherein the processing circuitry is configured to execute the executable code to:
perform an infeasible search initiated from a first point outside a feasible region during a first portion of a predetermined sample period based at least in part on one or more sensor samples indicative of a state of the industrial automation process to determine a first control trajectory of a plurality of input variables of the industrial automation process;
perform a feasible search initiated from a second point inside the feasible region during a second portion of the predetermined sample period based at least in part on the one or more sensor samples indicative of the state of the industrial automation process to determine a second control trajectory of the plurality of input variables of the industrial automation process when the first control trajectory is not feasible; and
control performance of the industrial automation process at least in part by:
instructing the one or more actuators to perform a first control action determined based on the first control trajectory when the first control trajectory is feasible; and
instructing the one or more actuators to perform a second control action determined based on the second control trajectory when the first control trajectory is not feasible.

### Claim 11 (depends on 10)

The control system of claim 10, wherein the processing circuitry comprises a multi-core processor, wherein:
a first core of the multi-core processor is configured to perform the infeasible search, the feasible search, or both; and
a second core of the multi-core processor is configured to control performance of the industrial automation process.

### Claim 12 (depends on 10)

The control system of claim 10, wherein the processing circuitry comprises a multi-core processor, wherein:
a first core of the multi-core processor is configured to perform the infeasible search; and
a second core of the multi-core processor is configured to perform the feasible search.

### Claim 13 (depends on 10)

The control system of claim 10, wherein, when the first control trajectory is not feasible, the processing circuitry is configured to execute the executable code to:
determine a first stabilizing control trajectory by projecting the first control trajectory into the feasible region;
determine a second stabilizing control trajectory by shifting and padding a third control trajectory determined in a previous sample period; and
determine a first cost associated with the first stabilizing control trajectory and a second cost associated with the second stabilizing control trajectory based at least in part on an objective function;
select the first stabilizing control trajectory as the second point used to initiate the feasible search when the first cost is lower than the second cost; and
select the second stabilizing control trajectory as the second point used to initiate the feasible search when the second cost is lower than the first cost.

### Claim 14 (depends on 10)

The control system of claim 10, wherein the processing circuitry is configured to execute the executable code to determine that the first control trajectory is feasible when each control action of the first control trajectory meets each constraint on performance of the industrial automation process.

### Claim 15 (depends on 10)

The control system of claim 10, wherein the feasible region comprises control trajectories that satisfy each constraint on performance of the industrial automation process.

### Claim 16 (depends on 10)

The control system of claim 10, wherein the processing circuitry is configured to execute the executable code to determine the second point based at least in part on the first control trajectory when the first control trajectory is not feasible.

### Claim 17

A tangible, non-transitory, machine-readable medium storing instructions executable by processing circuitry of a control system, wherein the instructions comprise instructions to:
perform, using the processing circuitry, an infeasible search initiated from a first point outside a feasible region during a first portion of a predetermined sample period based at least in part on one or more sensor samples indicative of a state of an industrial automation process being controlled by the control system to determine a first control trajectory of a plurality of input variables of the industrial automation process;
perform, using the processing circuitry, a feasible search initiated from a second point inside the feasible region during a second portion of the predetermined sample period based at least in part on the one or more sensor samples indicative of the state of the industrial automation process to determine a second control trajectory of the plurality of input variables of the industrial automation process when the first control trajectory is not feasible; and
control, using the processing circuitry, performance of the industrial automation process at least in part by:
instructing one or more actuators to perform a first control action determined based on the first control trajectory when the first control trajectory is feasible; and
instructing the one or more actuators to perform a second control action determined based on the second control trajectory when the first control trajectory is not feasible.

### Claim 18 (depends on 17)

The tangible, non-transitory, machine-readable medium of claim 17, comprising instructions to, when the first control trajectory is not feasible:
determine, using the processing circuitry, a first stabilizing control trajectory by projecting the first control trajectory from an infeasible region to the feasible region;
determine, using the processing circuitry, a second stabilizing control trajectory by shifting and padding a third control trajectory determined in a previous sample period;
determine, using the processing circuitry, a first cost associated with the first stabilizing control trajectory and a second cost associated with the second stabilizing control trajectory based at least in part on an objective function;
select, using the processing circuitry, the first stabilizing control trajectory as the second point used to initiate the feasible search when the first cost is lower than the second cost; and
select, using the processing circuitry, the second stabilizing control trajectory as the second point used to initiate the feasible search when the second cost is lower than the first cost.

### Claim 19 (depends on 18)

The tangible, non-transitory, machine-readable medium of claim 18, wherein:
the infeasible region comprises a first plurality of points that each violates one or more constraints on performance of the industrial automation process, wherein the first plurality of points comprises the first point; and
the feasible region comprises a second plurality of points that each satisfies each of the one or more constraints on performance of the industrial automation process, wherein the second plurality of points comprises the second point.

### Claim 20 (depends on 17)

The tangible, non-transitory, machine-readable medium of claim 17, comprising instructions to determine whether the first control trajectory is feasible by determining whether each control action of the first control trajectory meets each constraint on performance of the industrial automation process.
