A Speed Tracking Method for Autonomous Driving via ADRC with Extended State Observer

This paper proposes the extended state observer (ESO)-based active disturbance rejection control (ADRC) for the speed tracking of an autonomous vehicle. Uncertainties, both in the vehicle plant and in the sensors, such as nonlinear uncertainties due to the powertrain dynamics, variations in rolling resistance and air resistance, are all estimated in real-time by an extended state observer (ESO). Furthermore, a simple vehicle longitudinal dynamics model, including a mean value engine model (MVEM), is implemented to obtain the parameters in ADRC and design a feedforward controller to enhance the controller’s performance. The proposed controller is validated through CarSim®/Simulink® simulations and road tests. The simulation validates the adaptiveness of the proposed controller against the well-tuned proportional integral derivative (PID) controller, and the speed tracking error of the proposed controller is within 1.26% in simulation. Simulation results also show that fuel consumption can be improved by 3.6% by changing the accelerator pedal depth and positive rate. Finally, the road tests are completed under four kinds of road conditions, and the maximum tracking error is smaller than 0.5 km/h.


Introduction
Autonomous vehicle technology has received extensive attention because it has the potential to reduce the number of road fatalities, reduce fuel consumption, and improve transportation efficiency. Significant progress has been made in the fields of sensing, computer hardware, and software technology over the past few decades. Worldwide competitions have been held, such as the Defense Advanced Research Projects Agency (DARPA) Grand Challenge [1] and Urban Challenge [2]. The Intelligent Vehicle Future Challenge (IVFC) [3] and the World Intelligent Driving Challenge (WIDC) [4] have driven academic research and the development of associated technologies in China. This paper describes the design of the longitudinal controller for Tianjin University's autonomous vehicle which competed in the World Intelligent Driving Challenge competition.
The architecture of an autonomous driving system typically consists of three layers: The environmental perception layer, the decision-making and planning layer, and the driving control layer [5]. The driving control layer is responsible for tracking the desired trajectory, which is obtained from the decision-making and planning layer. Driving control is a complex task that must guarantee vehicle stability and ensure certain levels of performance. The lateral and longitudinal controllers are vital components of the driving control layer. The lateral controller adjusts the steering wheel of the vehicle to track the target trajectory. The longitudinal controller delivers the control commands to the accelerator pedal and brake pedal of the vehicle so that the trajectory matches the longitudinal speed profile that has been created. The performance of the longitudinal controller essentially determines This rest of this paper is organized as follows. Section 2 describes the longitudinal vehicle dynamics and the internal powertrain model of the vehicle. Section 3 describes the longitudinal controller architecture and the control relationships exploited in this study. Sections 4 and 5 present the results of the CarSim-Simulink simulation followed by an analysis of the results and a discussion of their practical utility. The conclusions of this study are presented in Section 6.

Control-Oriented Vehicle Longitudinal Model
This section introduces the dynamics of an autonomous driving vehicle with a spark ignition (SI) engine. The working principle of SI engines is that the combustion of air-fuel mixtures in the chambers produces the engine torque. The SI engine throttle controls the air mass flow into the intake manifold. Thus, the fuel mass flow is controlled by the ideal air-fuel ratio. The driving torque produced by SI engine is delivered to vehicle wheels through the transmission system, and the vehicle wheel torque drives the vehicle forward. Hence, the major blocks of a vehicle are shown in Figure 1. In the following, the vehicle model is briefly introduced, and thus is used in the design in ADRC. The main variables used in the model are given in Table 1.

Mean Value Engine Model
The control input of the longitudinal motion of an autonomous driving vehicle is the accelerator pedal depth, which is converted to the engine throttle angle. Thus, we need to find the model between engine torque and throttle. In general, the modeling of the engine system is intricate because of its Appl. Sci. 2019, 9, 3339 4 of 21 nonlinear and time-varying characteristics. A physical-based model called the mean value engine model (MVEM), which predicts the mean values of major external engine variables like crankshaft speed and manifold pressure dynamically in time, has been widely used [26,27]. This model is relatively simple but can describe major time-varying characteristics. Figure 2. shows the MVEM modules.

Mean Value Engine Model
The control input of the longitudinal motion of an autonomous driving vehicle is the accelerator pedal depth, which is converted to the engine throttle angle. Thus, we need to find the model between engine torque and throttle. In general, the modeling of the engine system is intricate because of its nonlinear and time-varying characteristics. A physical-based model called the mean value engine model (MVEM), which predicts the mean values of major external engine variables like crankshaft speed and manifold pressure dynamically in time, has been widely used [26,27]. This model is relatively simple but can describe major time-varying characteristics. Figure 2. shows the MVEM modules. For the modeling purpose, the intake manifold is regarded as an adiabatic system. Thus, the ideal gas law can be used to describe the pressure variation [26]: where m V is the manifold volume, κ is the ratio of specific heats (κ = 1.4 for air), and R is the gas constant.
The air mass flow is a function of the throttle angle [26]: where M A X is a constant dependent on the size of the throttle body and where 0 θ is the minimum throttle angle of the engine and P R I is the pressure ratio influence function which describes the choked/sonic flow that occurs through the throttle valve. The air mass flow out of the manifold can be governed by: where d V is the engine displacement and vol η is the charging efficiency. Hence, the fuel mass flow that desired injected into the cylinder can be calculated through the air-fuel equivalence ratio: 14.7 th L = is the stoichiometric air-fuel mass ratio for SI engine. Then, the combustion of airfuel mixtures produced engine indicated torque: For the modeling purpose, the intake manifold is regarded as an adiabatic system. Thus, the ideal gas law can be used to describe the pressure variation [26]: where V m is the manifold volume, κ is the ratio of specific heats (κ = 1.4 for air), and R is the gas constant. The air mass flow is a function of the throttle angle [26]: where MAX is a constant dependent on the size of the throttle body and TC(θ thr ) is the throttle characteristic which is the projected area the flow sees as a function of the throttle angle: where θ 0 is the minimum throttle angle of the engine and PRI is the pressure ratio influence function which describes the choked/sonic flow that occurs through the throttle valve. The air mass flow out of the manifold can be governed by: .
where V d is the engine displacement and η vol is the charging efficiency. Hence, the fuel mass flow that desired injected into the cylinder can be calculated through the air-fuel equivalence ratio: .
where L th = 14.7 is the stoichiometric air-fuel mass ratio for SI engine. Then, the combustion of air-fuel mixtures produced engine indicated torque: where H l is the fuel energy constant and η i is the thermal efficiency multiplier. To obtain the effective engine torque, we need to calculate engine friction torque. A simple model for the total friction torque is given by [29]: T e = T i − T f ric,e (8) where n R denotes the ratio between the number of strokes of the pistons to the number of rotations of the crankshaft (n R = 2 for a four-stroke engine). The coefficients c 1 c 2 c 3 can be identified as 9.7 × 10 4 900 18 , with the displacement volumes ranging from 845-2000 cm 3 . We neglect the engine pump loss and vehicle accessories consumption, which can be regarded as internal disturbances to be estimated using the ESO. Especially, the control input is accelerator pedal, the model above establishes the relationship between engine effective torque T e and throttle angle θ thr , we need a function to describe the accelerator pedal to engine throttle: where α 0 and α max denote the lower limit and upper limit of accelerator pedal depth, respectively. Combining Equations (1)-(9), the model between accelerator pedal depth and engine effective torque is established.

Internal vehicle powertrain model
As shown in Figure 1, the engine effective torque is delivered to vehicle wheels through the torque converter, transmission, and final drive. We neglect the dynamic process and non-linear characteristics of powertrain system components, and the model only concentrates on the torque delivering process: The definition of parameters [i g , i 0 , R w ] can be found in Table 1.

Vehicle Longitudinal Dynamics Model
The vehicle longitudinal model is deduced from Newton's second law of motion and the major forces acting on the vehicle. The major forces acting upon the car are the tractive force F d , air resistance F w , rolling resistance F r , and slope resistance F i . We have illustrated these forces in Figure 1. The change in vehicle speed of a vehicle with the mass as a function of the sum of these forces: Each force can be calculated by: where C d and C r denote the air resistance coefficient and roll resistance coefficient, respectively, and β is the slope of road.

Longitudinal Speed Tracking Controller Design
The simplification of vehicle longitudinal dynamics and powertrain system in terms of their strong non-linear characteristics produces the model uncertainty, and the changes of vehicle characteristics, for example the vehicle transmission efficiency, produce the vehicle state uncertainty; we call them internal disturbances. In addition, the various driving conditions and the noise of sensors produce the external disturbances. This study regards these uncertainties as the "total disturbances" during the autonomous driving process. Thus, we created an ADRC controller with the ESO, which can timely estimate the "total disturbance." The total disturbance is then treated as an additional vehicle state to be corrected for in the feedback process. The performance of the ESO is limited by the sampling rate, so a model-based feed-forward control is used to improve its performance. The feed-forward control is actually a gain-scheduled proportion control, as the proportion varies with the desired acceleration, preview time, etc. Therefore, feed-forward control is an effective improvement of ADRC in the transient process in the case of operating condition variations under limited sampling rate. Figure 3 shows the structure of the longitudinal controller.
the ESO, which can timely estimate the "total disturbance." The total disturbance is then treated as an additional vehicle state to be corrected for in the feedback process. The performance of the ESO is limited by the sampling rate, so a model-based feed-forward control is used to improve its performance. The feed-forward control is actually a gain-scheduled proportion control, as the proportion varies with the desired acceleration, preview time, etc. Therefore, feed-forward control is an effective improvement of ADRC in the transient process in the case of operating condition variations under limited sampling rate. Figure 3 shows the structure of the longitudinal controller.
The entire controller consists of an ADRC controller and a model-based feed forward controller (MFC). ADRC observes the total disturbances using the ESO, and it also estimates the vehicle speed and acceleration. The MFC calculates the desired vehicle acceleration based on a time-preview of target speed profile. In addition, a throttle-brake switching module is included in the controller to avoid frequent switching between the throttle and brake actuators and to ensure driving comfort.  The entire controller consists of an ADRC controller and a model-based feed forward controller (MFC). ADRC observes the total disturbances using the ESO, and it also estimates the vehicle speed and acceleration. The MFC calculates the desired vehicle acceleration based on a time-preview of target speed profile. In addition, a throttle-brake switching module is included in the controller to avoid frequent switching between the throttle and brake actuators and to ensure driving comfort.

ADRC Controller Design
Active disturbance rejection is a design concept intended to accommodate external disturbances and unknown internal dynamics in such a way that control can be exerted in the absence of a detailed mathematical model [30]. In ADRC, the vehicle dynamics are simplified as a second-order system, and all other dynamic processes that differ from those that affect the vehicle in practice (e.g., variations in rolling resistance, air resistance, and the gravitational force) are treated as a single total disturbance. The total disturbance is then treated as an additional vehicle state that is computed in real-time (by the ESO) and corrected for in the feedback process.
The vehicle longitudinal dynamic system is simplified to a second-order system: . .
where v denotes the vehicle speed, k 1 and k 2 are coefficients, k 2 is the unknown system disturbances, and θ thr is the control system input throttle angle. For a certain physical system, the parameter b can be estimated according to the known system information, and the estimated value of b is b 0 . Thus, we can get: where the term f = −k 1 .
v − k 2 v + w + (b − b 0 )θ thr represents the system total disturbances. Then, combining Equations (10) and (11), we can get: where F z = F i + F w + F r , and we the function g(·) represents the MVEM, which describes the relationship between engine throttle angle and engine indicated torque. Equation (15) can be rewritten as: where J e denotes the rotational inertia of engine and ω e is the angular velocity of engine crankshaft.
In the framework of ADRC [31], Equation (16) can be rewritten in the form of Equation (14): It can be seen that the value of b 0 is associated with the physical system information, and it is the reason we need to establish a simplified vehicle model. With a relatively precise estimated value of b 0 , the calculation burden of the ESO can be reduced [32]. The system disturbance term f is extended as a new system state variable to construct the extended state observer (ESO). The new system state vector is defined as: and Equation (17) is rewritten in the form of state equation: The state space Equation (19) is: where y denotes the system output, and the coefficient matrix According to the state observer theory, the ESO can be designed as: where z 1 z 2 z 3 denotes the estimated value of system state variable x 1 x 2 x 3 . The state space equation of the ESO is: where L = [β 1 β 2 β 3 ] T is the observer gain vector. To simplify parameter tuning process, Gao et al. [30] used the method of pole configuration that set L = [3ω 0 3ω 0 2 ω 0 3 ] T . ω 0 is called the observer bandwidth. The idea of ADRC is to have f estimated and canceled, thus leaving an integral plant that can be easily controlled. The vehicle longitudinal system is simplified to a simplest second order system, and an ESO will estimate the real value of total disturbance f . Thus, the system is rewritten as: We can obtain the estimated value of f by the ESO, and we can neglect the error between them: . .
wheref is the estimated value of f . The vehicle longitudinal system is simplified to a series integral system, and it can be controlled by a proportional-differential (PD) controller.
wherev andˆ. v are the estimated value of vehicle speed and vehicle acceleration, respectively, and v aim is the target vehicle speed. The control law of ADRC is: where θ f b is the throttle angle calculated by ADRC and k 1 and k 2 are parameters of ADRC. We set and ω c is called the controller bandwidth.

Model-Based Feedforward Controller Design
This study developed a model-based feedforward controller (MFC) with acceleration preview to reduce the system response time. The MFC has three components: A velocity compensator, an acceleration preview module, and an inverse dynamic model-based controller.
When an autonomous vehicle is traveling along a hilly road, the inclines cause additional gravity acceleration or resistance a β . We created a slope velocity compensation module to improve the response of the controller when the vehicle was traveling uphill and to avoid frequent braking when traveling downhill: where T is the control cycle and ∆v β is the compensatory velocity based on the angle of inclination of the road. The compensatory velocity is positive when the vehicle is traveling downhill and negative when it is traveling uphill. The new vehicle set speed is: The acceleration preview module transforms the set speed to the desired acceleration, which is then used to calculate the desired drive torque in the inverse dynamic model-based controller. A preview time t p to obtain the desired acceleration is determined, and the preview speed v p is the speed at time t p after the current moment. Thus, the desired vehicle acceleration is: When desired vehicle acceleration a des is positive, the inverse dynamic model-based controller will calculate the desired drive torque, and the desired wheel drive torque T w is obtained: where J w is the rotational inertia of vehicle wheel and ω h is the wheel angular velocity. The feedforward engine torque T i, f f is: Thus, the throttle angle from the MFC is: When the desired vehicle acceleration a des is negative, the braking system produces brake torque to decelerate the vehicle: The parameters we need to calculate are obtained from the vehicle configuration, and the wheel speed is obtained from a sensor in the vehicle. The transmission gear is obtained from the control area network (CAN) bus in the vehicle in real-time, and vehicle mass and tire radius are obtained from the vehicle configuration parameters. The inaccuracies in the wheel and engine inertia are computed in the ESO as internal disturbances, and the inaccuracies in the MVEM (e.g., coefficient empirical value and model simplification) are also included as internal disturbances.

Simulation Case Design
The CarSim/Simulink co-simulation platform was used to verify the controller. A passenger vehicle model was randomly selected from the CarSim vehicle database for each simulation. The basic vehicle configuration parameters are shown in Table 2: The incline of the road, which was obtained from a high-definition map, was known in the simulation. Wind speed was set to a randomly varying value between −1 and 1 m/s. The following simulations were designed to verify the ability of the controller to compensate for disturbances and to observe the performance of the controller: (1).
Step speed profile A step speed reference profile was used to compare the control performance between the controllers with and without the MFC.
(2). The worldwide harmonized light vehicles test procedure (WLTP) driving cycle and changed vehicle mass on level road (Case 1) A vehicle having the configuration in Table 2 traveled on a level road according to a WLTP [33]. The results were compared by using a well-tuned PID controller, a single ADRC controller, and the MFC-ADRC controller.
(3). Increased vehicle mass on an uphill road (Case 2) The control parameters were unchanged for this simulation, but the vehicle mass was increased to 2100 kg, and the road had a 6 • increasing incline. We compared the results of the three controllers used in Case 2.
(4). Changed vehicle driving characteristics This case assessed the controller's performance under the changed driving style by limiting the accelerator pedal depth and accelerator pedal positive changing rate. The influence of changed driving style on speed profile and fuel consumption was analyzed.

Simulation Results
The control performance comparison between the controllers with and without the MFC is demonstrated in Figure 4. It could be noticed that overshoot was reduced with the MFC, resulting in shortened response time.
Appl. Sci. 2019, 9, x FOR PEER REVIEW 11 of 22 (4). Changed vehicle driving characteristics This case assessed the controller's performance under the changed driving style by limiting the accelerator pedal depth and accelerator pedal positive changing rate. The influence of changed driving style on speed profile and fuel consumption was analyzed.  The control performance comparison between the controllers with and without the MFC is demonstrated in Figure 4. It could be noticed that overshoot was reduced with the MFC, resulting in shortened response time.

Simulation Results
Then, the simulation was conducted using a class D sedan with a six-speed automatic transmission randomly selected in CarSim. The reference speed range was from 0 to 57 km/h with frequent acceleration and deceleration. We used this profile to assess the performance of the controller in tracking vehicle speed.
The results of Cases 2 and 3 are shown in Figures 5 and 6. Results from the PID controller, the ADRC controller, and the MFC-ADRC controller were compared. When traveling on the level road (Case 2), all three controllers were well-tuned and performed well. A relatively large error was found at the point where the speed abruptly changed when using the PID controller. The average tracking error of the PID controller was 3.31%, and the average tracking error of the ADRC controller was 1.58%. The MFC-ADRC controller showed the best performance with an average tracking error of 0.86%. The statistical indicators of controller performance are shown in Table 3.
Case 3, in which the control parameters were unchanged, had a vehicle mass of 2100 kg, and the road was inclined upward at 6°. The purpose of this case was to test the adaptability of the three controllers when the vehicle properties and the road conditions have changed. The PID controller performed badly ( Figure 6). The ability of the MFC-ADRC controller to detect and correct disturbances makes the vehicle responsive to changes in driving conditions. The statistical indicators for Case 3 are shown in Table 4. Then, the simulation was conducted using a class D sedan with a six-speed automatic transmission randomly selected in CarSim. The reference speed range was from 0 to 57 km/h with frequent acceleration and deceleration. We used this profile to assess the performance of the controller in tracking vehicle speed.
The results of Cases 2 and 3 are shown in Figures 5 and 6. Results from the PID controller, the ADRC controller, and the MFC-ADRC controller were compared. When traveling on the level road (Case 2), all three controllers were well-tuned and performed well. A relatively large error was found at the point where the speed abruptly changed when using the PID controller. The average tracking error of the PID controller was 3.31%, and the average tracking error of the ADRC controller was 1.58%. The MFC-ADRC controller showed the best performance with an average tracking error of 0.86%. The statistical indicators of controller performance are shown in Table 3.
Case 3, in which the control parameters were unchanged, had a vehicle mass of 2100 kg, and the road was inclined upward at 6 • . The purpose of this case was to test the adaptability of the three controllers when the vehicle properties and the road conditions have changed. The PID controller performed badly ( Figure 6). The ability of the MFC-ADRC controller to detect and correct disturbances makes the vehicle responsive to changes in driving conditions. The statistical indicators for Case 3 are shown in Table 4.           Figure 7 clearly shows the differences in the performance of the three controllers between Cases 2 and 3. The MFC-ADRC was highly adaptable when the vehicle mass and the road conditions were changed. We analyzed the control output in Case 3 to find the reasons for the good performance of the MFC-ADRC. The control output of the MFC was a major part of the total control output, and the MFC performed better on transient signals by reducing response time (Figure 8). ADRC observed the disturbances (shown in Table 5) and quickly responded to them by correcting for them through the feedback algorithm. The combination MFC-ADRC controller was more adaptable than the others and therefore could better respond to both internal and external disturbances.  Figure 7 clearly shows the differences in the performance of the three controllers between Cases 2 and 3. The MFC-ADRC was highly adaptable when the vehicle mass and the road conditions were changed. We analyzed the control output in Case 3 to find the reasons for the good performance of the MFC-ADRC. The control output of the MFC was a major part of the total control output, and the MFC performed better on transient signals by reducing response time (Figure 8). ADRC observed the disturbances (shown in Table 5) and quickly responded to them by correcting for them through the feedback algorithm. The combination MFC-ADRC controller was more adaptable than the others and therefore could better respond to both internal and external disturbances.  Figure 7 clearly shows the differences in the performance of the three controllers between Cases 2 and 3. The MFC-ADRC was highly adaptable when the vehicle mass and the road conditions were changed. We analyzed the control output in Case 3 to find the reasons for the good performance of the MFC-ADRC. The control output of the MFC was a major part of the total control output, and the MFC performed better on transient signals by reducing response time (Figure 8). ADRC observed the disturbances (shown in Table 5) and quickly responded to them by correcting for them through the feedback algorithm. The combination MFC-ADRC controller was more adaptable than the others and therefore could better respond to both internal and external disturbances.  Case 4, in which the accelerator pedal depth and the accelerator pedal positive rate were limited, had a vehicle mass of 1800 kg and a level road. This case aimed to find the change in fuel consumption with the driving style changed. As shown in Figure 9, the accelerator pedal depth changed clearly; however, the speed profile remained nearly unchanged. The fuel consumption was reduced from 0.942 to 0.908 kg in a complete WLTP, and the reason is that changes in accelerator pedal directly lead to the engine working point to significantly change, although the final speed profile was essentially the same. The high engine speed working points was reduced, and a reduction in engine operating point fluctuations could reduce the additional fuel consumption caused by engine transient behavior when the working points became more gathered ( Figure 10).   Case 4, in which the accelerator pedal depth and the accelerator pedal positive rate were limited, had a vehicle mass of 1800 kg and a level road. This case aimed to find the change in fuel consumption with the driving style changed. As shown in Figure 9, the accelerator pedal depth changed clearly; however, the speed profile remained nearly unchanged. The fuel consumption was reduced from 0.942 to 0.908 kg in a complete WLTP, and the reason is that changes in accelerator pedal directly lead to the engine working point to significantly change, although the final speed profile was essentially the same. The high engine speed working points was reduced, and a reduction in engine operating point fluctuations could reduce the additional fuel consumption caused by engine transient behavior when the working points became more gathered (Figure 10).

Autonomous Driving Vehicle Configuration and Road Experiments Results
Road tests were conducted on the Tianjin University campus to observe the performance of the MFC-ADRC controller. Figure 11 shows the software architecture of the experimental autonomous vehicle. Sensors used for perception included GPS/IMU, lidar, radar, cameras, and other vehicle sensors. The perception module created a description of the traffic environment for subsequent use by other modules. Other information concerning the traffic environment was provided by a highdefinition map (HD-Map) which contained highly detailed topological information of the roadway, such as the locations of lane markers, road edges, traffic lights, and traffic signs to centimeter-level accuracy. Other information, including lane direction, speed limitations, traffic rules governing lane occupancy, and topological information about all the roads and lanes, was stored as formatted data in the HD-Map database. Road incline information needed in by the MFC-ADRC could be easily obtained from the HD-Map.  Table 6 gives an example of data from the HD-Map; Figure 12 is a representation of the centerline data layer of the HD-Map of Tianjin University. A reference trajectory was generated from the HD-Map data, which were transferred to the decision and planning module. The target trajectory was then calculated by the planning module, and the vehicle control module operated the actuators (brake, throttle, and steering wheel) to follow the trajectory.

Autonomous Driving Vehicle Configuration and Road Experiments Results
Road tests were conducted on the Tianjin University campus to observe the performance of the MFC-ADRC controller. Figure 11 shows

Autonomous Driving Vehicle Configuration and Road Experiments Results
Road tests were conducted on the Tianjin University campus to observe the performance of the MFC-ADRC controller. Figure 11 shows the software architecture of the experimental autonomous vehicle. Sensors used for perception included GPS/IMU, lidar, radar, cameras, and other vehicle sensors. The perception module created a description of the traffic environment for subsequent use by other modules. Other information concerning the traffic environment was provided by a highdefinition map (HD-Map) which contained highly detailed topological information of the roadway, such as the locations of lane markers, road edges, traffic lights, and traffic signs to centimeter-level accuracy. Other information, including lane direction, speed limitations, traffic rules governing lane occupancy, and topological information about all the roads and lanes, was stored as formatted data in the HD-Map database. Road incline information needed in by the MFC-ADRC could be easily obtained from the HD-Map.  Table 6 gives an example of data from the HD-Map; Figure 12 is a representation of the centerline data layer of the HD-Map of Tianjin University. A reference trajectory was generated from the HD-Map data, which were transferred to the decision and planning module. The target trajectory was then calculated by the planning module, and the vehicle control module operated the actuators (brake, throttle, and steering wheel) to follow the trajectory.  Table 6 gives an example of data from the HD-Map; Figure 12 is a representation of the centerline data layer of the HD-Map of Tianjin University. A reference trajectory was generated from the HD-Map data, which were transferred to the decision and planning module. The target trajectory was then calculated by the planning module, and the vehicle control module operated the actuators (brake, throttle, and steering wheel) to follow the trajectory.   The experimental vehicle was a hybrid SUV which could operate in engine-drive-only mode and which was equipped with the sensors identified at the start of this section. The vehicle could be controlled through wired actuators. The control commands from the vehicle controller were delivered to the wired actuators using the CAN bus. The control software for this autonomous vehicle was implemented on an embedded NVIDIA ® /XAVIER ™ GPU platform. A human driver could quickly take over control of all the actuators through a driving mode switch button should safety concerns have demanded it. Figure 13 shows the vehicle hardware setup and the communication paths between modules. In the interests of safety, the road tests for the longitudinal controller we developed were carried out on the autonomous driving test field at Tianjin University. Figure 14 gives an overhead view of the test route. There were three speed bumps, a straight-line road, a long curving road, and a roundabout on the test route. Various road conditions were used during the assessment of the longitudinal control algorithm. The experimental vehicle was a hybrid SUV which could operate in engine-drive-only mode and which was equipped with the sensors identified at the start of this section. The vehicle could be controlled through wired actuators. The control commands from the vehicle controller were delivered to the wired actuators using the CAN bus. The control software for this autonomous vehicle was implemented on an embedded NVIDIA ® /XAVIER ™ GPU platform. A human driver could quickly take over control of all the actuators through a driving mode switch button should safety concerns have demanded it. Figure 13 shows the vehicle hardware setup and the communication paths between modules.
Appl. Sci. 2019, 9, x FOR PEER REVIEW 16 of 22  The experimental vehicle was a hybrid SUV which could operate in engine-drive-only mode and which was equipped with the sensors identified at the start of this section. The vehicle could be controlled through wired actuators. The control commands from the vehicle controller were delivered to the wired actuators using the CAN bus. The control software for this autonomous vehicle was implemented on an embedded NVIDIA ® /XAVIER ™ GPU platform. A human driver could quickly take over control of all the actuators through a driving mode switch button should safety concerns have demanded it. Figure 13 shows the vehicle hardware setup and the communication paths between modules. In the interests of safety, the road tests for the longitudinal controller we developed were carried out on the autonomous driving test field at Tianjin University. Figure 14 gives an overhead view of the test route. There were three speed bumps, a straight-line road, a long curving road, and a roundabout on the test route. Various road conditions were used during the assessment of the longitudinal control algorithm. In the interests of safety, the road tests for the longitudinal controller we developed were carried out on the autonomous driving test field at Tianjin University. Figure 14 gives an overhead view of the test route. There were three speed bumps, a straight-line road, a long curving road, and a roundabout on the test route. Various road conditions were used during the assessment of the longitudinal control algorithm. The autonomous driving vehicle had three driving modes: Electric-only, engine-only, and hybrid. We used the engine-only mode to evaluate the performance of the proposed controller because of the nonlinear dynamics of the engine. The results of the experiments are as follows. The target vehicle speed was set to 15 km/h. A PID controller and the MFC-ADRC controller were both used on a straight road. Figure 15 shows the results of the experiment. It took 10.5 s for the MFC-ADRC controller to reach the set speed and remain steady. However, the PID controller took about 16 s to reach the set speed and oscillated widely about the set speed while driving. The MFC-ADRC controller overshot the set speed by 1.78 km/h and then took 4 s to reach a steady speed. The vehicle speed fluctuated between 14 and 16 km/h under the PID controller because the PID controller failed to overcome the system delay and the effects of nonlinear disturbances on the vehicle, especially those generated in the powertrain system. Table 7 shows the statistical indicators for the stable data segment of the vehicle speed.  The autonomous driving vehicle had three driving modes: Electric-only, engine-only, and hybrid. We used the engine-only mode to evaluate the performance of the proposed controller because of the nonlinear dynamics of the engine. The results of the experiments are as follows.

Straight Line Road with a Low Vehicle Speed
The target vehicle speed was set to 15 km/h. A PID controller and the MFC-ADRC controller were both used on a straight road. Figure 15 shows the results of the experiment. It took 10.5 s for the MFC-ADRC controller to reach the set speed and remain steady. However, the PID controller took about 16 s to reach the set speed and oscillated widely about the set speed while driving. The MFC-ADRC controller overshot the set speed by 1.78 km/h and then took 4 s to reach a steady speed. The vehicle speed fluctuated between 14 and 16 km/h under the PID controller because the PID controller failed to overcome the system delay and the effects of nonlinear disturbances on the vehicle, especially those generated in the powertrain system. Table 7 shows the statistical indicators for the stable data segment of the vehicle speed. The autonomous driving vehicle had three driving modes: Electric-only, engine-only, and hybrid. We used the engine-only mode to evaluate the performance of the proposed controller because of the nonlinear dynamics of the engine. The results of the experiments are as follows.

Roundabout with a Low Vehicle Speed
We maintained the control parameters of the straight road experiment to test whether the controller could adapt to the changed road conditions. The duration of the experiment was 120 s, and the vehicle entered the roundabout after 30 s. The maximum error was 0.6 km/h, and the mean absolute error was 0.17 km/h on the roundabout (Figure 16).

Roundabout with a Low Vehicle Speed
We maintained the control parameters of the straight road experiment to test whether the controller could adapt to the changed road conditions. The duration of the experiment was 120 s, and the vehicle entered the roundabout after 30 s. The maximum error was 0.6 km/h, and the mean absolute error was 0.17 km/h on the roundabout (Figure 16).   Vehicle speed was limited on the campus for safety considerations. This experiment used the entire road with a vehicle set speed of 30 km/h. There were three speed bumps (external disturbances) on the road that were used to assess the ability of the controller to correct for the effects of a disturbance.

Entire Test Road with a Higher Vehicle Speed
The first 120 s of driving data are shown in Figure 17. There was a distinct speed oscillation when the vehicle arrived at the speed bumps; the maximum tracking errors were 0.94, 1.12, and 1.38 km/h at each speed bump. The disturbance caused by speed bumps was observed by the controller and was also quickly corrected.

Entire Test Road with a Higher Vehicle Speed
Vehicle speed was limited on the campus for safety considerations. This experiment used the entire road with a vehicle set speed of 30 km/h. There were three speed bumps (external disturbances) on the road that were used to assess the ability of the controller to correct for the effects of a disturbance.
The first 120 s of driving data are shown in Figure 17. There was a distinct speed oscillation when the vehicle arrived at the speed bumps; the maximum tracking errors were 0.94, 1.12, and 1.38 km/h at each speed bump. The disturbance caused by speed bumps was observed by the controller and was also quickly corrected.

Roundabout with a Low Vehicle Speed
We maintained the control parameters of the straight road experiment to test whether the controller could adapt to the changed road conditions. The duration of the experiment was 120 s, and the vehicle entered the roundabout after 30 s. The maximum error was 0.6 km/h, and the mean absolute error was 0.17 km/h on the roundabout ( Figure 16).  Vehicle speed was limited on the campus for safety considerations. This experiment used the entire road with a vehicle set speed of 30 km/h. There were three speed bumps (external disturbances) on the road that were used to assess the ability of the controller to correct for the effects of a

Stepped Speed Test
This experiment used a stepped set speed profile to assess the continuous acceleration and braking ability of the controller. The set speeds were 15, 25, 18, and 10 km/h. The vehicle traveled for 80 s at each speed. Figure 18 shows the speed tracking. The sample points with a tracking error within ±0.5 km/h accounted for 98.02% of the total sample points, and the points with an absolute value of error >0.6 km/h appeared at the moments the speed step changed. The MFC-ADRC controller used an ESO to obtain observed values of state variables and disturbances, and Figure 19 shows the observation results. This ability to use observations of disturbances and state variables is the key to actively correcting for disturbances under different uncertainties. This experiment used a stepped set speed profile to assess the continuous acceleration and braking ability of the controller. The set speeds were 15, 25, 18, and 10 km/h. The vehicle traveled for 80 s at each speed. Figure 18 shows the speed tracking. The sample points with a tracking error within ±0.5 km/h accounted for 98.02% of the total sample points, and the points with an absolute value of error >0.6 km/h appeared at the moments the speed step changed. The MFC-ADRC controller used an ESO to obtain observed values of state variables and disturbances, and Figure 19 shows the observation results. This ability to use observations of disturbances and state variables is the key to actively correcting for disturbances under different uncertainties.   This experiment used a stepped set speed profile to assess the continuous acceleration and braking ability of the controller. The set speeds were 15, 25, 18, and 10 km/h. The vehicle traveled for 80 s at each speed. Figure 18 shows the speed tracking. The sample points with a tracking error within ±0.5 km/h accounted for 98.02% of the total sample points, and the points with an absolute value of error >0.6 km/h appeared at the moments the speed step changed. The MFC-ADRC controller used an ESO to obtain observed values of state variables and disturbances, and Figure 19 shows the observation results. This ability to use observations of disturbances and state variables is the key to actively correcting for disturbances under different uncertainties.

Conclusions
This paper proposes an extended state observer (ESO)-based active disturbance rejection control (ADRC) for the speed tracking of an autonomous vehicle. The ADRC controller provides an autonomous vehicle with the ability to compensate for unknown internal and external disturbances. Internal disturbances are due to the simplification of nonlinear features of vehicle components while modeling, and external disturbances come from the changing environment and road conditions, such as wind speed and the road incline. The extended state observer ESO is used to estimate the total disturbances, which are corrected for by a feedback loop algorithm. A simple vehicle longitudinal dynamics model including a mean value engine model (MVEM) is implemented to obtain the parameters in ADRC and design a feedforward controller (MFC) to enhance the controller's performance. An actuator switching module is included in the control architecture to ensure controller stability and to avoid frequent switching between actuators.
The ADRC-MFC controller using CarSim vehicle model simulations was validated, as was the controller using on-road experiments. The results of the simulations using a WLTP speed profile showed the effectiveness and the adaptiveness of the controller. The simulation results show that the controller adapts to various conditions with a mean absolute percentage error of 1.26 and is able to improve the fuel consumption by 3.6% through changing the accelerator pedal depth and positive rate. The Tianjin University autonomous vehicle, with data from the HD-Map, was used to road-test the controller on the campus autonomous driving test field. Our ADRC-MFC controller ensures steady speed tracking at low and moderate speeds under different road conditions, and the sample points with a tracking error within ±0.5 km/h account for 98.02% of the total sample points.
With the proposed controller, the speed of an autonomous vehicle can be controlled well without an accurate model. Moreover, the parameters of ADRC controller can be estimated according to the vehicle model, which creates a lesser workload of calibration. Future researchers can develop a self-learning algorithm that makes the model more accurate based on this control frame.
Author Contributions: All the Authors contributed significantly to this current work. S.X. conceptualized the idea. S.X. and G.Z. implemented the methodology. S.X. wrote the paper. H.X. and K.S. supervised the work, revised the paper and helped in the acquisition of the funds.