Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00035 #include <acado_optimal_control.hpp>
00036 #include <acado_gnuplot.hpp>
00037
00038 using namespace std;
00039
00040 USING_NAMESPACE_ACADO
00041
00042
00043 int main( )
00044 {
00045
00046
00047 DifferentialState x;
00048 AlgebraicState z;
00049 Parameter p,q;
00050
00051 DifferentialEquation f;
00052
00053 f << dot(x) == -p*x*x*z ;
00054 f << 0 == q*q - z*z + 0.1*x;
00055
00056
00057
00058
00059
00060 DVector xStart( 1 );
00061 xStart(0) = 1.0;
00062
00063 DVector zStart( 1 );
00064 zStart(0) = 1.0;
00065
00066 DVector pp( 2 );
00067 pp(0) = 1.0;
00068 pp(1) = 1.0;
00069
00070 double t0 = 0.0 ;
00071 double tend = 1.0 ;
00072
00073 Grid timeHorizon( t0,tend );
00074
00075
00076
00077
00078
00079 IntegrationAlgorithm intAlg;
00080
00081 intAlg.addStage( f, timeHorizon );
00082
00083 intAlg.set( INTEGRATOR_PRINTLEVEL, HIGH );
00084
00085
00086
00087
00088
00089
00090 intAlg.integrate( timeHorizon, xStart, zStart, pp );
00091
00092
00093
00094
00095
00096 VariablesGrid differentialStates;
00097 VariablesGrid algebraicStates ;
00098
00099
00100 intAlg.getLast( LOG_DIFFERENTIAL_STATES,differentialStates );
00101 intAlg.getXA( algebraicStates );
00102
00103 cout << "x = " << endl << differentialStates << endl;
00104 cout << "z = " << endl << algebraicStates << endl;
00105
00106 return 0;
00107 }
00108
00109
00110