GCOP  1.0
Public Types | Public Member Functions | Public Attributes
gcop::MultiCost< T, _nx, _nu, _np > Class Template Reference

#include <multicost.h>

Inheritance diagram for gcop::MultiCost< T, _nx, _nu, _np >:
Inheritance graph
[legend]
Collaboration diagram for gcop::MultiCost< T, _nx, _nu, _np >:
Collaboration graph
[legend]

List of all members.

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

Detailed Description

template<typename T, int _nx = Dynamic, int _nu = Dynamic, int _np = Dynamic>
class gcop::MultiCost< T, _nx, _nu, _np >

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


Member Typedef Documentation

template<typename T , int _nx = Dynamic, int _nu = Dynamic, int _np = Dynamic>
typedef Matrix<double, _nu, _nu> gcop::MultiCost< T, _nx, _nu, _np >::Matrixcd

Reimplemented from gcop::Cost< T, _nx, _nu, _np >.

template<typename T , int _nx = Dynamic, int _nu = Dynamic, int _np = Dynamic>
typedef Matrix<double, _nu, _nx> gcop::MultiCost< T, _nx, _nu, _np >::Matrixcnd

Reimplemented from gcop::Cost< T, _nx, _nu, _np >.

template<typename T , int _nx = Dynamic, int _nu = Dynamic, int _np = Dynamic>
typedef Matrix<double, _np, _np> gcop::MultiCost< T, _nx, _nu, _np >::Matrixmd

Reimplemented from gcop::Cost< T, _nx, _nu, _np >.

template<typename T , int _nx = Dynamic, int _nu = Dynamic, int _np = Dynamic>
typedef Matrix<double, _np, _nx> gcop::MultiCost< T, _nx, _nu, _np >::Matrixmnd

Reimplemented from gcop::Cost< T, _nx, _nu, _np >.

template<typename T , int _nx = Dynamic, int _nu = Dynamic, int _np = Dynamic>
typedef Matrix<double, _nx, _nu> gcop::MultiCost< T, _nx, _nu, _np >::Matrixncd

Reimplemented from gcop::Cost< T, _nx, _nu, _np >.

template<typename T , int _nx = Dynamic, int _nu = Dynamic, int _np = Dynamic>
typedef Matrix<double, _nx, _nx> gcop::MultiCost< T, _nx, _nu, _np >::Matrixnd

Reimplemented from gcop::Cost< T, _nx, _nu, _np >.

template<typename T , int _nx = Dynamic, int _nu = Dynamic, int _np = Dynamic>
typedef Matrix<double, _nx, _np> gcop::MultiCost< T, _nx, _nu, _np >::Matrixnmd

Reimplemented from gcop::Cost< T, _nx, _nu, _np >.

template<typename T , int _nx = Dynamic, int _nu = Dynamic, int _np = Dynamic>
typedef Matrix<double, _nu, 1> gcop::MultiCost< T, _nx, _nu, _np >::Vectorcd

Reimplemented from gcop::Cost< T, _nx, _nu, _np >.

template<typename T , int _nx = Dynamic, int _nu = Dynamic, int _np = Dynamic>
typedef Matrix<double, _np, 1> gcop::MultiCost< T, _nx, _nu, _np >::Vectormd

Reimplemented from gcop::Cost< T, _nx, _nu, _np >.

template<typename T , int _nx = Dynamic, int _nu = Dynamic, int _np = Dynamic>
typedef Matrix<double, _nx, 1> gcop::MultiCost< T, _nx, _nu, _np >::Vectornd

Reimplemented from gcop::Cost< T, _nx, _nu, _np >.


Constructor & Destructor Documentation

template<typename T , int _nx, int _nu, int _np>
gcop::MultiCost< T, _nx, _nu, _np >::MultiCost ( System< T, _nx, _nu, _np > &  sys,
double  tf 
)

create a cost interface

Parameters:
Xthe state manifold which is used to perform addition/subtraction of states
tftime 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.


Member Function Documentation

template<typename T , int _nx, int _nu, int _np>
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

Parameters:
ttime
xstate
ucontrol
htime-step
Lxderivative wrt x
Lxxderivative wrt x,x
Luderivative wrt u
Luuderivative wrt u,u
Lxuderivative wrt x,u

Reimplemented from gcop::Cost< T, _nx, _nu, _np >.


Member Data Documentation

template<typename T , int _nx = Dynamic, int _nu = Dynamic, int _np = Dynamic>
vector<Cost<T, _nx, _nu, _np>* > gcop::MultiCost< T, _nx, _nu, _np >::costs
template<typename T , int _nx = Dynamic, int _nu = Dynamic, int _np = Dynamic>
Vectormd gcop::MultiCost< T, _nx, _nu, _np >::Lp
template<typename T , int _nx = Dynamic, int _nu = Dynamic, int _np = Dynamic>
Matrixmd gcop::MultiCost< T, _nx, _nu, _np >::Lpp
template<typename T , int _nx = Dynamic, int _nu = Dynamic, int _np = Dynamic>
Matrixmnd gcop::MultiCost< T, _nx, _nu, _np >::Lpx
template<typename T , int _nx = Dynamic, int _nu = Dynamic, int _np = Dynamic>
Vectorcd gcop::MultiCost< T, _nx, _nu, _np >::Lu
template<typename T , int _nx = Dynamic, int _nu = Dynamic, int _np = Dynamic>
Matrixcd gcop::MultiCost< T, _nx, _nu, _np >::Luu
template<typename T , int _nx = Dynamic, int _nu = Dynamic, int _np = Dynamic>
Vectornd gcop::MultiCost< T, _nx, _nu, _np >::Lx
template<typename T , int _nx = Dynamic, int _nu = Dynamic, int _np = Dynamic>
Matrixncd gcop::MultiCost< T, _nx, _nu, _np >::Lxu
template<typename T , int _nx = Dynamic, int _nu = Dynamic, int _np = Dynamic>
Matrixnd gcop::MultiCost< T, _nx, _nu, _np >::Lxx

The documentation for this class was generated from the following file: