Drivetrain Modelling and Clutch Temperature Estimation in Heavy Duty Trucks Examensarbete utfört i Fordonssystem vid Tekniska högskolan vid Linköpings Universitet av Johan Thornblad LiTH-ISY-EX--14/4784--SE Södertälje 2014 Drivetrain Modelling and Clutch Temperature Estimation in Heavy Duty Trucks Examensarbete utfört i Fordonssystem vid Tekniska högskolan vid Linköpings Universitet av Johan Thornblad LiTH-ISY-EX--14/4784--SE Handledare: Anders Larsson, Scania CV Andreas Myklebust, ISY, Linköpings Universitet Examinator: Lars Eriksson, ISY, Linköpings Universitet Södertälje, 10 Juni 2014 Presentationsdatum Institution och avdelning Institutionen för systemteknik 2014-06-13 Publiceringsdatum (elektronisk version) Department of Electrical Engineering - Språk Typ av publikation ISBN (licentiatavhandling) Svenska X Annat (ange nedan) Licentiatavhandling X Examensarbete C-uppsats D-uppsats Rapport Annat (ange nedan) ISRN Engelska Antal sidor 63 LiTH-ISY-EX--14/4784--SE Serietitel (licentiatavhandling) Serienummer/ISSN (licentiatavhandling) URL för elektronisk version http://www.ep.liu.se Publikationens titel Drivetrain Modelling and Clutch Temperature Estimation in Heavy Duty Trucks. Författare Johan Thornblad Sammanfattning En existerande drivlinemodell med temperaturdynamik i kopplingen har använts för att simulera beteendet hos en lastbil. Vid implementation av modellen i MATLAB/Simulink betonades vikten av en enkel och modulär struktur. Detta gjordes för att underlätta användning av modellen i olika applikationer samt för att göra den lätt att förstå. De huvudsakliga bidragen i uppsatsen är anpassningen av en temperatur- och slitageobeservatör på kopplingen för användning i realtid av växellådans styrenhet. För att ta observatören från simulerings- till realtidsmiljö måste styrenhetens konfiguration och begränsningar beaktas samt gränssnittet hos observatören anpassas. Konkret betyder detta att hänsyn till begränsningarna hos de olika datatyper som används i kopplingens styrenhet tagits, att den negativa inverkan som brusiga mätsignaler kan få begränsats samt att skillnader i dynamik hos de olika sensortyper som används i kopplingen kompenserats för. Med simuleringar har prestandan hos den anpassade observatören studerats samt dess förmåga att kompensera för värmeutvidgning och slitage i kopplingen visats. Abstract An existing drivetrain model with clutch temperature dynamics has been used to simulate the behaviour of a heavy duty truck. During the implementation of the model in MATLAB/Simulink modularity and simplicity was greatly emphasized. This was done in order to facilitate the use of the model in various applications as well as making it easy to understand. The main contributions of the thesis is however the adaptation of a clutch temperature and wear observer for use in an online application in the gearbox management system (GMS). The process of taking the observer from an off-line simulation environment to running on-line includes taking into consideration the configuration and limitations of the GMS as well as adapting the interface of the observer. Concretely this means dealing with the limitations of the available data types in the GMS, compensating for the effect of biased measurements as well as accounting for the different dynamics of the sensortypes used in the clutch. In a simulation environment the performance of the adapted observer has been studied and its ability to compensate for heat expansion and wear in the clutch shown. Nyckelord Drivetrain, Modelling, Clutch, Temperature, Estimation, EKF Abstract An existing drivetrain model with clutch temperature dynamics has been used to simulate the behaviour of a heavy duty truck. During the implementation of the model in MATLAB/Simulink modularity and simplicity was greatly emphasized. This was done in order to facilitate the use of the model in various applications as well as making it easy to understand. The main contributions of the thesis is however the adaptation of a clutch temperature and wear observer for use in an on-line application in the gearbox management system (GMS). The process of taking the observer from an off-line simulation environment to running on-line includes taking into consideration the configuration and limitations of the GMS as well as adapting the interface of the observer. Concretely this means dealing with the limitations of the available data types in the GMS, compensating for the effect of biased measurements as well as accounting for the different dynamics of the sensor-types used in the clutch. In a simulation environment the performance of the adapted observer has been studied and its ability to compensate for heat expansion and wear in the clutch shown. VII Sammanfattning En existerande drivlinemodell med temperaturdynamik i kopplingen har använts för att simulera beteendet hos en lastbil. Vid implementation av modellen i MATLAB/Simulink betonades vikten av en enkel och modulär struktur. Detta gjordes för att underlätta användning av modellen i olika applikationer samt för att göra den lätt att förstå. De huvudsakliga bidragen i uppsatsen är anpassningen av en temperatur- och slitageobeservatör på kopplingen för användning i realtid av växellådans styrenhet. För att ta observatören från simulerings- till realtidsmiljö måste styrenhetens konfiguration och begränsningar beaktas samt gränssnittet hos observatören anpassas. Konkret betyder detta att hänsyn till begränsningarna hos de olika datatyper som används i kopplingens styrenhet tagits, att den negativa inverkan som brusiga mätsignaler kan få begränsats samt att skillnader i dynamik hos de olika sensortyper som används i kopplingen kompenserats för. Med simuleringar har prestandan hos den anpassade observatören studerats samt dess förmåga att kompensera för värmeutvidgning och slitage i kopplingen visats. IX Acknowledgements I would like to thank my examiner Lars Eriksson at Linköpings University and Henrik Flemmer, head of pre-development of engine system platforms at Scania for giving me this great opportunity. Most of all I wish to thank my supervisor Andreas Myklebust at Linköpings University for his invaluable feedback and for letting me base the thesis on his research. Further I wish to thank Anders Larsson from Scania for taking time to guide and support me during all phases of the work. For his thoughtful input throughout the thesis I also want to thank my opponent Svante Löthgren. Finally i wish to say thank you to Emelie for your support and for proofreading the report. Johan Thornblad Södertälje, June 2014 XI Contents 1 Introduction 1.1 1.2 1.3 1 Background . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.1.1 The drivetrain . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.1.2 Clutch control . . . . . . . . . . . . . . . . . . . . . . . . . 2 Aims and objectives . . . . . . . . . . . . . . . . . . . . . . . . . . 3 1.2.1 Modelling . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 1.2.2 Clutch control . . . . . . . . . . . . . . . . . . . . . . . . . 4 1.2.3 Implementation in truck . . . . . . . . . . . . . . . . . . . . 4 1.2.4 Evaluate performance at low speeds . . . . . . . . . . . . . 4 Thesis outline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 1.3.1 5 Chapters . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 Related research 7 2.1 Modelling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 2.2 The clutch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 2.3 Clutch control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 2.4 Gearshift comfort analysis . . . . . . . . . . . . . . . . . . . . . . . 8 2.5 Position and cruise control . . . . . . . . . . . . . . . . . . . . . . . 8 3 Modelling 11 3.1 Variable and subscript definitions . . . . . . . . . . . . . . . . . . . 12 3.2 Engine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 3.3 Clutch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 3.3.1 Clutch overview . . . . . . . . . . . . . . . . . . . . . . . . 13 3.3.2 Clutch torque transmissibility . . . . . . . . . . . . . . . . . 13 3.3.3 Temperature Dynamics . . . . . . . . . . . . . . . . . . . . 14 3.3.4 Lock-Up/Break-Apart Logic . . . . . . . . . . . . . . . . . . 16 XIII 3.3.5 Torsional Part . . . . . . . . . . . . . . . . . . . . . . . . . 18 3.4 Gearbox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 3.5 Propeller Shaft . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 3.6 Final Drive . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 3.7 Drive Shafts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 3.8 Vehicle Dynamics . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 3.9 Implementation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 4 Clutch observer 22 4.1 Observer variable definitions . . . . . . . . . . . . . . . . . . . . . . 22 4.2 Extended clutch model . . . . . . . . . . . . . . . . . . . . . . . . . 23 4.3 Observability analysis . . . . . . . . . . . . . . . . . . . . . . . . . 25 4.3.1 Operating modes . . . . . . . . . . . . . . . . . . . . . . . . 25 4.3.2 Combined observability . . . . . . . . . . . . . . . . . . . . 25 4.4 Choice of observer type . . . . . . . . . . . . . . . . . . . . . . . . 26 4.5 Extended Kalman filter set up . . . . . . . . . . . . . . . . . . . . 26 4.5.1 Discretisation of the model . . . . . . . . . . . . . . . . . . 26 4.5.2 The filter . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 4.6 Selection of covariance matrices . . . . . . . . . . . . . . . . . . . . 28 4.7 Initiation and limitation of the uncertainty matrix . . . . . . . . . 29 4.7.1 Uncertainty of the temperature states . . . . . . . . . . . . 29 4.7.2 Uncertainty of the zero position state . . . . . . . . . . . . 30 4.7.3 Initial uncertainty matrix . . . . . . . . . . . . . . . . . . . 31 5 Clutch controller 33 5.1 Fixed trajectory look-up table . . . . . . . . . . . . . . . . . . . . . 33 5.2 Temperature compensation . . . . . . . . . . . . . . . . . . . . . . 34 5.3 Engine torque feedback . . . . . . . . . . . . . . . . . . . . . . . . 34 5.4 Validation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 6 Implementation on GMS 37 6.1 Specify data types . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 6.2 Transformation the clutch torque transmissibility curve . . . . . . 38 6.3 Data type precision issues . . . . . . . . . . . . . . . . . . . . . . . 40 6.4 Biased measurements . . . . . . . . . . . . . . . . . . . . . . . . . . 41 6.5 Requesting clutch position . . . . . . . . . . . . . . . . . . . . . . . 42 XIV 6.6 6.5.1 Relating the clutch piston position to motor position . . . . 42 6.5.2 The distance between the clutch motor and piston . . . . . 43 Avoid division by zero . . . . . . . . . . . . . . . . . . . . . . . . . 44 6.6.1 45 EKF Update method . . . . . . . . . . . . . . . . . . . . . . 7 Results 7.1 7.2 7.3 7.4 47 Complete driveline model with clutch temperature dynamics . . . 47 7.1.1 Model residuals . . . . . . . . . . . . . . . . . . . . . . . . . 47 7.1.2 Correcting for the torque drift . . . . . . . . . . . . . . . . 49 Clutch temperature and zero-position observer . . . . . . . . . . . 49 7.2.1 Convergence of the zero position . . . . . . . . . . . . . . . 49 7.2.2 Convergence of individual states . . . . . . . . . . . . . . . 50 Temperature compensation in the clutch controller . . . . . . . . . 52 7.3.1 Effect on launch quality . . . . . . . . . . . . . . . . . . . . 52 7.3.2 Effect on produced engine torque . . . . . . . . . . . . . . . 54 Observer implemented on GMS . . . . . . . . . . . . . . . . . . . . 55 8 Conclusions and future work 8.1 8.2 57 Conclusions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 8.1.1 Complete drivetrain model . . . . . . . . . . . . . . . . . . 57 8.1.2 Clutch observer on GMS . . . . . . . . . . . . . . . . . . . . 57 Future work . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 8.2.1 Tire dynamics . . . . . . . . . . . . . . . . . . . . . . . . . 58 8.2.2 Backlash dynamics . . . . . . . . . . . . . . . . . . . . . . . 58 8.2.3 Adding the clutch motor . . . . . . . . . . . . . . . . . . . . 59 8.2.4 Implementing new engine model . . . . . . . . . . . . . . . 59 XV Nomenclature Acronym AMT HDT PID MPC LQG CC ACC GMS EMS ICE RAM Meaning Automated Manual Transmission Heavy Duty Truck Proportional Integration Derivation Model Predictive Control Linear Quadratic Gaussian Cruise Control Adaptive Cruise Control Gearbox Management System Engine Management System Internal Combustion Engine Random Access Memory XVI Chapter 1 Introduction This master thesis report presents work on Drivetrain Modelling and Clutch Temperature Estimation in Heavy Duty Trucks. The thesis was written at Scania CV and the division of Vehicular Systems, department of Electrical Engineering at Linköping University. This section contains some background to the thesis, the aims and objectives of the thesis and the general outline of the report. 1.1 Background Customer as well as government demands on the drivetrain of a heavy duty truck (HDT) in terms of fuel efficiency, driveability and comfort are ever increasing and are today larger than ever. There is no reason to think that this trend will come to an end in the near future. Another clear trend in today’s transportation industry is a movement towards a higher degree of automatisation that aims at reducing both manual labour and costs as well as increasing the level of safety and security of a given transportation system. To be able to meet those demands it is essential for automotive companies to build a better understanding about the components of the drivetrain, their characteristics and interactions. 1.1.1 The drivetrain The choice of drivetrain configuration has great impact on the performance of a HDT. A type of configuration that is able to combine the efficiency of a manual transmission with the driveability and comfort of an automatic transmission is the automated manual transmission (AMT) [1]. This type of drivetrain is however rather complex and therefore requires more refined control strategies than classic types of drivetrains. A fundamental problem with drivetrain control is the flexibility of its components. For example this means that the propeller shaft and drive shafts of the vehicle 1 are exposed to torsion. This can be seen in Figure 1.1 where the torsion of the driveshafts is seen. It should be noted that the torsion changes when the clutch torque increases at 1 and 4 seconds and when the clutch locks-up at 8.6 seconds. These properties can induce large torque oscillations [5] which often are perceived negatively by the driver and can also be stressful for the drivetrain components. Figure 1.1: The upper plot shows the clutch torque and the lower plot shows the torsion of the driveshafts during a simulated launch. 1.1.2 Clutch control In the future it is desired that HDT’s become more autonomous and are able to deal with a wider range of driving situations without driver interference. An example of this is a cruise controller that functions through the entire speed range. When the speed of a vehicle drops low enough the clutch must change state from closed to slipping since the engine idle velocity is too high. When the clutch is slipping energy is dissipated and the clutch heats up. As can be seen in Figure 1.2 the clutch characteristics are very dependant on temperature where the transferred torque at a certain clutch position can vary to up to 900 Nm depending on the clutch temperature. 2 1500 80 Clutch Torque [Nm] 60 1000 40 20 500 0 4 Time [s] 5 6 7 8 9 Piston Pos. [mm] 10 11 12 Figure 1.2: The figure shows the clutch output torque when the clutch position is ramped back and forth with increasing temperature as a result. The figure is taken from [24]. To be able to develop a well functioning cruise controller for low speeds it is therefore essential to have good knowledge about the current clutch temperature and how this effects its operation. 1.2 Aims and objectives The main objectives of this thesis is to adapt an existing drivetrain model for use by Scania and the development and evaluation of a control strategy for the clutch. Especially the possibilities of using the developed clutch model for use in autonomous applications are to be examined. 1.2.1 Modelling A complete drivetrain model that captures the dominating oscillating behaviour of a heavy duty truck is to be developed. The model described in [25] is to be used as the foundation of the drivetrain model that is used throughout the thesis. The model is to be adapted to the model-structure that is currently being used by Scania. Concretely this means that the structure of the model needs to be modular and that the different blocks of the model should correspond to a physical component. This together with no signals running on buses will result in a model 3 that is simple to understand and easy to use in a wide range of applications. This part of the thesis is covered in Chapter 3. 1.2.2 Clutch control The clutch is to be controlled using a feed-forward link that translates the desired engine torque to a corresponding clutch piston position. In parallel with the feedforward a feedback link is used to compensate for differences between requested engine torque and measured engine torque. The desired clutch stroke is also to be corrected for the effects of thermal swelling and wear in the clutch. To do this the clutch-observer described in [5] needs to be implemented. The clutch control part of the thesis is covered in Chapter 5. 1.2.3 Implementation in truck The developed clutch controller is to be modified and configured in a way that makes it possible to generate in C-code and build onto the gearbox management system (GMS). This means that both the limited processing power as well as memory capacity of the GMS must be taken into consideration when designing the clutch controller. The work done to implement the clutch controller in the GMS can be seen in Chapter 6. 1.2.4 Evaluate performance at low speeds The possibility to use the clutch temperature and wear observer for positioning and use in an application for low speed autonomous driving is to be evaluated. An important aspect of this is to survey the existing literature on the subject which is done in Chapter 2. 1.3 Thesis outline The first and second chapters of the thesis are dedicated to presenting the reader with a short introduction to the report as well as some technical background and a literature review on the subject. The following chapters can basically be divided in two parts. The first part covers the modelling of the driveline and clutch that has been performed. The second part describes the process of taking the clutch temperature observer from the simulation environment and building it onto the truck gearbox management system . At the end of the report the obtained results are shown and discussed together with suggestions on future work. In Figure 1.3 a flow chart over the work process of the thesis can be seen. 4 Figure 1.3: The figure shows the different phases of the thesis. 1.3.1 Chapters In this section the outline of the report can be seen. Chapter 1 - Introduction A short background to the thesis together with the aims and objectives. Chapter 2 - Related research In this chapter a review on literature on driveline modelling, clutch modelling and clutch control is given. Chapter 3 - Modelling The different components of the model are explained and related equations are stated. Chapter 4 - Clutch observer In this chapter the construction of the clutch temperature and wear observer is explained. Chapter 5 - Clutch controller In this chapter it is described how the different part of the clutch controller are put together Chapter 6 - Implementation on GMS All the changes made to the observer in order to build it on the GMS are described here. Chapter 7 - Results The results are presented and discussed. Chapter 8 - Conclusions and future work Here the suggestions of future work are given. 5 Chapter 2 Related research An important aspect in the thesis is to survey the existing research on the subject. This is to give a deeper understanding of the challenges and possibilities in the area. 2.1 Modelling In this thesis most of the work is done in a simulation environment. Therefore it is reasonable to start by surveying what possibilities there are when choosing a model-structure. The primary choice is about what flexibilities in the drivetrain that needs to be modelled and which can be neglected. When doing this it is important to have the intended usage of the model in mind. For some applications high simulation speed is important and therefore only one flexibility is included. In other cases more flexibilities are considered to be able to capture to drivetrain dynamics better. In [4] three flexibilities are modelled; the clutch, the propeller shaft and the drive shafts. In [8] only one flexibility between the transmission and the wheels is modelled since it is dominating. In [7] the dynamics of the wheel tires and their dependence on temperature are also studied. 2.2 The clutch Since the quality of a gearshift mainly depends on how the clutch is controlled it is essential to understand how torque is transferred through the clutch. Among others this is examined in [5] where the clutch-properties dependence on temperature and wear are modelled. In [9] it is also analysed how heat influences the functionality of the clutch. 7 2.3 Clutch control In later years the AMT has received a lot of attention as a research area. Here follows a selection of the more interesting and in the literature frequently mentioned control strategies. In [12] an adaptive PID-controller that utilizes a Q-learning algorithm to adapt the controller to the present conditions is proposed. Further there is extensive literature that covers the use of Fuzzy-logic [11] coupled with extensive knowledge of the gear shift process and interpretation of the drivers intentions. As the computational capabilities of the onboard computers are getting larger it has become more interesting to try model predictive controllers (MPC) to control the drivetrain [10]. In [2] a linear quadratic Gaussian controller (LQG) is developed that in an intuitive fashion interprets the intentions of the driver by adjusting the weight-matrixes of the controller. 2.4 Gearshift comfort analysis When performing a gear change it is according to [2] basically three parameters that are important to pay respect to; minimizing the time-duration of the gear shift, minimizing the friction losses and achieving smooth acceleration to assure the comfort of the driver. An important property when it comes driver-comfort is vehicle jerk which is defined as the rate at which the acceleration of the vehicle changes or the third derivative of the position [3]. 2.5 Position and cruise control A possible driving scenario where the clutch temperature and wear observer might prove useful is driving in queues. In this particular scenario the clutch is frequently operated which raises the temperature of the clutch. This is one reason to why ordinary cruise controllers do not function at low speeds. In order to better understand the requirements of a cruise controller in terms of clutch control performance a review of the literature on the subject has been made. Ordinary cruise control (CC) that makes a vehicle, called host vehicle, follow a chosen set speed has been around for many decades. In later years more and more automotive companies have started to introduce the more advanced adaptive cruise control (ACC) [18]. This driver assisting application can apart from the functionality of the ordinary cruise control also detect if an other slower vehicle, called lead vehicle, appears in front of the host and then take action to keep an appropriate inter-vehicle distance. A basic approach when it comes to the control algorithm of an ACC is to use a cascaded controller structure of PID regulators with a feed-forward link on the inner loop. This must also be coupled with some logic to decide when to switch between operating in CC-mode to ACC-mode [19]. In [22] a exciting CC is expanded to an ACC by adding the inter-vehicle distance control in form of a regulator that utilizes fuzzy-logics. 8 According to [20] the different and over time changing driving habits of different drivers can have a negative effect on the ACC controllers performance. It has been proposed to address this by developing an adaptive controller that measures the driving habits of the current driver during normal driving and then taking this into account in the ACC controller [21]. 9 Chapter 3 Modelling This chapter covers the modelling work in the thesis. The model used is based on existing models developed by several PhD students at Linköping University in cooperation with Scania CV under the LINK-SIC research incubator program. The original drivetrain model was developed in [4] which has been expanded with more detailed clutch dynamics in [5]. The model is parametrized towards the truck Ernfrid that previously has been used at Scania’s research facilities. A great emphasize was put on making the model modular to facilitate its use in various applications such as the design of different clutch control strategies, driveline damping and truck position control. Figure 3.1: The figure shows an overview of the drivetrain components as well as the modelled flexibilities. In Figure 3.1 a schematic figure of the drivetrain is seen. The modelled flexibilities are found in the clutch, propeller shaft and drive shafts and are represented as spring/damper-systems. 11 3.1 Variable and subscript definitions If not otherwise stated the following definitions and subscripts are used in the thesis. Variable tq x x0 T θ ω = θ̇ θ̈ J i v a Meaning Torque Clutch piston position Clutch piston zero position Temperature Angle Angular speed Angular acceleration Inertia Gear ratio Longitudinal speed Longitudinal acceleration Table 3.1: Model variables Subscript ice fw c gb ps fd ds b h d w i amb coolant b2h ice2b d2b h2amb k s trans Meaning Engine Flywheel Clutch Gear box Propeller shaft Final drive Drive shafts Clutch body Clutch housing Clutch disc Wheels Gear number Ambient Engine coolant Body to clutch housing Engine to clutch body Clutch disc to clutch body Clutch housing to ambient Dynamic/Kinetic Static Transferred in the clutch Table 3.2: Model subscripts 12 unit [Nm] [mm] [mm] [◦ C] [rad] [rad/s] [rad/s2 ] [kgm2 ] [-] [m/s] [m/s2 ] 3.2 Engine The engine model produces the engine torque which is given as a model input. It is important to note that the engine model output torque is the net (brake) torque. 3.3 Clutch The clutch model consists of four separate parts that describes its torque transmissibility, temperature dynamics, lock-up/break-apart dynamics and torsional behaviour. 3.3.1 Clutch overview In Figure 3.2 an overview of the different components of the clutch can be seen. Also the definition of the different clutch measurements and how they are related to one and other are shown. Figure 3.2: An overview of the clutch. The figure is taken from [24]. 3.3.2 Clutch torque transmissibility The clutch piston position x is translated to a dynamically transmittable torque tqref using the third order polynomial in 3.1. The shape of the torque transmissi- 13 bility curve can be seen in Figure 3.3. ( a(x − xisp )2 + b(x − xisp )3 tqref (x) = 0 , if x < xisp , if x ≥ xisp (3.1) Where xisp is the kiss point, x the clutch piston position and a and b are estimated curve-fit constants. It should be noted that the clutch torque transmissibility curve depends heavily on temperature. According to [5] a reference temperature of 60 ◦ C was used when identifying the shape of the curve seen in Figure 3.3. Figure 3.3: The clutch torque transmissibility curve identified at 60 ◦ C. It should be noted that the clutch kiss point is at 11.5 mm. 3.3.3 Temperature Dynamics When modelling the temperature effects on the torque transmissibility it has been shown that there are three different temperatures that need to be modelled: The clutch disc temperature Td , the clutch body (flywheel and pressure plate) temperature Tb and the clutch housing temperature Th . The equations that describes the temperature states can be seen in 3.2, 3.3, 3.4 and 3.5. (mcp )b T˙b = kice2b (Tcoolant − Tb ) + kb2h (Th − Tb ) + kd2b (Td − Tb ) 14 (3.2) (mcp )h T˙h = kb2h (Tb − Th ) + kh2amb (Tamb − Th ) (3.3) (mcp )d T˙d = kd2b (Tb − Td ) + P (3.4) Where kx2y is heat transfer coefficients between parts x and parts y in the clutch. P is the dissipated power that goes into the clutch and is calculated as. P = tqtrans,k (wice − wc ) (3.5) In Figure 3.4 the change in clutch temperatures during a simulated launch can be seen. The clutch starts slipping at 9 seconds and closes at 12 seconds. It can be seen that it is mostly the clutch disc that is affected during the slipping phase. The clutch housing temperature on the other hand is hardly affected due to its slow dynamics. Figure 3.4: The figure shows the temperatures of the clutch during a simulated launch where the clutch starts slipping at 9 seconds and closes at 12 seconds. It is seen that it is primarily the temperature of the clutch disc that is affected during the launch. 15 The clutch temperatures are used to calculate the thermal expansion of the clutch using 3.6 where kexp,X are thermal expansion coefficients. ∆x0 = (kexp,1 + kexp,2 )(Tb − Tref ) + kexp,2 (Td − Tb ) (3.6) The clutch piston position is then adjusted with regard to the thermal expansion in 3.7. xcor = x − ∆x0 (3.7) The dynamically transmittable torque can now be calculated as, tqtrans,k = tqref (xcor ) (3.8) The way the model works is that an increase in the clutch temperatures gives a larger xcor that results in an increase in tqtrans,k . If the ratio kµ between the static friction coefficient over the kinetic friction coefficient is used the maximum static transmittable torque can be calculated using 3.9 tqtrans,s = kµ tqtrans,k 3.3.4 (3.9) Lock-Up/Break-Apart Logic The clutch is operated in two different modes when driving, locked mode and slipping/open mode. When the clutch is locked to the flywheel it constitutes a one mass system with one degree of freedom. When the clutch is in slipping/open mode it is represented as a two mass system with two degrees of freedom. This means that the clutch torque can change if care is not taken in the control design when the clutch goes from one state to another. This can be seen as a torque dip in Figure 3.5 where the clutch lock up at roughly 9 seconds leads to driveline oscillations. The conditions for going from slipping/open to locked mode are: θ̇ice = θ˙c (3.10) tqtrans,k ≤ tqtrans,s (3.11) The condition for going from locked to slipping/open mode is: tqtrans,k > tqtrans,s 16 (3.12) Figure 3.5: The figure shows the clutch torque during lock-up. It is seen that if the slipping and static torque are not matched a torque dip with resulting driveline oscillations occurs. The equations for the clutch when in locked mode are: tqice − tqc = (Je + Jfw + Jc )θ̈ice (3.13) θ̇c = θ̇ice (3.14) tqtrans = tqice Jc + tqc (Je + Jfw ) Je + Jfw + Jc (3.15) The equations for the clutch when in slipping/open mode are: tqtrans = sgn(θ̇ice − θ̇c )tqtrans,k (3.16) tqe − tqtrans,k = (Je + Jfw )θ̈ice (3.17) tqtrans − tqc = Jc θ̈c (3.18) 17 3.3.5 Torsional Part The clutch flexibility which mainly comes from the torsion springs in the clutch disc is modelled as a torsional spring and damper in 3.19. tqc = cc (θ̇c − θ̇gb ) + kc (θc − θgb ) (3.19) Where cc and kc are damper and spring coefficients. 3.4 Gearbox The gearbox is modelled using inertia, viscous friction and gear ratio. The model does not contain any synchronisers and cannot engage neutral gear. Shifting will therefore be instantaneous. The equations that describes the gearbox are: tqgb = tqc igb,i (3.20) (Jgb,i + Jps ) = tqgb − bgb θ̇ps − tqps (3.21) θ̇gb = θ̇ps igb,i (3.22) Where bgb is a viscous friction coefficient. 3.5 Propeller Shaft The flexibility in the propeller shaft is modelled the same way as the clutch torsional part. The equations are: tqps = cps (θ̇ps − θ̇fd ) + kps (θps − θfd ) (3.23) Where cps and kps are damper and spring coefficients. 3.6 Final Drive The final drive is assumed to act symmetrically on the two drive shafts and is modelled as an inertia and a fixed gear ratio. (Jps i2fd + Jfd + Jds )θ̈ds = tqps ifd − bfd θ̇ds − tqds (3.24) θ̇fd = θ̇ds ifd (3.25) Where bfd is a viscous friction coefficient. 18 3.7 Drive Shafts The two drive shafts contains the main flexibility of the driveline. Assuming a symmetrical differential the drive shafts can be modelled the same way as the propeller shaft and the clutch torsional part. The equation can be seen in 3.26. tqds = cds (θ̇fd − θ̇w ) + kds (θfd − θw ) (3.26) Where cds and kds are damper and spring coefficients. 3.8 Vehicle Dynamics In this section the forces on the vehicle not coming from the driveline will be explained together with the corresponding equations according to [5]. In this thesis the tires are modelled without any dynamics as a radius together with an inertia and a rolling resistance force. The air drag is calculated as. Fa = 0.5cd Af ρa v 2 (3.27) Where cd is an aerodynamic constant, ρa is the air density and Af is the vehicle cross-sectional area. The road slope acts on the vehicle according to. Fg = mg sin(α) (3.28) Where α is the road-slope angle. The rolling resistance is calculated using. Fr = f (v) ∗ (cr1 + cr2 |v|)mg (3.29) Where f (v) is a smoothing function used to improve the simulation performance and cr1 and cr2 are rolling resistance coefficients. Using Newtons second law an expression for the acceleration of the vehicle can now be formulated as. tqd Jw + Jd − sgn(v)(Fa + Fr + Fb ) − Fg = (m + )a 2 rw rw (3.30) Where Fb is the braking force 3.9 Implementation The equations specified earlier in this chapter have been implemented in MATLAB/simulink using MATLAB function blocks. This makes the code easy to 19 read and also allows the code to be commented to help understanding. The lockup/break-apart logic is implemented using a state flow chart that switches between the two operating modes of the clutch. Together with the fact that no signals are on buses makes the model very intuitive to understand and to use. The model is divided in several separate parts that each corresponds to a certain physical component. This is shown in Figure 3.6 where the structure of the top layer of the model can be seen. Figure 3.6: The figure shows the top layer of the model structure. No signals are sent on busses in order to make the model easy to understand. 20 Chapter 4 Clutch observer In this thesis a model of how the clutch characteristics changes with temperature has been implemented in a complete driveline model. It is desirable to use this model to enhance the performance of clutch control in Scania’s trucks. Therefore the observer described in [24] has been adapted for use in an on-line application. The observer is of the extended kalman filter type (EKF). 4.1 Observer variable definitions Variable A/Ad B/Bd C/Cd D/Dd Gd p Ts q X U Ỹ Y w v Q R P Ht Ft Gt Meaning Continuous/discrete state-space matrix Continuous/discrete state-space matrix Continuous/discrete state-space matrix Continuous/discrete state-space matrix Discrete state-space matrix Differential operator Sample time Shift operator State vector Input vector Intermediate output vector Measurable output vector Process noise Measurement noise Process noise covariance matrix Measurement noise covariance matrix Estimate error covariance matrix Kalman matrix Kalman matrix Kalman matrix Table 4.1: EKF variables 22 unit [-] [-] [-] [-] [-] [-] [s] [-] [-] [-] [-] [-] [-] [-] [-] [-] [-] [-] [-] [-] 4.2 Extended clutch model It is desirable that the observer is insensitive to poorly chosen initial values and also that it is able to adjust for the level of wear of the clutch. To do this a fourth state is added to the existing clutch temperature model 3.2, 3.3 and 3.4 according to 4.1. With this definition the fourth state holds information about the zero position of the clutch piston at reference temperature. ẋ0,ref = 0 (4.1) It is important to note that the clutch zero position at reference temperature x0,ref and the clutch zero position x0 are not the same. x0,ref is defined by. x0,ref = x0 − ∆x0 (4.2) Where x0 is the measured clutch position for a fully closed clutch and ∆x0 represents the heat expansion in the clutch. The observer state vector is now defined as. X = [Tb Th Td x0,ref ]T (4.3) The input vector is defined as. U = [xp P Tcoolant Tambient ]T (4.4) Where xp is the measured clutch position. The output of the system is given in the intermediate variable Ỹ according to 4.5. Ỹ = [x0 xcor ]T = [y˜1 y˜2 ]T (4.5) Now the extended model together with 3.6, 3.7, 4.2, 3.8 and 3.1 can be written on the form. Ẋ = AX + BU (4.6a) Ỹ = CX + DU + [−1 1]T kexp,1 Tref (4.6b) Where A, B, C and D are defined as. kb2h +kice2h +kd2b − (mcp )b kb2h (mcp )h A= kd2b (mc ) kb2h (mcp )b +kh2amb − kb2h(mc p )h 0 0 p d 0 23 kd2b (mcp )b 0 kd2b − (mc p )d 0 0 0 0 0 (4.7) 0 0 B= 0 0 0 kiec2b (mcp )b 0 0 0 0 1 (mcp )d 0 0 kh2amb (mcp )h 0 0 (4.8) kexp,1 − kexp,2 0 kexp,2 1 C= −kexp,1 + kexp,2 0 −kexp,2 −1 0 0 0 0 D= 1 0 0 0 (4.9) (4.10) The measurable outputs of the system are. Y = [x0 tqtrans,k ]T = [ỹ1 tqref (ỹ2 )]T (4.11) In 4.11 the measurement of x0 only exists when the clutch is fully closed and the measurement of the clutch slipping torque tqtrans,k only when the clutch is slipping. It should be noted that the term tqref (ỹ2 ) contains the non-linearity of the system which is seen in 3.1. 24 4.3 Observability analysis Before the observer is constructed the observability of the system must be analysed in order to better understand how to design the observer as well as what limitations are present. The analysis is made in [24] where the observability of the system is thoroughly examined. The result is summarized below. 4.3.1 Operating modes The clutch basically has four different operating modes; open, slipping, locked and closed. As stated above there are two measured signals that can be used by the observer. However these measurements are not available in some modes. Open clutch During open clutch the transmitted torque is zero and x0 can not be measured. This means that the system is not observable in this mode. Slipping clutch The observability analysis in [24] states that it is only the temperature states that are observable in this mode. However in this thesis a change to the observer was made in 4.9 so that x0,ref enters Ỹ when the clutch is in slipping mode. Because of this change all states are observable when the clutch is slipping. Locked but not closed clutch During locked but not fully closed clutch there is no measurable information about the system which therefore is not observable. Fully closed clutch When the clutch is fully closed the zero position x0 is directly measurable and the system is therefore observable. 4.3.2 Combined observability Conveniently enough the most frequently visited modes are driving with a closed clutch and slipping clutch. This means that the system as a whole is sufficiently observable. When visiting an unobservable mode the EKF runs an open loop simulation of the system and the uncertainty-matrix P grows which makes the states converge faster when the system again becomes observable. 25 4.4 Choice of observer type The temperature model used by the observer is not linear since it has a nonlinearity on the output, tqtrans,k . This means that a ordinary Kalman filter can not be used for the estimation. Instead an extended Kalman filter is used that is able to deal with the non-linearity. There are two main reasons to why the observer type EKF is a good choice. Firstly it is well tested technology that is straight forward in its implementation and also relatively intuitive and easy to interpret. Secondly the EKF brings with it the possibility to adapt the estimation process depending on the current operating mode of the clutch and what measurements that are presently available. 4.5 Extended Kalman filter set up In the following section a general description of how the extended Kalman filter works is given. 4.5.1 Discretisation of the model In order to be able to use the model described in Section 4.2 when constructing the EKF for implementation in the GMS it is necessary to transfer it from continuous form to discrete form. The simplest way to do this is to use a basic euler forward method. Since using this method may lead to stability issues the discretisation is instead performed using Tustin’s formula where the differential operator p is defined as. p= 2 (1 − q −1 ) Ts (1 + q −1 ) (4.12) Where Ts is the system sample time and q is the shift operator defined by 4.13 with k = 0, 1, 2, .... q −1 u(kT s) = u(kT s − T s) (4.13) After the discretisation is performed the model is described on state-space form with the intermediate output variable Ỹt . Xt+1 = Ad Xt + Bd Ut + Gd w = f (Xt ) Ỹt = Cd Xt + Dd Ut + v (4.14a) (4.14b) Where w and v are gaussian process noises with zero mean and covariance matrices Q and R respectively. 26 The measurable outputs are defined in 4.15. The non-linearity of the system is included in the term tqref (ỹt2 ) which can be seen in 3.1. Yt = [x0 tqtrans,k ]T = [ỹt1 tqref (ỹt2 )]T = h(Xt ) 4.5.2 (4.15) The filter The idea the extended Kalman filter is based on is to update and the mean and covariance of the estimates in a way that minimizes the covariance of the estimate error. This process can be divided into two phases. During the measurement update phase the estimate is adjusted using the current measurements. In the time update phase the dynamics of the system are simulated in order to predict the future behaviour of the system. The variables used by the observer are defined as. • P is the estimate error covariance matrix. • The observation transition matrix Ht is defined by 4.16 Ht = (∇X h(X)|X=X̂ t|t−1 )T (4.16) Where h is defined by 4.15. It is important to note that Ht will change depending on the current operating mode of the clutch and what measurements are available. • The state transition matrix Ft is defined by 4.17 Ft = (∇X f (X, 0)|X=X̂ )T t|t (4.17) Where f is defined by 4.14a. • The process noise transition matrix Gt is defined by 4.18 Gt = (∇w f (X̂t|t , w)|w=0 )T (4.18) Where f is defined by 4.14a. Measurement update phase In this phase the available measurements in Yt and predicted estimate error covariance in Pt|t−1 is used to update the estimate X̂t|t using the following algorithm. Kt = Pt|t−1 HtT (Ht Pt|t−1 HtT + Rt )−1 (4.19a) Pt|t = (I − Kt Ht )Pt|t−1 (4.19b) X̂t|t = X̂t|t−1 + Kt (Yt − h(X̂t|t−1 )) (4.19c) 27 Time update phase During the time update phase the system is simulated one sample ahead and the estimate error covariance for the next iteration is also predicted. This is done by performing the calculations described by 4.20a and 4.20b. X̂t+1|t = f (X̂t|t ) Pt+1|t = Ft Pt|t FtT (4.20a) + Gt Qt GTt (4.20b) Initiation The extended Kalman filter does not contain any information about the nominal trajectory of the system at the start of each iteration. To deal with this the filter takes the last known estimate and performs a linearisation to attain a trajectory. This means that the filter must be initiated with values on P and X̂. 4.6 Selection of covariance matrices The EKF covariance matrices has been chosen according to [5] where R is the covariance matrix for the measurement noise and Q is the covariance matrix for the process noise. Each element of the matrices is however multiplied by a factor 10 since they were identified at 10Hz and the observer used in this thesis runs at 100Hz. The values of R and Q are choosen as follows. −1 10 0 R= 0 103 (4.21) 0 10 0 0 0 0 10−2 0 0 Q= 0 0 0 10 0 0 0 0 10−7 (4.22) It is worth noting that the in comparison small value of Q(4, 4) is due to the fact that the fourth state x0,ref varies at a extremely slow rate compared to the temperature states. 28 4.7 Initiation and limitation of the uncertainty matrix As stated earlier when one or more states are not observable the corresponding elements of the uncertainty matrix P grows. An example of this is that P (4, 4) grows when the clutch is open which means that the fourth state x0,ref is not observable. This could potentially cause numerical problems if the clutch stays in an unobservable mode for a prolonged time, for instance standing still with an open clutch. 4.7.1 Uncertainty of the temperature states When further analysing the growth of the P -matrix for unobservable states it is realised that the uncertainty related to states one to three (Tb , Th , Td ) will not grow indefinitely but will rather converge to a certain value since they have stable dynamics. These values can be found by calculating the static kalman observer P -matrix or by simply running a simulation where the clutch is kept in an unobservable mode. Since the normal starting mode of an HDT is standing still with an open clutch it is intuitive to initiate the elements corresponding to states one to three of the P -matrix with their static open clutch values which are seen in 4.23. In Figure 4.1 the convergence of the uncertainty for states one to three can be seen. Figure 4.1: The figure shows the covariance of states on to three when the clutch is kept open for 10000 seconds. The values can be compared to the computed values in 4.23. 29 4.7.2 Uncertainty of the zero position state The uncertainty corresponding to the fourth state x0,ref however does not converge to a certain value when in an unobservable mode but will grow towards infinity if not limited. This behaviour can be seen in Figure 4.2. According to [23] it is the elements in the diagonal of P that decides the behaviour of the observer. Therefore the off diagonal elements related to x0,ref are not limited and only a limit on P (4, 4) is set. Figure 4.2: The figure shows the covariance of the fourth state when the clutch is kept open for 10000 seconds. It should be noted that the scale on the y-axis is too large to represent the small values P (4, 4) continuously grows with. To decide what initial value to use for the uncertainty of the fourth state a simulation of a launch is run to identify the level that P (4, 4) converges to when x0,ref is observable. In Figure 4.3 it can be seen that the uncertainty in P (4, 4) converges to a value of roughly 0.001 when the clutch is in an observable mode. It should be noted that clutch starts slipping at 9 seconds, locks-up at 12 seconds and then stays locked in the simulated driving scenario. The initial value of P (4, 4) is then set to roughly 10 times the value it converges to when x0,ref is observable. This is to ensure that the observation of x0,ref converges quickly when the state is observable. 30 Figure 4.3: The change in the estimate-error covariance matrix for position (4,4) for a simulated launch. Clutch lock-up occurs at roughly 12 seconds 4.7.3 Initial uncertainty matrix This combined gives a initial P-matrix as follow. 2.452 0 0 0 0 0.753 0 0 P0 = 0 0 2.452 0 0 0 0 10−2 31 (4.23) Chapter 5 Clutch controller The clutch controller works by taking the requested torque and translating this to a corresponding clutch piston position through a look-up table. The requested position is then adjusted with regard to clutch temperature. According to [5] this is a natural choice since torque based driveline control is common in the automotive industry. In the simulation environment it is also possible to add a feedback-link from the engine torque if wanted. In Figure 5.1 the structure of the clutch controller unit can be seen. Figure 5.1: The figure shows the structure of the clutch controller unit. It should be noted that the inputs to the clutch temperature and wear observer are not included in the figure. 5.1 Fixed trajectory look-up table The first part of the clutch controller consists of a look-up table that is used as a feedforward-link from desired torque to clutch piston position. The look-up table is basically an inversion of the torque transmissibility curve at 60◦ C which can be seen in Figure 3.3. 33 5.2 Temperature compensation According to [9] it is not only the lifetime of the clutch that is greatly affected by operating at high temperatures but also its ability to transfer torque. This in turn has a significant effect on the clutch control quality. A common way of dealing with this is to implement an static adaptation that adapts the clutch kiss point every time the clutch is engaged. This is however not optimal since with this methodology the clutch controller only receives information about the past and not the present. In this thesis the observer described in Chapter 4 that estimates both the wear and the temperature of the clutch is used instead. It is then possible to continuously adjust the desired clutch piston position for temperature and wear. 5.3 Engine torque feedback Besides the fixed trajectory control look-up table and the temperature compensation a feedback controller is also constructed that drives the clutch torque to converge towards the desired level. This controller is only implemented in the simulation environment as a PI-controller that acts on the difference between the requested torque and the measured engine torque. 5.4 Validation To validate the clutch controller a launch scenario has been simulated. In order to test the temperature compensation of the clutch the torque request during the launch was specified in a way that makes the clutch stay in the slipping mode for about 7 seconds. Both launches with and without feedback control has been simulated. In the top plot of Figure 5.2 the clutch stroke during a launch when the clutch controller consists of a fixed trajectory look-up table with temperature compensation can be seen. The torque request profile as well as the actual clutch torque during the launch can be seen in the left plot in Figure 5.3. It should be noted that the clutch starts slipping at 1.6 seconds and closes at 8.8 seconds. In the bottom plot the clutch stroke during the slipping phase is shown. It can be seen that the temperature compensation adjusts the clutch stroke as the clutch heats up when it is slipping. In the left plot in Figure 5.3 the clutch torque can be seen when there is no feedback link used in the controller. It is seen that during the slipping phase between 1.6 and 8.8 seconds this results in a static error in the clutch torque compared to the requested torque. In the right plot where the feedback link was used it can be seen that there is no error in the clutch torque. It should be noted that the torque dip at 8.8 seconds when the clutch closes occurs since the clutch controller does not include matching of the dynamic and static clutch torque. 34 Figure 5.2: The upper plot shows the clutch stroke during a launch where the clutch controller consists of a fixed trajectory look-up table and temperature compensation. The bottom plot shows the clutch stroke during only the slipping phase of the launch where it is seen that the temperature compensation adjusts the clutch piston position as the clutch heats up. Figure 5.3: The left plot shows the clutch torque when no feedback from the engine torque was used. In the right plot feedback was used. It is seen that the feedback link removes the static torque error when the clutch is slipping. 35 Chapter 6 Implementation on GMS When taking the clutch temperature observer and controller from the simulation environment in MATLAB/Simulink and implementing them in the gearbox management unit there are a number of modifications that are required to be done first. This is due to the fact that the GMS has very limited storage capacity compared to a normal computer and the fact that it operates using different data types. Also noise and uncertainty in the used signals needs to be considered and dealt with. It should be noted that there is no feedback-link in the controller that was implemented on the GMS. This is to make it easy to distinguish the effect the temperature compensation has on the clutch control. 6.1 Specify data types When programming in MATLAB and running simulations off-line in Simulink there is often no need to pay attention to what data types that are used. By default MATLAB will specify variables using the double precision floating-point data format. Double precision means that each variable uses 64 bits to represent its value. When programming for on-line use of the temperature observer in the gearbox management unit it is instead the 32 bit single precision floating-point data type that is commonly used. This is done since the GMS has a very limited data storage capacity and processing power. Some signals that are used by the observer or sent as control signals are specified as 16 bit integer values, int16. The 16 bit integer data type is able to write all integers between -32,767 and +32,767. In order to obtain the desired level of precision signals that are represented as int16 are often scaled. An example of this the clutch motor position which ranges from 0 mm to 22 mm. Without scaling this signal it would only be possible to request positions with steps of 1 mm. By scaling the signal with a factor 1000 the range instead becomes [0.000 22000] with a step size of 0.001 mm. 37 6.2 Transformation the clutch torque transmissibility curve When implementing the clutch torque transmissibility curve in a look-up table in MATLAB/Simulink the curve must be monotonically increasing. As can be seen in Figure 3.3 that is not the case if clutch position x goes from zero to the kiss point. One way to ”trick” MATLAB to get around this is letting the clutch position x go from the kiss point to zero. This works when the clutch torque transmissibility curve defined by 3.1 is used in the model. When implementing the observer in the GMS it is desirable to also be able to take a certain clutch position and calculate the corresponding torque level, which is then used by the engine management system (EMS). This means that the clutch torque transmissibility curve needs to be invertible. One realises that the ”trick” used earlier will not work since the inversion of the curve will not be monotonically increasing. With the convention used when identifying the clutch torque transmissibility curve the clutch operates in the range [0 mm, 22 mm] which translates to [Closed, Open]. A more intuitive way to describe the clutch range is [0, 1] = [Open, Closed]. This combined means that the clutch torque transmissibility should be transformed according to Figure 6.1. It should be noted that the original torque transmissibility curve that is in the range [Closed, KissPoint] has been extended to [Closed, Open] before being transformed. Figure 6.1: The figure shows a schematic overview of how the shape of the torque transmissibility curve and how it is transformed. The range of the curve has also been extended to [Closed, Open] instead of [Closed, KissPoint]. 38 To transform coordinates from the range [0 mm, 22 mm]=[Closed, Open] to [0, 1]=[Open, Closed] the linear function shown in 6.1 is used. y = kx + m = g(x) (6.1) The constants k and m are calculated using the conditions in 6.2a and 6.2b. A2 = g(A1) (6.2a) B2 = g(B1) (6.2b) Where the definition of A1, A2, B1 and B2 can be seen in Figure 6.1. In the top plot of Figure 6.2 the transformed clutch torque transmissibility curve for the full clutch range [Closed, Open] can be seen. In the bottom plot the inverted curve is seen. Figure 6.2: In the top figure the transformed clutch torque transmissibility curve for the full clutch range is seen. The bottom figure shows the inversion of the top graph. 39 6.3 Data type precision issues As stated before it is mostly the 36 bit single precision data type that is used by the observer when run on the GMS. In the single data format 1 bit is allocated as a sign bit and 12 bits as exponential bits. The last 23 bits are allocated as precision bits which permits the use of 7 decimals after the first non-zero value of a certain number. The following variable is used to denote the maximum single precision. precision, single = 10−7 (6.3) This causes problems in the time-update phase of the observer for the fourth state x0,ref when the next value of the estimate-error covariance matrix P is calculated. Due to the the definition (zero-elements) of Ft and Gt it is only position (4, 4) of P that is problematic to update. The problem can be exemplified by looking at the first time update of the P -matrix according to 4.20b. As seen in 4.23 the initial value of P (4, 4) is P0 (4, 4) = 10−2 . With the definition of Ft and Gt the first time-update of P is evaluated as. P1|0 (4, 4) = Ft (4, 4)P0 (4, 4)Ft (4, 4)T + Gt (4, 4)Qt (4, 4)Gt (4, 4)T ) −2 = 1 ∗ 10 ∗ 1 + 10 −2 −7 ∗ 10 −2 ∗ 10 −2 = 10 + 10 −11 (6.4a) (6.4b) In 6.4b there is a factor 10−9 between the two numbers that are added to attain P1|0 (4, 4). This is a bigger difference than the maximum possible difference defined in 6.3. Hence the term 10−11 will be equal to zero when added to 10−2 . In order to remedy this a help variable S is introduced to which the second term of 4.20b is summed until S has grown to a point that it is possible to add to P (4, 4). The algorithm to perform this is described by equations 6.5 - 6.7. St+1 = St + Gt (4, 4)Qt (4, 4)Gt (4, 4)T (6.5) if |S| > P (4, 4) × precision, single Pt+1|t (4, 4) = Ft (4, 4)Pt (4, 4)Ft (4, 4)T + S S=0 (6.6a) (6.6b) else Pt+1|t (4, 4) = Ft (4, 4)Pt (4, 4)Ft (4, 4)T (6.7) end Where P (4, 4) is the current value of the covariance exclusively related to x0,ref . 40 6.4 Biased measurements When the clutch is open the clutch disc does not touch the flywheel. Therefore there can be no friction work and no heat can be dissipated into the clutch. However the dissipated power is not measured directly but calculated according to 3.5 as a function of the measured slip speed and measured engine torque. This can cause severe problems for the observer if there is a bias in the engine torque measurement that tells the observer that there is heat flow into the clutch although it is open. The observer will then try to adapt its states in order to explain the dissipated power. In 6.3 it is seen how the estimates of the clutch temperatures are adapted to explain a bias in the measured torque when the clutch is open. Figure 6.3: The figure shows how the estimates of the clutch temperature changes when there is a bias of 2 % of the max torque when the truck is standing still with a open clutch. There are many ways to take care of this. One method is to simply set the engine torque to zero when under a certain threshold. In this thesis the dissipated power is instead set to zero when the clutch is open. In this way the difficulties with choosing a proper threshold relative the noise level of the torque signal is avoided. 41 6.5 Requesting clutch position When the observer and clutch controller is implemented in the simulation environment the control signal to the clutch acts directly on the position of the clutch piston xp . In reality though the control signal goes to an electric clutch motor that actuates to a clutch motor position that through a motor (master) piston, xm , pushes on some hydraulic fluid that moves the clutch piston (slave), xp . An overview of the relations of the clutch motor and clutch piston can be seen in Figure 6.4. Figure 6.4: The figure shows the clutch positioning system where the measured signals are xm and xp . 6.5.1 Relating the clutch piston position to motor position The torque transmissibility curve, seen in Figure 3.3 is identified for the clutch piston position x. Therefore the control signal from the clutch controller must also request a position on the clutch piston. However it is the clutch motor that actuates the system. Hence a way to translate a desired clutch piston position to a desired motor position xm,req must be found. The requested clutch piston position at reference temperature is denoted xreq,ref and is given as a function of the inverted torque transmissibility (from torque to position). Compensating xreq,ref for the current clutch temperature gives. xreq = xreq,ref + ∆x0 Where ∆x0 is the thermal expansion of the clutch. 42 (6.8) Adding the zero position gives. xp,req = xreq + x0,ref (6.9) Where x0,ref is taken from the observer in order to account for the wear of the clutch. Considering that the change in piston position should be equal to the change in motor position gives. xp,req − xp = xm,req − xm (6.10) Using equations 6.8, 6.9 and 6.10 the requested clutch motor position xm,req can now be calculated according to 6.11. xm,req = xreq,ref + (∆x0 + x0,ref ) + (xm − xp ) (6.11) The brackets on the right side of 6.11 are there to emphasize that xm,req is a function of xreq,ref plus temperature and wear compensation (first bracket) and the measured distance between the motor and the piston (second bracket). 6.5.2 The distance between the clutch motor and piston When calculating xm,req the measurement term xm − xp is not constant and needs to be measured. To do this directly is however problematic. This is basically due to physical reasons and also the difference in performance of the two sensors involved Physical reasons The distance between the clutch motor and piston changes with temperature. This is since the hydraulic fluid expands somewhat with increasing temperature together with the fact that the volume of the hydraulic piping increases as well. An other aspect is that the clutch motor piston passes the bleeding hole (opening to the hydraulic fluid reservoir) with different characteristics from time to time. This is partly remedied by making sure that the bleeding hole is passed at the same speed every time. Measurement issues The two sensors that measure the clutch motor position xm and clutch piston position xp respectively are not the same type of sensors. The one measuring motor position has higher resolution and faster dynamics than the sensor measuring the piston position. This causes problems during transients in xm − xp which can be seen as large dips in Figure 6.5. 43 Solution Due to the reasons discussed earlier it is not a good idea to simply use xm − xp at all times. Instead the distance between motor and piston position is only updated when there are no large transients in clutch position. This can be seen as the areas circled in red in 6.5. Figure 6.5: The figure shows the clutch motor position xm minus the clutch piston position xp . The areas circled in red are the areas in between transients which are used to update xm − xp . 6.6 Avoid division by zero When running simulations off-line an accidental division by zero will only have the effect that the simulation breaks down. In an on-line application however the consequences may be more sever. Either the GMS resets or the the variable in which division by zero occurred is set to ”NaN”. Therefore it is essential that the code is written in a way that the possibility of division by zero is removed. When running the EKF it is the update of Kt according to 4.19a during the measurement update phase that division by zero might occur. Specifically it is the calculation of matrix inversions that may cause problems. This is remedied by looking at the determinant of an matrix before deciding to calculate its inverse. The algorithm used is seen below. 44 if det(Ht Pt|t−1 HtT + Rt ) > 10 ∗ eps Kt = Pt|t−1 HtT (Ht Pt|t−1 HtT + Rt )−1 (6.12) Kt = Kt−1 (6.13) else end Where eps is the smallest number that the GMS is able to represent. 6.6.1 EKF Update method The way the extended Kalman filter is described in Section 4.5.2 gives a very straightforward implementation. It is important to note that there are other implementation methods that are more stable. One such method is the more complex ”array implementation” which propagates the square root of the covariance matrix. In this thesis however the standard implementation was used since there is a limited amount of RAM as well as processing power available in the GMS. 45 Chapter 7 Results In this chapter the main results of the the thesis are presented. The validity and output of the driveline model is discussed together with the performance of the clutch temperature and wear observer. Also how the observer runs on the gearbox management system is presented. 7.1 Complete driveline model with clutch temperature dynamics A complete driveline model from engine to the wheels has been implemented. In this section the validity and performance of the model is presented. The discussion of the model validity in this section is based on [24] and [25]. The clutch model has been validated towards several separate data sets different from those used for parameter identification. 7.1.1 Model residuals The residuals between the measured clutch torque and the modelled clutch torque that are seen in Figure 7.1 are never larger than 200 Nm. Most of the time the residuals are well below 100 Nm which corresponds to 3 % of the maximum engine torque with a mean relative error of 0.3 %. In the top plot in Figure 7.2 it can be seen how the modelled clutch torque (dotted purple) with the dissipated power calculated and not measured follows the actual measured clutch torque (dotted green). Further conclusions are that the model is able to capture both the amplitude and frequency of the driveline torque oscillations during launch and that the lockup/break-apart logic performs the mode-switches at the proper time. The model does not however capture the torque oscillations that arises when the requested torque goes from positive to negative. This is due to the fact that the model does not contain any backlash dynamics for when the torque switches sign. 47 120 100 80 Residuals [Nm] 60 40 20 0 −20 −40 −60 −80 −100 150 200 250 300 350 1200 1250 1300 1350 Time [s] Clutch Torque [Nm] Figure 7.1: The figure shows the residuals between the measured clutch output torque and the modelled clutch output torque. The figure is taken from [24] 600 400 Measurement Static Model P Measured P Modeled 200 0 150 200 250 300 350 1150 1200 1250 1300 1350 1300 1350 600 Temperature [C] 160 400 140 Body Housing Disc engine 120 100 200 0 80 60 150 200 250 300 350 1150 Time [s] 1200 1250 Figure 7.2: The top figure shows the measured clutch output torque (dotted green). Both when measuring (dashed black) and calculating (dotted purple) the dissipated power a much better result is attained compared to the static model (red) that does not include any temperature dynamics. The bottom plot shows the temperatures of the engine and clutch. The figure is taken from [24] 48 7.1.2 Correcting for the torque drift When using the model described in Section 3.3.3 to explain the torque drift with increasing clutch temperature and to correct the clutch torque the graphs in Figure 7.3 are attained. It can be seen that the clutch temperature model is able to quiet well explain the torque drift due to temperature increase. The clutch torque when not corrected for temperature can be seen in Figure 1.2. 1500 80 Clutch Torque [Nm] 60 1000 40 20 500 0 4 Time [s] 5 6 7 8 9 10 Double Exp. Corrected Pos. [mm] 11 12 Figure 7.3: The figure shows the clutch torque which has been corrected for the clutch temperature when the clutch position is ramped back and forth. The figure is taken from [24] 7.2 Clutch temperature and zero-position observer The aim of the observer is to estimate the current true zero position of the clutch. This position is dependant on two parameters. The most dominant parameter is the clutch heat expansion. The second parameter is the clutch wear which changes very slowly over time. 7.2.1 Convergence of the zero position In order to test the convergence of the estimated zero position the initial temperatures of the observer has been set 10 ◦ C lower than the initial temperatures of 49 the clutch model when simulating a launch. Also the initial value of the clutch wear has been set 0.65 mm lower than the value used in the model. As can be seen in Figure 7.4 the estimated zero position x0 that includes both the wear and heat expansion terms converge even though both the temperature and wear states of the observer are given poor initial values. Figure 7.4: The figure shows the convergence of the estimated zero position x0 compared to the modelled zero position. The temperature states was initiated 10 ◦ C lower in the observer compared to the model. The reference zero position x 0,ref was initiated 0.65 mm to short. 7.2.2 Convergence of individual states As was seen in Figure 7.4 the zero position x0 estimate converges well with the modelled zero position when all states were given bad initial values in the observer. However when the different states are studied separately it is seen that the observer is not able to distinguish the wear effect from the effect from heat expansion in x0 . In the top plot of Figure 7.5 the clutch disc temperature can be seen, in the middle plot the clutch body temperature and in the bottom plot the clutch housing temperature. In Figure 7.6 the estimation of the zero position at reference temperature can be seen. 50 Figure 7.5: The figure shows from top to bottom the modelled and estimated clutch disc, body and housing temperatures during a simulation. The temperature states was initiated 10 ◦ C lower in the observer compared to the model. The reference zero position x0,ref was initiated 0.65 mm to short. 51 Figure 7.6: The figure shows the estimated zero position at reference temperature x0,ref compared to the modelled zero position. The temperature states was initiated 10 ◦ C lower in the observer compared to the model. The reference zero position x0,ref was initiated 0.65 mm to short. 7.3 Temperature compensation in the clutch controller The developed observer is able to keep track of the temperatures of the clutch and the clutch heat expansion. This is then used by the controller to adjust the desired clutch piston position. In this section it is shown how using temperature compensation can improve clutch control and the effect it has on the performance of a HDT. 7.3.1 Effect on launch quality To exemplify the effect of temperature compensation the following driving scenario has been studied. A HDT with a slightly warm clutch launches from standstill. The clutch temperatures were initiated using [tb , th , td ] = [100, 90, 100]◦ C. The clutch controller consists of an inversion of the clutch torque transmissibility curve with and without temperature compensation. To evaluate the launch quality the vehicle jerk is calculated and compared for the different cases. In Figure 7.7 the vehicle jerk can be seen in the upper plot when temperature compensation is used by the clutch controller. When looking at Figure 7.8 it is seen that the vehicle jerk is about 90% higher when no temperature compensation is used. It should be noted that the same torque request was used for both cases. 52 Figure 7.7: The figure shows the vehicle jerk in the upper plot as a measure of launch quality (comfort) when temperature compensation is used by the clutch controller. The bottom plot shows the engine and clutch speeds. Figure 7.8: The figure shows the vehicle jerk in the upper plot as a measure of launch quality (comfort) when no temperature compensation is used by the clutch controller. The bottom plot shows the engine and clutch speeds. 53 7.3.2 Effect on produced engine torque Whether clutch temperature compensation is used or not has a profound effect on the produced engine torque. In Figure 7.9 it can be seen how the produced engine torque relates to the requested torque during a simulated launch with a slightly hot clutch. The clutch temperatures was initiated with [tb , th , td ] = [100, 90, 100]◦ C. In the top figure where temperature compensation is used in the clutch controller the engine produces the requested torque (graphs overlap). However when looking at the lower plot where no temperature compensation was used the engine torque drifts as the clutch temperature increase. When no temperature compensation is used the maximum torque error is 300 Nm or 107% of the requested torque right before lock up. As a consequence of this a lot of heat is dissipated in the clutch unnecessarily. This affects both the lifetime of the clutch as well as the fuel consumption of the vehicle negatively. Figure 7.9: The upper plot shows the requested and actual engine torque, which overlaps, when the clutch controller uses temperature compensation. In the lower plot no temperature compensation was used. 54 7.4 Observer implemented on GMS The clutch temperature and wear observer together with all the changes specified in Chapter 6 has been implemented on a GMS and successfully connected to Vision which is a program used by Scania for monitoring signals in the gearbox management system. In Figure 7.10 it can be seen how the observer and clutch controller has been implemented in the GMS. The observer/controller block has been put as a separate unit high up in the controller structure. The block ct2p lvpc in the figure contains the observer and is continuously evaluated. The stateflow chart to the right contains a function called ”clutchTorqueToPosition”. This function uses the inverted clutch torque transmissibility curve to transform a requested torque to a corresponding clutch position which is then compensated for temperature. The function ”clutchTorqueToPosition” is only run when called upon and can be called from anywhere in the GMS using a stateflow chart as a function caller. Figure 7.10: The figure shows how the observer is implemented in the GMS. The block ct2p lvpc to the left contains the observer and the stateflow chart to the right is an inversion of the torque transmissibility curve. 55 Chapter 8 Conclusions and future work This chapter presents the main contributions and conclusions of this thesis together with recommendations on future work on the subject. 8.1 Conclusions The main contributions of this thesis is the implementation of a clutch temperature and wear observer in the gearbox management system of a HDT. Also a complete drivetrain model that is able to simulate the dynamics of a heavy duty truck has been implemented in MATLAB/Simulink. 8.1.1 Complete drivetrain model The drivetrain model used in this thesis has flexibilities in the clutch, propeller shaft and drive shafts in order to capture the dynamics of a real heavy duty truck. The model has a modular structure that is easy to understand and facilitates its use in various applications. The clutch model apart from the flexibility also includes temperature dynamics. This is essential when simulating driving scenarios where the clutch is frequently operated in a slipping mode in order to get good results. 8.1.2 Clutch observer on GMS The main contribution above others in the thesis is the adaptation of a clutch temperature and wear observer for use in an on-line application on the gearbox management system of a truck. In a simulation environment the observer has been shown to be able to track the zero position of the clutch even when given bad initial estimates. The different adjustments that needed to be done to the observer can be seen in the list below. • Specification of data types. 57 • Transforming the clutch torque transmissibility curve. • Resolve data type precision issues. • Consider effects of biased measurements. • Compensating for the dynamics between the position of the clutch motor and piston. • Removing the possibility of division by zero. • Choosing an update method that saves performance on the GMS. 8.2 Future work In this section suggestions on future work and possible improvements to both the model and observer are given. 8.2.1 Tire dynamics In the model used in this thesis the dynamics of the tires are neglected and no slipping condition is assumed. To improve the performance of the model tire dynamics could be added according to [7]. This should be especially interesting if simulating high speed driving scenarios since the tire dynamics are temperature dependant. 8.2.2 Backlash dynamics In reality when the engine torque switches sign there is some backlash since there is a distance between the cogs that must be closed before torque can be transferred again. This is something that may be interesting to look at in the future. In Figure 8.1 an explaining figure of the backlash phenomena can be seen. Figure 8.1: The figure shows the cause to the backlash phenomenon. When the engine torque switches sign the gears must cover the distance marked by red arrows before torque can be transferred again. 58 8.2.3 Adding the clutch motor In the implemented drivetrain model the clutch piston position is directly controlled. The piston position is also the only measured position on the clutch. In reality however it is the clutch motor position that is controlled and there are two measurements available, motor and piston position. This can be confusing and in some cases a reason to making errors when simulating different clutch controllers. Therefore it is a good idea to try to incorporate the clutch motor in the model. 8.2.4 Implementing new engine model The driveline model is constructed in a modular way. One reason to this was to prepare for the implementation of a more advanced engine model developed in [26]. In order for the two models to work together they must both run on the same type of solver. From Scania there was a wish to use a discrete solver to make the combined model able to run together with the management units of a real truck, for example the GMS. This however caused problems with the model when evaluating the lock-up/break-apart logic in the clutch. These problems have not been solved and are left as future work. 59 Bibliography [1] Luigi Glielmo, Luigi Iannelli, Vladimiro Vacca and Francesco Vasca. Gearshift Control for Automated Manual Transmissions. IEEE/ASME TRANSACTIONS ON MECHATRONICS, VOL. 11, NO. 1, FEBRUARY 2006 [2] B.-Z. Gao, H. Chen, X.-H. Lu och K. Sanada. Improved optimal controller for start-up of AMT trucks in consideration of driver’s intention. International Journal of Automotive Technology, Vol 14, No 2, pp.213-220 2013 [3] Quanan Huang och Huiyi Wang. Fundamental Study of Jerk: Evaluation of Shift Quality and Ride Comfort. SAE paper 2004-01-2065 2004 [4] Magnus Pettersson. Driveline Modeling and Control. Department of Electrical Engineering, Linköping University ISBN: 91-7871937-2 1997 [5] Andreas Myklebust. Modeling and Estimation for Dry Clutch Control. Department of Electrical Engineering, Linköping University ISBN: 978-917519-523-0 2013 [6] Jarl R. Sobel, Jan Jeremiasson, and Christer Wallin. Instantaneous Crankshaft Torque Measurement in Cars. SAE Paper 960040 1996 [7] Tony Sandberg. Heavy Truck Modeling for Fuel Consumption Simulations and Measurements. Department of Electrical Engineering, Linköping University ISBN: 91-7373244-3 2001 [8] Dolcini,P., de Wit, C.C., and Béchart, H. Lurch avoidance strategy and its implementation in AMT vehicles. Mechatronics, 18(1), 289-300 2008 [9] Shaohua Sun, Yulung Lei, Yao Fu, Cheng Yang and ShunBo Li. Analysis of thermal load for dry clutch under the frequent launching condition SAE Paper, doi: 10.4271/2013-01-0814 2013 61 [10] Xiaohui Lu, Ping Wang, Bingzhao Gao and Hong Chen. Model Predictive Control of AMT Clutch During Start-up Process. IEEE 978-1-4244-8738-7/11 2011 [11] Kong Huifang and Yan Gang. Study on Fuzzy Control Technology for Starting Process of AMT Clutch. IEEE 978-0-7695-3600-2/09 2009 [12] Lu Xiaohui, Gao Bingzhao and Chen Hong. Q-learning Based Adaptive PID Controller Design for AMT Clutch Engagement During Start-up Process. Proceedings of the 31st Chinese Control Conference, July 25-27, 2012 [13] Torkel Glad and Lennart Ljung. Reglerteknik - Grundläggande teori. ISBN: 978-91-41-02275-8 2006 [14] Torkel Glad and Lennart Ljung. Reglerteori - Flervariabla och olinjära metoder. ISBN: 978-91-44-03003-6 2011 [15] Lars Eriksson and Lars Nielsen. Modeling and Control of Engines and Drivelines. Vehicular Systems, ISY Linköping Institute of Technology, Linköping 2012 [16] Lars Eriksson. Simulation of a vehicle in longitudinal motion with clutch lock and clutch release. Vehicular Systems, ISY Linköping Institute of Technology, Linköping 2001 [17] Karl J. Åström and Tore Hägglund Advanced PID Control ISBN: 1-55617-942-1 2006 [18] Xiao Lingyun A comprehensive review of the development of adaptive cruise control systems Vehicle System Dynamics, Vol. 48, No. 10, October 2010, 1167–1192, 2010 [19] Mikael Persson, Fredrik Botling, Erik Hesslow and Rolf Johansson Stop and go controller for adaptive cruise control IEEE: 0-7803-5446-X/99, 1999 [20] Zhao Dongbin, Xia Zhongpu Adaptive Optimal Control for the Uncertain Driving Habit Problem in Adaptive Cruise Control System IEEE: 978-1-4799-0380-1/13, 2013 [21] Kyongsu Yi, Il-ki Moon A Driver-Adaptive Stop-and-Go Cruise Control Strategy IEEE: 0-7803-8193-9/04, 2004 62 [22] Worrawut Pananurak, Somphong Thanok, Manukid Parnichkun Adaptive Cruise Control for an Intelligent Vehicle IEEE: 978-1-4244-2679-9/08, 2008 [23] Erik Höckerdal, Erik Frisk, Lars Eriksson EKF-based adaptation of look-up tables with an air mass-flow sensor application IEEE: 0-7803-8193-9/04, 2004 [24] Andreas Myklebust and Lars Eriksson Modeling, Observability, and Estimation of Thermal Effects and Aging on Transmitted Torque in a Heavy Duty Truck with a Dry Clutch IEEE: 1083-4435, 2014 [25] Andreas Myklebust and Lars Eriksson The Effect of Thermal Expansion in a Dry Clutch on Launch Control AAC’13 – 7th IFAC Symposium on Advances in Automotive Control. Tokyo, Japan, 2013 [26] Svante Löthgren Model Based Control of Two-Stage Turbochargers for Heavy Duty Diesel Engines Vehicular Systems, Electrical Engineering Department, Linköping University, 581 83 Linköping Sweden 2014 63 Linköping University Electronic Press Upphovsrätt Detta dokument hålls tillgängligt på Internet – eller dess framtida ersättare –från publiceringsdatum under förutsättning att inga extraordinära omständigheter uppstår. Tillgång till dokumentet innebär tillstånd för var och en att läsa, ladda ner, skriva ut enstaka kopior för enskilt bruk och att använda det oförändrat för ickekommersiell forskning och för undervisning. Överföring av upphovsrätten vid en senare tidpunkt kan inte upphäva detta tillstånd. All annan användning av dokumentet kräver upphovsmannens medgivande. För att garantera äktheten, säkerheten och tillgängligheten finns lösningar av teknisk och administrativ art. Upphovsmannens ideella rätt innefattar rätt att bli nämnd som upphovsman i den omfattning som god sed kräver vid användning av dokumentet på ovan beskrivna sätt samt skydd mot att dokumentet ändras eller presenteras i sådan form eller i sådant sammanhang som är kränkande för upphovsmannens litterära eller konstnärliga anseende eller egenart. För ytterligare information om Linköping University Electronic Press se förlagets hemsida http://www.ep.liu.se/ Copyright The publishers will keep this document online on the Internet – or its possible replacement –from the date of publication barring exceptional circumstances. The online availability of the document implies permanent permission for anyone to read, to download, or to print out single copies for his/hers own use and to use it unchanged for non-commercial research and educational purpose. Subsequent transfers of copyright cannot revoke this permission. All other uses of the document are conditional upon the consent of the copyright owner. The publisher has taken technical and administrative measures to assure authenticity, security and accessibility. According to intellectual property law the author has the right to be mentioned when his/her work is accessed as described above and to be protected against infringement. For additional information about the Linköping University Electronic Press and its procedures for publication and for assurance of document integrity, please refer to its www home page: http://www.ep.liu.se/. © Johan Thornblad.

* Your assessment is very important for improving the work of artificial intelligence, which forms the content of this project

Download PDF

advertisement