Pole placement design based on dynamic forwarder model 

Get Complete Project Material File(s) Now! »

Theory behind suspension technology

This section brings up topics needed in order to follow the later stages of implementa-tion in both previous implementation strategies and for the implemented controllers later described in this report.

Rotational Matrices

The following information is taken from Sciavicco and Siciliano (2000). This section will briefly introduce the euler angles and the rotation matrices, which are the basis for building an inverse kinematic model. This model is used to determine what pendulum arm angle must be set to each arm so that the whole forwarder would take a certain pitch and roll angle. This is the basis of a levelling controller. Three parameters are sufficient to describe orientation of a rigid body in space. A minimal representation of orientation can be obtained by using a set of three angles φ = [ϕ ϑ ψ]T .One of these sets are the ZYX angles, also called Roll-Pitch-Yaw angles. These angles are shown in figure 2.1.

Half Car Model

Sun et al. (2013) describes the way to implement a nonlinear half car model. This model is a great start to analyze nonlinear dynamic behavior in vehicles, and will be used to generate a model that describes motion in heave, pitch and roll. Figure 2.2 shows the model developed

Modal Input-Output Decoupling For Controlling Active Sus-pensions

Evers et al. (2009) propose a control strategy for an active cabin suspension of a commercial vehicle. The suspension analized in this article consists of four actuators on the corners of the cabin. By means of input-output decoupling of the linearized equations of motion the system is transformed into three decoupled single-input-single-output (SISO) loops. Each of these loops is controlled separately. This is how the problem of overactuation is adressed, since there are 3 control variables and 4 actuators, located at each corner of the cabin. This approach will be used to deal with the same problem in a forwarder suspension. Figure 2.3 shows a schematic representation of the model used by Evers et al. (2009).

Ride Comfort Index (RCI)

Evers et al. (2009) uses a measurement, in order to evaluate the vibrations in a vehicle, called the Ride Comfort Index (RCI) which is calculated as
RCI = s 1 Z T
(¨xISO2 + y¨ISO2 + z¨ISO2)dt (2.1.18)
*where x¨ISO, y¨ISO and z¨ISO are the ISO weighted accelerations in x, y and z directions and T is the total time. This value represents the perception of comfort for a seated passenger and are considered more comfortable the lower the number. The RCI value will be stated in the results but is not the main goal of the simulations.

Previous control strategies

This section covers some previously developed solutions on how to control active suspensions in vehicles.

Skyhook control

The skyhook damper principle is built on having a damper attatched between the body that needs to be damped and a fixed point outside the system referenced to as the sky. The skyhook damper can reduce the resonance frequency of the system significantly (Chen et al., 2012). A schematic of the principle can be seen in figure 2.4.
The damper placed is not an actual part of the vehicle but more a way to model how you would want the vehicle to behave. As mentioned by Hrovat (1997), the skyhook damper is a part of the linear quadratic optimal solution to control 1 DOF quarter car suspension systems.
The skyhook principle is also used by Evers et al. (2009) to control a cabin suspension system with four force actuators. There, the skyhook is complemented with a spring and an integrating part in order to not only damp the motions of the cabin but also keep a reference height, pitch and roll.

Saturated Adaptive Robust Controller

Sun et al. (2013) shows an example of making a saturated Adaptive Robust Con-troller (ARC) to control the suspension of a vehicle modeled as a half-car. The implementation is an ARC together with an anti windup filter. The purpouse of an ARC controller is, as Chantranuwathana and Peng (2004) states, “… to achive guaranteed steady state and transient tracking accuracy (properties of deterministic robust controls) and asymptotic tracking at the absence of disturbances without relying on discontinuous switching or infinite control gains (property of adaptive controls).”
In their article, Sun et al. (2013) defines a half car model in state-space and then a lemma are introduced to enable the implementation of the ARC. The lemma, which is prooven at a later stage of the article, states that all signals in the system are bounded and that the ARC will make the tracking error converge to zero asymp-totically, i.e., e1, e2 → 0 as t → ∞, which is compliant with the above quotation of Chantranuwathana and Peng (2004).
When the ARC is defined, Sun et al. (2013) adds an anti-windup block to deal with windup due to saturation. When the signal is not saturated, the controller will strive to minimize the error e = y − r, where r is the reference and y is the system ouput, but when the control signal is saturated, the anti-windup block is enabled.
Chantranuwathana and Peng (2004) describes how to implement a modular ver-sion of the ARC (MARC), and by comparing it to an ARC with similar settings the show that the MARC perform better in terms of parameter estimation convergance. The MARC is a development of the ARC that is separated into a control module and an identifier module so that the identifier can be changed without affecting the properties of the original ARC.
The obvious downpart of theese types of controllers are that they are very coupled to the system they are controlling, and need a model of the controlled system in order to work.

PID Neural Network

As described by Di Wu and Huang (2012), a PID Neural Network (PID NN) is a control method implementing an adaptive algorithm to decrease the output error by changing the weight of signals within the network. The strength of this approach is that it does not need to know the system it is applied to, but it is trained to fit a system via input/output data. Di Wu and Huang (2012) describes how to use the PID NN in order to control an hydraulic motor, but it can be used for controlling other types of systems.
The PID NN consists of three layers: input-, hidden- and output-layers, with two, three and one ’neurons’ respectively, as seen in figure 2.5.
Every neuron in the network has both an input function and an output function. The input functions for the input layer neurons are stated as
net1(k) = r(k) (2.2.1)
net2(k) = y(k), (2.2.2)
where k is the current sample, and the output function of the input layer neurons are xi(k) = ui(k), i = 1, 2. (2.2.3)
The hidden layers input functions are stated as netj0(k) = wijxi(k), j = 1, 2, 3 i=1
and its ouput functions for the P-neuron, the I-neuron and the D-neuron respectively
x10(k) = net10(k) (2.2.5)
x20(k) = net20(k − 1) + net20(k) (2.2.6)
x30(k) = net30(k) − net30(k − 1). (2.2.7)


This chapter presents the different ways a pendulum arm can be modeled and also the solutions implemented to control an active cabin suspension using pendulum arms.


In this section our aim is to identify a relation between the pendulum arm angles and the chassi that connects with these pendulums in order to obtain an equation that holds true for any given euler angle of pitch and roll. This is, we want to solve the inverse kinematics of the pendulum arm and the chassis. For a 3D element, six coordinates are needed to fully represent the position of an object. One way of representing this position is with a Cartesian coordinate system and the Euler angles. As seen in the theory chapter, rotation matrices are very handy at describing the orientation of a 3D body. Based on this knowledge, a way to represent the motion of the chassis and pendulum arm such that all wheels will maintain tangential to a tilted plane at all times, is developed. A homogeneous transformation matrix is defined as  » R T T # (3.1.1) where R is the rotational matrix and T is a translation, in our case representing the chassis center of geometry height. Figure 3.1 describes the orientation used through this section.
After this rotation the pendulum arm in the point connected to the chassis is rotated to its new position with a different value of pitch and roll, and the resulting equation is solved for ϑp, the pendulum arm angle that yields zero at the z coordinate. Equation 3.1.4 shows the result.
z − sin(ϑ)(Ax + P cos(ϑp)) + cos(ϑ) cos(ϕ)(Az + P sin(ϑp)) + Ay cos(ϑ) sin(ϕ) = 0 (3.1.4)
This solution, however, turns out to be complex, so any implementation is very difficult unless a solver that can handle complex solutions is used. Because of this, different small angle approximations were tried and compared for error differences in the calculated pendulum arm angle, varying both pitch and roll from 0◦ to 45◦at the same time and separately. The table 3.1 shows the different approximations compared.
As it can be seen from the figures, it is clear that the approximation « Small angle 2 » follows reasonably well in comparison with the complete solution, with an error of 1% up to 11 degrees. Using this approximation to get a closed solution gives us the equation shown in 3.1.5 when the pendulum arm is originally positioned facing forward, and clockwise motion is considered a negative angle.With the inverse kinematics a simple controller can be implemented, in which the control would try to set the pendulum arms so that they counteract the disturbances measured in pitch and roll.


Consider a diagram as shown in 3.6 and 3.7 as reference. A model was made to define the chassis dynamics, while considering only the z motion of the pendulum arm instead of an angle. This is done to simplify the model, since considering the pendulum arm motion would increase the model complexity and would add nonlinear behavior to the equations. To model the actuator, it was assumed to be an ideal force with a spring and a damper in parallel simulating a passive suspension. It is assumed that in the future this force can be converted to a torque, which is what the pendulum arm cylinder would produce on the joint with the arm that holds the wheel in place.
The dynamic equations of the chassis are described as
mtotz¨c + Fs1 + Fs2 + Fs3 + Fs4 + Fs5 + Fs6 = uz + Fl (3.2.1)
Ixϕ¨ + lf (Fs1 + Fs2) − lm(Fs3 + Fs4) − lr(Fs5 + Fs6) = uϕ + Fϕ (3.2.2) ¨ + Fs6) = uϑ + Fϑ (3.2.3)
Iyϑ + bl(Fs1 + Fs3 + Fs5) − br(Fs2 + Fs4
while the wheel equations are
miz¨i − Fsi + Fri = −ui (3.2.4)
Fri = Kw(zi − zoi) + Dw(z˙i − z˙oi) (3.2.5)
where i = 1, 2, …, 6 for all the wheels in the forwarder, and uz, uϕ, and uϑ are defined as
uz = u1 + u2 + u3 + u4 + u5 + u6 (3.2.6)
uϕ = lf (u1 + u2) − lm(u3 + u4) − lr(u5 + u6) (3.2.7)
uϑ = bl(u1 + u3 + u5) − br(u2 + u4 + u6) (3.2.8)
where u1-u6 are the forces from the ideal actuator as can be seen in figure 3.7, and have the same direction as z.
To calculate the vertical displacement in a point in the chassis, the kinematic relation is: z = zc + a sin(ϑ) − b cos(ϑ) sin(ϕ) (3.2.9) where a corresponds to the distances shown in 3.6 as lf , lm and lr and b is either br or bl depending if the pendulum arm is in the right or left side of the forwarder.
The vertical displacement difference Δz is defined as: Δz = zc + a sin(ϑ) − b cos(ϑ) sin(ϕ) − zi (3.2.10) where i = 1, 2, …, 6 for all the wheels in the forwarder. To linearize the model, a small angle approximation is used, assuming that sin(θ) = θ and cos(θ) = 1.

READ  Spatial data infrastructures and geospatial data 

Different modeling implementations of the Forwarder

In order to test control strategies, a model of the forwarder dynamics was needed. During the work in this project two different types of models have been used: one based on SimMechanics and one based in the full car model.

SimMechanics model

As stated before, a model developed by Wang (2012) was acquired in the beginning of the thesis work. At the time of writing the model is two years old and some of the parameters is not coherent with a newer Adams model of the system that Baez (2014) was kind enough to provide. Figure 3.8 shows a graphic representation of both the unmodified model and the modified model.
The changes made in the model are as follows:
• The orientation of the pendulum arms have ben changed to stay coherent with the real machine. The two front pendulums are facing forward while the rest of the pendulums are facing backwards.
• The waist joint have been changed from a prismatic joint to a revolute joint that can only move in a yaw motion.
In addition to this, some delimitations concerning the model have been made and the most obvious one is that only one waist jointis considered, while in the physical machine there will be two. It was deducted that this will not affect the control of the forwarder while it is driving without turning since the waist joints are actuated with two hydraulic cylinders each, with the purpouse to turn the vehicle.
The second delimitation is that the same parameter values used by Wang (2012) are going to be used. This means that the control tested on this model will use the same parameter values (distances, masses and inertias) as the SimMechanics model.
In order to use the SimMechanics model, existing suspension had to be bypassed and as the model makes use of a joint actuator in the point where the pendulum arm and the chassi are connected, a torque is set as the only input to the model. A transport delay is applied to the hydraulic actuator, both to break possibly unsolv-able algebraic loops, but also to get a more real control result from the model. The delay is set to a tenth of the control loops period and represents a microcontrollers computational delay.
One of the delimitations of this project states that a model of the actuator will not be developed. The hydraulic actuator is considered ideal, but since it is known that an hydraulic actuator will have physical limitations, the input torque is ran through a low-pass filter with a bandwidth of six hertz.
The XT28 is equipped with a set of sensors, see appendix C, which all are set as the ouput variables. It was found that the model computes the ground forces of the vehicle to calculate friction forces under the wheels, and this force was also set as an output with the purpouse of monitoring it. All the ouputs are run through a zero order hold (zoh) block to simulate the discrete behaviour of the sensors. The simulation period, Ts, that where used throughout the project where: Ts = 501 = 0.02 s.
Two additional features were added to the model in order to ease the process of testing controllers. A function making use of the monitored force between ground and wheel where developed so that the model does not put any torque on the pendulum arm if it looses contact with the ground. The other feature is that the propulsion torque that the wheels are fed will affect the motion of the pendulum arm (the torque the motor puts on the wheel), but since this information will be available to read, it is countered within the forwarder model.

State Space model

Using the equations described in chapter 3.2, a model was developed in simulink. The first task was to compare a passive suspension, as shown in 3.9
Appendix A shows the simulink implementation as a block diagram, while ap-pendix B shows the code used in Matlab. The purpose of this model is to observe the dynamic response, since real hardware implementation is not possible at the mo-ment. In order to be able to run the simulation, a road profile was built according to the bump used by Wang (2012) and that can be seen in figure 3.8 . That is, one bump on each side of the forwarder, but positioned a few meters apart. The right bump is the one that makes contact first. The resulting road profile is shown in figure 3.10, and a visual representation is visible in figure 3.11.
With this road input the passive dynamic response was calculated. Figures 3.12 3.13 and 3.14 show the response obtained.
To compare the results obtained and check their validity, the response from a linearized model obtained from Baez (2014) as calculated by ADAMS software was obtained. Even tough the response is different, it can be estabilished that the dy-namics are similar, even though there may be discrepancies in the values assumed. One of the biggest factors that can influence the response is the center of gravity. Since no information was available, it was assumed that the center of gravity lied around the geometric center of the forwarder, assuming that the forwarder can be represented by a box, like in figure 3.6. The following figures show the comparison between the ADAMS model and the one developed, for the heave position, roll, pitch and their derivatives.

Control structure

During the work in this project, some different control types have been implemented and tested against one of the models previously described. This section covers the implementation of a kinematic controller which will make use of the previously de-scribed way of how to calculate a reference angle for each of the six pendulum arm legs, a skyhook controller which will make use of the skyhook principle, a combina-tion of both the kinematic and the dynamic controllers and a controller based on pole placement with a full car model. The first three will be applied to and tested against the simulation model that Wang (2012) developed and the last one will be applied to the dynamic model derived earlier.

Kinematic leveling controller

In order to make use of the pendulum arm angles calculated in section 3.1, a controller is needed to correct the error between the desired angle and the actual one. To achieve this, a control signal u is calculated as u = (r − y) • F, (3.4.1) where F is the controllers transfer function. A PID controller with a filter was composed in continuous time, yielding the transfer function
F (s) = kP + kI + skDN , (3.4.2)
where the N is the filter coefficient.
This controller is then approximated to a discrete time transfer function through the Tustin transformation
s = 2(z − 1) . (3.4.3)
Ts(z + 1)
F (z) = kP + kI Ts(z + 1) + 2(z − 1)kDN . (3.4.4)
− 1) + Ts(z + 1)N
2(z − 1)2(z
Control parameters
In order to set the control parameters for a PID controller, a method described by Ogata (2001, p. 169-173) was used. The method is built upon the desire to choose a rise time, Tr, and an allowed overshoot percentage, Povershoot‚ to get the desired control parameters. The first step is to calculate the damping coefficient

Dynamic vibration controller

One concern creating the kinematic control was that it would not act fast enough in order to counter vibrations around the set operating point. This lead to the development of a dynamic approach, where the actuators would be controlled as according to equation 3.2.18.
A skyhook controller was implemented with the same structure as by Evers et al. (2009) so that it would function without passive suspension, whilst also being able to account for it should it be required. The control signal is stated as ua = csG˜s ϑ ω˜ uc, (3.4.8)
Control parameters
The springs and dampeners are tuned in the same manner as described in the control parameter part of section 3.4.1, with some minor changes. ζ and ωn are calculated as according to equations 3.4.5 and 3.4.6, and the control parameters are calculated as a spring and a damper in a damped harmonic oscillator

Hybrid controller

The goal with the two previously described controllers is to make them robust enough to work independently, but also be able to use them together in order to extract the benefits of each one and make a stronger control algorithm, a thought inspired by Cho et al. (2013). A combination of the controllers was made by simply inputting an weighted averaged torque to the model. The proportions 50% −50%, 40% −60%, 60% −40%, 30% −70% and 70% −30% where tested, but the proportions with more vibration than leveling control where unable to finish their simulations.

Pole placement design based on forwarder model

With the model obtained from chapter 3.2 it is possible to develop a controller based on the poles from the system. One difference with the model described earlier is that the passive elements between the wheel and the chassi is going to be removed, and replaced with an ideal actuator, since there is no passive suspension in the real forwarder. The resulting model is shown in figure 3.17.
where so and s˙o are the road input and its derivative to the wheel as seen in 3.10, the T matrix is defined in equation 3.2.13, and F A is defined in equation 3.2.15.The vector F can be used to represent a disturbance, but also it can represent an input for a controller as if it was a single input. Estimating the wheel coefficients as Kw = 1500000 and Dw = Kw/10for the spring element and the damper, a transfer function was obtained from each of the states to each of the corresponding inputs in vector F . The following pole-zero maps were obtained for vertical displacement, roll and pitch.

Table of contents :

1 Introduction 
1.1 Background and problem description
1.2 Purpose
1.3 Delimitations
1.4 Method description
1.5 Expected outcome
1.6 Report outline
2 Frame of reference 
2.1 Theory behind suspension technology
2.1.1 Rotational Matrices
2.1.2 Half Car Model
2.1.3 Modal Input-Output Decoupling For Controlling Active Suspensions
2.1.4 Ride Comfort Index (RCI)
2.2 Previous control strategies
2.2.1 Skyhook control
2.2.2 Saturated Adaptive Robust Controller
2.2.3 PID Neural Network
3 Implementation 
3.1 Kinematics
3.2 Dynamics
3.3 Different modeling implementations of the Forwarder
3.3.1 SimMechanics model
3.3.2 State Space model
3.4 Control structure
3.4.1 Kinematic leveling controller
3.4.2 Dynamic vibration controller
3.4.3 Hybrid controller
3.4.4 Pole placement design based on forwarder model
4 Results 
4.1 Controllers compared to SimMechanics model
4.1.1 Kinematic leveling controller
4.1.2 Dynamic vibration controller
4.1.3 Hybrid controller
4.2 Controller compared to Adams model
4.2.1 Pole placement design based on dynamic forwarder model
5 Conclusions 
5.1 Kinematic leveling controller
5.2 Dynamic vibration controller
5.3 Hybrid controller
5.4 Pole placement design based on forwarder model
6 Recommendations 
6.1 Hydraulic model consideration
6.2 Optimization
6.3 Discrete pole placement design
6.4 Adaptive control strategy
6.5 Hybrid control
A Simulink forwarder model
B Matlab code for the passive model and state space of the full car model
C List of sensors


Related Posts