34th INTERNATIONAL CONFERENCE ON PRODUCTION ENGINEERING 28. - 30. September 2011, Niš, Serbia University of Niš, Faculty of Mechanical Engineering SOFTWARE PROTOTYPE FOR ANALYZING MANUFACTURING PROCESS MODELS Marko KOVAČEVIĆ1, Miloš MADIĆ2, Velibor MARINKOVIĆ2 Faculty of Electronic Engineering in Niš, University of Niš, A. Medvedeva 14, Niš, Serbia 2 Faculty of Mechanical Engineering in Niš, University of Niš, A. Medvedeva 14, Niš, Serbia marko.kovacevic@elfak.ni.ac.rs, madic@masfak.ni.ac.rs, velmar@masfak.ni.ac.rs 1 Abstract: In this paper, the software prototype “Function Analyzer” for analyzing manufacturing process models is presented. Based on a loaded mathematical model and possible values of inputs, the developed prototype is able to perform the following tasks. Firstly, the prototype is able to determine extreme points of the process model and corresponding input values. Secondly, the prototype is able to determine optimal input values that satisfy the specified requirements for output: value and accuracy. The developed prototype was successfully tested on a mathematical model of the turning process. Key words: manufacturing processes, software prototype, optimization 1. INTRODUCTION Process modeling and optimization are two important issues in manufacturing [1]. Manufacturing processes are characterized by a multiplicity of dynamically interacting process variables, and usually too complicated to warrant appropriate analytical models [2]. Therefore manufacturing process models are often developed empirically using the regression analysis (RA) and in recent years by means of artificial neural networks (ANNs). To ensure high quality products, reduce manufacturing costs and increase the manufacturing effectiveness, it is very important to select the optimal process parameters. There are numerous methods and algorithms applied for the process optimization, such as ANNs [1], regression analysis [3], response surface method (RSM) [4], Taguchi method [4, 5], mathematical iterative search methods [5], meta-heuristic algorithms such as genetic algorithm (GA) [6], simulated annealing (SA) [7], particle swarm optimization (PSO) [8]. Also there are hybrid approaches that integrate two or more methods or algorithms. Most of aforementioned methods and algorithms can handle single and multiobjective optimization problems. However, despite numerous optimization methods, every method has certain advantages and disadvantages for implementation in real-life. There exists no universal method which is the “best” choice for optimization of all kinds of manufacturing processes. Above all, optimization methods can be difficult to use for engineers, who are not experts on optimization theory [9]. The motivation of this paper is to develop the software prototype Function Analyzer, which can be used for manufacturing process optimization and control. Based on the loaded mathematical model, the prototype is able to determine optimal input values of the process model that satisfy the specified requirements. Figure 1 describes the potential usage of the software for optimization and control of manufacturing processes. Fig.1. Possible application of software prototype Function Analyzer Function Analyzer is based on iterative search of all input values combinations, and is able to solve two types of optimization problems: to determine input values that correspond to output extremes (minimum or maximum) and to determine input values that correspond to user defined output with desired accuracy. It enables simple and flexible way of defining lists of possible input values and mathematical model functions. Due to user-friendly application interface, Function Analyzer simplifies solving engineering optimization problems and requires no expert knowledge on optimization theory. Software architecture is flexible and extendible, thus it can be improved for solving multi-objective optimization problems. 2. FUNCTION ANALYZER 2.1. Software functionalities The software prototype Function Analyzer enables users to define following parameters: o lists of possible input values V1, V2,...,Vn, where V1=(v11,v12,...,v1p), V2=(v21,v22,...,v2q),…,Vn=(vn1,vn2,...,vnr), and o mathematical model function F:Rn→R where n N . Using defined parameters and defined mathematical model function F, Function Analyzer calculates output fb for all input combinations Cb=(v1i,v2j,...,vnk), where i=1,…,p, j=1,…,q ,…, k=1,…,r, b=1,...,p∙q∙r. As a result we get a list of ordered pairs Pb=(fb,Cb), b=1,...,p∙q∙r. By iteratively searching a list of ordered pairs Pb, valuable information about the mathematical model can be extracted. Function Analyzer is able to extract following information: o for user defined number of minimums (maximums) l, determine l ordered pairs Pu=(fu,Cu), that correspond to l minimal (maximal) values fu, and o for user defined output value fuser and output value accuracy Δ, determine all ordered pairs Pu=(fu,Cu), where │fu-fuser│≤ Δ. The architecture of the software prototype Function Analyzer is designed to satisfy the following crucial requirements: o basic functionalities described in section 2.1 are implemented, o simple and flexible way of defining lists of possible values V1, V2,...,Vn is enabled, o matrix calculus is supported, o implementing new mathematical model function requires no changes in software architecture and minor changes in software code, and o due to user-friendly application interface, operating on Function Analyzer does not require a domain expert. Figure 2 shows UML (unified modeling language) logical model of the developed software prototype. The programming language used for implementation is C#. Class MainForm implements user interface of the software prototype. Software logic is implemented in class MathModelOutputManager. Method SetPossibleInputValues() is used to load lists of possible input values V1, V2,...,Vn from XML (extensible markup language) file, which is passed as a parameter of this method. As a result, an instance of the class PossibleInputValues is created (attribute member mInputValues). One instance of the class PossibleInputValuesItem corresponds to one list of possible input values. Each list of possible input values can be specified in two ways in XML file: 1. name (attribute member Name of class PossibleInputValuesItem), start value (StartValue), end value (EndValue) and step (Step), 2. name (Name) and list of possible values (Values). Method SetMatrices() is used to load matrices from text file, if mathematical model function contains matrices in its formula. As a result an attribute member mMatrices is filled. Method SetNetworkOutputFunction() is used to select one of the implemented mathematical model functions. 2.2. Software architecture Fig. 2. Logical model of software prototype Function Analyzer Method Preprocessing() is used to fill lists mInputCombinations (list of all input combinations Cb) and mOutputs (corresponding list of output values fb), based on loaded parameters. List mInputCombinations is obtained by using method GetAllCombinations() of attribute member mInputVariables. List mOutputs is obtained by using method CalculateOutput() of attribute member mMathModelOutput, for each input combination from the list mInputCombinations. Method GetExtremesList is used to determine l ordered pairs Pu=(fu,Cu) for minimums and l ordered pairs Pu=(fu,Cu) for maximums. A parameter of this method is an instance of the class ExtremesInputParams, that contains user defined number of extremes l (attribute member mExtremesNo). Methods GetAnalysisItem and GetNextAnalysisItem are used to determine ordered pairs Pu=(fu,Cu) for which inequality │fu-fuser│≤ Δ is satisfied. A parameter of this method is an instance of the class AnalysisInputParams, that contains user defined output value fuser (attribute member mOutputValue), output value accuracy (mAccuracy) and search order of list of all input combinations (mAscending). Every mathematical model function is modelled by a class that implements an interface IMathModelOutput (Fig. 3). Three methods must be implemented: o SetMatrices() – defines matrices if necessary, o GetBitmap() – provides bitmap of the formula for display in user interface, and o CalculateOutput() – calculates output fb for input combination Cb, which is passed as a parameter of this method. 3. A CASE STUDY An illustrative example is used to demonstrate the ability of Function Analyzer for machining process optimization and control. In this paper, the process of dry turning of cold rolled alloy steel using coated tungsten carbide inserts is considered [3]. Three major cutting parameters (factors, independent variables, inputs), cutting speed (Vc), feed rate (f), and depth of cut (ap) were varied in the experiment. The average surface roughness (Ra) was chosen as a measure of surface quality and as target function (dependent variable, response, output). For the purposes of regression analysis, coding of independent variables by means of the transforming equation was carried out: xi 2 X i X i min 1; i 1,2,3 X i max X i min (1) where xi are coded factors, Xi are natural factors, from Ximax to Ximin (in the design space of interest to the experimenter), Ximax and Ximin are the highest and the lowest values of the natural factors Xi respectively, and i is the index of the input factor. In this case, the following relationships are valid: X1 = Vc; X2 = f; X3 = ap. Based on experimental data and adopted non-linear (quadratic) mathematical model, by means of the regression analysis, the following multiple regression equation (in coded factors) was obtained [3]: Ra 3.844 2.811 x1 1.036 x2 1.02 x3 0.498 x12 0.055 x22 0.081 x32 0.12 x1 x2 0.057 x1 x3 0.162 x2 x3 ; xi 1, 2, 3 (2) The fitted multiple regression equation in terms of the natural factors (Vc, f, and ap) may be obtained by substituting the transforming equation (1) into the equation (2). This equation is not given in the paper. 3.1. Optimization Fig. 3. Mathematical model functions implementation At the moment, two mathematical model functions are implemented, modelled by classes RegressionOutput3 and NetworkOutputTansig1. Class MathModelOutputFactory realizes factory pattern, and is used by the class MathModelOutputManager to obtain one of the implementations of interface IMathModelOutput (class MathModelOutputManager is not aware of which implementation of interface IMathModelOutput is obtained). As a consequence, implementing new mathematical model function is very simple and requires no changes in software architecture. It only requires adding new class that implements interface IMathModelOutput, and minor changes in classes MathModelOutputFactory and MainForm. The purpose of the optimization is to determine such a set of the cutting conditions (Vc, f and ap) that satisfies the cutting parameters ranges to minimize the Ra. Within this range, there are multiple near optimal solutions, i.e. the combination of cutting parameter settings which software can find and sort. With Function Analyzer, using the step = 0.01, the following results were obtained: x1opt = 2.88 (Vcopt = 136.4 m/min); x2opt = 1 (fopt = 0.071 mm/rev); x3opt = 1 (apopt = 0.5 mm), and ymin = Ra(min) = 1.586 µm. An identical result was obtained in the work [3]. 3.2. Process control In the turning process, there can be various requirements for surface finish of machined part. For example, high quality surface finishes are often required, while rough surface finishes are sometimes sufficient for the machined part. Therefore, it is very important to control the turning process, so that for the required surface finish one can determine suitable cutting parameter settings. The selection of cutting parameter settings (input values) is based on control algorithm implemented in Function Analyzer. Based on predefined input values ranges, desired output and desired accuracy Δ (max. difference between desired and computed output values) the control algorithm iterates through all combinations of input values until optimal input values are determined. Consider a situation when one needs to determine cutting parameter settings so the required surface roughness of Ra = 4.77 µm is achieved. Using the Δ = 0.01 and starting the iteration process from the upper limits of cutting parameter values ranges, because this ensures high material removal rate, the following was obtained: x1 = 1.62 (Vcopt = 98.64 m/min); x2 = 3 (fopt = 0.321 mm/rev); x3opt = 3 (apopt = 2 mm). Figure 4 illustrates the usage of Function Analyzer for the discussed case study. The software was run on Intel Core2Duo T5800 with 4 GB RAM. Computational time is given in Table 1. Note that there was 8·106 of possible input values combinations. Preprocessing (determination of all combinations of input values and corresponding outputs) enables efficient algorithms execution. Table 1. Computational time for the case study Preprocessing Optimization algorithm Process control algorithm 12.06 s 0.29 s 0.20 s Fig. 4. Function Analyzer applied to turning process 4. CONCLUSION In this paper, the software prototype Function Analyzer for single objective optimization of manufacturing processes parameters is proposed. Function Analyzer is based on iterative search of all input values combinations, and is able to solve two types of optimization problems: to determine input values that correspond to output extremes (minimum or maximum) and to determine input values that correspond to user defined output with desired accuracy. Function Analyzer enables a simple and flexible way of defining lists of possible input values. It provides working with mathematical models based on RA and ANN, but additional models can easily be implemented. Due to user-friendly application interface, Function Analyzer simplifies solving engineering optimization problems and requires no expert knowledge on optimization theory. Although based on iterative search, the developed software prototype is efficient even for large possible input values sets. Additionally, setting numerous optimization parameters and initial search points is avoided. The ability of Function Analyzer for optimization and control of the turning process was demonstrated using an illustrative example. Future work could be directed toward solving multiobjective optimization problems in manufacturing processes and implementation of the software to real-time problems. ACKNOWLEDMENTS This paper is part of project TR35034 and III41017, funded by the Ministry of Education and Science of the Republic of Serbia. REFERENCES [1] ČUŠ, F., MILFELNER, M., BALIČ, J. (2006) An intelligent system for monitoring and optimization of ball-end milling process, Journal of Materials Processing Technology, Vol.175, No 1-3, pp. 90–97 [2] LIAO, T.W., CHEN, L.J. (1998) Manufacturing process modeling and optimization based on multilayer perceptron network, Journal of Manufacturing Science and Engineering, Vol.120, No 1, pp. 109-119 [3] TANIKIĆ, D., MARINKOVIĆ, V. (2011) Modelling and optimization of the surface roughness in the dry turning of the cold rolled alloyed steel using regression analysis, Journal of the Brazilian Society of Mechanical Sciences and Engineering, (in press) [4] BAJIĆ, D., JOZIĆ, S., PODRUG, S. (2010) Design of experiment’s application in the optimization of milling process, Metalurgija, Vol.49, No 2, pp. 123126 [5] JURKOVIĆ, Z., BREZOČNIK, M., GRIZELJ, B., MANDIĆ, V. (2009) Optimization of extrusion process by genetic algorithms and conventional techniques, Technical Gazette, Vol.16, No 4, pp. 2733 [6] LEE, B.J., TARNG, Y.S. (2000) Cutting-parameter selection for maximizing production rate or minimizing production cost in multistage turning operations, Journal of Materials Processing Technology, Vol.105, No 1-2, pp. 61-66 [7] YANG, S.-H., SRINIVAS, J., MOHAN, S., LEE, D.M., BALAJI, S. (2009) Optimization of electric discharge machining using simulated annealing, Journal of Materials Processing Technology, Vol.209, No 9, pp. 4471–4475 [8] KARPAT, Y., ÖZEL, T. (2007) Multi-objective optimization for turning processes using neural network modeling and dynamic-neighborhood particle swarm optimization, International Journal of Advanced Manufacturing Technology, Vol.35, No 34, pp. 234-247 [9] HIMMELBLAU, D.M. (1972) Applied Nonlinear Programming, McGraw-Hill Book Company, New York