1. Introduction
A high performance motion controller is a key element of manufacturing equipment such as machine tools, robots, semiconductor processing tools, and data storage devices as well as autonomous vehicles. Fig. 1 shows a block diagram of a typical motion control system with four exogenous input that includes three external disturbances, w(t), d(t) and n(t). In order to cancel or minimize the adverse effect of these disturbances, either a purposedriven controller can be added or controller optimization based on the loopshaping can be implemented^{[1~2]}.
However, even with these specialized control efforts, the motion control system exhibits undesirable behavior such as stickslip limit cycles, quadrant glitches, hysteresis, and/or tracking errors due to nonlinear friction components^{[3~6]}.
ArmstrongHelouvry, et al. did comprehensive study on the analysis, modeling and compensation of friction^{[3]}. A typical friction model includes viscous and Coulomb friction. For high precision motion control with low velocity and multiple zerovelocity crossings, more elaborate friction model and compensation is required^{[4~5]}. In order to mitigate adverse effect of friction, various control algorithms have been proposed and implement such as dither, impulsive control, stiff PDcontrol and fuzzy logic^{[3, 5,7,11]}. Various modelbased friction compensation schemes such as modelbased feedforward, modelbased adaptive and learning control have been proposed and tested^{[3~6,8~10]}. Itagaki and Tsutsumi combined both velocity and positionloop friction model to improve the overall motion control performance of a linear motor feed drive system^{[12]}.
In this paper, we investigate the behavior of nonlinear friction of the motion control system, modeling and compensation. Nonlinear friction models of a rotary motion control system and a testbed for autonomous vehicle have been developed. These models are constructed by measuring friction force versus velocity of the system and inserted as an augmented plant for system performance simulation. The same model is utilized as a friction compensator for both simulations and experiments to verify its effectiveness for performance enhancement.
2. Description of Motion Control Systems and Controller Structure
2.1 Rotary Motion Control System
Fig. 2 shows a rotary motion control system (Quansar QUBEServo 2) that has been used for this motion control system research. The system consists of a DC motor with an optical encoder and Quarc realtime control software that provides an interface between the motion control system and MATLAB Simulink running inside the PC.
The system is driven by a directdrive 18V brushed DC motor. The motor is powered by a builtin PWM amplifier with integrated current sense. Singleended rotary encoders are used to measure the angular position of the DC motor and the angular velocity of the motor can also be measured using an integrated softwarebased tachometer. A red disk in the lower left corner of Fig. 2 can be used as an extra load to the rotary motion control system.
Fig. 3 shows Quark Simulink implementation of PID (ProportionalIntegralDerivative) control for Quanser motion control system. Since the Quarc development system uses the hardwareintheloop and Simulink GUI (graphics user interface) architecture, it is simple and flexible for control system design education and basic motion control research as demonstrated in this paper.
2.2 Altino Testbed for Autonomous Vehicle System Development
Fig. 4 shows Altino system based on Arduino SBC (SingleBoard Computer) architecture. The Arduino board includes Atmega128 and 88 dual microprocessors. For autonomous operations, the testbed is designed with various sensors: a temperature sensor, a 3axis magnetometer as a compass, a 3axis accelerometer, 1 CdS sensor for illuminance measurement and 6 infrared optical sensors for distance measurement.
For reliable autonomous vehicle operations, precise distance measurement or estimation out of optical sensor readouts is essential. The infrared sensor used in Altino system has the effective range of up to 30 cm with sensor readouts of 0 to 800 as shown in Fig. 5. As we see in the figure, the signal strength is inversely proportional to the distance between the sensor and the reflective wall or an obstacle. The distance is estimated from the sensor signal by the following equation.
where d is the distance and x is the sensor readout.
Since the sensor readout is dependent on ambient lighting condition and reflectivity of the object, accurate calibration methods are required for precise estimation of the distance between Altino platform and the facing wall. In this study, only one infrared sensor located in the center of the front bumper is used for position estimation.
3. Tuning of Nominal PID Controller
3.1 PID Controller for Rotary Motion Control System
A typical rotary motion control system, as shown in Fig. 1, can be modeled as a simple secondorder system as following:
where Y(s) is the position output, R(s) is the reference input, J_{e} is the equivalent inertia and B_{e} is the equivalent viscous damping coefficient. By utilizing the firstorder system identification method, J_{e} and B_{e} are determined as following: J_{e} = 7.143 × 10^{3} [Vs^{2}] and B_{e} = 0.0446 [Vs]. Here J_{e} includes both motor inertia and external load inertia.
These equivalent values of inertia and viscous damping coefficient are used for a nominal plant as shown in Eq. (2). Performance requirements for this rotary motion control system are set as following: the rise time (t_{r}) < 0.05 s, the peak time (t_{p}) < 0.1 s, the settling time (t_{s}) < 1.5 s, and the percent overshoot (PO) < 20%. Bounds for the parameters of PID controller have set as following: 0 < K_{p} < 10, 0 < K_{i} < 5 and 0 < K_{d} < 0.5. By running random search algorithm using MATLAB, we have found 328 controller candidates that satisfy the requirements, and selected the final values for the PID controller: K_{p} = 7.8, K_{i} = 1.5 and K_{d} = 0.275.
These final parameters have been used for both MATLAB simulations and the experimental setup as shown in Fig. 3. The step responses are displayed in Fig. 6. If the identified system matches accurately with the actual system, the simulation result based on the nominal model should agree well with the experimental result. However, as we see in Fig. 6, there are some discrepancies in the result. The experimental result shows slower rise time, smaller overshoot, slower settling time and steadystate error of 2.78%. We suspect that this is due to unmodeled system dynamics such as nonlinear friction components that include stiction (or static friction) and Coulomb friction as described in Section 4.
3.2 PID Controller for Altino Autonomous Vehicle System
The purpose of a motion controller for Altino testbed is to autonomously navigate through unknown surroundings by identifying the road and obstacles. The distance to the obstacle is estimated by a simple algorithm shown in Eq. (1) based on sensor measurements. A PID controller is inserted and tuned to obtain reasonably good position control.
Building a plant model for Altino testbed is not trivial due to its more complicated system structure.
Hence the PID controller has been tuned by repeated experiments. Fig. 7 displays some test results with the PID controller. The target distance is 5 cm from the wall that is located at 0. With K_{i} = 10, the testbed overshoots and stays around at 3 cm. In order to remove steadystate errors, we increased K_{i} to 20. In this case, while the steadystate errors become smaller, the testbed oscillates around the target distance at 5 cm as shown in Fig. 7.
We suspect that the cause of these oscillations (or limit cycles) and steadystate errors are due to a combined effect of gear trains, viscous and nonlinear friction in electrical motors and wheels.
4. Friction Measurement and Modeling
4.1 Friction Modeling of Rotary Motion Control System
Accurate measurement and modeling of friction will make the system analysis easier and ultimately enable the friction compensation to improve the control system performance. Friction force versus angular velocity has been measured by varying input voltage to the motor control. The results are shown in Fig. 8(a): xaxis for angular velocity in radians per second and yaxis for input voltage that is equivalent to friction force. Fig. 8(b) displays a curvefitted friction model with critical values shown as u_{s}^{+} = 0.210 V, u_{c}^{+} = 0.124 V; u_{s}^{} = 0.190 V, u_{c}^{} = 0.104 V; v_{0}^{+} = 3.015 rad/s, v_{0}^{} = 2.530 rad/s and the slope that is equivalent to the viscous friction coefficient as 0.0411 V/(rad/s).
The viscous friction coefficient is obtained by measuring the slope of the dashdot line in Fig. 8(b), and included in the nominal plant model as B_{e} in Eq. (2). The solid line in Fig. 8(b), that represents the static friction (stiction) and Coulomb friction, is obtained by subtracting the dashdot line from the measured friction force data in Fig. 8(a). This nonlinear friction model is added into the nominal plant model in Eq. (2) as a plant subsystem for MATLAB simulation. And this nonlinear friction model is also implemented as a friction compensator as shown in Fig. 9(a).
In order to verify the effectiveness of a friction compensator, actual experiments were conducted on a Quanser rotary motion control system utilizing Quarc realtime control implementation. As we see in Fig. 9(a) and (b), the configuration for simulation using MATLAB Simulink is almost identical to Quarc hardware/software development system except the extended plant subsystem replaces the actual motion control system.
4.2 Friction Modeling of Altino System
A friction model for Altino testbed is similarly obtained by the method described in Section 4.1. The measurement results are shown in Fig. 10(a). Fig. 10(b) displays a curvefitted friction model with critical values shown as u_{s}^{+} = 200, u_{c}^{+} = 150.4; u_{s}^{} = 200, u_{c}^{} = 119.6, all in control input units; and v_{0}^{+} = 13.8 cm/s, v_{0}^{} = 10.9 cm/s. The slope of the dashdot line equivalent to the viscous friction coefficient as 10.93 units/(cm/s).
The nonlinear friction component is modeled and added to the nominal PID controller as a friction compensator in the velocity feedback loop similar to those shown in Fig. 9(a) and (b). The effectiveness of the friction compensator for Altino testbed is demonstrated in Section 5.2.
5. Results of Friction Compensation
5.1 Performance Enhancement of Rotary Motion Control System
Simulation and experimental results based on the setup shown in Fig. 9(a) and (b) are presented in augmented friction model for MATLAB Simulink and the friction compensator. For this performance comparison, we used the identical PID controller with K_{p} = 7.8, K_{i} = 1.5 and K_{d} = 0.275.
As we see in the figure, with friction compensation, the steadystate error of the experimental system has been significantly reduced from 2.78% (Fig. 6) to 1.11% (Fig. 11). On the other hand, the simulation result displays zero steadystate error as we anticipated with nearperfect cancellation of nonlinear friction with the friction compensator. This result implies that with reasonably accurate friction modeling and compensation, we can build a realistic simulation package that can precisely predict the performance of a physical motion control system.
5.2 Performance Enhancement of Altino System
With added friction compensation, we have observed that the performance of position control of Altino testbed has been improved as shown in Fig. 12. The target distance is 5 cm from the barrier and we have compared the position errors from the target position. The rise time and settling time have been reduced to less than 1 sec and the steadystate error has been almost vanished. With this friction compensation scheme, we can develop more reliable position control and navigation algorithms for autonomous vehicle operations.
6. Summary and Conclusion
In this study, performance enhancement of motion control through friction compensation has been proposed. The effectiveness of the proposed scheme has been proven through experiments.

A friction model of motion control systems has been achieved by relatively simple experiments. Nonlinear friction components have been used as unmodeled plant model and added into a velocity feedback loop as a friction compensator.

Adding a nonlinear friction model into a nominal plant model is especially effective for realistic motion control simulations. Since simulation results match very well with experimental results, a control system designer can save time, efforts and cost in development.

Even for a lowcost, lowperformance and uncertain system like Altino testbed, the friction compensation scheme has effectively improved the positioning performance. Oscillations like a limit cycle have been successfully removed. Hence more precise and faster position control required for autonomous navigation can be achievable.