IP Library Granted Patent US 11,894,680
Granted Patent B2
US 11,894,680 · App. 16/355,574 · Granted Feb 6, 2024

Integrated solution techniques for security constrained unit commitment problem

Inventors: Feng Pan (Sugarland, TX); Jesse T. Holzer (Kennewick, WA); Yonghong Chen (Carmel, IN); Arun Veeramany (Richland, WA)
Assignees: Battelle Memorial Instutute; Midcontinent Independent System Operator, Inc.
H02J3/003G06F9/546G06N5/01H02J3/0075H02J13/00017H02J2203/20
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 11,894,680
App. No.
16/355,574
Granted
Feb 6, 2024
Kind
B2
Abstract

Apparatus and methods are disclosed for solving Mixed Integer Programming (MIP) problems, such as Security Constrained Unit Commitment (SCUC) problems used by power grid authorities to perform day-ahead market clearing. In certain examples, a plurality of threads of a software tool implementing a concurrent optimizer can be executed concurrently and sequentially to generate new solutions to a SCUC problem for an upcoming planning horizon. Data can be shared among the concurrently executing threads, such as intermediate/incumbent solutions and hints regarding the fixing of variables and constraints to reduce the size of the SCUC problem. In some examples, the threads are seeded with historical solutions from prior planning horizons. The software tool can select a best solution from the solutions generated by the threads, and determine dispatch instructions for a device coupled to the power grid for the upcoming planning horizon based at least in part on the selected solution.

Claims (38)

1. A method, comprising:

with a plurality of processors:

decomposing a Mixed Integer Programming (MIP) problem, the MIP problem being a Security Constrained Unit Commitment (SCUC) problem for an upcoming planning horizon of a power grid, into a plurality of subproblems; and

generating new solutions to the SCUC problem by concurrently executing a plurality of processor threads comprising at least a first thread and a second thread and sharing data generated by the concurrently executing among the threads, including having the first thread call the second thread as a subroutine to solve one of the subproblems.

2. The method of claim 1 , wherein the method further comprises seeding one or more of the threads with at least one previously generated solution to the SCUC problem from a prior planning horizon of the power grid.

3. The method of claim 2 , further comprising:

selecting a solution from among the solutions generated by the threads for the upcoming planning horizon;

determining respective dispatch instructions for one or more generators of the power grid based on the selected solution; and

communicating the respective dispatch instructions to the one or more generators.

4. The method of claim 2 , wherein the data shared among the threads comprises at least one of: an intermediate solution to the SCUC problem; or an incumbent solution to the SCUC problem.

5. The method of claim 4 , wherein sharing data among the threads comprises sending a message from the first thread to the second thread using a Message Passing Interface.

6. The method of claim 1 , wherein:

each of the respective processors executes at least one process, and each process comprises at least one of the plurality of processor threads; and

the SCUC problem comprises a plurality of variables and a plurality of constraints.

7. The method of claim 6 , wherein the variables comprise binary variables and continuous variables, wherein the binary variables comprise a variable representing an ON/OFF state of a generator coupled to the power grid, and wherein the continuous variables represent one or more of: a quantity of power to be produced by the generator, power consumption of dispatchable demands, power supply for virtual bids, power consumption for virtual bids, power reserve decisions, or auxiliary variables for modeling.

8. The method of claim 6 , wherein the constraints comprise at least one of: power balance constraints, transmission constraints, reserve constraints, or resource constraints.

9. One or more computing devices comprising:

memory; and

a plurality of processors, each of the respective processors being configured to execute machine-readable instructions stored in the memory that cause the computing devices to perform operations for solving a Security Constrained Unit Commitment (SCUC) problem for an upcoming planning horizon of a power grid, the operations comprising:

seeding a plurality of threads with prior solutions to the SCUC problem, the plurality of threads comprising at least a first thread and a second thread associated with different classes of algorithms,

decomposing the SCUC problem into a plurality of subproblems, and

generating new solutions to the SCUC problem by concurrently executing the threads and sharing data generated by the concurrently executing among the threads, including having the first thread call the second thread as a subroutine to solve one of the subproblems.

10. The one or more computing devices of claim 9 , wherein the data shared among the threads comprises at least one of: an intermediate solution to the SCUC problem; an incumbent solution to the SCUC problem; or a hint for solving the SCUC problem.

11. The one or more computing devices of claim 9 , wherein the algorithms comprise at least one of: an Alternating Direction Method of Multipliers (ADMM) algorithm; a Branch-and-Bound (B&B) algorithm; a Relaxation Induced Neighborhood Search algorithm; and an enhanced polishing algorithm.

12. A method, comprising:

with a compiler executing on a processor, transforming source code to solve a mixed integer programming (MIP) problem into machine-executable code, the machine-executable code comprising:

computer-executable code that when executed by a processor causes a plurality of processor threads to be seeded with prior solutions to the MIP problem, the threads comprising at least a first thread and a second thread;

computer-executable code that when executed by a processor causes the MIP problem to be decomposed into a plurality of subproblems; and

computer-executable code that when executed by a processor causes the threads to generate improved solutions to the MIP problem by concurrently executing the threads and sharing data between the threads, including code that when executed by a processor causes the first thread to call the second thread as a subroutine to solve one of the subproblems; and

storing the machine-executable code in a computer-readable storage device or memory.

13. The method of claim 12 , wherein the machine-executable code further comprises computer-executable code that when executed by a processor causes the first thread to send a message to the second thread via a Message Passing Interface, the message including at least one of: an intermediate solution to the MIP problem generated by the first thread; or an incumbent solution to the MIP problem generated by the first thread.

14. The method of claim 12 , wherein the first thread and the second thread are associated with different classes of algorithms.

15. One or more computing devices comprising:

memory; and

a plurality of processors, each of the respective processors being configured to execute machine-readable instructions stored in the memory that cause the computing devices to perform operations for solving a Security Constrained Unit Commitment (SCUC) problem for an upcoming planning horizon of a power grid, the operations comprising:

seeding a plurality of threads with prior solutions to the SCUC problem, the plurality of threads comprising at least a first thread and a second thread associated with different classes of algorithms,

decomposing the SCUC problem into a plurality of subproblems; and

generating new solutions to the SCUC problem by concurrently executing the threads and sharing data generated by the concurrently executing among the threads, including having the first thread call the second thread as a subroutine to solve one of the subproblems.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 1, 2023
From: CHEN, YONGHONG
To: MIDCONTINENT INDEPENDENT SYSTEM OPERATOR, INC.
Reel/Frame 065734/0961 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 1, 2023
From: PAN, FENG; HOLZER, JESSE T.; VEERAMANY, ARUN
To: BATTELLE MEMORIAL INSTITUTE
Reel/Frame 065735/0032 →
CONFIRMATORY LICENSE Recorded Mar 3, 2020
From: BATTELLE MEMORIAL INSTITUTE, PACIFIC NORTHWEST DIVISION
To: U.S. DEPARTMENT OF ENERGY
Reel/Frame 052074/0971 →
Continuity (3)
Provisional Application 62648659 · Mar 27, 2018
Provisional Application 62643843 · Mar 16, 2018
Related Publication 20190286993A1 · Sep 19, 2019