Implementation of optimization in industrial automation controllers

EP4751184A1Pending Publication Date: 2026-06-03SIEMENS AG

Patent Information

Authority / Receiving Office
EP · EP
Patent Type
Applications
Current Assignee / Owner
SIEMENS AG
Filing Date
2024-03-18
Publication Date
2026-06-03

AI Technical Summary

Technical Problem

Industrial automation controllers lack the necessary capacity to perform non-convex optimization due to their limited hard drive capacity and processing speed, which restricts their ability to handle complex optimization programs.

Method used

A method involving the development of a program using a first optimization solver, followed by containerization with a second optimization solver to reduce the container size below the controller's hard drive capacity, allowing the program to be executed on the industrial automation controller.

Benefits of technology

Enables the execution of non-convex optimization programs on industrial automation controllers, overcoming the capacity limitations and allowing for the operation of complex processes and devices.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure US2024020341_06032025_PF_FP_ABST
    Figure US2024020341_06032025_PF_FP_ABST
Patent Text Reader

Abstract

A system performs a method for operation a process or device. The system includes a remote programming unit and a controller. A program for optimizing a model of the process or the device is developed at the remote programming unit using a first optimization solver. The program and a second optimization solver are containerized into a container. The controller executes the program using the second optimization solver to obtain a solution of the model for the process or the device and operates the process or the device using the solution. The first size of the first optimization solver and the program, in combination, is greater than the hard drive capacity of the controller. A second size of the container including the second optimization solver and the program is less than the hard drive capacity of the controller.
Need to check novelty before this filing date? Find Prior Art

Description

IMPLEMENTATION OF OPTIMIZATION IN INDUSTRIAL AUTOMATIONCONTROLLERSBACKGROUND

[0001] The subject matter disclosed herein relates to industrial automation controllers and, in particular, to a method for performing optimization in an industrial automation controller to control a device or a process.

[0002] Industrial automation controllers, such as Programmable Logic Controllers (PLC), Programmable Automation Controllers (PAC) and Industrial Programmable Computers (Industrial PCs) can be used to operate various processes or devices. These controllers generally operate in a range of 1-100 Megahertz (MHz) and with a hard drive capacity in a range of less than a few hundred Megabytes. Currently, an industrial automation controller has enough capacity to operate a process or device employing a program that uses a linear model or quadratic model of the process or device. As optimization programs become more complex, non-convex optimization is becoming more important. However, the capacity needed to perform non-convex optimization using a standard optimization solver package and libraries in common high level programming languages, such as Python, currently exceeds the hard drive capacity of these industrial automation controllers. Accordingly, there is a desire for a system and method for running a non-convex optimization program on an industrial automation controller.SUMMARY

[0003] According to one aspect of the invention, a method for operating a process or a device is disclosed. The method includes obtaining a program for optimizing a model of a process or the device, the program developed using a first optimization solver, wherein a first container size of a container including the first optimization solver and the program is greater than a hard drive capacity of a controller, containerizing the program with a second optimization solver into a second container, wherein a second container size of the second container is less than the hard drivecapacity of the controller, loading the second container into the controller, executing the program at the controller using the second optimization solver to obtain a solution of the model for the process or the device, and operating the process or the device via the controller using the solution.

[0004] In addition to the one or more features described herein, the first optimization solver is written in a high-level programming language.

[0005] In addition to the one or more features described herein, the second optimization solver is written in one of a mid-level programming language and a low- level programming language compatible with the controller.

[0006] In addition to the one or more features described herein, the process is one of: (i) operation of an assembly line; (ii) managing operation of a battery; (iii) operation of a microgrid; and (iv) operation of a robot.

[0007] In addition to the one or more features described herein, obtaining the solution further comprises performing a non-convex optimization of the model of the process at the controller.

[0008] In addition to the one or more features described herein, at least one of an objective function for the process and a constraint used in the optimization is non- convex.

[0009] In addition to the one or more features described herein, the controller is one of: (i) a programmable automation controller; (ii) a programmable logic controller; and (iii) an industrial programmable controller.

[0010] According to another aspect of the invention, a system for operating a process is disclosed. The system includes a remote programming unit and a controller. The remote programming unit is configured for developing a program for optimizing a model of the process using a first optimization solver and containerizing the program with a second optimization solver into a container. The controller controls the process. The controller receives the containerized program, executes the program using the second optimization solver to obtain a solution of the model for the process, andoperates the process using the solution. A first size of the first optimization solver and the program, in combination, is greater than a hard drive capacity of the controller. A second size of the container that includes the second optimization solver and the program is less than the hard drive capacity of the controller.

[0011] In addition to the one or more features described herein, the first optimization solver is written in a high-level programming language.

[0012] In addition to the one or more features described herein, the second optimization solver is written in one of a mid-level programming language and a low- level programming language compatible with the controller.

[0013] In addition to the one or more features described herein, the process is one of (i) operation of an assembly line; (ii) managing operation of a battery; (iii) operation of a microgrid; and (iv) operation of a robot.

[0014] In addition to the one or more features described herein, the controller performs a non-convex optimization of the model of the process.

[0015] In addition to the one or more features described herein, at least one of an objective function for the process and a constraint used in the optimization is non- convex.

[0016] In addition to the one or more features described herein, the controller is one of (i) a programmable automation controller; (ii) a programmable logic controller; and (iii) an industrial programmable controller.

[0017] According to yet another aspect of the invention, a system for operating a device is disclosed. The system includes a remote programming unit and a controller. The remote programming unit is configured for developing a program for optimizing a model of a process using a first optimization solver and containerizing the program with a second optimization solver into a container. The controller controls the device. The controller receives the containerized program, executes the program using the second optimization solver to obtain a solution of the model for the device, and operates the device using the solution. A first size of the first optimization solver and the program,in combination, is greater than a hard drive capacity of the controller. A second size of the container including the second optimization solver and the program is less than the hard drive capacity of the controller.

[0018] In addition to the one or more features described herein, the first optimization solver is written in a high-level programming language.

[0019] In addition to the one or more features described herein, the second optimization solver is written in one of a mid-level programming language and a low- level programming language compatible with the controller.

[0020] In addition to the one or more features described herein, the device is one of: (i) an assembly line; (ii) a battery; (iii) a microgrid; and (iv) a robot.

[0021] In addition to the one or more features described herein, the controller performs a non-convex optimization of the model of the device, wherein at least one of an objective function for the device and a constraint used in the optimization is non- convex.

[0022] In addition to the one or more features described herein, the controller is one of: (i) a programmable automation controller; (ii) a programmable logic controller; and (iii) an industrial programmable controller.

[0023] These and other advantages and features will become more apparent from the following description taken in conjunction with the drawings.BRIEF DESCRIPTION OF THE DRAWINGS

[0024] The subject matter, which is regarded as the invention, is particularly pointed out and distinctly claimed in the claims at the conclusion of the specification. The foregoing and other features, and advantages of the invention are apparent from the following detailed description taken in conjunction with the accompanying drawings in which:

[0025] FIG. 1 shows a schematic diagram of a process or device used in an industrial application, in an embodiment;

[0026] FIG. 2 is a schematic diagram illustrating various stages for developing an application or program for solving an optimization problem for the process or device; and

[0027] FIG. 3 shows a flowchart of a method for controlling the processor or device, in an embodiment.

[0028] The detailed description explains embodiments of the invention, together with advantages and features, by way of example with reference to the drawings.DETAILED DESCRIPTION OF THE INVENTION

[0029] FIG. 1 shows a schematic diagram 100 of a process or device used in an industrial application, in an embodiment. The schematic diagram 100 includes a process 102 (or device) and a controller 104, such as an industrial automation controller that controls operation of the process 102 or device. An industrial automation controller can be, for example, a Programmable Logic Controller (PLC) or a Programmable Automation Controller (PAC), an Industrial Programmable Controller (IPC), etc. Such a controller 104 includes a processor unit, a power supply unit, a memory unit, a hard drive, an input / output interface and a communication interface. The communications interface can be used to communicate data to and from remote devices. A PLC typically has a programming speed on the order of only a few Megahertz (Mhz) and a hard drive capacity in a range of a few kilobytes (kB) to a few megabytes (MB). Programmable automation controllers (PAC) have a programming speed on the order of a few MHz to a few Gigahertz (GHz) and a hard drive capacity in a range of a few MG to a few Gigabytes (GB). An IPC has a programming speed in the range of a few GHz and a hard drive capacity in a range of a few GB.

[0030] The process 102 includes one or more sensors 106 for measuring operational parameters of the process 102 and one or more actuators 108 for controlling an aspect of the process. The actuators can be valves, switches, etc. The controller 104 can be programmed to control the process or device. Input data from the sensors 106 is sent to the controller 104 and input into a model 110 of the operation of the process 102 or device being run at the controller 104. The model 110 includes one or more equationswhich describe the operation of the process 102. An optimization solver 112 is used to optimize an objective function based on the model to determine one or more decision variables of the model for a desired solution. The solution can be an optimal solution or a near-optimal solution. The decision variables can include actuator commands that achieve a desired operation of the process, including achieving desired operational parameters of the process 102.

[0031] The process 102 can be an industrial process such as an operation of an assembly line, operation of a machine, operation of a robotic devices, etc. In another embodiment, the controller 104 can be used in a battery management system. As an example, the process can be an industrial manufacturing process including operational parameters such as pressures, temperatures, voltages, currents, etc. The solution can include a command to an actuator that maintains one of the parameters (e.g., temperatures) within a desired range of values.

[0032] In yet another embodiment, the process can include control of a microgrid. A model of the microgrid can include voltages, currents, frequencies, electrical load profiles, etc. The model can be optimized to obtain a solution for operating the microgrid, such as for participation of the microgrid in an electricity market.

[0033] The controller 104 operates the model 110 and the optimization solver 112. As the complexity of the process or device increases, the model can include nonconvexities. The optimization can include optimizing a non-convex objective function. Additionally, optimization can include non-convex constraints.

[0034] The model and optimization can be developed and tested at a remote programming unit 114 using a suitable optimization solver and then transferred to the controller 104. The controller 104 then implements the model for the process 102.

[0035] FIG. 2 is a schematic diagram 200 illustrating various stages for developing an application or program for solving an optimization problem for the process or device. In a development stage 202, a program 204 is developed (i.e., at the remote programming unit 114) to model and control operation of the process 102 or device. A first optimization solver 206 is used during the development stage 202 to developmethods for optimizing the model. The remote programming unit 114 generally has a greater hard drive capacity and / or a greater processing speed than the hard drive capacity / processing speed of the controller 104. A container that includes the first optimization solver 206 and the program 204generally has a first container size (i.e., takes up a first amount of hard drive capacity) that exceeds the hard drive capacity of the controller 104. In an embodiment, the first solver is written in a high-level programming language, such as Python, MATLAB, Julia, etc.

[0036] In a containerization stage 208, the program is containerized. Containerization involves encapsulating the program and / or solver into a format that can be loaded into the controller 104. Containerization bundles the program’s code with all the files and libraries needed into a container 212 suitable to be run on any platform. Containerization involves encapsulating the program 204 with a second optimization solver 210 in the container 212 (i.e., without the first optimization solver 206). The size of the second optimization solver 210 is selected to be less than the first size of the first optimization solver 206. In particular, the second optimization solver 210 is selected such that the second optimization solver 210 and the program 204 (or the container 212 having the second optimization solver 210 and the program 204) is less than a hard drive capacity of the controller 104. In various embodiments, the second optimization solver 210 can be written in a mid-level programming language compatible with the controller 104, such as C of C++ , or a low-level programming language, such as assembly language.

[0037] In a loading stage 214, the containerized program is loaded into the controller 104. The controller 104 can then execute the optimization program to perform the process 102 by running the program within the container.

[0038] FIG. 3 shows a flowchart 300 of a method for performing a process, in an embodiment. In box 302, a program for running a model of the process is obtained. The program can be developed at a remote programming unit 114 using a first optimization solver. In general, a first container that includes the first optimization solver and program has a first container size greater than a hard drive capacity of the controller 104. In box 304, the program is containerized along with a secondoptimization solver into a second container, where a second container size of the second container is less than a hard drive capacity the controller 104. In box 306, the second container is loaded into the industrial application controller. In box 308, the program is optimized by running the second optimization solver 210 at the controller to obtain a solution for performing the process. In box 310, the controller controls the process using the solution.

[0039] While the invention has been described in detail in connection with only a limited number of embodiments, it should be readily understood that the invention is not limited to such disclosed embodiments. Rather, the invention can be modified to incorporate any number of variations, alterations, substitutions or equivalent arrangements not heretofore described, but which are commensurate with the spirit and scope of the invention. Additionally, while various embodiments of the invention have been described, it is to be understood that aspects of the invention may include only some of the described embodiments. Accordingly, the invention is not to be seen as limited by the foregoing description, but is only limited by the scope of the appended claims.

Claims

CLAIMS:

1. A method for operating a process or a device, comprising: obtaining a program for optimizing a model of the process or the device, the program developed using a first optimization solver, wherein a first container size of a first container including the first optimization solver and the program is greater than a hard drive capacity of a controller; containerizing the program with a second optimization solver into a second container, wherein a second container size of the second container is less than the hard drive capacity of the controller; loading the second container into the controller; executing the program at the controller using the second optimization solver to obtain a solution of the model for the process or the device; and operating the process or the device via the controller using the solution.

2. The method of claim 1, wherein the first optimization solver is written in a high-level programming language.

3. The method of claim 2, wherein the second optimization solver is written in one of a mid-level programming language and a low-level programming language compatible with the controller.

4. The method of claim 1, wherein the process is one of (i) operation of an assembly line; (ii) managing operation of a battery; (iii) operation of a microgrid; and (iv) operation of a robot.

5. The method of claim 1 , wherein obtaining the solution further comprises performing a non-convex optimization of the model of the process at the controller.

6. The method of claim 5, wherein at least one of an objective function for the process and a constraint used in the optimization is non-convex.

7. The method of claim 1, wherein the controller is one of: (i) a programmable automation controller; (ii) a programmable logic controller; and (iii) an industrial programmable controller.

8. A system for operating a process, comprising: a remote programming unit configured for: developing a program for optimizing a model of the process using a first optimization solver; containerizing the program with a second optimization solver into a container; and a controller that controls the process, wherein the controller receives the containerized program, executes the program using the second optimization solver to obtain a solution of the model for the process, and operates the process using the solution, wherein a first size of the first optimization solver and the program, in combination, is greater than a hard drive capacity of the controller and wherein a second size of the container including the second optimization solver and the program is less than the hard drive capacity of the controller.

9. The system of claim 8, wherein the first optimization solver is written in a high-level programming language.

10. The system of claim 9, wherein the second optimization solver is written in one of a mid-level programming language and a low-level programming language compatible with the controller.

11. The system of claim 8, wherein the process is one of: (i) operation of an assembly line; (ii) managing operation of a battery; (iii) operation of a microgrid; and (iv) operation of a robot.

12. The system of claim 8, wherein the controller performs a non-convex optimization of the model of the process.

13. The system of claim 12, wherein at least one of an objective function for the process and a constraint used in the optimization is non-convex.

14. The system of claim 8, wherein the controller is one of: (i) a programmable automation controller; (ii) a programmable logic controller; and (iii) an industrial programmable controller.

15. A system for operating a device, comprising: a remote programming unit configured for: developing a program for optimizing a model of a process using a first optimization solver; containerizing the program with a second optimization solver into a container; and a controller that controls the device, wherein the controller receives the containerized program, executes the program using the second optimization solver to obtain a solution of the model for the device, and operates the device using the solution, wherein a first size of the first optimization solver and the program, in combination, is greater than a hard drive capacity of the controller and wherein a second size of the container including the second optimization solver and the program is less than the hard drive capacity of the controller.

16. The system of claim 15, wherein the first optimization solver is written in a high-level programming language.

17. The system of claim 16, wherein the second optimization solver is written in one of a mid-level programming language and a low-level programming language compatible with the controller.

18. The system of claim 15, wherein the device is one of: (i) an assembly line; (ii) a battery; (iii) a microgrid; and (iv) a robot.

19. The system of claim 15, wherein the controller performs a non-convex optimization of the model of the device, wherein at least one of an objective function for the device and a constraint used in the optimization is non-convex.

20. The system of claim 15, wherein the controller is one of: (i) a programmable automation controller; (ii) a programmable logic controller; and (iii) an industrial programmable controller.