IP Library Granted Patent US 10,908,563
Granted Patent B2
US 10,908,563 · App. 16/201,565 · Granted Feb 2, 2021

Adaptive mixed integer nonlinear programming for process management

Inventors: Rajkumar Vedam (Katy, TX); Detong Zhang (Houston, TX); Purt Tanartkit (Yorba Linda, CA); Gareth Hillier (Houston, TX); Sanjay Desai (The Woodlands, TX); John C. Hernandez (Katy, TX)
Assignee: AVEVA SOFTWARE, LLC
G05B13/041G06F17/11
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,908,563
App. No.
16/201,565
Granted
Feb 2, 2021
Kind
B2
Abstract

Real-time dynamic process modeling in an online model-based process control computing environment. A solver system utilizes an oracle to implement adaptive algorithms for a mixed integer nonlinear programming (MINLP) solver and a nonlinear programming (NLP) solver.

Claims (82)

1. A system, comprising:

one or more sensors configured to provide current state data representing a current state of each of a plurality of process units; and

a control system configured to receive the current state data and configured to generate an operating state of each of a plurality of process units based thereon, the control system comprising a processor executing computer-executable instructions, the instructions configured to implement:

a plurality of model components implementing at least one first-principle equation, wherein the first-principle equation represents at least one of the process units, and wherein one or more of the plurality of model components comprise a group;

a plurality of switch components each comprising a corresponding one of the plurality of model components and each implementing a mixed integer nonlinear programming (MINLP) behavior of the corresponding model component;

a MINLP solver component configured to specify a switching state from a plurality of switching states, the switching states each corresponding to an operational status of the plurality of model components; and

an oracle component configured to provide an infeasibility indication to the MINLP solver component as a function of the demands for indicating whether the specified switching state is infeasible; and

a nonlinear programming (NLP) solver component configured to generate the operating state of each of a plurality of process units,

wherein the operating state is optimized in accordance with one or more constraints in response to receiving an indication from the oracle component that the specified switching state is feasible.

2. The system of claim 1 ,

wherein the oracle component is further configured to:

compute a non-MINLP feasibility of one or more non-MINLP process units of the plurality of process units;

compute a MINLP non-generator feasibility of one or more MINLP non-generator process units of the plurality of process units and the non-MINLP feasibility; and

compute a MINLP generator feasibility of one or more MINLP generator process units of the plurality of process units and the MINLP non-generator feasibility, wherein the infeasibility indication is based on the non-MINLP feasibility, the MINLP non-generator feasibility, and the MINLP generator feasibility.

3. The system of claim 2 ,

wherein the oracle component is further configured to provide an infeasible indication when the non-MINLP feasibility is greater than zero,

wherein the oracle component is further configured to provide the infeasible indication when the MINLP non-generator feasibility is less than zero, and

wherein the oracle component is further configured to provide the infeasible indication when the MINLP generator feasibility is one of zero and greater than zero.

4. The system of claim 2 ,

wherein the plurality of process units include a shaft, and wherein a demand at the shaft is fixed.

5. The system of claim 2 ,

wherein the plurality of process units include a shaft,

wherein a demand at the shaft is variable within a lower limit and an upper limit,

wherein the oracle component is further configured to compute the MINLP non-generator feasibility based at least in part on the upper limit, and

wherein the oracle component is further configured to compute the MINLP generator feasibility based at least in part on the lower limit.

6. The system of claim 2 ,

wherein the plurality of process units includes a stream,

wherein a source supplying the stream is variable within a lower limit and an upper limit,

wherein the oracle component is further configured to compute the non-MINLP feasibility based at least in part on a load at a sink of the stream,

wherein the oracle component is further configured to compute the MINLP non-generator feasibility based at least in part on the upper limit, and

wherein the oracle component is further configured to compute the MINLP generator feasibility based at least in part on the lower limit.

7. The system of claim 1 ,

wherein the oracle component is further configured to generate and maintain a list of infeasible switching states, and wherein the infeasibility indication is based at least in part on the list.

8. The system of claim 1 ,

wherein the oracle component is further configured to group one or more of the plurality of model components into the group,

wherein each model component of the group does not contradict any other model component of the group, and

wherein the infeasibility indication is based at least in part on the group.

9. The system of claim 1 ,

wherein the oracle component is further configured to determine whether a cost of the specified switching state is greater than a cost of the current state, and

wherein the infeasibility indication is based at least in part on the determination.

10. A system, comprising:

one or more sensors configured to provide current state data representing a current state of each of a plurality of process units; and

a control system configured to receive the current state data and configured to generate an operating state of each of a plurality of process units based thereon, the control system comprising a processor executing computer-executable instructions, the instructions configured to implement:

a plurality of model components implementing at least one first-principle equation, wherein the first-principle equation represents at least one of the process units, and wherein one or more of the plurality of model components comprise a group;

a plurality of switch components each comprising a corresponding one of the plurality of model components and each implementing a mixed integer nonlinear programming (MINLP) behavior of the corresponding model component;

a MINLP solver component configured to specify a switching state from a plurality of switching states, the switching states each corresponding to an operational status of the plurality of model components; and

an oracle component configured to:

provide an infeasibility indication to the MINLP solver component as a function of the demands for indicating whether the specified switching state is infeasible,

compute a non-MINLP feasibility of one or more non-MINLP process units of the plurality of process units,

compute a MINLP non-generator feasibility of one or more MINLP non-generator process units of the plurality of process units and the non-MINLP feasibility, and

compute a MINLP generator feasibility of one or more MINLP generator process units of the plurality of process units and the MINLP non-generator feasibility, wherein the infeasibility indication is based on the non-MINLP feasibility, the MINLP non-generator feasibility, and the MINLP generator feasibility;

wherein the plurality of process units includes a stream,

wherein a source supplying the stream is variable within a lower limit and an upper limit,

wherein the oracle component is further configured to compute the non-MINLP feasibility based at least in part on a load at a sink of the stream,

wherein the oracle component is further configured to compute the MINLP non-generator feasibility based at least in part on the upper limit, and

wherein the oracle component is further configured to compute the MINLP generator feasibility based at least in part on the lower limit.

11. The system of claim 10 ,

wherein the oracle component is further configured to provide an infeasible indication when the non-MINLP feasibility is greater than zero,

wherein the oracle component is further configured to provide the infeasible indication when the MINLP non-generator feasibility is less than zero, and

wherein the oracle component is further configured to provide the infeasible indication when the MINLP generator feasibility is one of zero and greater than zero.

12. The system of claim 10 ,

wherein the oracle component is further configured to provide an infeasible indication when the non-MINLP feasibility is greater than zero,

wherein the oracle component is further configured to provide the infeasible indication when the MINLP non-generator feasibility is less than zero, and

wherein the oracle component is further configured to provide the infeasible indication when the MINLP generator feasibility is one of zero and greater than zero.

13. The system of claim 10 ,

wherein the plurality of process units include a shaft, and

wherein a demand at the shaft is fixed.

14. The system of claim 10 ,

wherein the plurality of process units include a shaft,

wherein a demand at the shaft is variable within a lower limit and an upper limit,

wherein the oracle component is further configured to compute the MINLP non-generator feasibility based at least in part on the upper limit, and

wherein the oracle component is further configured to compute the MINLP generator feasibility based at least in part on the lower limit.

15. The system of claim 10 ,

wherein the oracle component is further configured to generate and maintain a list of infeasible switching states, and

wherein the infeasibility indication is based at least in part on the list.

16. The system of claim 10 ,

wherein the oracle component is further configured to group one or more of the plurality of model components into the group,

wherein each model component of the group does not contradict any other model component of the group, and

wherein the infeasibility indication is based at least in part on the group.

17. The system of claim 10 ,

wherein the oracle component is further configured to determine whether a cost of the specified switching state is greater than a cost of the current state, and

wherein the infeasibility indication is based at least in part on the determination.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 5, 2021
From: VEDAM, RAJKUMAR; ZHANG, DETONG; TANARTKIT, PURT; HILLIER, GARETH; DESAI, SANJAY; HERNANDEZ, JOHN C.
To: INVENSYS SYSTEMS INC.
Reel/Frame 054810/0916 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 5, 2021
From: INVENSYS SYSTEMS, INC.
To: SCHNEIDER ELECTRIC SOFTWARE, LLC
Reel/Frame 054811/0314 →
CHANGE OF NAME Recorded Jan 5, 2021
From: SCHNEIDER ELECTRIC SOFTWARE, LLC
To: AVEVA SOFTWARE, LLC
Reel/Frame 054899/0507 →
Continuity (2)
Continuation 14984786 · Dec 30, 2015
Related Publication 20190332070A1 · Oct 31, 2019