Journal of Computational Engineering

Volume 2017, Article ID 3169785, 14 pages

https://doi.org/10.1155/2017/3169785

## New Coordination Software for Parameter Identification Applied to Thermal Models of an Actuator Strut

^{1}Chair for Technical Information Systems, Dresden University of Technology, 01062 Dresden, Germany^{2}Institute of Machine Tools and Control Engineering, Dresden University of Technology, 01062 Dresden, Germany

Correspondence should be addressed to Burkhard Hensel; ed.nedserd-ut@lesneh.drahkrub

Received 24 May 2017; Accepted 28 August 2017; Published 10 October 2017

Academic Editor: Damodar Maity

Copyright © 2017 Burkhard Hensel et al. This is an open access article distributed under the Creative Commons Attribution License, which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited.

#### Abstract

The practical worth of models of technical processes depends on their accuracy, that is, the difference between model outputs and real measurements. For minimizing these differences, process identification methods are used. In this article, coordination software for process identification is presented which has the unique feature that it allows the integration of models that have been created with external tools, for example, Matlab or Python scripts. There is no need to transform the models into another type of software format to use the common identification coordinator. The concept of the software is described and two examples for the coupling with external simulation software are given. Additionally, this article contains a detailed case study of the parameter identification of two models using that identification coordination software. This highlights the benefit of the new coordination software regarding similar work flow for different model types. The modeled physical subject is the thermal behavior of an actuator strut.

#### 1. Introduction

Models of technical systems are used for solving many kinds of problems reaching from prediction over simulation, condition monitoring, and failure detection to controller design. However, the quality of the results for all these goals depends on the model quality, that is, the accuracy. The smaller the difference between the model and the real process is, the more accurate a prediction, control loop, and so forth can be.

All model types consist of a model* structure* and a number of* parameters*. The* structure* defines the underlying equations, assumptions, and the resolution (granularity, order) of the model. One model structure can often be used for many technical processes with the same* qualitative* behavior. The* parameters* (e.g., coefficients of polynomials, differential, or difference equations) can be adjusted for getting the desired* quantitative* results. The task of finding the parameter values which minimize the difference between real measurements and simulation results of the model (for the same inputs and other conditions) is called* system identification*,* process identification,* or* parameter identification*.

There are a lot of tools which can be used for parameter identification; an overview is given in [1]. Probably the most frequently used software is Matlab [2]. There are many toolboxes for Matlab which support process identification for a lot of different kinds of models. However, for models which have* not* been implemented in Matlab, usually other identification tools appropriate to the other modeling software must be used. This often results in suboptimal identification results as, for example, due to time reasons, only simple tuning methodologies are used, often just manual adjustments in a trial-and-error manner.

Recently, higher level process identification software has been presented, which neither provides* new* process identification methods nor* replaces* existing identification software. Instead, it sets a coordination view on top of them [1]. Besides process identification, this software has its focus on virtual sensor design and can thus be used not only on standard PCs in offline mode, but also on embedded PCs in online mode. In the state at the publication of [1] it was not possible to use external models in that software. The software has now been extended to support different external model types (e.g., Matlab and Python scripts) additionally to “internal” model types (strictly speaking realized as Java plug-ins) like static equations, difference equations, or discrete time and continuous-time transfer functions. This allows using the identification software for already existing models that have been implemented in external software without the need to convert these models to new software’s format. Additionally, it is even possible to combine external models (cosimulation). For example, the parameters of a Matlab script model can in that way easily be optimized simultaneously with parameters of a Python script model.

The article is structured as follows. In Section 2, the basic system identification procedure, which is the background of the software, is presented. An overview about the high level identification software is given in Section 3 with the focus on the integration of external models. In Section 4, an application example (case study) is presented in detail. In that example, two different model types are used to model the same physical object. The example is the thermal modeling of an actuator strut that can be found in similar form in many machine tools. Although the models have been implemented in different software, the new higher level software has been used for both models to coordinate the process identification. The section compares both the quality of the models and the effort for creating them. Finally, conclusions are drawn (Section 5).

The abbreviations and symbols used in this article are presented in Notations.

#### 2. Identification Procedure

In this section, the identification procedure is presented, which is supported by the software. It is based on [1, 3, 4].

Let be a vector of time series where is the index of the sampling instant. Each element of the vector represents a time series for one physical quantity. More concretely, is the vector of the outputs of the model and the vector of measured time series for the same physical quantities and under the same conditions and inputs. The difference between the model outputs and the corresponding measurements is mostly evaluated using the sum of squared error (SSE)where is the number of recorded time steps (sampling instants), is the vector of squared errors, and is the row index in the vectors , , and . Another often used measure is the root-mean-square error (RMSE)

In general, there are two main strategies of parameter identification.(1)The first one is the* analytical computation* of the optimal parameters for a given model structure according to given measurements. For that purpose, there are mathematical strategies like least squares method, instrumental variable method, maximum likelihood method, and so forth [5, 6]. These methods deliver the optimal parameters for a given optimization criterion (usually with ) after a finite number of computational steps. However, this is only possible for certain model structures, for example, linear models, polynomials for static models, or linear difference equations for dynamic models, mostly models that are linear in their parameters. Most text books as well as publications on process identification focus on analytical methods [5, 6].(2)On the other hand, there is the possibility of “training” models using* iterative optimization methods*. In this case, the model is simulated again and again with varied parameters and the difference () between the model output and the measurements is evaluated. There are a lot of optimization strategies like Monte Carlo optimization, simulated annealing, Levenberg-Marquardt, gradient-based search, and evolutionary algorithms. Most such algorithms take less assumptions on the model structure than analytical methods and can therefore be used for a wide variety of model types or even unknown (black-box) models. Therefore, they are the usual way of process identification for complex model types like finite element models [7, 8]. But also for simple models, where analytical methods exist, such optimization methods are sometimes used; a well-known example is the Matlab System Identification Toolbox [9]. However, these methods do not guarantee to deliver the globally optimal results (due to local optima), especially not in finite time. Both types of identification procedures are supported by the new software to give a maximum of freedom to the user. It is also possible to combine both strategies. For example, linear model parts can first be identified analytically, and more complex or even black-box parts can be identified via evolutionary algorithms, afterwards.

#### 3. Software Overview

A first description of the developed software has been given in [1]. The coordinator manages a modular model where the subsystems are connected via “signals,” as scientifically known from “systems theory.”

Most functionality is provided to that core via* plug-ins*. There are currently three types of plug-ins:(1)*System-processing plug-ins* provide model type specific functions, especially model simulation, parameter identification, and inversion.(2)*Reader plug-ins* are responsible for getting measurement data into the software—for example, from files, data bases, or (in online mode) directly from sensors—that is used to compare the model outputs with the real modeled system.(3)*Visualization plug-ins* are used to visualize simulation results, for example, graphically or as tables, or for writing output data into files. Besides the management of the modular model and system identification work flow the core contains standard optimization methods that are independent of the model type and can thus be used for all model types together.

One of the reasons for the plug-in concept is the ability to extend the identification software by functionality of other software products using “wrapper plug-ins.” That concept has now been used to integrate models that have been implemented as Matlab or Python scripts. For the end user of the software, the following work flow results.(1)Usually, models that have been written as scripts contain adjustable parameters as* variables* of the software. If that is not the case, variables for uncertain parameters that are to be identified have to be created in the script to use the identification coordinator.(2)After that, in the GUI (graphical user interface) of the identification coordinator, a system of type “Matlab script” or “Python script” is created. In the corresponding dialog the used script file name and the names of the parameters that have to be optimized are edited (Figure 1). It is also possible to set parameter values manually from the software, which is helpful if the same script is used in different contexts.(3)The needed other parts for process identification are specified. This contains the selection of an appropriate “reader” (e.g., file format, data base) for the measurement data that is to be used, as well as—if necessary—additional preprocessing steps or further model parts that are not part of the script.(4)Since scripts can usually contain all thinkable types of models or combinations of them, they are treated as black-box in the current implementation. The Matlab and Python plug-ins provide therefore no model-specific optimization methods. Because of this, the window for iterative standard parameter optimization can be opened. The parameters that shall be optimized automatically are selected together with their expected bounds and—if needed for the optimization method that is chosen later—start values (Figure 2).(5)In the next step, the optimization criterion is chosen. This is a set of signal pairs (usually a pair of one measurement signal and one simulation output signal ) together with a weighting factor for each pair. Let be the vector of weighting factors with size ; then the error is the evaluated criterion, with taken from (1).(6)Now, the identification method is chosen. Only model independent identification methods are provided by the core, for example, Monte Carlo simulation, simulated annealing, and an evolutionary algorithm.(7)Finally, the parameter optimization can be started. The possible stop criteria are currently a defined number of iteration steps and a time limit. A quality limit (i.e., desired value of ) could be added easily. The parameter optimization finishes when (at least)* one* of the specified criteria is reached.The coupling with Matlab is realized with the “Matlab Engine API for Java” [10] and the coupling with Python by integrating the open-source Jython interpreter [11]; see Figure 3. These two solutions represent also two of the three main possible ways of integrating external software into a Java plug-in: (1)Use an API (application programmer’s interface) of the external software to directly communicate with the external software for setting parameter values, starting simulation, and exchanging signals.(2)Provide an* interpreter or simulator* for the external models as a plug-in.(3)Start a simulation as a* batch job*, that is, via command line. The last type of coupling should only be chosen if the other two solutions are not possible or if the required libraries are too large for the application (e.g., on embedded systems), because starting a simulation as a batch job is usually slower, especially if the start of the external simulation software needs significant time.