#include <Omu_IntOdeTs.h>


The implementation is adapted from the driver routine forodec of the adol-c automatic differentiation code.
Public Member Functions | |
| Omu_IntOdeTs (int) | |
| constructor | |
| Omu_IntOdeTs () | |
| constructor | |
| ~Omu_IntOdeTs () | |
| destructor | |
Implementation of predefined methods. | |
| char * | name () |
| Name of a specific integrator. | |
| void | init_stage (int k, const Omu_VariableVec &x, const Omu_VariableVec &u, const Omu_DependentVec &Ft, bool sa) |
| Initialize solution of differential equations for stage k. | |
| void | solve (int kk, double tstart, double tend, const Omu_VariableVec &x, const Omu_VariableVec &u, Omu_Program *sys, Omu_DependentVec &Ft, Omu_StateVec &xt) |
| Solve differential equations over one sample period. | |
Protected Attributes | |
| int | _max_deg |
| maximum degree of the taylor series expansion of the ode | |
| double | _tau |
| time scaling of the taylor series | |
| char* Omu_IntOdeTs::name | ( | ) | [inline, virtual] |
| void Omu_IntOdeTs::init_stage | ( | int | k, | |
| const Omu_VariableVec & | x, | |||
| const Omu_VariableVec & | u, | |||
| const Omu_DependentVec & | Ft, | |||
| bool | sa | |||
| ) | [virtual] |
Initialize solution of differential equations for stage k.
Note: The numbers of variables and equation structure (given in F) shall be the same for all sample periods of a stage.
| k | stage | |
| x | state variables for optimization, including bounds etc. | |
| u | control parameters for optimization | |
| Ft | pre-initialized data structures for resisuals and Jacobians | |
| sa | true if sensitivity analysis shall be performed |
Reimplemented from Omu_Integrator.
| void Omu_IntOdeTs::solve | ( | int | kk, | |
| double | tstart, | |||
| double | tend, | |||
| const Omu_VariableVec & | x, | |||
| const Omu_VariableVec & | u, | |||
| Omu_Program * | sys, | |||
| Omu_DependentVec & | Ft, | |||
| Omu_StateVec & | xt | |||
| ) | [virtual] |
Solve differential equations over one sample period.
The differential-algebraic equations can be evaluated by calling Omu_Program::continuous for sys. Note that the first _nd elements of xt are discrete-time states that need to be treated like control parameters u by an integrator. Furthermore, the last _nv elements of xt are expansion variables that are not seen by the optimizer and accordingly no sensitivities are required with respect to them. The default implementation of solve calls the high-level version.
| kk | sample period | |
| tstart | start time for integration | |
| tend | end time for integration | |
| x | state variables for optimization, including bounds etc. | |
| u | control parameters for optimization | |
| sys | problem definition for calling Omu_Program::continuous | |
| Ft | pre-initialized data structures for resisuals and Jacobians | |
| xt | start values for integration at tstart, dim(xt)=_nxt; initial sensitivity matrices xt.Sx, dim(xt.Sx)=_nxt._nx, and xt.Su, dim(xt.Su)=_nxt._nu, if _sa is true |
| xt | result at tend; xt.Sx and xt.Su at tend if _sa is true |
| E_CONV | indicate that the integrator failed to converge; may be caught during optimization step length test |
Reimplemented from Omu_Integrator.
.