System dynamics for a second order integrator (discrete-time) More...
#include <linear_benchmark_systems.h>

Public Member Functions | |
| DoubleIntegratorDiscreteTime () | |
| Default constructor. More... | |
| void | dynamics (const Eigen::Ref< const StateVector > &x, const Eigen::Ref< const ControlVector > &u, Eigen::Ref< StateVector > f) const override |
| Evaluate the system dynamics equation. More... | |
| const double & | getDt () const |
| Get current sampling time dt. More... | |
| int | getInputDimension () const override |
| Return the plant input dimension (u) More... | |
| Ptr | getInstance () const override |
| Return a newly created shared instance of the implemented class. More... | |
| int | getStateDimension () const override |
| Return state dimension (x) More... | |
| bool | isContinuousTime () const override |
| Check if the system dynamics are defined in continuous-time. More... | |
| bool | isLinear () const override |
| Check if the system dynamics are linear. More... | |
| void | setDt (double dt) |
| Set sampling time dt. More... | |
Public Member Functions inherited from corbo::SystemDynamicsInterface | |
| virtual double | getDeadTime () const |
| Return deadtime which might be taken into account by controllers/simulators if supported. More... | |
| virtual void | getLinearA (const StateVector &x0, const ControlVector &u0, Eigen::MatrixXd &A) const |
| Return linear system matrix A (linearized system dynamics) More... | |
| virtual void | getLinearB (const StateVector &x0, const ControlVector &u0, Eigen::MatrixXd &B) const |
| Return linear control input matrix B (linearized system dynamics) More... | |
| virtual void | reset () |
| void | setLinearizationMethod (std::shared_ptr< FiniteDifferencesInterface > lin_method) |
| Set linearization method in case getLinearA() or getLinearB() are not overriden. More... | |
| SystemDynamicsInterface () | |
| Default constructor. More... | |
| virtual | ~SystemDynamicsInterface ()=default |
| Default destructor. More... | |
Private Attributes | |
| double | _dt = 1.0 |
Additional Inherited Members | |
Public Types inherited from corbo::SystemDynamicsInterface | |
| using | ControlVector = Eigen::VectorXd |
| using | Ptr = std::shared_ptr< SystemDynamicsInterface > |
| using | StateVector = Eigen::VectorXd |
System dynamics for a second order integrator (discrete-time)
An 2nd-order discrete-time integrator chain is defiend as:
in which
denotes the sampling time.
Definition at line 298 of file linear_benchmark_systems.h.
|
inline |
Default constructor.
Definition at line 302 of file linear_benchmark_systems.h.
|
inlineoverridevirtual |
Evaluate the system dynamics equation.
Implement this method to specify the actual system dynamics equation
(continuous-time) or
(discrete-time).
| [in] | x | State vector x [getStateDimension() x 1] |
| [in] | u | Control input vector u [getInputDimension() x 1] |
| [out] | f | Resulting function value respectively (f must be preallocated with dimension [getStateDimension() x 1]) |
Implements corbo::SystemDynamicsInterface.
Definition at line 318 of file linear_benchmark_systems.h.
|
inline |
Get current sampling time dt.
Definition at line 328 of file linear_benchmark_systems.h.
|
inlineoverridevirtual |
Return the plant input dimension (u)
Implements corbo::SystemDynamicsInterface.
Definition at line 313 of file linear_benchmark_systems.h.
|
inlineoverridevirtual |
Return a newly created shared instance of the implemented class.
Implements corbo::SystemDynamicsInterface.
Definition at line 305 of file linear_benchmark_systems.h.
|
inlineoverridevirtual |
Return state dimension (x)
Implements corbo::SystemDynamicsInterface.
Definition at line 315 of file linear_benchmark_systems.h.
|
inlineoverridevirtual |
Check if the system dynamics are defined in continuous-time.
Continous-time equations are defined as
and discrete-time equations as
.
Implements corbo::SystemDynamicsInterface.
Definition at line 308 of file linear_benchmark_systems.h.
|
inlineoverridevirtual |
Check if the system dynamics are linear.
Linear system can be written in the form
(continuous-time) or
(discrete-time). Consequently, getLinearA() and getLinearB() are independet of x0 and u0.
Implements corbo::SystemDynamicsInterface.
Definition at line 310 of file linear_benchmark_systems.h.
|
inline |
Set sampling time dt.
Definition at line 330 of file linear_benchmark_systems.h.
|
private |
Definition at line 348 of file linear_benchmark_systems.h.