proIMS Calculation Engines
proIMS Calculation Engines are services to calculate new time series data based on the raw data stored in the real-time database. The results are stored in the historical database or as tags in the RTDB as new time series data with new signal names.
Two different calculation engines are available:
- proIMS Calculation Server
- proIMS Simulation Server
The calculation server is a service that runs online in real time and calculates new minutely, hourly or daily values based on the process data stored in the RTDB. It’s a background service for online calculated signals.
The simulation server is a background service for look ahead models. Based on a real process image future process states are calculated.
Both engines are using different calculation libraries for different purposes. The following drawing shows an overview about the available libraries.
For the different proIMS Applications different libraries are created.
Calculations are created with the proIMS Equation Editor, which is part of the proIMS Dashboard. The configuration is web based. Mathematical models or calculations can be created or changed online using modern Web technologies.
Embedded High Speed
The proIMS calculation servers have built-in algorithms to distribute computation tasks either to the different cores of a server or to use graphical processing units (GPU).
The usage of parallel cores is commonly used by optimization solvers, to parallelize the computation tasks. Big matrix transformations as they occur for example for complex linearization algorithms can be computed much faster using the GPU instead of an additional core.
The proIMS calculation engine has its own formula editor to specify mathematical equations, which can be bound to process variables and calculate new calculated values, which are stored in the proIMS RTDB in the same way as values coming from the process.
MATLAB functions are handled in the same way like the functions of the formula editor.
MATLAB (matrix laboratory) is a numerical computing environment and fourth-generation programming language. Developed by Math Works, MATLAB allows matrix manipulations, plotting of functions and data, implementation of algorithms, creation of user interfaces.
More information can be found under the following link: www.mathworks.com
Although MATLAB is intended primarily for numerical computing, an optional toolbox uses a symbolic engine, allowing access to symbolic computing capabilities. An additional package, Simulink, adds graphical multi-domain simulation and Model-Based Design for dynamic and embedded systems.
In 2010, MATLAB had around two million users across industry and academia. MATLAB users come from various backgrounds of engineering, science, and economics. MATLAB is widely used in academic and research institutions as well as industrial enterprises.
The following drawing shows how MATLAB is integrated into proIMS framework.
For mixed integer non-linear programming problems MINLP the MATLAB extension MIDACO will be used because of its extensive capability for parallelization. More information can be found under the following link: www.midaco-solver.com.
To include a new function to the calculation services the following steps are required:
- A process engineer designs a mathematical model about a certain process device, using the various capabilities of Model
- Once the model is tested and approved, it will be compiled using the MATLAB compiler. The compiler output is a proIMS mathematical library which will be read by the proIMS calculation engines
- A web designer designs an animated process graphic based on the inputs and outputs of the model. The process graphics are designed with the integrated proIMS design tool proIMS proCanvas framework.
The approach to design a new model in combination with an animated process graphic ensures that the graphic can be easily dragged to a process view of the proIMS dashboard to view and trouble shoot the equations of the model.
- A Control engineer can use the models by assigning process and calculated signals to it using the proIMS Workbench and deploy it to the various calculation engines.
- Dashboards can be created using the new designed process graphics animated with actual process signals or calculated results.
Besides the standard Matlab components and the optimization toll box other Matlab components have been used for our calculation libraries:
- Simscape™ provides an environment for modeling and simulating physical systems spanning mechanical, electrical, hydraulic, and other physical domains. It provides fundamental building blocks from these domains that can be assembled into models of physical components, such as electric motors, inverting op-amps, hydraulic valves, and ratchet mechanisms.
- SimHydraulics® provides component libraries for modeling and simulating hydraulic systems. It includes models of hydraulic components, such as pumps, valves, actuators, pipelines, and hydraulic resistances. These components are used by the applications to simulate their models. Pipeline supply and water supply systems are modeled using SimHydraulics.
- SimPowerSystems™ provides component libraries and analysis tools for modeling and simulating energy systems. This module is base for the proIMS Hydro Power application module.
- Model Predictive Control Toolbox provides functions, an app, and Simulink blocks for systematically analysing, designing, and simulating model predictive controllers (MPCs). You can specify plant and disturbance models, horizons, constraints, and weights. The toolbox enables to diagnose issues that could lead to run-time failures and provides advice on tuning weights to improve performance and robustness. By running different scenarios in linear and nonlinear simulations, controller performance can be evaluated. This toolbox is base for the proIMS Predictive APC library.
Optimization Toolbox™ provides functions for finding parameters that minimize or maximize objectives while satisfying constraints. The toolbox includes solvers for linear programming, mixed-integer linear programming, quadratic programming, nonlinear optimization, and nonlinear least squares. You can use these solvers to find optimal solutions to continuous and discrete problems, perform trade-off analyses and incorporate optimization methods into algorithms and applications. This toolbox is base for the proIMS Optimization library.