IP Library Granted Patent US 11,977,868
Granted Patent B2
US 11,977,868 · App. 17/568,585 · Granted May 7, 2024

Search based approach for generating controller models

Inventors: Alexandre Perez (San Mateo, CA); Ion Matei (Sunnyvale, CA); Peter Patel-Schneider (Westfield, NJ); Johan de Kleer (Los Altos, CA); Ron Zvi Stern (Palo Alto, CA)
Assignee: Xerox Corporation
G06F8/44G05B6/02G06F8/53G06F8/75
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,977,868
App. No.
17/568,585
Granted
May 7, 2024
Kind
B2
Abstract

A method includes obtaining a binary code of a controller. The method also includes decompiling the binary code of the controller to generate a source code. The method further includes generating one or more abstract syntax trees based on the source code. The method further includes generating an interpretable model based on the one or more abstract syntax trees. The interpretable model is interpretable by subject matter experts.

Claims (50)

1. A method of generating an interpretable model for a controller, the method comprising:

decompiling a binary code of the controller;

generating a source code based on the binary code of the controller;

generating one or more abstract syntax trees based on the source code, wherein generating the one or more abstract syntax trees based on the source code comprises generating a first set of code-level abstract syntax trees based on the source code, wherein the generating the first set of code-level abstract syntax trees further comprises identifying a set of mathematical primitives of the source code; and

generating, by a processing device, the interpretable model based on the one or more abstract syntax trees, wherein the interpretable model is translatable to binaries by mapping into a language different from that of the interpretable model by a standard that defines a container and an interface to exchange dynamic models, and language encoding control behaviors of the controller.

2. The method of claim 1 , wherein generating the one or more abstract syntax trees further comprises:

generating a second set of model-level abstract syntax trees based on the first set of abstract syntax trees.

3. The method of claim 2 , wherein generating the first set of abstract syntax trees based on the source code further comprises:

generating the first set of abstract syntax trees based on the mathematical primitives.

4. The method of claim 3 , wherein the set of mathematical primitives is identified based on a rule-based classifier or a machine learning based classifier.

5. The method of claim 1 , further comprising:

generating second binary code based on the interpretable model; and

testing the second binary code based on a set of tests and the binary code.

6. The method of claim 5 , wherein generating the second binary code comprises:

converting the interpretable model into a functional mockup unit (FMU);

integrating the FMU into a control software project (CSP); and

compiling the CSP into the second binary code.

7. The method of claim 6 , wherein converting the interpretable model into the FMU comprises using a functional mockup interface (FMI) standard.

8. The method of claim 6 , wherein the CSP is expressed in source code.

9. The method of claim 6 , wherein the interpretable model is based on a Modelica language.

10. A system of generating an interpretable model, the system comprising:

a memory to store a binary code of a controller; and

a processing device, operatively coupled to the memory, to:

decompile the binary code of the controller;

generate a source code based on the binary code of the controller;

generate one or more abstract syntax trees based on the source code by generating a first set of code-level abstract syntax trees based on the source code, wherein the generating the first set of code-level abstract syntax trees further comprises identifying a set of mathematical primitives of the source code; and

generate the interpretable model based on the one or more abstract syntax trees, wherein the interpretable model is translatable to binaries by mapping into a language different from that of the interpretable model by a standard that defines a container and an interface to exchange dynamic models, and language encoding control behaviors of the controller.

11. The system of claim 10 , wherein to generate the one or more abstract syntax trees the processing device is further to:

generate a second set of model-level abstract syntax trees based on the first set of abstract syntax trees.

12. The system of claim 11 , wherein to generate the first set of abstract syntax trees based on the source code the processing device is further to:

generate the first set of abstract syntax trees based on the mathematical primitives.

13. The system of claim 12 , wherein the set of mathematical primitives is identified based on a rule-based classifier or a machine learning based classifier.

14. The system of claim 10 , wherein the processing device is further to:

generate second binary code based on the interpretable model; and

test the second binary code based on a set of tests and the binary code.

15. The system of claim 14 , wherein to generate the second binary code the processing device is further to:

convert the interpretable model into a functional mockup unit (FMU);

integrate the FMU into a control software project (CSP); and

compile the CSP into the second binary code.

16. The system of claim 15 , wherein to convert the interpretable model into the FMU comprises using a functional mockup interface (FMI) standard.

17. The system of claim 15 , wherein the interpretable model is based on a Modelica language.

18. A non-transitory computer-readable storage medium having instructions stored thereon that, when executed by a processing device, cause the processing device to:

decompile a binary code of a controller;

generate a source code based on the binary code of the controller;

generate one or more abstract syntax trees based on the source code by generating a first set of code-level abstract syntax trees based on the source code, wherein the generating the first set of code-level abstract syntax trees further comprises identifying a set of mathematical primitives of the source code; and

generate an interpretable model based on the one or more abstract syntax trees, wherein the interpretable model is translatable to binaries by mapping into a language different from that of the interpretable model by a standard that defines a container and an interface to exchange dynamic models, and language encoding control behaviors of the controller.

19. The non-transitory computer-readable storage medium of claim 18 , wherein generating the one or more abstract syntax trees comprises:

generating a second set of model-level abstract syntax trees based on the first set of abstract syntax trees.

20. The non-transitory computer-readable storage medium of claim 19 , wherein generating the first set of abstract syntax trees based on the source code comprises:

generating the first set of abstract syntax trees based on the mathematical primitives.

Assignments (7)
SECOND LIEN NOTES PATENT SECURITY AGREEMENT Recorded Jul 2, 2025
From: XEROX CORPORATION
To: U.S. BANK TRUST COMPANY, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 071785/0550 →
FIRST LIEN NOTES PATENT SECURITY AGREEMENT Recorded Apr 11, 2025
From: XEROX CORPORATION
To: U.S. BANK TRUST COMPANY, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 070824/0001 →
SECURITY INTEREST Recorded Feb 13, 2024
From: XEROX CORPORATION
To: CITIBANK, N.A., AS COLLATERAL AGENT
Reel/Frame 066741/0001 →
SECURITY INTEREST Recorded Nov 20, 2023
From: XEROX CORPORATION
To: JEFFERIES FINANCE LLC, AS COLLATERAL AGENT
Reel/Frame 065628/0019 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVAL OF US PATENTS 9356603, 10026651, 10626048 AND INCLUSION OF US PATENT 7167871 PREVIOUSLY RECORDED ON REEL 064038 FRAME 0001. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Jun 28, 2023
From: PALO ALTO RESEARCH CENTER INCORPORATED
To: XEROX CORPORATION
Reel/Frame 064161/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 20, 2023
From: PALO ALTO RESEARCH CENTER INCORPORATED
To: XEROX CORPORATION
Reel/Frame 064038/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 5, 2022
From: PEREZ, ALEXANDRE; MATEI, ION; PATEL-SCHNEIDER, PETER; DE KLEER, JOHAN; STERN, RON ZVI
To: PALO ALTO RESEARCH CENTER INCORPORATED
Reel/Frame 058561/0055 →