#### Abstract

This paper presents a model of a target tracking system assembled in a moving body. The system is modeled in time domain as a nonlinear system, which includes dry friction, backlash in gear transmission, control input tensions saturation, and armature current saturation. Time delays usually present in digital controllers are also included, and independent control channels are used for each motor. Their inputs are the targets angular errors with respect to the system axial axis and the outputs are control tensions for the motors. Since backlash in gear transmission may reduce the systems accuracy, its effects should be compensated. For that, backlash compensation blocks are added in the controllers. Each section of this paper contains a literature survey of recent works dealing with the issues discussed in this article.

#### 1. Introduction

In many military and civilian applications we can find equipments assembled into moving bodies, which must follow a target. They need to be isolated from the rotational motion of the body where they are mounted, called body 0 in this work (see Figure 1). This can be achieved with a system composed by a Cardan suspension (introducing therefore bodies 1 and 2), two motors connected to each axis, and two rate gyros mounted in body 2 to measure the angular absolute velocities in two directions perpendicular to the axial axis, defined in body 2. In literature, this Cardan suspension assembly is often called double gimbaled system. With the information provided by the rate gyros, a controller commands the motors in order to compensate any perturbation that is transmitted to body 2. At the same time, the equipment must also follow a target. Therefore some sensor (as radars, infrared-sensor, or vision sensors) can be mounted in body 2 to provide information about targets angular errors with respect to the axial axis. In this work this sensor will be called TAES (target angular errors sensor). To point precisely to the target the controller must command the motors in order to keep the angular errors equal to zero. Apparently, a contradictory task is sought at the same time: the controller needs to stabilize the equipment with respect to inertial frame; however it must also move the equipment to follow a target. This contradiction is only apparent, since both actions can be combined efficiently in a two-loop controller. With information received from TAES, the outer loop calculates the desired absolute angular velocities for body 2, in order to point to the target. The inner loop pursues to keep body 2 absolute angular velocities in the desired values, by comparing the information from the outer loop and the rate gyros. This approach has been discussed in [1–4], although backlash in gear transmission has not been considered in the numerical models.

In the present work, the controller described in Gruzman et al. [3] will be employed, where the outer loop consists of a Fuzzy Logic Controller [5] and the inner loop is a PI (proportional and integral) controller with antiwindup [6]. Since the mentioned control approach is developed for systems without backlash in gear transmission, an extra controller will be added to compensate problems caused by backlash. This controller provides compensation values for the control tensions whenever the suspension axes pass through a backlash gap in gear reduction.

In this work, actuators are permanent magnet DC motors controlled by armature voltage. Sensor errors and noise are not considered, and the motion of body 0 is prescribed. Control signals (voltages) saturation and armature current limiters are included in the model.

Many authors, as Masten [2], Downs et al. [7], and Lee and Yoo [8], model gimbaled target tracking systems in frequency domain. Such approach is convenient for control design purposes but may often result in excessive simplification of the dynamic equations that are usually highly nonlinear. In this work the differential equations are not linearized and are integrated with respect to time. Besides, adequate dry friction torque models, gear backlash models, armature current saturation, and controllers with inner and outer loops, having different time delays, can be included with no further difficulties. The main contributions of this work are, therefore, the presentation of the following:(i)a sophisticated time domain target tracking system model, (ii)a backlash compensation block that is added to the controllers previously developed for systems without backlash in Gruzman et al. [3] in order to reduce delays, oscillations, and inaccuracy caused by backlash.

#### 2. Equations of Motion of the Device

The equations of motion of the device can be obtained by Lagrange formulation [9]. It is not the aim of this work to study the dynamics of body 0; therefore it is assumed that its motion is prescribed. The position vector of its center of mass (point in Figure 1) with respect to the inertial frame origin will be called . The position vectors of bodies 1 and 2 centers of mass, with respect to the center of the Cardan suspension (point ), are, respectively, and . The orientation coordinates of body 0 can be given by the angles of successive rotations called pitch (* δ*), yaw (

*), and roll (*

*ψ**), presented in Figure 2.*

*γ*It can be seen in Figure 1 that center-of-mass fixed reference frames are used. They are chosen in such a way that and remain parallel to the pan axis, and to the tilt axis, and to the axial axis. The device has four generalized coordinates:

Writinng the Lagrange equations for the device, one has (i): rotation angle of body 1 (outer gimbal) relative to body 0 measured around the pan axis;(ii): rotation angle of motor 1 rotor relative to body 0 measured around the pan axis;(iii): rotation angle of body 2 (comprising the inner gimbal and the TAES) relative to body 1 measured around the tilt axis;(iv): rotation angle of motor 2 rotor relative to body 1 measured around the tilt axis.

The system’s Lagrangian is given by the sum of bodies 1, 2 and rotor 1 and rotor 2 Lagrangians, each containing the potential and kinetic energy of the bodies, which are assumed to be rigid in this work. The right-hand side terms of (2.1) correspond to nonconservative generalized torques. They include the viscous and dry friction torques ( and ), the electromotive torques due to the motors (), and the transmission torques () between rotor 1 and body 1 and between rotor 2 and body 2:

##### 2.1. Torques due to Viscous Friction

The viscous friction torques at body 1, body 2, rotor 1, and rotor 2 axes are, respectively, given by where , , , and are the resultant viscous friction coefficients at body 1, body 2, rotor 1, and rotor 2 axes, respectively.

##### 2.2. Torques due to the Motors

The electromotive torque in a rotor of a permanent magnet DC motor is given by (2.4), written with rotors 1 generalized coordinate subscript:
where is the motor torque constant and the armature current, whose value is obtained by [10]
where *R*, *l, * and *k _{b}* are, respectively, the armature resistance, armature inductance, and back-emf constant. The tension provided to the motor (

*u*) is the control variable and its calculations will be discussed in Section 4.

By a similar way, (2.4) and (2.5) can be written for rotor 2 as

Armature current limiters are usually employed to avoid damages to the motors and circuits. They keep the current between a maximum value () and a minimum value (). If the system has limiters, then the first derivative of the currents with respect to time, given by (2.5) and (2.7), is set to zero whenever

##### 2.3. Torques between Rotor 1 and Body 1 and between Rotor 2 and Body 2

The torque between the rotor and the body driven by that rotor (body 1 or body 2) is affected by backlash present at the transmission. When the body is transversing the backlash gap, this torque will be equal to zero. The approach adopted in Nordin and Gutman [11] and Lagerberg and Egardt [12] will be used to model flexibility and backlash in each set comprising the rotor, gear reduction, and the body. Only two elements with nonzero inertia are considered in each set. The first has the inertia of the rotor and the second, that will be called load, has the inertia of the driven body. The inertias of the gears are usually disregarded but can be included in rotors inertia. For that, it is necessary to calculate the equivalent inertia of each gear in the rotor. There is also a shaft without inertia between the gear reduction and the load. This shaft has coefficients of structural rigidity and structural damping . A backlash with amplitude of exists between this shaft and the load. The parameters , , and correspond to resultant values for the entire set. Baek et al. [13] show how to obtain the resultant backlash and coefficient of structural rigidity of a system comprising an actuator, gear reduction, and a load. The following equations will be presented for the set rotor 1-body 1 (therefore the variable * α*, that corresponds to body 1 generalized coordinate, is used after the “ ,” in the subscripts).

The gear reduction ratio is given by

The torque at the shaft without inertia is where and .

The backlash angle is * θ_{b}* and its first derivative is given by the following ordinary differential equation (ODE):

A new state variable is introduced in this model (). In order to obtain , (2.11) must be integrated. The torques transmitted to the rotor 1 and the load (body 1) are, respectively, given by

For the set rotor 2-body 2, the equations are where and

The backlash angle is and its first derivative is given by the following ordinary differential equation (ODE):

##### 2.4. Torques due to Dry Friction

Dry friction torques may be found in the system; therefore they should be included in the model. There are many numerical models for dry friction available in literature [14–20], but they depend of empiric parameters that are not easy to be estimated. Therefore, the procedure presented by Piedbœuf et al. [21] will be used to calculate the resultant dry friction torques at body 1, body 2, rotor 1, and rotor 2 axes. With this approach the only parameters that need to be known are the dynamic dry friction torque () and the maximum value of the static dry friction torque () at each axis, which can be obtained with simple experiments, as shown in [21]. Before each integration step, it is verified if stiction due to dry friction is happening in any generalized coordinate, as will be explained next.

The dynamic equations of the system (obtained from the Lagrange equations) in a matrix form is given by (2.17), where the components of inertia matrix () and , , and are nonlinear functions of the generalized coordinates:

Calling a vector , where , (2.17) can be rewritten as

In the following, we will concentrate our analysis in the generalized coordinate * α*. The extension to the other generalized coordinates is straightforward.

If is not zero, it means that body 1 is in slip regime, and the generalized dry friction torque at this body will be

If it is equal to zero and the modulus of the sum of all torques (), including torques due to inertia but excluding dry friction torque, is lower than it means that body 1 is at the stick regime. Thus, the dry friction torque should be calculated according to (2.20):

It should be stressed that it is not convenient to consider as a transition condition between stick and slip, since during the numerical resolution of the equations of motion the true zero may not be achieved. Besides, it can be observed in experiments that sliding abruptly stops under a minimum angular velocity (). Therefore it will be considered that the body is in stick regime whenever the modulus of is lower than and the modulus of is lower than . Next, a numerical damping term must be included to the static dry friction torque to eliminate the residual angular relative velocity of the body*, *as it will be seen in the following example.

Consider that at a certain instant during the numerical resolution of the equations system (2.18), the modulus of is smaller than . It is assumed that the first derivatives of the other generalized coordinates are larger than the respective minimum angular velocities of transition between slip and stick. Then, it must be checked if the modulus of , obtained from the system of equations below, is higher or lower than : If then body 1 is in slip regime and , , , and are obtained with (2.22). Otherwise (2.23) should be used:

As previously discussed, a numerical damping term should be added to dry friction static torque because body 1 is in stick regime. An expression proposed in [21] for the numerical damping coefficient is
where is a constant value chosen such that is reasonably larger than the minimum integration step size of the ordinary differential equations (ODEs) integrator. In the example presented, stiction occurred only in * α*, but the method can also be used for stiction in the other generalized coordinates, simultaneously or not. When (2.21) is used for the verification of stiction in a generalized coordinate

*i*(in a system with

*n*generalized coordinates), the following rule should be applied:

#### 3. Resolution of the Equations Considering Control Signal Time Delay

The resultant system has four first-order ODEs, given by (2.5), (2.7), (2.11), and (2.14), and four second-order ODEs, given by (2.17). To obtain only first-order equations the following coordinate transformation can be applied: , , , , , , , and and (2.17) becomes

The components of the vector are given by (2.3). The components of the vector are calculated, before each integration step, according to the method presented in Section 2.4. The components of the vector are given by (2.4) and (2.6), which depend on the armature current of motor 1 and motor 2. Those currents are obtained by the first-order ODE system, given by (2.5) and (2.7), which should be solved simultaneously with (3.1). Equations (2.3), (2.5), and (2.7) can be rewritten with the new coordinates introduced in this section:

The components of the vector are given by (2.12), (2.15), and (2.16), computed after calculating (2.10) and (2.13). To calculate (2.10) and (2.13) two first-order ODEs, given by (2.11) and (2.14), must be solved simultaneously with (3.1)–(3.3). With the initial conditions
and the prescribed motion of the body 0, a numerical algorithm for calculation of the approximate solution of first-order differential equations system can be used [22]. The voltages provided to the motors (*u*) are the control variables and should not be updated on the right side of (3.3) at each integration step; otherwise the time delay that corresponds to the delay that occurs in a real system due to data acquisition by the sensors, data processing, and calculation of the control tensions would be ignored. Thus, the control voltages should be updated during the numerical integration of the differential equations by the following way: (i)with data provided by the sensors, at an instant *t*, the control voltages are calculated; (ii)the ODEs are integrated from *t* to (), using constant voltages (zero order hold) calculated at (), (remark the delay of ); (iii)at instant (), with data provided by the sensors, new control voltages are calculated; (iv)the integration process continues from () to (), using constant voltages calculated at *t* (again a delay of ); (v)then, the process is repeated until the final simulation instant is reached.

#### 4. Control Signals

The controllers need to provide the adequate voltages to the motors to keep the axial axis pointed to the target. This means that the angular errors of azimuth () and elevation () with respect to the axial axis should be kept as near as zero as possible.

It will be assumed that the TAES provides the targets centroid coordinates in the image plane, as shown in Figure 4. These coordinates with respect to the image plane center are proportional to and . The time to calculate the targets centroid coordinates is usually larger than the control signal update period . As the controller must also provide compensation to body 0 angular motion, it is necessary to adopt a control strategy where the voltages provided to the motors can be updated faster than the information from the TAES. A method that is commonly employed and discussed in [1–4] consists in the use of independent controllers, with an external loop, also called tracking loop, and an internal, or stabilization loop, for each motor. One of the controllers has the objective to keep body 2 absolute angular speed in direction at some desired value, while the other seeks to do the same for body 2 in direction. With information about the angular errors, the desired values are calculated at the external loops. In the inner loop, working at higher sampling rate, the voltage provided to the motor in order to keep the absolute angular speed in direction (or ) at the desired value is calculated and updated at every time interval . The input for this loop is an error signal equal to the desired absolute angular speed minus the value measured by one of the rate gyros mounted in body 2. In this work the approach presented by Gruzman et al. [3] will be used, where the internal loops have PI (proportional and integral) controllers with antiwindup [6, 10] and the outer loops incremental Fuzzy Logic Controllers (FLCs). The FLC output is an increment for the desired angular absolute speed for body 2 in direction (or ). The inputs for the FLC are the angular errors provided by the TAES, their derivatives with respect to time, and a variable called LoSu. This variable corresponds to the saturation level of the control signal and is used to avoid increments for the desired absolute angular speed if the control signal is near its superior saturation limit (or decrements if it is near the inferior saturation limit). One controller provides the voltage to the tilt motor (motor 2) to maintain body 2 absolute angular velocity in direction at the desired value. The other controller provides the voltage to the pan motor (motor 1) to keep the desired angular absolute speed in direction. It is important to remember that the pan motor axis is parallel to and not ; therefore the error comprising body 2 absolute angular speed in direction minus the absolute angular velocity in this direction, measured by the rate gyro, should be divided by . The relative angle can be measured by an encoder mounted at the tilt axis (see Figure 1). If the systems working space is limited to , there is no risk to have a division by zero. In Figure 4 the pan motor general control structure is presented. For the tilt motor the structure is similar, but there is no division by at the stabilization loop. The outer loop time delay is . The inner loop time delay is and *. *

##### 4.1. Inner Loop (Stabilization Loop)

In the inner loops PI controllers are used. The inputs are the errors comprising the desired absolute angular speeds minus the absolute angular speeds measured with the rate gyros. If digital controllers are used, the control signals provided to the pan and tilt motors are given, respectively, by the following equations:
where *k _{P}* and

*k*are the gains of the proportional and integral terms, respectively. The errors are given by where and are body 2 desired absolute angular speeds in and directions. They are updated by the outer loop at every time interval . The two rate gyros assembled in body 2 provide new measurements of and in a faster rate. Therefore the voltages can be updated at every time interval .

_{I}If the absolute angular speed takes a long time to reach the desired value, the sum in (4.1) may become excessively large and will keep increasing even if the control signal is saturated. The control signal will then remain saturated even when the error changes sign and it may take a long time before the integrator and the controller output come inside saturation range. This problem is called integrator windup and can be avoided if an antiwindup action is included at control. A common antiwindup strategy is the back-calculation [6] that is efficient but has a gain that needs to be adjusted. Therefore, in this work a simpler method will be used where the sum in (4.1) is interrupted if the control signal is at the maximum saturation limit and the error is positive, or, if the control signal is at the minimum saturation limit and the error is negative. In [3] the controllers do not use any model of the target tracking system; therefore the PI gains are obtained by Ziegler-Nichols frequency response method [6, 10].

##### 4.2. Outer Loop (Tracking Loop)

In the outer loop, the TAES provides information about the targets elevation and azimuth angular errors, as shown in Figure 5, to a Fuzzy Logic Controller [5] whose output is an increment to the desired absolute angular speed, used as reference in the inner loop. In this work FLCs were chosen for the external loops because they are more flexible than traditional controllers, like PID, due to the possibility of implementing nonlinear mappings between inputs and outputs. It is not the objective of this work to study how the angular errors of azimuth and elevation are obtained. For the model used in this work the only necessary information is the time duration of the whole process that occurs in the tracking loop. This time delay, from the instant when the TAES notices the target up to moment when the desired absolute angular speed is provided to the inner loop, may be relatively large when compared with .

The inputs for the FLC used at the pan motor control are the angular azimuth error (), the derivative of this error with respect to time, and the control voltage saturation level (). The is used to avoid increments for the desired absolute angular speeds if the control signal is near its superior saturation limit (or decrements if it is near the inferior limit). The pan motors FLC output is an increment for body 2 desired absolute angular speed in *z _{2}* direction (). This increment is added to the previous value of the referred angular speed (stored in memory), resulting in the value that will be provided to the internal loop (). The inputs for the tilt motor FLC are the elevation angular error (), the derivative of this error with respect to time, and the control voltage saturation level (). The output is an increment for body 2 desired absolute angular speed in direction (). The angular errors derivatives in a certain instant

*t*can be approximated according to (4.3). The control signal saturation levels are given by (4.4), where is the value of the maximum voltage that can be provided to the motor:

Both FLCs use the input and output membership functions shown in Figure 6 and the rule-base of Table 1, presented in [3]. The algorithm used for inference is max-min method and for defuzzification is the center of area method [5].

The membership functions and rule-base presented were adjusted through simulations of systems with outer loop time delay () varying between 10 milliseconds and 20 milliseconds. For out of that range a new adjustment may be necessary.

##### 4.3. Backlash Compensation Block

###### 4.3.1. Overview

The controller described in previous sections is projected for systems without backlash. Its performance will be significantly worse if large backlash angles are present in gear transmission, since backlash causes delays, oscillations, and inaccuracy. To avoid backlash, some designers, as Arambel et al. [23] and Borrello [24], prefer to use direct drives, but this solution is not always possible, since a stronger actuator, that may be too large or heavy for the system, will be required. Other design techniques can be employed to avoid the harmful effects of backlash in systems with gear transmission, as the drive/antidrive concept, discussed by Haider et al. [25] or the auxiliary brakes presented by Gruzman and Weber [26]. Despite the effectiveness of those techniques, they increase the complexity and weight of the target tracking system, since extra components will have to be assembled in the Cardan suspension. The approach presented in [25] requires two motors for each axis while the approach presented in [26] requires braking systems for each axis. Some authors as Rzasa [27] mention the use of dry friction in the drive train to eliminate limit cycles, but this technique reduces the efficiency of the actuator, since extra power will be required to compensate this additional torques. Therefore, in this work, the effects of backlash will be compensated by the controllers. For that, a backlash compensation block is added in the stabilization loop of each motors controller. This block should actuate whenever body 1 (or 2) transverses a backlash gap in gear transmission. To reduce the effects of backlash, a possible strategy consists to transverse the backlash region quickly in order to restore the controllability. In literature this approach is often called as “strong action in backlash gap” and it is more concerned with the lost motion at the load. However, problems related with dynamic stability can occur, because reengagement may happen with large relative velocity (undesired collisions will occur). To avoid this problem some authors prefer to implement the called the “weak action in backlash gap.” It avoids problems with dynamic stability, but tracking performance may be poor, since the backlash region is transversed with reduced speed. In Nordin and Gutman [28] an extensive literature survey of both methods is presented. Some authors as Menon and Krishnamurthy [29] and Moscrop [30] uses a combination of the “weak” and “strong” actions while transversing the backlash gap, because it exploits the advantages of both (smooth reengagement is ensured at the same time that the controller tries to transverse quickly the backlash region). In the present work a combination of both actions will be considered, but the compensation signal will be provided to the output of the main controller (in this work corresponds to the PI controller of the stabilization loop) instead of its input, as is done in [29–34]. The reason for providing the compensation signal to the output of the main controller will be discussed further in this section.

The backlash compensation block is added in the stabilization loop, according to Figure 7, to provide an extra tension (positive or negative) for the motor.

Two tension saturation blocks should be used: the first before the backlash compensation block and the second after it. If there is no tension saturation block before the backlash compensation controller, the compensation tension may be in some cases ignored, as in the following example.

*Example 4.1. *A target tracking system is supplied by a battery that provides tensions between V and 24 V; therefore the tension saturation block should not allow control tensions out of this range. If the output of the PI controller is a 30 V tension, the output of the backlash compensation controller is a V tension, and there is no tension saturation block after the output of the PI controller, then the tension saturation block, that is after the sum of the PI and backlash compensation block outputs, will have an input of 26 V and an output of 24 V, since 26 V is beyond its saturation level. As it can be noticed, the backlash compensation controller had no influence at the output of the stabilization loop. With two tension saturation block, as shown in Figure 7, this tension would be reduced to 20 V, because the first block would reduce the PI controller output to 24 V. Therefore, in this case the backlash compensation controller influenced the output of the stabilization loop.

The idea behind the backlash compensation approach used in this work can be explained with the schematic draw of Figure 8, where is the driving mechanism, the driven mechanism, the driving mechanism position, the driven mechanism position, the driving mechanism speed, the driven mechanism speed, and *l* the total backlash size. Initially consider that is being driven to the left as in Figure 8(a). To keep this motion, a negative tension (*u*) is being provided to driving mechanism, which is in contact with the left teeth of . If in a certain instant it is desired an increase in , a positive tension will be provided to , since it will have to act in the right teeth of , as shown in Figure 8(b). For that, must pass through the backlash gap. As the backlash region should be quickly transposed, an additional positive tension () is provided to the driving mechanism by the backlash compensation controller, as shown in Figure 8(c). Just before touches the right teeth of , the compensation tension becomes negative, in order to reduce the speed of and smooth the collision between and the right teeth of . As soon as the contact is reestablished, the compensation tension becomes zero, as in the beginning of the motion.

**(a)**

**(b)**

**(c)**

**(d)**

In order to have the desired relative motion between and when transposing the backlash gap, the value of the compensation tension should be adequately calculated and depends of *u*. If *u* is negative, must contact the left teeth of ; otherwise it must contact the right teeth of . The relative position between and () is given by (4.5) and the relative velocity between and () by (4.6):

The theory presented for the linear system of Figure 8 can be applied to the target tracking system of this work, but the correspondent generalized coordinates of the target tracking system must be used, according to Table 2.

Since in most of the practical applications many parameters of the system may be unknown, the backlash compensation block developed in this work consists of a controller that does not require a model of the system. Besides, it differs from other backlash compensation techniques that do not use a model of the system, because they provide compensation to the inputs instead of the output of the main controller, as demonstrated in Figure 9. In this work it corresponds to the PI controller of the stabilization loop, which is the last controller before the actuator.

**(a) Traditional approach**

**(b) New approach**

Some examples of these backlash compensation techniques can be found in Kim et al. [31], Mokhtari and Barati [32], and Santos and Vieira [33]. In those works a compensation value is added to a desired position command for the driven mechanism. The new desired position command is the input to some specific controller. In Woo et al. [34] a compensation value is added to a desired velocity command for the driven mechanism. The new desired velocity command is the input to a PD controller.

The flexibility is an advantage of the backlash compensation approach proposed in this work, when compared to the traditional techniques, since it is not designed for a specific type of main controller. In fact it can be a PID, FLC, state feedback controller, LQR, and so forth. Besides, it can be implemented for main controllers working with different feedback variables as joint angles, joint speeds, absolute angular speeds, absolute angular accelerations, and so forth. This is a desired factor for backlash compensation controllers used in gimbaled tracking systems, because not every system has a controller that pursues to keep body 2 absolute angular speeds in desired values. Several examples of gimbaled tracking systems where the main controller pursues to keep the joint angles in desired values can be found in the works presented by Skoglar [35], Liu [36], and Gruzman et al. [37]. Systems where the main controller uses absolute angular acceleration feedback are also found in literature, as in Algrain and Quinn [38].

The driven axes and rotors angular positions and velocities are required for the backlash compensation controller proposed in this work. It is assumed that sensors are assembled after the rotors and the axes in order to measure the generalized coordinates (* α*,

*,*

*α*_{m}*and*

*β*,*) and its first derivatives, as presented in Figure 1. If the cost of using sensors after the rotors and load becomes prohibitive, they can be assembled only after the axes, but state observers [10] such as Kalman filter [6] will be required to estimate the rotors generalized coordinates and its first derivatives. The inconvenience of state estimation is that the parameters of the DC motors are required. Frequently they are not available, and additional experiments, as presented in [39, 40], may be necessary.*

*β*_{m}The total backlash angles in each gear are required for the compensation block proposed. Therefore, it assumed in this work that this parameter is known. Simple experiments can be done for a good estimation of the total backlash angle in a transmission train: the rotor is kept fixed and the driven axis is turned manually until no further motion is allowed, and the angular displacement corresponds to the total backlash angle. In addition, the total backlash can be estimated online by adaptative controllers [33, 34, 41].

###### 4.3.2. Controller Used in the Backlash Compensation Block

The strategy to compensate the backlash nonlinearity consists of a heuristic approach, as presented in Figure 8; therefore a fuzzy controller will be used in the backlash compensation block, because it provides a natural framework to incorporate heuristics. Three inputs are necessary for the FLC backlash compensation block: the tension calculated in the main controller (*u*), the relative angular position between the driven axis (divided by the gear ratio) and the rotor (∆), and the relative angular velocity between the driven axis (divided by the gear ratio) and the rotor (), both given by the expressions in Table 2. The output is an extra control tension () that will be added to the tension calculated by the main controller, as shown in Figure 10, where the pan motor stabilization loop with the backlash compensation block is presented.

In Figure 10 it is considered that tachometers are used to obtain the first derivatives of the generalized coordinates, but it is also possible to obtain finite differences approximations if only encoders are available.

The FLC backlash compensation block for the pan and tilt motor control use the input and output membership functions shown in Figure 11 and the rule-base of Table 3, adjusted for total backlash angles (2* η*) of 0.1 rad and saturation tensions of V. The algorithm used for inference is max-min method and for defuzzification is the center of area method [5].

The membership functions and rule-base for the backlash compensation controller are chosen to reduce delays, oscillations, and inaccuracies, by providing motors overdrives such that backlash region is quickly, but with smooth reengagement, transversed, according to the strategy presented in Figure 8.

#### 5. Simulation Results

In this section two different cases will be simulated. In the first the target will move in a circle five meters ahead body 0, that is fixed in inertial frame. In the second case, body 0 and the target will move. The objective of the controllers is to keep the angular errors of azimuth and elevation equal to zero. The curves in black are the angular errors of a system without backlash compensation controllers and rad. This value was chosen to simulate a system with negligible backlash. The curves in red correspond to a system with large backlash in gear train ( rad) and also without the backlash compensation controller. The curves in green correspond to a system with rad and backlash compensation controllers for each motor. The root mean square (rms) of elevation and azimuth angular errors of each simulation are also presented. Measurement errors and noise in sensors were not considered. The algorithm used for calculating the approximate solution of the ODE was a fourth-order Runge-Kutta with variable step-size.

The following data were used in all simulation.

*General Data*

Gravity acceleration (*g*): 9,81 m/s^{2}. Initial conditions are

Resultant coefficient of rigidity in the drive trains () is 3000 Nm/rad. Resultant damping coefficient in the drive trains () is 2 Nms/rad.

*Body 1 and Body 2 Data*

Body 1 mass () is 0.3 kg. Body 2 mass () is 0.4 kg. Viscous friction coefficients at bodies 1 and 2 axes are kg m^{2}/rad s. Dry torques friction at bodies 1 and 2 axes is disregarded. Position vector of the center of the Cardan suspension (point ) with respect to body 0 center of mass (in coordinates of body 0 fixed frame), position vector of body 1 center of mass with respect to point (in coordinates of body 1 fixed frame), and position vector of body 2 center of mass with respect to point (in coordinates of body 2 fixed frame) are given, respectively, by

Bodies 1 and 2 inertia tensors, expressed in coordinates of body 1 and 2 frames, are respectively,

*Motors Data*

Rotors 1 and 2 inertia tensors, expressed in coordinates of body 1 and 2 frames, are respectively,

Viscous friction coefficients at the rotors axes are kg m^{2}/rad s. Dry friction dynamic torques at the rotors axes are Nm. Maximum dry friction static torques at the rotors axes are Nm. Gear reduction ratio is . Armature resistance is Ω. Armature inductance is H. Torque and back-emf constants are V/rad/s. Maximum and minimum current limits at the motor armatures are A and A. Maximum control voltages are V. Minimum control voltages are V.

*Controllers Data*

Tracking loop (FLC) is the membership functions and rule-base presented in Section 4.3.

Stabilization loop (PI control): the following gains were obtained with Ziegler-Nichols tuning in [3] for a system without backlash in gear transmission: ; .

Backlash compensation block (FLC): membership functions and rule-base presented in Section 4.3.

Outer loop time delay () is 15 milliseconds. Inner loop time delay (): 1 milliseconds. *(a) First Case: Body 0 Fixed in Inertial Frame and Target with Prescribed Motion*

The results presented in Figure 12 correspond to simulations where body 0 was fixed within inertial frame, with its center of mass (point *a* in Figure 1) coinciding with inertial frame origin (). The target (tt) position vector with respect to , in inertial frame coordinates (), had the following prescribed motion:

According to the results presented in Figure 12 it can be observed a significant loss in precision when large backlashes are present in gear transmission, by comparing the red curves ( rad and no backlash compensation) and the black curves ( rad and no backlash compensation). There is also a significant increase in rms of the elevation and azimuth angular errors when backlash angles are larger, as shown in Table 4. When the backlash compensation controller is used in a system with rad (green curves), there is an improvement in performance, even if less accurate than the very small backlash case without compensation (black curves), as it can be observed in the curves of Figure 12 and in the rms values of Table 4.*(b) Second Case: Body 0 and Target with Prescribed Motion*

The results presented in Figure 13 correspond to simulations where body 0 and the target (tt) had an oscillatory prescribed motion. Their motion could represent, for example, a missile (body 0) chasing an airplane (target). The position vector of the target with respect to inertial frame origin () in inertial frame () coordinates, the position vector of body 0 center of mass with respect to in coordinates, and body 0 orientation coordinates with respect to are given, respectively, by

**(a)**

**(b)**

**(a)**

**(b)**

Once again, by the results presented in Figure 13 and Table 5, it can be observed a significant loss in precision when large backlashes are present in gear transmission (red curves). When the backlash compensation controller is used in a system with large backlash (green curves), a performance improvement can be observed, even if it is less accurate than the very small backlash case without compensation (black curves).

#### 6. Conclusions

This paper presented the modeling and control of a target tracking system assembled into a moving body. The system is modeled in time domain, instead of the most traditional frequency domain approach. This allowed a more realistic model of the system, since the inertial parts of the equations of motion were not linearized and other nonlinearities such as dry friction, backlash in gear transmission, control tensions saturation, and armature current saturation were included in the model. Different time delays in each control loop were also included in the model. The presentation of the model was done in several steps, each of them containing a literature survey of recent works where similar problems were analyzed. Initially, the generalized coordinates used in the model were defined and the Lagrange equations for the system were presented. Despite the assumption that the system is composed of rigid bodies, the Lagrange equations allowed to consider flexibility in gear transmissions that were included in the nonconservative generalized torques of the equation. In this torques, the motors electromotive force, viscous friction, backlash, and dry friction were also included. The model does not include body flexibility and aerodynamic effects, which may increase inaccuracy in the system performance. Such effects should appear more drastically in the cases that the TAES is large and more flexible as an antenna. Further developments of the model might be pointed toward this direction.

Next, a methodology was presented for the numerical integration of the equations of motion simultaneously with the update of the control signals with time delays. For finding of the control signals, independent controllers, with two loops each, were used for each motor. The outer loop, that contains a fuzzy logic controller, used information about the targets angular errors of azimuth and elevation and calculates the desired absolute angular speeds for body 2, to point the axial axis to the target. The inner loop, that is faster, uses information from the other sensors in order to keep body 2 angular absolute speeds in the desired values. A PI controller with antiwindup action is used in this loop. Tuning the gains of PI controller through Ziegler-Nichols method requires obtaining an absolute angular velocity response of the device with its actual parameters. This step could be avoided if other controller design techniques are used, such as robust control.

Afterwards, special attention was given to the problems caused by backlash in gear transmission. To reduce its effects a backlash compensation block was included in the stabilization loop. This compensation block consisted of a fuzzy logic controller whose inputs are the tension obtained in the PI controller and the relative angular position and velocity between the driven axis and the rotor (divided by the gear ratio). The output is an extra tension that is added to the tension calculated in the PI controller, assuring that the backlash region is quickly transverse, but with smooth reengagement. The backlash compensation controller can be used in combination with different principal controllers, which in this work corresponds to the inner loop PI controller. It provides compensation signal to the output of the main controller, instead of changing its inputs, as usual in traditional backlash compensation techniques. By last, results of numerical simulation were presented. It is shown the improvement in performance of a system that has large backlash in gear transmission, but whose controller has been previously tuned to work without backlash. A suggestion for future work is the inclusion of noise and sensors inaccuracy in the model.

#### Acknowledgment

The authors gratefully acknowledge the support of CNPq.