GCOP
1.0
|
#include <multicost.h>
Public Types | |
typedef Matrix< double, _nx, 1 > | Vectornd |
typedef Matrix< double, _nu, 1 > | Vectorcd |
typedef Matrix< double, _np, 1 > | Vectormd |
typedef Matrix< double, _nx, _nx > | Matrixnd |
typedef Matrix< double, _nx, _nu > | Matrixncd |
typedef Matrix< double, _nu, _nx > | Matrixcnd |
typedef Matrix< double, _nu, _nu > | Matrixcd |
typedef Matrix< double, _np, _np > | Matrixmd |
typedef Matrix< double, _nx, _np > | Matrixnmd |
typedef Matrix< double, _np, _nx > | Matrixmnd |
Public Member Functions | |
MultiCost (System< T, _nx, _nu, _np > &sys, double tf) | |
virtual double | L (double t, const T &x, const Vectorcd &u, double h, const Vectormd *p=0, Vectornd *Lx=0, Matrixnd *Lxx=0, Vectorcd *Lu=0, Matrixcd *Luu=0, Matrixncd *Lxu=0, Vectormd *Lp=0, Matrixmd *Lpp=0, Matrixmnd *Lpx=0) |
Public Attributes | |
Vectornd | Lx |
Matrixnd | Lxx |
Vectorcd | Lu |
Matrixcd | Luu |
Matrixncd | Lxu |
Vectormd | Lp |
Matrixmd | Lpp |
Matrixmnd | Lpx |
vector< Cost< T, _nx, _nu, _np > * > | costs |
Cost interface for optimal control on manifolds. Defines a cost function and means to compute difference between two states on a manifold.
Subclasses should provide implementation of either a regular const function L or a parameter-dependent cost function Lp (e.g. for sys id / adaptive control / optimal design problems)
Author: Marin Kobilarov marin(at)jhu.edu
typedef Matrix<double, _nu, _nu> gcop::MultiCost< T, _nx, _nu, _np >::Matrixcd |
Reimplemented from gcop::Cost< T, _nx, _nu, _np >.
typedef Matrix<double, _nu, _nx> gcop::MultiCost< T, _nx, _nu, _np >::Matrixcnd |
Reimplemented from gcop::Cost< T, _nx, _nu, _np >.
typedef Matrix<double, _np, _np> gcop::MultiCost< T, _nx, _nu, _np >::Matrixmd |
Reimplemented from gcop::Cost< T, _nx, _nu, _np >.
typedef Matrix<double, _np, _nx> gcop::MultiCost< T, _nx, _nu, _np >::Matrixmnd |
Reimplemented from gcop::Cost< T, _nx, _nu, _np >.
typedef Matrix<double, _nx, _nu> gcop::MultiCost< T, _nx, _nu, _np >::Matrixncd |
Reimplemented from gcop::Cost< T, _nx, _nu, _np >.
typedef Matrix<double, _nx, _nx> gcop::MultiCost< T, _nx, _nu, _np >::Matrixnd |
Reimplemented from gcop::Cost< T, _nx, _nu, _np >.
typedef Matrix<double, _nx, _np> gcop::MultiCost< T, _nx, _nu, _np >::Matrixnmd |
Reimplemented from gcop::Cost< T, _nx, _nu, _np >.
typedef Matrix<double, _nu, 1> gcop::MultiCost< T, _nx, _nu, _np >::Vectorcd |
Reimplemented from gcop::Cost< T, _nx, _nu, _np >.
typedef Matrix<double, _np, 1> gcop::MultiCost< T, _nx, _nu, _np >::Vectormd |
Reimplemented from gcop::Cost< T, _nx, _nu, _np >.
typedef Matrix<double, _nx, 1> gcop::MultiCost< T, _nx, _nu, _np >::Vectornd |
Reimplemented from gcop::Cost< T, _nx, _nu, _np >.
gcop::MultiCost< T, _nx, _nu, _np >::MultiCost | ( | System< T, _nx, _nu, _np > & | sys, |
double | tf | ||
) |
create a cost interface
X | the state manifold which is used to perform addition/subtraction of states |
tf | time horizon: when the cost function L is called it will internally check whether its argument t is equation to tf and return the terminal cost |
References gcop::MultiCost< T, _nx, _nu, _np >::Lp, gcop::MultiCost< T, _nx, _nu, _np >::Lpp, gcop::MultiCost< T, _nx, _nu, _np >::Lpx, gcop::MultiCost< T, _nx, _nu, _np >::Lu, gcop::MultiCost< T, _nx, _nu, _np >::Luu, gcop::MultiCost< T, _nx, _nu, _np >::Lx, gcop::MultiCost< T, _nx, _nu, _np >::Lxu, gcop::MultiCost< T, _nx, _nu, _np >::Lxx, gcop::System< T, _nx, _nu, _np >::P, gcop::System< T, _nx, _nu, _np >::U, and gcop::System< T, _nx, _nu, _np >::X.
double gcop::MultiCost< T, _nx, _nu, _np >::L | ( | double | t, |
const T & | x, | ||
const Vectorcd & | u, | ||
double | h, | ||
const Vectormd * | p = 0 , |
||
Vectornd * | Lx = 0 , |
||
Matrixnd * | Lxx = 0 , |
||
Vectorcd * | Lu = 0 , |
||
Matrixcd * | Luu = 0 , |
||
Matrixncd * | Lxu = 0 , |
||
Vectormd * | Lp = 0 , |
||
Matrixmd * | Lpp = 0 , |
||
Matrixmnd * | Lpx = 0 |
||
) | [virtual] |
Cost function L
t | time |
x | state |
u | control |
h | time-step |
Lx | derivative wrt x |
Lxx | derivative wrt x,x |
Lu | derivative wrt u |
Luu | derivative wrt u,u |
Lxu | derivative wrt x,u |
Reimplemented from gcop::Cost< T, _nx, _nu, _np >.
vector<Cost<T, _nx, _nu, _np>* > gcop::MultiCost< T, _nx, _nu, _np >::costs |
Vectormd gcop::MultiCost< T, _nx, _nu, _np >::Lp |
Referenced by gcop::MultiCost< T, _nx, _nu, _np >::MultiCost().
Matrixmd gcop::MultiCost< T, _nx, _nu, _np >::Lpp |
Referenced by gcop::MultiCost< T, _nx, _nu, _np >::MultiCost().
Matrixmnd gcop::MultiCost< T, _nx, _nu, _np >::Lpx |
Referenced by gcop::MultiCost< T, _nx, _nu, _np >::MultiCost().
Vectorcd gcop::MultiCost< T, _nx, _nu, _np >::Lu |
Referenced by gcop::MultiCost< T, _nx, _nu, _np >::MultiCost().
Matrixcd gcop::MultiCost< T, _nx, _nu, _np >::Luu |
Referenced by gcop::MultiCost< T, _nx, _nu, _np >::MultiCost().
Vectornd gcop::MultiCost< T, _nx, _nu, _np >::Lx |
Referenced by gcop::MultiCost< T, _nx, _nu, _np >::MultiCost().
Matrixncd gcop::MultiCost< T, _nx, _nu, _np >::Lxu |
Referenced by gcop::MultiCost< T, _nx, _nu, _np >::MultiCost().
Matrixnd gcop::MultiCost< T, _nx, _nu, _np >::Lxx |
Referenced by gcop::MultiCost< T, _nx, _nu, _np >::MultiCost().