Apollo 10.0
自动驾驶开放平台
|
A mrac controller for actuation system (throttle/brake and steering) 更多...
#include <mrac_controller.h>
Public 成员函数 | |
void | Init (const MracConf &mrac_conf, const common::LatencyParam &latency_param, const double dt) |
initialize mrac controller | |
common::Status | SetReferenceModel (const MracConf &mrac_conf) |
time constant, natural frequency and damping ratio | |
common::Status | SetAdaptionModel (const MracConf &mrac_conf) |
state adaptive gain, desired adaptive gain and nonlinear-component adaptive gain | |
common::Status | BuildReferenceModel () |
build mrac (1st or 2nd) order reference model in the discrete-time form, with the bilinear transform (trapezoidal integration) method | |
common::Status | BuildAdaptionModel () |
build mrac (1st or 2nd) order adaptive dynamic model in the discrete-time form | |
bool | CheckLyapunovPD (const Eigen::MatrixXd matrix_a, const Eigen::MatrixXd matrix_p) const |
check if the solution of the algebraic Lyapunov Equation is symmetric positive definite | |
void | EstimateInitialGains (const common::LatencyParam &latency_param) |
estimate the initial states of the adaptive gains via known actuation dynamics approximation | |
void | UpdateReference () |
execute the reference state interation with respect to the designed inputs in discrete-time form, with the bilinear transform (trapezoidal integration) method | |
void | UpdateAdaption (Eigen::MatrixXd *law_adp, const Eigen::MatrixXd state_adp, const Eigen::MatrixXd gain_adp) |
execute the adaption interation with respect to the designed law in discrete-time form, with the bilinear transform (trapezoidal integration) method | |
void | AntiWindupCompensation (const double control_command, const double previous_command) |
calculate the anti-windup compensation with respect to the integral windup issue | |
void | Reset () |
reset all the variables (including all the states, gains and externally-setting control parameters) for mrac controller | |
void | ResetStates () |
reset internal states for mrac controller | |
void | ResetGains () |
reset adaptive gains for mrac controller | |
virtual double | Control (const double command, const Eigen::MatrixXd state, const double input_limit, const double input_rate_limit) |
compute control value based on the original command | |
int | BoundOutput (const double output_unbounded, const double previous_output, double *output_bounded) |
bound the system output with the given bound and change-rate bound | |
void | SetInitialReferenceState (const Eigen::MatrixXd &state_reference_init) |
set initial values for state components in reference model dynamics | |
void | SetInitialActionState (const Eigen::MatrixXd &state_action_init) |
set initial values for state components in actual actuator dynamics | |
void | SetInitialCommand (const double command_init) |
set initial command (desired input) | |
void | SetInitialStateAdaptionGain (const Eigen::MatrixXd &gain_state_adaption_init) |
set initial values of state adaption gains for mrac control | |
void | SetInitialInputAdaptionGain (const double gain_input_adaption_init) |
set initial value of input adaption gain for mrac control | |
void | SetInitialNonlinearAdaptionGain (const double gain_nonlinear_adaption_init) |
set initial value of nonlinear adaption gain for mrac control | |
void | SetStateAdaptionRate (const double ratio_state) |
set convergence ratio for state components in adaptive dynamics | |
void | SetInputAdaptionRate (const double ratio_input) |
set convergence ratio for input components in adaptive dynamics | |
void | SetNonlinearAdaptionRate (const double ratio_nonlinear) |
set convergence ratio for nonlinear components in adaptive dynamics | |
double | StateAdaptionRate () const |
get convergence ratio for state components in adaptive dynamics | |
double | InputAdaptionRate () const |
get convergence ratio for input components in adaptive dynamics | |
double | NonlinearAdaptionRate () const |
get convergence ratio for nonlinear components in adaptive dynamics | |
int | ReferenceSaturationStatus () const |
get saturation status for reference system | |
int | ControlSaturationStatus () const |
get saturation status for control system | |
Eigen::MatrixXd | CurrentReferenceState () const |
get current state for reference system | |
Eigen::MatrixXd | CurrentStateAdaptionGain () const |
get current state adaptive gain for mrac control | |
Eigen::MatrixXd | CurrentInputAdaptionGain () const |
get current input adaptive gain for mrac control | |
Eigen::MatrixXd | CurrentNonlinearAdaptionGain () const |
get current nonlinear adaptive gain for mrac control | |
A mrac controller for actuation system (throttle/brake and steering)
在文件 mrac_controller.h 第 44 行定义.
void apollo::control::MracController::AntiWindupCompensation | ( | const double | control_command, |
const double | previous_command | ||
) |
calculate the anti-windup compensation with respect to the integral windup issue
control_command | desired control command for the actuator |
previous_command | last control command for the actuator |
dt | control sampling time |
在文件 mrac_controller.cc 第 372 行定义.
int apollo::control::MracController::BoundOutput | ( | const double | output_unbounded, |
const double | previous_output, | ||
double * | output_bounded | ||
) |
bound the system output with the given bound and change-rate bound
output_unbounded | original system output without bound |
previous_output | system output in the last step |
dt | sampling time interval |
output_bounded | bounded system output |
在文件 mrac_controller.cc 第 393 行定义.
Status apollo::control::MracController::BuildAdaptionModel | ( | ) |
build mrac (1st or 2nd) order adaptive dynamic model in the discrete-time form
在文件 mrac_controller.cc 第 262 行定义.
Status apollo::control::MracController::BuildReferenceModel | ( | ) |
build mrac (1st or 2nd) order reference model in the discrete-time form, with the bilinear transform (trapezoidal integration) method
在文件 mrac_controller.cc 第 242 行定义.
bool apollo::control::MracController::CheckLyapunovPD | ( | const Eigen::MatrixXd | matrix_a, |
const Eigen::MatrixXd | matrix_p | ||
) | const |
check if the solution of the algebraic Lyapunov Equation is symmetric positive definite
matrix_a | reference model matrix |
matrix_p | Lyapunov function matrix |
在文件 mrac_controller.cc 第 285 行定义.
|
virtual |
compute control value based on the original command
command | original command as the input of the actuation system |
state | actual output state of the actuation system |
dt | sampling time interval |
input_limit | physical or designed bound of the input |
input_rate_limit | physical or designed bound of the input changing-rate |
在文件 mrac_controller.cc 第 38 行定义.
int apollo::control::MracController::ControlSaturationStatus | ( | ) | const |
Matrix apollo::control::MracController::CurrentInputAdaptionGain | ( | ) | const |
get current input adaptive gain for mrac control
在文件 mrac_controller.cc 第 530 行定义.
Matrix apollo::control::MracController::CurrentNonlinearAdaptionGain | ( | ) | const |
get current nonlinear adaptive gain for mrac control
在文件 mrac_controller.cc 第 534 行定义.
Matrix apollo::control::MracController::CurrentReferenceState | ( | ) | const |
Matrix apollo::control::MracController::CurrentStateAdaptionGain | ( | ) | const |
get current state adaptive gain for mrac control
在文件 mrac_controller.cc 第 526 行定义.
void apollo::control::MracController::EstimateInitialGains | ( | const common::LatencyParam & | latency_param | ) |
estimate the initial states of the adaptive gains via known actuation dynamics approximation
latency_param | configuration for actuation latency parameters |
在文件 mrac_controller.cc 第 295 行定义.
void apollo::control::MracController::Init | ( | const MracConf & | mrac_conf, |
const common::LatencyParam & | latency_param, | ||
const double | dt | ||
) |
initialize mrac controller
mrac_conf | configuration for mrac controller |
latency_param | configuration for latency parameter |
dt | sampling time interval |
在文件 mrac_controller.cc 第 141 行定义.
double apollo::control::MracController::InputAdaptionRate | ( | ) | const |
get convergence ratio for input components in adaptive dynamics
在文件 mrac_controller.cc 第 508 行定义.
double apollo::control::MracController::NonlinearAdaptionRate | ( | ) | const |
get convergence ratio for nonlinear components in adaptive dynamics
在文件 mrac_controller.cc 第 510 行定义.
int apollo::control::MracController::ReferenceSaturationStatus | ( | ) | const |
void apollo::control::MracController::Reset | ( | ) |
reset all the variables (including all the states, gains and externally-setting control parameters) for mrac controller
在文件 mrac_controller.cc 第 110 行定义.
void apollo::control::MracController::ResetGains | ( | ) |
reset adaptive gains for mrac controller
在文件 mrac_controller.cc 第 133 行定义.
void apollo::control::MracController::ResetStates | ( | ) |
reset internal states for mrac controller
在文件 mrac_controller.cc 第 121 行定义.
state adaptive gain, desired adaptive gain and nonlinear-component adaptive gain
mrac_conf | configuration for adaption model |
在文件 mrac_controller.cc 第 210 行定义.
void apollo::control::MracController::SetInitialActionState | ( | const Eigen::MatrixXd & | state_action_init | ) |
set initial values for state components in actual actuator dynamics
state_reference_init | initial action states |
在文件 mrac_controller.cc 第 436 行定义.
void apollo::control::MracController::SetInitialCommand | ( | const double | command_init | ) |
set initial command (desired input)
command_init | initial desired input |
在文件 mrac_controller.cc 第 448 行定义.
void apollo::control::MracController::SetInitialInputAdaptionGain | ( | const double | gain_input_adaption_init | ) |
set initial value of input adaption gain for mrac control
gain_input_adaption_init | initial input adaption gain |
在文件 mrac_controller.cc 第 466 行定义.
void apollo::control::MracController::SetInitialNonlinearAdaptionGain | ( | const double | gain_nonlinear_adaption_init | ) |
set initial value of nonlinear adaption gain for mrac control
gain_nonlinear_adaption_init | initial nonlinear adaption gain |
在文件 mrac_controller.cc 第 471 行定义.
void apollo::control::MracController::SetInitialReferenceState | ( | const Eigen::MatrixXd & | state_reference_init | ) |
set initial values for state components in reference model dynamics
state_reference_init | initial reference states |
在文件 mrac_controller.cc 第 423 行定义.
void apollo::control::MracController::SetInitialStateAdaptionGain | ( | const Eigen::MatrixXd & | gain_state_adaption_init | ) |
set initial values of state adaption gains for mrac control
gain_state_adaption_init | initial state adaption gains |
在文件 mrac_controller.cc 第 452 行定义.
void apollo::control::MracController::SetInputAdaptionRate | ( | const double | ratio_input | ) |
set convergence ratio for input components in adaptive dynamics
ratio_input | convergence ratio for input adaption |
在文件 mrac_controller.cc 第 486 行定义.
void apollo::control::MracController::SetNonlinearAdaptionRate | ( | const double | ratio_nonlinear | ) |
set convergence ratio for nonlinear components in adaptive dynamics
ratio_nonlinear | convergence ratio for additional nonlinear adaption |
在文件 mrac_controller.cc 第 496 行定义.
time constant, natural frequency and damping ratio
mrac_conf | configuration for reference model |
在文件 mrac_controller.cc 第 186 行定义.
void apollo::control::MracController::SetStateAdaptionRate | ( | const double | ratio_state | ) |
set convergence ratio for state components in adaptive dynamics
ratio_state | convergence ratio for state adaption |
在文件 mrac_controller.cc 第 476 行定义.
double apollo::control::MracController::StateAdaptionRate | ( | ) | const |
get convergence ratio for state components in adaptive dynamics
在文件 mrac_controller.cc 第 506 行定义.
void apollo::control::MracController::UpdateAdaption | ( | Eigen::MatrixXd * | law_adp, |
const Eigen::MatrixXd | state_adp, | ||
const Eigen::MatrixXd | gain_adp | ||
) |
execute the adaption interation with respect to the designed law in discrete-time form, with the bilinear transform (trapezoidal integration) method
law_adp | adaptive law at k and k-1 steps |
state_adp | state used in the adaptive law at k and k-1 steps |
gain_adp | adaptive gain for the given adaptive law |
在文件 mrac_controller.cc 第 359 行定义.
void apollo::control::MracController::UpdateReference | ( | ) |
execute the reference state interation with respect to the designed inputs in discrete-time form, with the bilinear transform (trapezoidal integration) method
在文件 mrac_controller.cc 第 350 行定义.
|
protected |
在文件 mrac_controller.h 第 286 行定义.
|
protected |
在文件 mrac_controller.h 第 283 行定义.
|
protected |
在文件 mrac_controller.h 第 343 行定义.
|
protected |
在文件 mrac_controller.h 第 344 行定义.
|
protected |
在文件 mrac_controller.h 第 342 行定义.
|
protected |
在文件 mrac_controller.h 第 350 行定义.
|
protected |
在文件 mrac_controller.h 第 339 行定义.
|
protected |
在文件 mrac_controller.h 第 349 行定义.
|
protected |
在文件 mrac_controller.h 第 327 行定义.
|
protected |
在文件 mrac_controller.h 第 335 行定义.
|
protected |
在文件 mrac_controller.h 第 331 行定义.
|
protected |
在文件 mrac_controller.h 第 328 行定义.
|
protected |
在文件 mrac_controller.h 第 336 行定义.
|
protected |
在文件 mrac_controller.h 第 332 行定义.
|
protected |
在文件 mrac_controller.h 第 326 行定义.
|
protected |
在文件 mrac_controller.h 第 334 行定义.
|
protected |
在文件 mrac_controller.h 第 330 行定义.
|
protected |
在文件 mrac_controller.h 第 304 行定义.
|
protected |
在文件 mrac_controller.h 第 306 行定义.
|
protected |
在文件 mrac_controller.h 第 310 行定义.
|
protected |
在文件 mrac_controller.h 第 312 行定义.
|
protected |
在文件 mrac_controller.h 第 308 行定义.
|
protected |
在文件 mrac_controller.h 第 302 行定义.
|
protected |
在文件 mrac_controller.h 第 323 行定义.
|
protected |
在文件 mrac_controller.h 第 315 行定义.
|
protected |
在文件 mrac_controller.h 第 320 行定义.
|
protected |
在文件 mrac_controller.h 第 316 行定义.
|
protected |
在文件 mrac_controller.h 第 319 行定义.
|
protected |
在文件 mrac_controller.h 第 289 行定义.
|
protected |
在文件 mrac_controller.h 第 282 行定义.
|
protected |
在文件 mrac_controller.h 第 346 行定义.
|
protected |
在文件 mrac_controller.h 第 345 行定义.
|
protected |
在文件 mrac_controller.h 第 324 行定义.
|
protected |
在文件 mrac_controller.h 第 325 行定义.
|
protected |
在文件 mrac_controller.h 第 293 行定义.
|
protected |
在文件 mrac_controller.h 第 292 行定义.
|
protected |
在文件 mrac_controller.h 第 298 行定义.
|
protected |
在文件 mrac_controller.h 第 295 行定义.
|
protected |
在文件 mrac_controller.h 第 296 行定义.