Apollo: how to make matrix_a(vehicle state matrix) discrete in LatController::UpdateMatrix()?

Created on 8 Nov 2018  路  2Comments  路  Source: ApolloAuto/apollo

Dear Apollo designers,
I am confused with matrix_ad obtained by following:

matrix_ad_ = (matrix_i + ts_ * 0.5 * matrix_a_) * (matrix_i - ts_ * 0.5 * matrix_a_).inverse();  

Why can this equation make matrix_a discrete? Thanks for your replying.

Control Question

Most helpful comment

Correct me if I'm wrong. I think that's two different discretization methods.

matrix_ad_ = (matrix_i + matrix_a_ *ts_) -> this is based on Euler method.
matrix_ad_ = (matrix_i + ts_ * 0.5 * matrix_a_) * (matrix_i - ts_ * 0.5 * matrix_a_).inverse(); -> this is based on Tustin's method .

Reference:
http://www-verimag.imag.fr/~tdang/DocumentsCours/2013Discretization.pdf

All 2 comments

I would like to know the answer. As far as I know, matrix_ad_ = (matrix_i + matrix_a_ *ts_).

Correct me if I'm wrong. I think that's two different discretization methods.

matrix_ad_ = (matrix_i + matrix_a_ *ts_) -> this is based on Euler method.
matrix_ad_ = (matrix_i + ts_ * 0.5 * matrix_a_) * (matrix_i - ts_ * 0.5 * matrix_a_).inverse(); -> this is based on Tustin's method .

Reference:
http://www-verimag.imag.fr/~tdang/DocumentsCours/2013Discretization.pdf

Was this page helpful?
0 / 5 - 0 ratings

Related issues

zmsunnyday picture zmsunnyday  路  3Comments

poutyface picture poutyface  路  3Comments

chilihua picture chilihua  路  3Comments

westeast picture westeast  路  3Comments

Wsine picture Wsine  路  3Comments