You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

128 lines
3.4 KiB

//
//#ifndef CSCI_THREE_H
//#define CSCI_THREE_H
//
///*
//typedef vector<double> State;
//typedef vector<double> Control;
//double Nx = 3.0;
//double Nz = 2.0;
//double mu = M_PI / 12.;
//Control control = { Nx, Nz, mu };
//vector<State> state_list;
//// 飞行器的运动学方程
//void dmove2(const State& x_input, State& dxdt, const double t) {
// double velocity = x_input[0];
// double gamma = x_input[1];
// double varphi = x_input[2];
// double nx = control[0];
// double nz = control[1];
// varphi = control[2];
//// if(varphi == 0){
//// varphi = control[2];
//// }
// double g = 9.81; // 重力加速度
// double velocity_ = g * (nx - sin(gamma)); // 米每秒
// double gamma_ = (g / velocity) * (nz * cos(varphi) - cos(gamma)); // 米每秒
// double varphi_ = g * nz * sin(varphi) / (velocity * cos(gamma));
// dxdt[0] = velocity_;
// dxdt[1] = gamma_;
// dxdt[2] = varphi_;
//}
//int k = 1;
//void write_pendulum(const State &x, const double t)
//{
// double velocity = x[0];
// double gamma = x[1];
// double varphi = x[2];
// double dx = velocity * cos(gamma) * sin(varphi);
// double dy = velocity * cos(gamma) * cos(varphi);
// double dz = velocity * sin(gamma);
// State new_state(6);
// new_state[0] = state_list[k - 1][0] + dx;
// new_state[1] = state_list[k - 1][1] + dy;
// new_state[2] = state_list[k - 1][2] + dz;
// new_state[3] = velocity;
// new_state[4] = gamma;
// new_state[5] = varphi;
// k++;
// state_list.push_back(new_state);
//}
//
//void boost_test(){
// double init_velocity = 260.0;
// double init_gamma = M_PI / 10.0;
// double init_varphi = 0.0;
// double init_x = 0.0;
// double init_y = 0.0;
// double init_z = 1000.0;
// State int_state(6);
// int_state[0] = init_x;
// int_state[1] = init_y;
// int_state[2] = init_z;
// int_state[3] = init_velocity;
// int_state[4] = init_gamma;
// int_state[5] = init_varphi;
// state_list.push_back(int_state);
// State init_state = { init_velocity, init_gamma, init_varphi };
// integrate_const(runge_kutta4<State>(), dmove2, init_state, 0.0 ,10.0 ,0.1, write_pendulum);
// string filename = R"(test.csv)";
// ofstream ofs(filename);
// if(ofs.is_open()){
// ofs << "x,y,z,v,g,f\n";
// for (const auto& state : state_list) {
// int i = 0;
// for (const auto& val : state) {
// cout << val << ",";
// if(i == 5){
// ofs << val;
// i = 0;
// }else{
// ofs << val << ",";
// i++;
// }
// }
// cout << "\n";
// ofs << "\n";
// }
// ofs.close();
// }
//}
//
// */
//
//#include <boost/numeric/odeint.hpp>
//
//using namespace std;
//using namespace boost::numeric::odeint;
//
//typedef vector<double> State;
//typedef vector<double> Control;
//
//class Tree {
//
//private:
// static int _k;
//
// static Control _control;
//
// static vector<State> _stateList;
//
//private:
//
// static void dmove2(const State& x_input, State& dxdt, const double t);
//
// static void write_pendulum(const State &x, const double t);
//
//public:
//
// static void setController(const State &control);
//
// static vector<State> run(const State& init_state, double start, double end, double dt);
//
//
//};
//
//
//#endif //CSCI_THREE_H