IP Library Granted Patent US 12,208,809
Granted Patent B2
US 12,208,809 · App. 16/931,557 · Granted Jan 28, 2025

Systems and methods for automatically generating solver code for nonlinear model predictive control solvers

Inventors: Sarah Koehler (Sunnyvale, CA); Soonho Kong (Arlington, MA); Frank N. Permenter (Cambridge, MA); Kevin Zaseck (New Hudson, MI); Avinash Balachandran (Sunnyvale, CA)
Assignee: TOYOTA RESEARCH INSTITUTE, INC.
B60W40/10G05B13/042G05B13/047G05B13/048G06F17/16B60W2520/10B60W2554/4046B60W2554/4049
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 12,208,809
App. No.
16/931,557
Granted
Jan 28, 2025
Kind
B2
Abstract

Systems and methods for automatically generating solver code for a nonlinear model predictive controller are disclosed. In one embodiment, a method of automatically generating solver code for a nonlinear model predictive control solver includes receiving an optimal control problem code, wherein the optimal control problem code represents an optimal control problem comprising a cost function, one or more constraints, and a continuous time model representing dynamics of a system. The method further includes receiving a discretization method preference, a linearization point preference, and a parameter specification, and encoding the optimal control problem into an optimization problem by discretizing the optimal control problem according to the discretization method preference, and linearizing the optimal control problem according to the linearization point preference. The method further includes generating the solver code from the optimization problem.

Claims (43)

1. A method of automatically generating solver code for a nonlinear model predictive control solver, the method comprising:

receiving an optimal control problem code, wherein the optimal control problem code represents an optimal control problem comprising a cost function, one or more constraints, and a continuous time model representing dynamics of a system;

receiving, from a user interface, a selection of a discretization method preference, a linearization point preference value, and a parameter specification;

encoding the optimal control problem into an optimization problem by performing at least the following:

discretizing the optimal control problem according to the discretization method preference; and

linearizing the optimal control problem according to the linearization point preference value; and

generating the solver code from the optimization problem; and

inputting the solver code into a controlled system to control the controlled system.

2. The method of claim 1 , wherein the optimal control problem code represents a canonical form of the optimal control problem.

3. The method of claim 1 , wherein the optimal control problem code represents the optimal control problem using a syntax.

4. The method of claim 1 , wherein generating the solver code comprises populating a solver code template with parameters from the optimization problem.

5. The method of claim 4 , wherein generating the solver code comprises generating matrix inputs as a function of parameters from the optimization problem.

6. The method of claim 1 , wherein the discretization method preference is selected from the group consisting of Euler, zero-order hold, trapezoidal, and Runge-Kutta.

7. The method of claim 1 , wherein the dynamics of the system describe vehicular dynamics of a vehicle, the cost function describes a deviation from an optimum trajectory, and the one or more constraints comprises one or more of an upper speed limit, an acceleration limit, a position to avoid an obstacle, and a jerk limit.

8. A method of controlling a vehicle, the method comprising:

receiving an optimal control problem code, wherein the optimal control problem code represents an optimal control problem comprising a cost function, one or more constraints, and a continuous time model representing dynamics of a system;

receiving, from a user interface, a selection of a discretization method preference, a linearization point preference value, and a parameter specification;

encoding the optimal control problem into an optimization problem by performing at least the following:

discretizing the optimal control problem according to the discretization method preference; and

linearizing the optimal control problem according to the linearization point preference value; and

generating the solver code from the optimization problem;

importing the solver code into a control system of the vehicle for controlling an operation of the vehicle.

9. The method of claim 8 , wherein the optimal control problem code represents a canonical form of the optimal control problem.

10. The method of claim 8 , wherein the optimal control problem code represents the optimal control problem using a syntax.

11. The method of claim 8 , wherein generating the solver code comprises populating a solver code template with parameters from the optimization problem.

12. The method of claim 11 , wherein generating the solver code comprises generating matrix inputs as a function of parameters from the optimization problem.

13. The method of claim 8 , wherein the discretization method preference is selected from the group consisting of Euler, zero-order hold, trapezoidal, and Runge-Kutta.

14. The method of claim 8 , wherein the dynamics of the system describe vehicular dynamics of the vehicle, the cost function describes a deviation from an optimum trajectory, and the one or more constraints comprises one or more of an upper speed limit, an acceleration limit, a position to avoid an obstacle, and a jerk limit.

15. A system of automatically generating solver code for a non-linear model predictive control solver, the system comprising:

one or more processors;

one or more memory modules comprising non-transitory memory storing computer readable instructions that, when executed by the one or more processors, cause the one or more processors to perform at least the following:

receive an optimal control problem code, wherein the optimal control problem code represents an optimal control problem comprising a cost function, one or more constraints, and a continuous time model representing dynamics of a system;

receive, from a user interface, a selection of a discretization method preference, a linearization point preference value, and a parameter specification;

encode the optimal control problem into an optimization problem by performing at least the following:

discretizing the optimal control problem according to the discretization method preference; and

linearizing the optimal control problem according to the linearization point preference value; and

generate the solver code from the optimization problem; and

input the solver code into a controlled system to control the controlled system.

16. The system of claim 15 , wherein the optimal control problem code represents a canonical form of the optimal control problem.

17. The system of claim 15 , wherein the optimal control problem code represents the optimal control problem using a syntax.

18. The system of claim 15 , wherein generation of the solver code comprises populating a solver code template with parameters from the optimization problem.

19. The system of claim 18 , wherein generation of the solver code comprises generating matrix inputs as a function of parameters from the optimization problem.

20. The system of claim 15 , wherein the discretization preference is selected from the group consisting of Euler, zero-order hold, trapezoidal, and Runge-Kutta.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 20, 2025
From: TOYOTA RESEARCH INSTITUTE, INC.
To: TOYOTA JIDOSHA KABUSHIKI KAISHA
Reel/Frame 070278/0677 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 17, 2020
From: KOEHLER, SARAH; KONG, SOONHO; PERMENTER, FRANK N.; ZASECK, KEVIN; BALACHANDRAN, AVINASH
To: TOYOTA RESEARCH INSTITUTE, INC.
Reel/Frame 053236/0785 →
Continuity (1)
Related Publication 20220017103A1 · Jan 20, 2022
References Cited (24)
US 9377998B2 · Han et al. · 2016 [cited by applicant]
US 9619212B2 · Fige et al. · 2017 [cited by applicant]
US 10191787B1 · Kher · 2019 [cited by examiner]
US 10915075B2 · Jiang · 2021 [cited by examiner]
US 11080103B1 · Kher · 2021 [cited by examiner]
US 11354463B1 · Babaali · 2022 [cited by examiner]
US 20090012756A1 · Glass · 2009 [cited by examiner]
US 20180046192A1 · Keller · 2018 [cited by examiner]
US 20180081681A1 · Sethu · 2018 [cited by examiner]
US 20180137083A1 · Aramon · 2018 [cited by examiner]
US 20190026404A1 · Gumussoy · 2019 [cited by examiner]
US 20190375441A1 · Green · 2019 [cited by examiner]
US 20190377351A1 · Phillips · 2019 [cited by examiner]
US 20200132775A1 · Kanai · 2020 [cited by examiner]
US 20200293009A1 · Quirynen · 2020 [cited by examiner]
US 20200377087A1 · Chen · 2020 [cited by examiner]
US 20210165409A1 · Berntorp · 2021 [cited by examiner]
US 20210373513A1 · Quirynen · 2021 [cited by examiner]
US 20210403056A1 · McGill · 2021 [cited by examiner]
US 20240075981A1 · Wyciechowski · 2024 [cited by examiner]
CN 111258323A · 2020 [cited by examiner]
Control Parameter Optimization for Autonomous Vehicle Software Using Virtual Prototyping, Dai et al., 2017 IEEE 28th International Symposium on Software Reliability Engineering Workshops. [cited by examiner]
Pytlak et al., Solvers chaining in the IDOS server for dynamic optimization, 52nd IEEE Conference on Decision and Control Dec. 10-13, 2013. Florence, Italy. [cited by examiner]
Auto-generated Algorithms for Nonlinear Model Predictive Control on Long and on Short Horizons, Vukov et al. [cited by applicant]