IP Library Granted Patent US 8,600,525
Granted Patent B1
US 8,600,525 · App. 13/485,594 · Granted Dec 3, 2013

Efficient quadratic programming (QP) solver for process control and optimization

Inventors: Ghulam Mustafa (Edmonton, CA); Jiadong Wang (Edmonton, CA); Tongwen Chen (Edmonton, CA); Danlei Chu (North Vancouver, CA); Johan U. Backstrom (North Vancouver, CA)
Assignee: Honeywell ASCa Inc.
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 8,600,525
App. No.
13/485,594
Granted
Dec 3, 2013
Kind
B1
Abstract

A method includes identifying an initial solution to a quadratic programming (QP) problem associated with a process. The method also includes performing an iterative procedure having one or more iterations. Each iteration includes determining whether any constraint associated with the process is violated in the solution. Each iteration also includes selecting a violated constraint, determining a step direction and a step length associated with the selected violated constraint, and updating the solution based on the step direction and the step length. Determining the step direction and the step length includes using a Schur complement based on an active set of constraints associated with the solution. The Schur complement is nonsingular during all iterations of the iterative procedure except when the active set is empty.

Claims (71)

1. A method comprising:

identifying an initial solution to a quadratic programming (QP) problem associated with a process; and

using at least one processing device to perform an iterative procedure comprising one or more iterations, wherein each iteration comprises:

determining whether any constraint associated with the process is violated in the solution; and

if so, selecting a violated constraint, determining a step direction and a step length associated with the selected violated constraint, and updating the solution based on the step direction and the step length;

wherein determining the step direction and the step length comprises using a Schur complement based on an active set of constraints associated with the solution; and

wherein the Schur complement is nonsingular during all iterations of the iterative procedure except when the active set is empty.

2. The method of claim 1 , wherein:

determining the step direction and the step length comprises identifying full and partial step lengths; and

updating the solution comprises updating the solution using the full and partial step lengths.

3. The method of claim 2 , wherein updating the solution comprises:

adding the selected violated constraint to the active set and initiating another iteration of the iterative procedure.

4. The method of claim 2 , wherein updating the solution comprises:

dropping at least one constraint from the active set, the selected violated constraint linearly dependent on the at least one dropped constraint.

5. The method of claim 1 , further comprising:

determining if at least one matrix associated with the process is sparse; and

processing the at least one matrix based on the determination.

6. The method of claim 5 , wherein:

determining if the at least one matrix is sparse comprises determining whether a Hessian matrix associated with the process is sparse; and

processing the at least one matrix based on the determination comprises:

applying a Cholesky factorization to the Hessian matrix when the Hessian matrix is not sparse; and

applying no factorization to the Hessian matrix when the Hessian matrix is sparse.

7. The method of claim 1 , wherein all constraints associated with the process are expressed as inequalities.

8. The method of claim 1 , wherein identifying the initial solution comprises using a solution to a prior QP problem as the initial solution.

9. The method of claim 1 , further comprising:

controlling or optimizing the process using the solution to the QP problem.

10. The method of claim 1 , further comprising:

ending the iterative procedure upon a determination that no constraints associated with the process are violated in the solution.

11. The method of claim 1 , wherein:

the process is associated with a sheet manufacturing or processing system; and

the method further comprises controlling or optimizing the sheet manufacturing or processing system using the solution to the QP problem.

12. An apparatus comprising:

at least one memory configured to store an initial solution to a quadratic programming (QP) problem associated with a process; and

at least one processing device configured to perform an iterative procedure comprising one or more iterations, wherein during each iteration the at least one processing device is configured to:

determine whether any constraint associated with the process is violated in the solution; and

if so, select a violated constraint, determine a step direction and a step length associated with the selected violated constraint, and update the solution based on the step direction and the step length;

wherein the at least one processing device is configured to determine the step direction and the step length using a Schur complement based on an active set of constraints associated with the solution; and

wherein the Schur complement is nonsingular during all iterations of the iterative procedure except when the active set is empty.

13. The apparatus of claim 12 , wherein:

the at least one processing device is configured to determine the step direction and the step length by identifying full and partial step lengths; and

the at least one processing device is configured to update the solution using the full and partial step lengths.

14. The apparatus of claim 12 , wherein the at least one processing device is further configured to:

determine if at least one matrix associated with the process is sparse; and

process the at least one matrix based on the determination.

15. The apparatus of claim 14 , wherein:

the at least one processing device is configured to determine if the at least one matrix is sparse by determining whether a Hessian matrix associated with the process is sparse; and

the at least one processing device is configured to process the at least one matrix based on the determination by:

applying a Cholesky factorization to the Hessian matrix when the Hessian matrix is not sparse; and

applying no factorization to the Hessian matrix when the Hessian matrix is sparse.

16. The apparatus of claim 12 , wherein the at least one processing device is configured to identify the initial solution by using a solution to a prior QP problem as the initial solution.

17. The apparatus of claim 12 , wherein:

the process is associated with a sheet manufacturing or processing system; and

the at least one processing device is further configured to control or optimize the sheet manufacturing or processing system using the solution to the QP problem.

18. A non-transitory computer readable storage medium embodying a computer program, the computer program comprising computer readable program code for:

identifying an initial solution to a quadratic programming (QP) problem associated with a process; and

performing an iterative procedure comprising one or more iterations, wherein each iteration comprises:

determining whether any constraint associated with the process is violated in the solution; and

if so, selecting a violated constraint, determining a step direction and a step length associated with the selected violated constraint, and updating the solution based on the step direction and the step length;

wherein the computer readable program code for determining the step direction and the step length comprises computer readable program code for using a Schur complement based on an active set of constraints associated with the solution; and

wherein the Schur complement is nonsingular during all iterations of the iterative procedure except when the active set is empty.

19. The computer readable storage medium of claim 18 , wherein:

the computer readable program code for determining the step direction and the step length comprises computer readable program code for identifying full and partial step lengths; and

the computer readable program code for updating the solution comprises computer readable program code for updating the solution using the full and partial step lengths.

20. The computer readable storage medium of claim 18 , wherein the computer program further comprises:

computer readable program code for determining if at least one matrix associated with the process is sparse; and

computer readable program code for processing the at least one matrix based on the determination.

21. The computer readable storage medium of claim 18 , wherein all constraints associated with the process are expressed as inequalities.

22. The computer readable storage medium of claim 18 , wherein the computer readable program code for identifying the initial solution comprises computer readable program code for using a solution to a prior QP problem as the initial solution.

23. The computer readable storage medium of claim 18 , wherein:

the process is associated with a sheet manufacturing or processing system; and

the computer program further comprises computer readable program code for controlling or optimizing the sheet manufacturing or processing system using the solution to the QP problem.

Assignments (2)
CHANGE OF NAME Recorded Jul 12, 2016
From: HONEYWELL ASCA INC.
To: HONEYWELL LIMITED
Reel/Frame 039309/0806 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 31, 2012
From: MUSTAFA, GHULAM; WANG, JIADONG; CHEN, TONGWEN; CHU, DANLEI; BACKSTROM, JOHAN U.
To: HONEYWELL ASCA INC.
Reel/Frame 028299/0472 →