5 #ifndef LODESTAR_LUNARLANDERDEMO_HPP
6 #define LODESTAR_LUNARLANDERDEMO_HPP
21 Eigen::Matrix<double, 13, 13> jac6DOFStates(
const double (&x)[13],
const double (&u)[13],
const double t = 0) {
22 Eigen::Matrix<double, 13, 13> mat;
23 mat << 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
24 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
25 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
26 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 9.2832504447373218e-02*( u[11]+u[8]+u[5]+u[2])*x[7]+9.2832504447373218e-02*x[8]*( u[12]+u[9]+u[6]+u[3]+u[0])+9.2832504447373218e-02*( u[10]+u[7]+u[4]+u[1])*x[6], 9.2832504447373218e-02*x[9]*( u[12]+u[9]+u[6]+u[3]+u[0])+9.2832504447373218e-02*x[6]*( u[11]+u[8]+u[5]+u[2])+-9.2832504447373218e-02*( u[10]+u[7]+u[4]+u[1])*x[7], -9.2832504447373218e-02*x[8]*( u[10]+u[7]+u[4]+u[1])+-9.2832504447373218e-02*x[9]*( u[11]+u[8]+u[5]+u[2])+9.2832504447373218e-02*( u[12]+u[9]+u[6]+u[3]+u[0])*x[6], 9.2832504447373218e-02*( u[10]+u[7]+u[4]+u[1])*x[9]+9.2832504447373218e-02*( u[12]+u[9]+u[6]+u[3]+u[0])*x[7]+-9.2832504447373218e-02*x[8]*( u[11]+u[8]+u[5]+u[2]), 0.0, 0.0, 0.0,
27 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, -9.2832504447373218e-02*x[9]*( u[12]+u[9]+u[6]+u[3]+u[0])+-9.2832504447373218e-02*x[6]*( u[11]+u[8]+u[5]+u[2])+9.2832504447373218e-02*( u[10]+u[7]+u[4]+u[1])*x[7], 9.2832504447373218e-02*( u[11]+u[8]+u[5]+u[2])*x[7]+9.2832504447373218e-02*x[8]*( u[12]+u[9]+u[6]+u[3]+u[0])+9.2832504447373218e-02*( u[10]+u[7]+u[4]+u[1])*x[6], 9.2832504447373218e-02*( u[10]+u[7]+u[4]+u[1])*x[9]+9.2832504447373218e-02*( u[12]+u[9]+u[6]+u[3]+u[0])*x[7]+-9.2832504447373218e-02*x[8]*( u[11]+u[8]+u[5]+u[2]), 9.2832504447373218e-02*x[8]*( u[10]+u[7]+u[4]+u[1])+9.2832504447373218e-02*x[9]*( u[11]+u[8]+u[5]+u[2])+-9.2832504447373218e-02*( u[12]+u[9]+u[6]+u[3]+u[0])*x[6], 0.0, 0.0, 0.0,
28 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 9.2832504447373218e-02*x[8]*( u[10]+u[7]+u[4]+u[1])+9.2832504447373218e-02*x[9]*( u[11]+u[8]+u[5]+u[2])+-9.2832504447373218e-02*( u[12]+u[9]+u[6]+u[3]+u[0])*x[6], -9.2832504447373218e-02*( u[10]+u[7]+u[4]+u[1])*x[9]+-9.2832504447373218e-02*( u[12]+u[9]+u[6]+u[3]+u[0])*x[7]+9.2832504447373218e-02*x[8]*( u[11]+u[8]+u[5]+u[2]), 9.2832504447373218e-02*( u[11]+u[8]+u[5]+u[2])*x[7]+9.2832504447373218e-02*x[8]*( u[12]+u[9]+u[6]+u[3]+u[0])+9.2832504447373218e-02*( u[10]+u[7]+u[4]+u[1])*x[6], 9.2832504447373218e-02*x[9]*( u[12]+u[9]+u[6]+u[3]+u[0])+9.2832504447373218e-02*x[6]*( u[11]+u[8]+u[5]+u[2])+-9.2832504447373218e-02*( u[10]+u[7]+u[4]+u[1])*x[7], 0.0, 0.0, 0.0,
29 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, -1.0000000000000001e-01*(x[6]*x[6])*pow( (x[6]*x[6])+(x[9]*x[9])+(x[7]*x[7])+(x[8]*x[8]),-(1.0/2.0))+-1.0000000000000001e-01*pow( (x[6]*x[6])+(x[9]*x[9])+(x[7]*x[7])+(x[8]*x[8]),(1.0/2.0))+1.0000000000000001e-01, -1.0000000000000001e-01*x[6]*x[7]*pow( (x[6]*x[6])+(x[9]*x[9])+(x[7]*x[7])+(x[8]*x[8]),-(1.0/2.0)), x[12]+-1.0000000000000001e-01*x[8]*x[6]*pow( (x[6]*x[6])+(x[9]*x[9])+(x[7]*x[7])+(x[8]*x[8]),-(1.0/2.0)), -1.0000000000000001e-01*x[9]*x[6]*pow( (x[6]*x[6])+(x[9]*x[9])+(x[7]*x[7])+(x[8]*x[8]),-(1.0/2.0))-x[11], 0.0, -x[9], x[8],
30 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, -1.0000000000000001e-01*x[6]*x[7]*pow( (x[6]*x[6])+(x[9]*x[9])+(x[7]*x[7])+(x[8]*x[8]),-(1.0/2.0)), -x[12]+-1.0000000000000001e-01*(x[7]*x[7])*pow( (x[6]*x[6])+(x[9]*x[9])+(x[7]*x[7])+(x[8]*x[8]),-(1.0/2.0))+-1.0000000000000001e-01*pow( (x[6]*x[6])+(x[9]*x[9])+(x[7]*x[7])+(x[8]*x[8]),(1.0/2.0))+1.0000000000000001e-01, -1.0000000000000001e-01*x[8]*x[7]*pow( (x[6]*x[6])+(x[9]*x[9])+(x[7]*x[7])+(x[8]*x[8]),-(1.0/2.0)), -1.0000000000000001e-01*x[9]*x[7]*pow( (x[6]*x[6])+(x[9]*x[9])+(x[7]*x[7])+(x[8]*x[8]),-(1.0/2.0))+x[10], x[9], 0.0, -x[7],
31 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, -1.0000000000000001e-01*x[8]*x[6]*pow( (x[6]*x[6])+(x[9]*x[9])+(x[7]*x[7])+(x[8]*x[8]),-(1.0/2.0)), x[11]+-1.0000000000000001e-01*x[8]*x[7]*pow( (x[6]*x[6])+(x[9]*x[9])+(x[7]*x[7])+(x[8]*x[8]),-(1.0/2.0)), -1.0000000000000001e-01*(x[8]*x[8])*pow( (x[6]*x[6])+(x[9]*x[9])+(x[7]*x[7])+(x[8]*x[8]),-(1.0/2.0))-x[10]+-1.0000000000000001e-01*pow( (x[6]*x[6])+(x[9]*x[9])+(x[7]*x[7])+(x[8]*x[8]),(1.0/2.0))+1.0000000000000001e-01, -1.0000000000000001e-01*x[8]*x[9]*pow( (x[6]*x[6])+(x[9]*x[9])+(x[7]*x[7])+(x[8]*x[8]),-(1.0/2.0)), -x[8], x[7], 0.0,
32 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, -1.0000000000000001e-01*x[9]*x[6]*pow( (x[6]*x[6])+(x[9]*x[9])+(x[7]*x[7])+(x[8]*x[8]),-(1.0/2.0)), -1.0000000000000001e-01*x[9]*x[7]*pow( (x[6]*x[6])+(x[9]*x[9])+(x[7]*x[7])+(x[8]*x[8]),-(1.0/2.0))-x[10], -1.0000000000000001e-01*x[8]*x[9]*pow( (x[6]*x[6])+(x[9]*x[9])+(x[7]*x[7])+(x[8]*x[8]),-(1.0/2.0))-x[11], -x[12]+-1.0000000000000001e-01*(x[9]*x[9])*pow( (x[6]*x[6])+(x[9]*x[9])+(x[7]*x[7])+(x[8]*x[8]),-(1.0/2.0))+-1.0000000000000001e-01*pow( (x[6]*x[6])+(x[9]*x[9])+(x[7]*x[7])+(x[8]*x[8]),(1.0/2.0))+1.0000000000000001e-01, -x[7], -x[8], -x[9],
33 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
34 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
35 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0;
51 Eigen::Matrix<double, 13, 13> jac6DOFInputs(
const double (&x)[13],
const double (&u)[13],
const double t = 0) {
52 Eigen::Matrix<double, 13, 13> mat;
53 mat << 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
54 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
55 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
56 9.2832504447373218e-02*x[8]*x[6]+9.2832504447373218e-02*x[9]*x[7], 4.6416252223686609e-02*(x[6]*x[6])+4.6416252223686609e-02*(x[9]*x[9])+-4.6416252223686609e-02*(x[7]*x[7])+-4.6416252223686609e-02*(x[8]*x[8]), 9.2832504447373218e-02*x[6]*x[7]+-9.2832504447373218e-02*x[8]*x[9], 9.2832504447373218e-02*x[8]*x[6]+9.2832504447373218e-02*x[9]*x[7], 4.6416252223686609e-02*(x[6]*x[6])+4.6416252223686609e-02*(x[9]*x[9])+-4.6416252223686609e-02*(x[7]*x[7])+-4.6416252223686609e-02*(x[8]*x[8]), 9.2832504447373218e-02*x[6]*x[7]+-9.2832504447373218e-02*x[8]*x[9], 9.2832504447373218e-02*x[8]*x[6]+9.2832504447373218e-02*x[9]*x[7], 4.6416252223686609e-02*(x[6]*x[6])+4.6416252223686609e-02*(x[9]*x[9])+-4.6416252223686609e-02*(x[7]*x[7])+-4.6416252223686609e-02*(x[8]*x[8]), 9.2832504447373218e-02*x[6]*x[7]+-9.2832504447373218e-02*x[8]*x[9], 9.2832504447373218e-02*x[8]*x[6]+9.2832504447373218e-02*x[9]*x[7], 4.6416252223686609e-02*(x[6]*x[6])+4.6416252223686609e-02*(x[9]*x[9])+-4.6416252223686609e-02*(x[7]*x[7])+-4.6416252223686609e-02*(x[8]*x[8]), 9.2832504447373218e-02*x[6]*x[7]+-9.2832504447373218e-02*x[8]*x[9], 9.2832504447373218e-02*x[8]*x[6]+9.2832504447373218e-02*x[9]*x[7],
57 -9.2832504447373218e-02*x[9]*x[6]+9.2832504447373218e-02*x[8]*x[7], 9.2832504447373218e-02*x[6]*x[7]+9.2832504447373218e-02*x[8]*x[9], -4.6416252223686609e-02*(x[6]*x[6])+4.6416252223686609e-02*(x[9]*x[9])+4.6416252223686609e-02*(x[7]*x[7])+-4.6416252223686609e-02*(x[8]*x[8]), -9.2832504447373218e-02*x[9]*x[6]+9.2832504447373218e-02*x[8]*x[7], 9.2832504447373218e-02*x[6]*x[7]+9.2832504447373218e-02*x[8]*x[9], -4.6416252223686609e-02*(x[6]*x[6])+4.6416252223686609e-02*(x[9]*x[9])+4.6416252223686609e-02*(x[7]*x[7])+-4.6416252223686609e-02*(x[8]*x[8]), -9.2832504447373218e-02*x[9]*x[6]+9.2832504447373218e-02*x[8]*x[7], 9.2832504447373218e-02*x[6]*x[7]+9.2832504447373218e-02*x[8]*x[9], -4.6416252223686609e-02*(x[6]*x[6])+4.6416252223686609e-02*(x[9]*x[9])+4.6416252223686609e-02*(x[7]*x[7])+-4.6416252223686609e-02*(x[8]*x[8]), -9.2832504447373218e-02*x[9]*x[6]+9.2832504447373218e-02*x[8]*x[7], 9.2832504447373218e-02*x[6]*x[7]+9.2832504447373218e-02*x[8]*x[9], -4.6416252223686609e-02*(x[6]*x[6])+4.6416252223686609e-02*(x[9]*x[9])+4.6416252223686609e-02*(x[7]*x[7])+-4.6416252223686609e-02*(x[8]*x[8]), -9.2832504447373218e-02*x[9]*x[6]+9.2832504447373218e-02*x[8]*x[7],
58 -4.6416252223686609e-02*(x[6]*x[6])+4.6416252223686609e-02*(x[9]*x[9])+-4.6416252223686609e-02*(x[7]*x[7])+4.6416252223686609e-02*(x[8]*x[8]), 9.2832504447373218e-02*x[8]*x[6]+-9.2832504447373218e-02*x[9]*x[7], 9.2832504447373218e-02*x[9]*x[6]+9.2832504447373218e-02*x[8]*x[7], -4.6416252223686609e-02*(x[6]*x[6])+4.6416252223686609e-02*(x[9]*x[9])+-4.6416252223686609e-02*(x[7]*x[7])+4.6416252223686609e-02*(x[8]*x[8]), 9.2832504447373218e-02*x[8]*x[6]+-9.2832504447373218e-02*x[9]*x[7], 9.2832504447373218e-02*x[9]*x[6]+9.2832504447373218e-02*x[8]*x[7], -4.6416252223686609e-02*(x[6]*x[6])+4.6416252223686609e-02*(x[9]*x[9])+-4.6416252223686609e-02*(x[7]*x[7])+4.6416252223686609e-02*(x[8]*x[8]), 9.2832504447373218e-02*x[8]*x[6]+-9.2832504447373218e-02*x[9]*x[7], 9.2832504447373218e-02*x[9]*x[6]+9.2832504447373218e-02*x[8]*x[7], -4.6416252223686609e-02*(x[6]*x[6])+4.6416252223686609e-02*(x[9]*x[9])+-4.6416252223686609e-02*(x[7]*x[7])+4.6416252223686609e-02*(x[8]*x[8]), 9.2832504447373218e-02*x[8]*x[6]+-9.2832504447373218e-02*x[9]*x[7], 9.2832504447373218e-02*x[9]*x[6]+9.2832504447373218e-02*x[8]*x[7], -4.6416252223686609e-02*(x[6]*x[6])+4.6416252223686609e-02*(x[9]*x[9])+-4.6416252223686609e-02*(x[7]*x[7])+4.6416252223686609e-02*(x[8]*x[8]),
59 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
60 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
61 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
62 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
63 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, -9.3456570500425398e+04, 0.0, 0.0, 0.0, 0.0, 0.0, 2.8303592146116702e-01,
64 0.0, 0.0, 0.0, -1.8094457708771880e-01, 0.0, 0.0, 0.0, 0.0, 0.0, 1.8094457708771880e-01, 0.0, 0.0, 0.0,
65 0.0, 0.0, 2.6864109488476967e-01, 0.0, -8.8703494926719286e+04, 0.0, 0.0, 0.0, 2.6864109488476967e-01, 0.0, 2.6864109488476967e-01, 0.0, 0.0;
71 #endif //LODESTAR_LUNARLANDERDEMO_HPP