DataGen.m 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. clc
  2. clear
  3. close all
  4. %%
  5. addpath(genpath(pwd))
  6. %%
  7. kappa = 1;
  8. %%
  9. [Mission_Param, Environment_Param, Normalized_Param] = paraSet(); % 全局变量
  10. X = load("XSolve.mat").X;
  11. [X, f] = fsolve(@(X) constain_Gauss(X, kappa, Mission_Param, Environment_Param), X);
  12. %%
  13. %%
  14. tf = X(7)*1000;
  15. alpha = 1.2;
  16. sigma_max = tf/3;
  17. sig = sigma_max*(1-kappa);
  18. theta = sig;
  19. % if alpha<0
  20. % alpha = 0;
  21. % end
  22. %%
  23. P0 = Mission_Param.P0;
  24. ex0 = Mission_Param.ex0;
  25. ey0 = Mission_Param.ey0;
  26. hx0 = Mission_Param.hx0;
  27. hy0 = Mission_Param.hy0;
  28. L0 = Mission_Param.L0;
  29. m0 = Environment_Param.m0;
  30. tscale = Normalized_Param.tscale;
  31. Pf = Mission_Param.Pf;
  32. exf = Mission_Param.exf;
  33. eyf = Mission_Param.eyf;
  34. hxf = Mission_Param.hxf;
  35. hyf = Mission_Param.hyf;
  36. % Lf = Mission_Param.Lf;
  37. %%
  38. state0 = zeros(26,1);
  39. state0(1:13) = [P0 ex0 ey0 hx0 hy0 L0 X(1) X(2) X(3) X(4) X(5) X(6) m0]';
  40. state0(14:26) = state0(1:13)*erf(tf/(sqrt(2)*sig));
  41. % state0(14:26) = state0(1:13)*gammainc((tf)/theta, alpha)/gamma(alpha);
  42. % timespan = [0,tf];
  43. deltat = 100/tscale;
  44. timespan = [0:deltat:tf, tf];
  45. % timespan = linspace(0, tf, 15000);
  46. options = odeset('RelTol',3e-14,'AbsTol',1e-14);
  47. [t,state] = ode113(@dynamicModel_Gauss,timespan,state0,options,alpha,theta,sig,tf, Environment_Param);
  48. %%
  49. thrust_dire = zeros(size(t,1),3);
  50. for ii = 1:size(t,1)
  51. thrust_dire(ii, :) = thrust_direction_trans(state(ii,1:13), Environment_Param)';
  52. end
  53. %%
  54. Data = [state(:, 1:13), thrust_dire];
  55. %%
  56. DataFileName = './DataLib/Data.csv';
  57. writematrix(Data, DataFileName, Delimiter=',');