Prediction of Automotive Engine Power and Torque Using Support Vector Machines WONG Pak-kin1*, VONG Chi-man 2, Ho Chon-meng1and LI Yi-ping2 1 2 (Department of Electromechanical Engineering, University of Macau, Macao) (Department of Computer and Information Science, University of Macau, Macao) *fstpkw@umac.mo Abstract: Automotive engine power & torque is significantly affected with effective tune-up. Current practice of engine tune-up relies on the experience of the automotive engineer. Therefore, engine tine-up is usually done by trial-and-error method because a formal power & torque function of the engine has not been determined yet. With an emerging technique, Support Vector Machines (SVM), the approximate power & torque function of a vehicle engine can be determined by training the sample data acquired from the dynamometer. The construction and accuracy of the function are also discussed in this paper. The study shows that the predicted results are good agreement with the actual test results. Key words: Automotive engine setup, Support vector machines, Engine power and torque 1. INTRODUCTION Modern automotive engines are controlled by the electronic control unit (ECU). The engine power & torque are significantly affected by the setup of control parameters in the ECU. Normally, the car engine power & torque are obtained through dynamometer tests. Current practice of engine tune-up relies on the experience of the automotive engineer. The engineers will handle a huge number of combinations of the engine control parameters. The relationship between the input and output parameters of a modern car engine is a complex multi-variable function [1], which is very difficult to be found. Consequently, engine tune-up is usually done by trial-and-error method. Moreover, the power & torque function is engine dependent. Knowing the power & torque function can let the automotive engineer predict if a new car engine set-up is gain or loss. With an emerging technique, Support Vector Machines (SVM) [2-4], the traditional problem of high dimensionality regression is overcome. The engine power & torque function regressed can be used for engine performance prediction without using dynamometer tests. 2. SUPPORT VECTOR MACHINES SVM is an emerging technique pioneered by Vapnik [2-4]. It is an interdisciplinary field of machine learning, optimization, statistical learning and generalization theory. Basically it can be used for pattern classification and multi-variable regression. No matter which application, SVM considers the application 1 as a Quadratic Programming (QP) problem for the weights with regularization factor included. Since a QP problem is a convex function, the solution of the QP problem is global (or even unique) instead of a local solution. 2.1 SVM formulation for multi-variable regression Consider the regression to the data set, D = {(x1, y1), …, (xN, yN)}, with N data points where xi Rn, y R. SVM formulation for multi-variable regression is expressed as the following equation [4-5]. W (α, α * ) Min , * N such that ( i 1 i N N 1 N N * * * ( )( ) K ( x , x ) ( ) yi ( i i* ) i i j j i j i i 2 i1 j 1 i 1 i 1 i* ) 0 (1) where: α,α* : Lagrangian multipliers (Each multiplier is expressed as an N-dimensional vector) i , j α* , i , j α, for 1 i, j N and i , j , i* , *j [0, c] K: kernel function ε : user pre-defined regularization constant c : user pre-defined positive real constant for capacity control In this specific application, some parameters in Eq. (1) are specified as: xi : engine input control parameters in the ith sample data point i = 1,2…N (i.e. the ith engine setup) yi : engine output torque in the ith sample data point N : total number of engine setups i and i* are known as support values corresponding to the ith data point, where ith data point means the ith engine setup and output torque. Besides, Radial Basis Function (RBF) with user pre-defined sample variance σ2 is chosen as the kernel function because it often has a good result for nonlinear regression [6]. After solving Eq. (1) with a commercial optimization package, such as MATLAB and its optimization toolbox, two N-vectors α,α* are obtained to be the solutions, resulting in the following target multi-variable function: N N M (x) ( i i* ) K (x, xi ) b ( i i* )e i 1 i 1 where b x : bias constant : new engine input setup with N parameters 2 x xi 2 2 b (2) σ2 : user-specified sample variance In order to obtain b, m training data points dk = <xk, yk> D, k = 1,2,…, m, are selected, such that their corresponding k and k* are non-zero. By substituting xk into Eq. (2) and setting M(xk) = yk, a bias bk can be obtained. Since there are m biases, the optimal bias value b* is usually obtained by taking the average of bk. 3. APPLICATION OF SVM TO ENGINE MODELING In this application, M(x) in Eq. (2) is the power & torque function of an engine. The issues of the use of SVM to this application domain are discussed in the following sub-section. 3.1 Engine data representation The training data set is expressed as D = {(xi, yi)}, i = 1 to N. Practically, there are many input control parameters and they are also ECU and engine dependent. Moreover, the engine horsepower and torque curves are normally obtained at full-load condition. For the demonstration purpose of the SVM methodology, the following common adjustable engine parameters and environmental parameter are selected to be the input. x = < Ir, O, tr, f, Jr, d, a, p > and y = <Tr> where r: Engine speed (RPM) and r = {1000, 2000, 3000, …, 8000} Ir: Ignition spark advance at the corresponding engine speed r (degree before top dead center) O: Overall ignition trim ( degree before top dead center) tr: Fuel injection time at the corresponding engine speed r (millisecond) f: Overall fuel trim ( %) Jr: Timing for stopping the fuel injection at the corresponding engine speed r (degree before top dead center) d: Ignition dwell time (millisecond) a: Air temperature (°C) p: Fuel pressure (Bar) Tr: Engine torque at the corresponding engine speed r (Nm) As some data is engine speed dependent, another notation Dr is used to further specify a data set containing the data with respect to a specific r. For example, D1000 contains the following parameters: <I1000, O, t1000, f, J1000, d, a, p, T1000>, while D8000 contains <I8000, O, t8000, f, J8000, d, a, p, T8000>. Consequently, D is separated into eight subsets namely D1000, D2000, …, D8000. An example of the training data (engine setup) for D1000 is shown in Table 1. For every subset Dr, it is passed to the SVM regression module, Eq. (1), one by one in order to construct eight torque functions Mr(x) with respective to engine speed r, i.e. Mr(x)=Mr ={M1000, M2000,…,M8000}. 3 In this way, the SVM module is run for eight times. At each run, a distinct subset Dr is used as training set to estimate its corresponding torque function. A torque against engine speed curve of the engine can therefore be obtained by fitting a curve that passes through the data points generated by M1000, M2000,…M8000. A case of actual engine torque and power curves acquired by dynamometer and predicted engine torque and power curves using SVM is shown in Fig.1. Table 1. Example of training data di in data set D1000 I1000 O t1000 f J1000 d a p T1000 d1 8 0 7.1 0 385 3 25 2.8 20 d2 11 2 6.5 0 360 3 24 2.8 11 . . . . . . . . . . . . . . . . . . . . dN 12 0 8.5 3 365 2.6 30 2.8 12.6 4. DATA SAMPLING AND IMPLMENTATION ISSUSES In practical engine setup, the automotive engineer determines an initial setup, which can basically start the engine, and then the engine is fine-tuned by adjusting the parameters about the initial setup values. Therefore, the input parameters are sampled based on the data points about an initial setup parameters supplied by the engine manufacturer. In our experiment, a sample data set of 200 different engine setups along with torque output D was acquired from a Honda B16A DOHC VTEC engine (Fig. 2) controlled by a programmable ECU, MoTeC M4 (Fig. 3), running on a chassis dynamometer (Fig. 4) at wide open throttle. The output data is only the engine torque against the engine speeds because the horsepower of an engine can be easily calculated using Eq. (3) [7]. HP where r T 7123.78 (3) HP : Engine horsepower (Hp) r : Engine speed (RPM) T: Engine torque (Nm) After collection of sample data set D, for every data subset Dr D, it is randomly divided into two sets: TRAINr for training and another TESTr for testing, such that Dr = TRAINr∪TESTr, where TRAINr contains 80% of Dr and TESTr holds the remaining 20% (Fig. 5). Then every TRAINr is sent to the SVM module for training, which has been implemented using MATLAB 6.5 with its optimization toolbox running on MS Windows XP platform. The detail implementation is discussed in following subsection. 4 4.1 SVM Training Before training the SVM system, the hyper-parameters in Eq. (2) is set to be c = = 1.0, which are common choices. Therefore, the remaining hyper-parameter to be found is . In our case, the value of is taken from a range of 0.0 to 0.2 with increment 0.01. That means there are totally 20 values and the values are 0.01, 0.02, 0.03, …, 0.2. After applying 10-fold cross validation to a training set TRAINr for 20 times, the value producing minimum validation error cost for TRAINr is chosen to be the best hyper-parameter r*. By repeating this procedure for eight times and all r* values for all TRAINr could be determined. Finally, the eight torque functions Mr are produced using SVM module based on the corresponding training data set TRAINr and the determined hyper-parameter r*. The biases b* for different Mr functions can also be easily calculated using Eq. (2). 5. RESULTS After obtaining all torque functions Mr, the accuracy is evaluated one by one against their own test sets TESTr. According to the accuracy obtained in Table 2, the predicted results are in good agreement with the actual test results under their hyper-parameters r*. However, it is believed that the function accuracy could be further improved by increasing the number of training data. Table 2. Accuracy of various functions of Mr and its corresponding hyper-parameter Engine torque function Mr r* b r* Average accuracy with test set Testr M1000 0.08 2.3 90.2% M2000 0.12 1.9 90.6% M3000 0.09 1.4 91.4% M4000 0.08 1.3 92.3% M5000 0.10 0.7 87.1% M6000 0.09 0.9 88.7% M7000 0.13 3.0 91.2% M8000 0.11 1.2 90.1% 6. CONCLUSIONS SVM method is applied to produce a set of power & torque functions for an engine according to different engine speeds. The functions are individually regressed based on eight sets of sample data acquired from an automotive engine. Some experiments have been done to indicate the accuracy of the power & torque functions and the results are highly satisfactory. It is believed that the functions can let the automotive engineer predict if his/her new engine setup is gain or loss during road tests, where the dynamometer is unavailable. This methodology can also be applied to different kinds of vehicle engines. 5 References 1. Hartman, J., 1993. Fuel Injection Installation: Performance Tuning, Modifications. Motorbooks International, USA, p62. 2. Cristianini N., Shawe-Taylor J., 2000. An Introduction to Support Vector Machines and Other Kernel-based Learning Methods. Cambridge University Press. 3. Perez-Ruixo J. et al., 2002. Cyclosporine Concentration Prediction using Clustering and Support Vector regression. IEE Electronics Letters, 38:568-570. 4. Schölkopf B., Smola A., 2002. Learning with Kernels: Support Vector Machines, Regularization, Optimization, and Beyond. MIT Press. 5. Gunn S., 1998. Support Vector Machines for Classification and Regression. ISIS Technical Report ISIS-1-98. Image Speech & Intelligent Systems Research Group, University of Southapton, May. 1998, U.K. 6. Seeger M., 2004. Gaussian processes for machine learning. International Journal of Neural Systems, 14(2):1-38. 160 140 140 120 100 80 60 40 20 0 120 100 80 60 40 20 0 1000 2000 3000 4000 5000 6000 7000 8000 Torque (Nm) Pulkrabek W.,1997. Engineering Fundamentals of the Internal Combustion Engine. Prentice Hall. Horsepower (HP) 7. Actual horsepower Predicted horespower Predicted torque Actual torque Engine speed (RPM) Fig. 1 A case of predicted and actual engine torque and power curves 6 Fig. 2 Adjustment of engine input parameters using MoTeC M4 programmable ECU Fig. 3 A Honda B16A VTEC engine for testing Fig. 4 Car engine power & torque data acquisition on a chassis dynamometer 7