IP Library › Granted Patent US 9,195,222
Granted Patent B2
US 9,195,222 · App. 13/760,407 · Granted Nov 24, 2015

Systems and methods for evaluating stability of software code for control systems

Inventors: James P. Kapinski (Redondo Beach, CA); Jyotirmoy V. Deshmukh (Torrance, CA)
Assignee: Toyota Motor Engineering & Manufactruing North America, Inc.
G05B13/02B60T8/17551G06F11/3608B60T2270/86
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 9,195,222
App. No.
13/760,407
Granted
Nov 24, 2015
Kind
B2
Abstract

In one embodiment, a method of evaluating stability of software code for a control system includes receiving a set of initial trajectories by a semidefinite programming solver module, and determining one or more candidate Lyapunov functions based on the set of initial trajectories. The method further includes performing a plurality of simulations using a model of the control system to create a set of discovered trajectories, and evaluating the set of discovered trajectories to determine one or more counterexample trajectories that violate one or more Lyapunov conditions. If one or more counterexample trajectories are discovered, then the method includes inputting the set of discovered trajectories including the one or more counterexample trajectories into the semidefinite programming solver module, and determining, by the semidefinite programming solver module, one or more additional candidate Lyapunov functions from the set of initial trajectories and the set of discovered trajectories.

Claims (46)

1. A method of evaluating stability of software code for a control system, the method comprising:

receiving a set of initial trajectories;

determining, by a semidefinite programming solver module, one or more candidate Lyapunov functions based on the set of initial trajectories;

performing a plurality of simulations using a model of the control system to create a set of discovered trajectories; and

evaluating the set of discovered trajectories to determine one or more counterexample trajectories that violate one or more Lyapunov conditions, wherein if one or more counterexample trajectories are discovered:

inputting the set of discovered trajectories including the one or more counterexample trajectories into the semidefinite programming solver module; and

determining, by the semidefinite programming solver module, one or more additional candidate Lyapunov functions based on the set of initial trajectories and the set of discovered trajectories.

2. The method of claim 1 , further comprising, if no candidate Lyapunov functions are found, indicating instability of the software code.

3. The method of claim 1 , further comprising, if no counterexample trajectories are discovered, indicating stability of the software code.

4. The method of claim 1 , wherein the set of initial trajectories comprise simulated trajectories and/or experimental trajectories.

5. The method of claim 1 , further comprising, if no counterexample trajectories are discovered, performing a convex optimization on the set of initial trajectories and the set of discovered trajectories to determine an invariant set of trajectories.

6. The method of claim 5 , wherein the convex optimization is provided by the sum-of-squares technique.

7. The method of claim 5 , further comprising:

executing the software code in the control system to obtain experimental data; and

comparing the experimental data to the invariant set of trajectories.

8. The method of claim 1 , wherein the set of discovered trajectories are evaluated to determine the one or more counterexample trajectories by a non-convex, global optimization process.

9. The method of claim 1 , wherein the model of the control system is a continuous state-space model.

10. The method of claim 1 , further comprising:

executing the software code in the control system to obtain experimental trajectories; and

inputting the experimental trajectories into the semidefinite programming solver module to determine one or more candidate Lyapunov functions.

11. A computer-program product for use with a computing device for evaluating stability of software code for a control system, the computer-program product comprising:

a non-transitory computer-readable medium storing computer-executable instructions that, when executed by the computing device, cause the computing device to:

receive a set of initial trajectories;

determine one or more candidate Lyapunov functions based on the set of initial trajectories using a semidefinite programming solver module;

perform a plurality of simulations using a model of the control system to create a set of discovered trajectories; and

evaluate the set of discovered trajectories to determine one or more counterexample trajectories that violate one or more Lyapunov conditions, wherein, if one or more counterexample trajectories are discovered, the computer-executable instructions further cause the computing device to:

input the set of discovered trajectories including the one or more counterexample trajectories into the semidefinite programming solver module; and

determine one or more additional candidate Lyapunov functions based on the set of initial trajectories and the set of discovered trajectories.

12. The computer-program product of claim 11 , wherein if no candidate Lyapunov functions are found, the computer-executable instructions cause the computing device to indicate instability of the software code.

13. The computer-program product of claim 11 , wherein if no counterexample trajectories are discovered, the computer-executable instructions cause the computing device to indicate stability of the software code.

14. The computer-program product of claim 11 , wherein the set of initial trajectories comprise simulated trajectories and/or experimental trajectories.

15. The computer-program product of claim 11 , wherein if no counterexample trajectories are discovered the computer-executable instructions cause the computing device to perform a convex optimization on the set of initial trajectories and the set of discovered trajectories to determine an invariant set of trajectories.

16. The computer-program product of claim 15 , wherein the convex optimization is provided by the sum-of-squares technique.

17. The computer-program product of claim 11 , wherein the set of discovered trajectories are evaluated to determine the one or more counterexample trajectories by a non-convex, global optimization process.

18. The computer-program product of claim 11 , wherein the software code is for one or more vehicle systems.

19. A method of evaluating stability of software code for a control system, the method comprising:

receiving a set of initial trajectories;

determining, by a semidefinite programming solver module, one or more candidate Lyapunov functions based on the set of initial trajectories;

performing a plurality of simulations of the control system to create a set of discovered trajectories; and

evaluating the set of discovered trajectories to determine one or more counterexample trajectories that violate one or more Lyapunov conditions, wherein:

if no candidate Lyapunov functions are found, indicating instability of the software code;

if one or more counterexample trajectories are discovered:

inputting the set of discovered trajectories including the one or more counterexample trajectories into the semidefinite programming solver module; and

determining, by the semidefinite programming solver module, one or more additional candidate Lyapunov functions based on the set of initial trajectories and the set of discovered trajectories; and

if no counterexample trajectories are discovered, performing a convex optimization on the set of initial trajectories and the set of discovered trajectories to determine an invariant set of trajectories.

20. The method of claim 19 , wherein the software code is for one or more vehicle systems.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 3, 2015
From: TOYOTA MOTOR ENGINEERING & MANUFACTURING NORTH AMERICA, INC.
To: TOYOTA JIDOSHA KABUSHIKI KAISHA
Reel/Frame 037200/0712 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 6, 2013
From: KAPINSKI, JAMES P.; DESHMUKH, JYOTIRMOY V.
To: TOYOTA MOTOR ENGINEERING & MANUFACTURING NORTH AMERICA, INC.
Reel/Frame 029764/0372 →
Continuity (2)
Provisional Application 61752768 · Jan 15, 2013
Related Publication 20140201723A1 · Jul 17, 2014