Post

Frequency Domain Analysis of MIMO System Part 4. Stanley Controller Design And Analysis

In this post, we demonstrate a basic design process of Lateral Stanley Controller with time domain and frequency domain specifications.

Plant Model

The front axle based error state vehicle lateral dynamic model is used to run simulation and analyze tracking performance and robustness of stanley controller.

\[\begin{aligned} \underbrace{\begin{bmatrix} \dot{e}_1 \\\ddot{e}_1\\\dot{e}_2\\\ddot{e}_2\end{bmatrix}}_{\dot{x}_p} &= \underbrace{ \begin{bmatrix} 0 & 1 & 0 & 0 \\ 0 & -\frac{2C_{\alpha f} + 2C_{\alpha r}}{mV_x} & \frac{2C_{\alpha f} + 2C_{\alpha r}}{m}& \frac{2C_{\alpha r}(l_f + l_r)}{mV_x} \\ 0 & 0 & 0 & 1 \\ 0 & -\frac{2C_{\alpha f}l_f - 2C_{\alpha r} l_r}{I_zV_x}& \frac{2C_{\alpha f}l_f - 2C_{\alpha r}l_r}{I_z}& -\frac{2C_{\alpha r}l_r(l_f+l_r)}{I_zV_x}\end{bmatrix}}_{A_{p}} \underbrace{\begin{bmatrix} e_1\\\dot{e}_1\\e_2\\\dot{e}_2\end{bmatrix}}_{x_p}+ \underbrace{ \begin{bmatrix}0 & 0 \\ \frac{2C_{\alpha f}}{m} & \frac{2C_{\alpha r}(l_f+l_r)}{mV_x}-V_x\\ 0 & 0 \\ \frac{2C_{\alpha f} l_f}{I_z} & -\frac{2C_{\alpha r}l_r(l_f+l_r)}{I_zV_x}\end{bmatrix}}_{B_p} \underbrace{\begin{bmatrix} \delta \\ \dot{\psi_{des}}\end{bmatrix}}_{u}\\\\ \underbrace{\begin{bmatrix} e_1\\e_2\\\dot{e}_2\end{bmatrix}}_{y} &= \underbrace{ \begin{bmatrix}1&0&0&0\\0&0&1&0\\0&0&0&1\end{bmatrix}}_{C_p} \underbrace{\begin{bmatrix} e_1\\\dot{e}_1\\e_2\\\dot{e}_2\end{bmatrix}}_{x_p}+\underbrace{ \begin{bmatrix}0&0\\0&0\\0&0\end{bmatrix}}_{D_p} \underbrace{\begin{bmatrix} \delta \\ \dot{\psi_{des}}\end{bmatrix}}_{u} \end{aligned}\]

next, introduce a second-order actuator for the front wheel steering angle

\[\begin{aligned} \delta &= \frac {w^2_n}{s^2 + 2 \eta w_n + w^2_n } \delta_c \\ \ddot{\delta} &= -2\eta w_n\dot{\delta} + w^2_n(\delta_c - \delta) \end{aligned}\]

The plant model with actuator dynamics could be express as follow

\[\begin{aligned} \underbrace{\begin{bmatrix} \dot{e}_1\\\ddot{e}_1\\\dot{e}_2\\\ddot{e}_2\\ \dot{\delta} \\ \ddot{\delta}\end{bmatrix}}_{\dot{x}_p} &= \underbrace{ \begin{bmatrix} 0 & 1 & 0 & 0 & 0 & 0 \\ 0 & -\frac{2C_{\alpha f} + 2C_{\alpha r}}{mV_x} & \frac{2C_{\alpha f} + 2C_{\alpha r}}{m}& \frac{2C_{\alpha r}(l_f + l_r)}{mV_x} & \frac{2C_{\alpha f}}{m} & 0\\ 0 & 0 & 0 & 1 & 0 & 0\\ 0 & -\frac{2C_{\alpha f}l_f - 2C_{\alpha r} l_r}{I_zV_x}& \frac{2C_{\alpha f}l_f - 2C_{\alpha r}l_r}{I_z}& -\frac{2C_{\alpha r}l_r(l_f+l_r)}{I_zV_x} & \frac{2C_{\alpha f} l_f}{I_z} &0\\ 0&0&0&0&0&1\\ 0&0&0&0&-w^2_n&-2\eta w_n\end{bmatrix}}_{A_{p}} \underbrace{\begin{bmatrix} e_1\\\dot{e}_1\\e_2\\\dot{e}_2\\\delta\\\dot{\delta}\end{bmatrix}}_{x_p} + \underbrace{ \begin{bmatrix}0 & 0 \\ 0 & \frac{2C_{\alpha r}(l_f+l_r)}{mV_x}-V_x\\ 0 & 0 \\ 0 & -\frac{2C_{\alpha r}l_r(l_f+l_r)}{I_zV_x} \\ 0 & 0 \\ w^2_n & 0\end{bmatrix}}_{B_p} \underbrace{\begin{bmatrix} \delta_c\\ \dot{\psi_{des}}\end{bmatrix}}_{u} \\\\ \underbrace{\begin{bmatrix} e_1\\e_2\\\dot{e}_2\end{bmatrix}}_{y} &= \underbrace{ \begin{bmatrix}1&0&0&0&0&0\\0&0&1&0&0&0\\0&0&0&1&0&0\end{bmatrix}}_{C_p} \underbrace{\begin{bmatrix} e_1\\\dot{e}_1\\e_2\\\dot{e}_2\\\delta\\\dot{\delta}\end{bmatrix}}_{x_p}+\underbrace{ \begin{bmatrix}0&0\\0&0\\0&0\end{bmatrix}}_{D_p} \underbrace{\begin{bmatrix} \delta_c \\ \dot{\psi_{des}}\end{bmatrix}}_{u} \end{aligned}\]

Stanley Controller Model

The control law of stanley controller is:

\[\begin{aligned}\delta &= k_{openloop} \cdot arctan( \kappa L) - arctan(k_{e_1}\cdot \frac{e_1}{V_x}) - k_{e_2}\cdot e_2-k_{\dot{e}_2}\cdot \dot{e}_2\\ & \approx k_{openloop} \cdot \kappa L - \frac{k_{e_1}}{V_x}\cdot e_1 - k_{e_2}\cdot e_2-k_{\dot{e}_2}\cdot \dot{e}_2\end{aligned}\]

The common state space representation of stanley controller could be expressed as

\[\begin{aligned} \underbrace{\begin{bmatrix} \dot x_{c_1} \\ \dot x_{c_2} \end{bmatrix}}_{\dot x_c} &= \underbrace{\begin{bmatrix} 0 & 0 \\ 0 & 0\end{bmatrix}}_{A_c} \underbrace{\begin{bmatrix} x_{c_1} \\ x_{c_2}\end{bmatrix}}_{x_c} + \underbrace{\begin{bmatrix} 0 & 0 & 0 \\ 0 & 0 & 0\end{bmatrix}}_{B_{c_1}} \underbrace{\begin{bmatrix} e_1\\e_2\\\dot{e}_2\end{bmatrix}}_{y} + \underbrace{\begin{bmatrix} 0 & 0 \\ 0 & 0 \end{bmatrix}}_{B_{c_2}} \underbrace{\begin{bmatrix} \kappa \\ \dot{\psi}_{des} \end{bmatrix}}_{r} \\\\ \underbrace{\begin{bmatrix} \delta \\ \dot{\psi_{des}}\end{bmatrix}}_{u} &= \underbrace{\begin{bmatrix} 0 & 0 \\ 0 & 0\end{bmatrix}}_{C_c} \underbrace{\begin{bmatrix} x_{c_1} \\ x_{c_2}\end{bmatrix}}_{x_c} + \underbrace{\begin{bmatrix} -\frac{k_{e_1}}{V_x} & -k_{e_2} & -k_{\dot{e}_2} \\ 0 & 0 & 0 \end{bmatrix}}_{D_{c_1}} \underbrace{\begin{bmatrix} e_1\\e_2\\\dot{e}_2\end{bmatrix}}_{y} + \underbrace{\begin{bmatrix} k_{ol}L & 0 \\ 0 & 1 \end{bmatrix}}_{D_{c_2}} \underbrace{\begin{bmatrix} \kappa \\ \dot{\psi}_{des} \end{bmatrix}}_{r} \end{aligned}\]

Stanley Controller Design Chart

Stability and Performance Specifications

Frequency Domain Specification
Small error at low frequency for command tracking and disturbance rejection
Robust to noise, high frequency un-modeled dynamics
Small resonant peak on Sensitivity and Complementary Sensitivity
Reasonable bandwidth of closed-loop system
Frequency Domain Specification 
Robust to actuator dynamics\(e^{-t_d s}\frac{w^2_n}{s^2 + 2 \eta w_n s + w^2_n} \text{ ,where } t_d = 0.1 ,\eta = 1.0, w_n = 6.0\)
Robust to extra time delays\(t_{\text{extra delay}} = 0.1s\)
Time Domain Specification 
Lateral Error(m)less than 0.2m
Heading Error(rad)less than 0.17 rad (10 deg)
Heading Rate Error (rad/s)less than 0.1 rad/s

Design Without Actuator Dynamics(Actuator Dynamics as Equivalent Uncertainty)

Design Heading Gain (with a fix lateral gain)
h1
h2
h3
Time domain performance varies with scale factor of heading gain
h4
h5
h7
h8
h6
Loop gain crossover frequency (LGCF) is a important design index in frequency domain analysis
h9
Stability Test: Since no overlap, according to Small Gain Theorem, closed-loop system with actuator is guaranteed to be stable.
Design Lateral Gain (with a fix heading gain)
l1
l2
l3
Time domain performance varies with scale factor of heading gain
l4
l5
l7
l8
l6
l9
Final Design
1
2
3
4
5
6

Design With Actuator Dynamics (Model Pure Delay as Equivalent Uncertainty)

Design Lateral Gain (with zero heading gain)
ld2_7
Relation between loop gain crossover frequency (LGCF) and scale factor of lateral gain (qq)
ld2_1
ld2_2
ld2_3
ld2_10
ld2_11
ld2_12
Reasonable time domain performance
ld2_4
ld2_5
ld2_8
Minimum $T_{max},S_{max}$ indicates minimum peak resonant
ld2_6
Maximum $I+L ,I+L^{-1}$ indicates maximum singular value stability margin
ld2_9
Design Heading Gain (with a fixed lateral gain designed above)
hd2_7
Relation between loop gain crossover frequency (LGCF) and scale factor of heading gain (qq)
hd2_1
hd2_2
hd2_3
hd2_10
hd2_11
hd2_12
Reasonable time domain performance
hd2_4
hd2_5
hd2_8
Select minimum $T_{max}$ as final design point
hd2_6
Select maximum $I+L^{-1}$ as final design point
hd2_9
current configuration is robust to actuator dynamics and extra delay
Final Design
fd2_1
fd2_2
fd2_3
fd2_4
fd2_5
fd2_6
Design Specifications  
Lateral Gain $k_{e_1}$Heading Gain $k_{e_2}$Open-loop Gain (a copy of heading gain) $k_{ol}$
1.53540.7220.722
Time Domain Performance  
 Max AbsSteady-state
lateral error (m)0.1930.156
heading error (rad)0.1050.105
heading rate error (rad/s)0.0940.0
 lateralheading
Rise Time (s)<10 - 90%>0.652.44
Settle Time(s)<2%>3.634.79
Percent Overshoot (%)23.70.0
Frequency Domain Performance 
Max $\lVert T \rVert $ (dB)5.63
Max $\lVert S \rVert $ (dB)7.03
$\underline {\sigma} (I + L)$0.41145
$\underline {\sigma} (I + L^{-1})$0.46631
 Gain Margin (dB), Phase Margin (deg)
Singular Value Stability Margin[-5.4542 4.6043], 26.9656
Robust to Actuator$e^{-t_d s}\frac{w^2_n}{s^2 + 2 \eta w_n s + w^2_n} \text{ ,where } t_d = 0.1 ,\eta = 1.0, w_n = 6.0$
Robust to Extra Delay (s)$t_{\text{extra delay}} = 0.1s$

Simulation Results

ScenarioU-turnU-turnRight-turnRight-turnLeft-turnLeft-turnStraightStraight
SpecificationOldNewOldNewOldNewOldNew
RMSE lateral error (m)0.32830.09310.27630.1050.08590.04130.01330.0057
99 Percentile Max absolute lateral error (m)0.51190.14790.49380.28280.16730.07550.04640.0081
RMSE heading error (rad)0.0440.01510.05020.02940.01150.00390.00360.0028
99 Percentile Max absolute heading error(rad)0.07890.05580.09410.07150.02060.0080.01260.0068
Simulation Results Comparison
simu1

Road Test Results

ScenarioU-turnU-turnU-turnRight-turnRight-turnRight-turnLeft-turnLeft-turnLeft-turnStraightStraightStraight
SpecificationOldKineticNewOldKineticNewOldKineticNewOldKineticNew
RMSE lateral error (m)NO_DATA0.18550.12580.13320.04650.07220.09490.05150.07030.03630.0170.0118
99 PercentileMax lateral error (m)NO_DATA0.2970.07040.05180.01660.13060.15640.0830.01110.00110.01440.0033
99 PercentileMin lateral error (m)NO_DATA-0.0006-0.2443-0.2285-0.05940.0098-0.0416-0.0539-0.1295-0.0331-0.0002-0.0093
RMSE heading error (rad)NO_DATA0.05310.01280.04450.01290.01230.03920.01410.01010.00620.00440.0058
99 PercentileMax heading error(rad)NO_DATA0.09120.0340.07160.00650.0054-0.00580.02860.02230.0049-0.00060.0026
99 PercentileMin heading error(rad)NO_DATA-0.0433-0.0551-0.0012-0.0211-0.0234-0.0609-0.0099-0.0043-0.0032-0.0052-0.0022
Road Test Results Comparison
roadtest1
This post is licensed under CC BY 4.0 by the author.