centroidal_control_collection
|
State-space model for contact phase. More...
#include <LinearMpcZ.h>
Public Member Functions | |
ModelContactPhase (double mass) | |
Constructor. More... | |
Public Member Functions inherited from CCC::StateSpaceModel< StateDim, InputDim, OutputDim > | |
EIGEN_MAKE_ALIGNED_OPERATOR_NEW | StateSpaceModel (int state_dim=StateDim, int input_dim=InputDim, int output_dim=OutputDim) |
Constructor. More... | |
virtual | ~StateSpaceModel ()=default |
Destructor. More... | |
int | stateDim () const |
Gets the state dimension. More... | |
int | inputDim () const |
Gets the input dimension. More... | |
int | outputDim () const |
Gets the output dimension. More... | |
StateDimVector | stateEq (const StateDimVector &x, const InputDimVector &u) const |
Calculate the continuous state equation. More... | |
StateDimVector | stateEqDisc (const StateDimVector &x, const InputDimVector &u) const |
Calculate the discrete state equation. More... | |
OutputDimVector | observEq (const StateDimVector &x) const |
Calculate the observation equation. More... | |
OutputDimVector | observEq (const StateDimVector &x, const InputDimVector &u) const |
Calculate the observation equation. More... | |
void | calcDiscMatrix (double dt) |
Calculate the discrete system matrices \(\boldsymbol{A}_d, \boldsymbol{B}_d, \boldsymbol{e}_d\). More... | |
Additional Inherited Members | |
Public Types inherited from CCC::StateSpaceModel< StateDim, InputDim, OutputDim > | |
using | StateDimVector = Eigen::Matrix< double, StateDim, 1 > |
Type of state vector. More... | |
using | InputDimVector = Eigen::Matrix< double, InputDim, 1 > |
Type of input vector. More... | |
using | OutputDimVector = Eigen::Matrix< double, OutputDim, 1 > |
Type of output vector. More... | |
Public Attributes inherited from CCC::StateSpaceModel< StateDim, InputDim, OutputDim > | |
const int | state_dim_ = 0 |
State dimension. More... | |
const int | input_dim_ = 0 |
Input dimension. More... | |
const int | output_dim_ = 0 |
Output dimension. More... | |
Eigen::Matrix< double, StateDim, StateDim > | A_ |
Matrix \(\boldsymbol{A}\) of continuous state equation. More... | |
Eigen::Matrix< double, StateDim, InputDim > | B_ |
Matrix \(\boldsymbol{B}\) of continuous state equation. More... | |
Eigen::Matrix< double, OutputDim, StateDim > | C_ |
Matrix \(\boldsymbol{C}\) of observation equation. More... | |
Eigen::Matrix< double, OutputDim, InputDim > | D_ |
Matrix \(\boldsymbol{D}\) of observation equation. More... | |
StateDimVector | E_ |
Offset vector \(\boldsymbol{e}\) of continuous state equation. More... | |
OutputDimVector | F_ |
Offset vector \(\boldsymbol{f}\) of observation equation. More... | |
double | dt_ = 0 |
Discretization timestep [sec] (zero if discrete coefficients are not initialized) More... | |
Eigen::Matrix< double, StateDim, StateDim > | Ad_ |
Matrix \(\boldsymbol{A}_d\) of discrete state equation. More... | |
Eigen::Matrix< double, StateDim, InputDim > | Bd_ |
Matrix \(\boldsymbol{B}_d\) of discrete state equation. More... | |
StateDimVector | Ed_ |
Offset vector \(\boldsymbol{e}_d\) of discrete state equation. More... | |
State-space model for contact phase.
Dynamics is expressed by the following equation.
\begin{align*} P_z &= m \dot{c}_z \\ \dot{P}_z &= f_z - m g \end{align*}
\(c_z\), \(P_z\), and \(f_z\) are CoM height, vertical linear momentum, and vertical contact force, respectively.
This can be represented as a linear time-invariant system as follows.
\begin{align*} \boldsymbol{\dot{x}} &= \begin{bmatrix} 0 & 1 \\ 0 & 0 \end{bmatrix} \boldsymbol{x} + \begin{bmatrix} 0 \\ 1 \end{bmatrix} u + \begin{bmatrix} 0 \\ - m g \end{bmatrix} \\ y &= \begin{bmatrix} \dfrac{1}{m} & 0 \end{bmatrix} \boldsymbol{x} \end{align*}
State, control input, and output are expressed as follows.
\begin{align*} \boldsymbol{x} = \begin{bmatrix} m c_z \\ P_z \end{bmatrix}, u = f_z, y = c_z \end{align*}
Definition at line 75 of file LinearMpcZ.h.
CCC::LinearMpcZ::ModelContactPhase::ModelContactPhase | ( | double | mass | ) |
Constructor.
mass | robot mass [kg] |