Quadratic program solver for MPC using variable ordering
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing quadratic programming solvers for model predictive control face challenges with high computational complexity and memory requirements, particularly in embedded systems with limited CPU power and memory, due to the rapid growth of possible factors in KKT matrices with the number of optimization variables, leading to inefficient factorization and storage needs.
Innovation Solution
The approach involves precomputing and storing a subset of factors using variable ordering to reduce the number of factors needed, with a factor update mechanism that allows for zero floating-point operations per unit time, enabling efficient computation and memory management by finding the nearest stored factor and updating it, rather than recomputing from scratch.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Speed
If all factors of KKT matrices are stored for every combination of active constraints, then factorization can be performed quickly during online operation, but memory requirements grow rapidly with the number of optimization variables
Solution Approach 1:
The patent precomputes and stores only a subset of factors corresponding to specific combinations of active constraints before online operation. This preliminary action reduces the memory burden while enabling fast factorization during runtime by selecting the precomputed factors that match the current active constraint set, avoiding the need to store all possible factors.
Solution Approach 2:
The patent changes the parameter of factor storage by storing factors in a condensed format that exploits the structure of KKT matrices. Instead of storing complete factorizations for all constraint combinations, it stores factors for a reduced set of combinations and uses update operations to generate other factors, thereby reducing memory requirements while maintaining computational efficiency.
2Measurement precision
If factors are updated by recomputing from scratch for each active constraint combination, then accuracy is maintained, but computational complexity increases during online operation
Solution Approach 1:
The patent precomputes factors for a subset of active constraint combinations offline and stores them. During online operation, it selects the matching precomputed factors and applies minimal updates, avoiding the need to recompute factors from scratch. This maintains factorization accuracy while significantly reducing online computational complexity.
Solution Approach 2:
The patent implements a dynamic factor update mechanism that adapts the factorization process to the current active constraint set. Instead of static recomputation, it dynamically selects precomputed factors and applies targeted updates only when necessary, balancing accuracy and computational efficiency based on the specific optimization problem state.
3Ease of operation
If a complete set of factors is stored for all optimization variables, then no factor updates are needed during online operation, but the storage requirements become prohibitive for embedded systems
Solution Approach 1:
The patent precomputes and stores factors for a carefully selected subset of active constraint combinations that cover the majority of online operation scenarios. This preliminary preparation enables simple factor selection during online operation without requiring complete factor sets, achieving a balance between operational simplicity and storage constraints for embedded systems.
Solution Approach 2:
The patent stores a partial set of factors corresponding to a subset of all possible active constraint combinations, rather than storing the complete set. This partial action is sufficient to handle most online operations efficiently, and when needed, factors can be updated or computed on-demand, avoiding the prohibitive storage requirements of complete factor sets.
Data Source
Figure 1
Figure 2
Figure 3
AI summary
A system and approach for storing factors in a quadratic programming solver of an embedded model predictive control platform. The solver may be connected to an optimization model which may be connected to a factorization module. The factorization module may incorporate a memory containing saved factors that may be connected to a factor search mechanism to find a nearest stored factor in the memory. A factor update unit may be connected to the factor search mechanism to obtain the nearest stored factor to perform a factor update. The factorization module may provide variable ordering to reduce a number of factors that need to be stored to permit the factors to be updated at zero floating point operations per unit of time.