25 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
29 std::shared_ptr<OdeSolver> ode_solver,
30 std::shared_ptr<OdeSolver> sim_ode_solver =
nullptr)
47 const Eigen::Ref<const Eigen::VectorXd> & x,
48 const Eigen::Ref<const Eigen::VectorXd> & next_x,
49 Eigen::Ref<Eigen::VectorXd> u);
53 const Eigen::Ref<const Eigen::VectorXd> & x,
54 const Eigen::Ref<const Eigen::MatrixXd> & u_list,
55 Eigen::Ref<Eigen::MatrixXd> DhDu_list);
58 Eigen::VectorXd
eqAmulFunc(
const Eigen::Ref<const Eigen::VectorXd> & vec);
98 std::shared_ptr<Eigen::Map<Eigen::VectorXd>>
DhDu_vec_;
108 const Eigen::IOFormat
vecfmt_dump_ = Eigen::IOFormat(Eigen::StreamPrecision, 0,
", ",
", ",
"",
"",
"",
"");
const Eigen::IOFormat vecfmt_dump_
double horizon_increase_ratio_
void calcDhDuList(double t, const Eigen::Ref< const Eigen::VectorXd > &x, const Eigen::Ref< const Eigen::MatrixXd > &u_list, Eigen::Ref< Eigen::MatrixXd > DhDu_list)
Calculate the list in the horizon.
Eigen::VectorXd delta_u_vec_
Eigen::VectorXd x_with_delta_
Eigen::MatrixXd u_list_Amul_func_
std::shared_ptr< Eigen::Map< Eigen::VectorXd > > DhDu_vec_Amul_func_
Eigen::MatrixXd DhDu_list_with_delta_
EIGEN_MAKE_ALIGNED_OPERATOR_NEW CgmresSolver(std::shared_ptr< CgmresProblem > problem, std::shared_ptr< OdeSolver > ode_solver, std::shared_ptr< OdeSolver > sim_ode_solver=nullptr)
Constructor.
void calcControlInput(double t, const Eigen::Ref< const Eigen::VectorXd > &x, const Eigen::Ref< const Eigen::VectorXd > &next_x, Eigen::Ref< Eigen::VectorXd > u)
Calculate the control input.
Eigen::VectorXd eqAmulFunc(const Eigen::Ref< const Eigen::VectorXd > &vec)
Function to return where is given.
std::shared_ptr< CgmresProblem > problem_
std::shared_ptr< Eigen::Map< Eigen::VectorXd > > DhDu_vec_
Eigen::MatrixXd DhDu_list_
std::shared_ptr< OdeSolver > sim_ode_solver_
std::shared_ptr< Eigen::Map< Eigen::VectorXd > > DhDu_vec_with_delta_
Eigen::MatrixXd lmd_list_
Eigen::MatrixXd DhDu_list_Amul_func_
double finite_diff_delta_
double steady_horizon_duration_
std::shared_ptr< OdeSolver > ode_solver_