Main differences between V11.3 and V11.4 : Différence entre versions

De Wiki
Aller à : navigation, rechercher
(New data for Dormand Price 853 integrator)
(New possibilities for plotting)
 
(24 révisions intermédiaires par le même utilisateur non affichées)
Ligne 2 : Ligne 2 :
  
 
This version is compatible with the version 4.4 of the [http://patrius.cnes.fr PATRIUS] library.
 
This version is compatible with the version 4.4 of the [http://patrius.cnes.fr PATRIUS] library.
 +
 +
== Recurrent date events ==
 +
 +
Thanks to the V2.1.1 version of [http://genopus.cnes.fr GENOPUS], it is now possible to define date (relative or absolute ones) events with a recurrence (for example each day).
  
 
== New maneuvers trigerring criteriae ==
 
== New maneuvers trigerring criteriae ==
  
Thanks to the V2.1 version of [http://genopus.cnes.fr GENOPUS], new criteriae on nodes and apsides have been added to the previous ones (relative or absolute dates and <font color=#FF8C00 title="Argument Of Latitude">AOL</font>)
+
Thanks to the V2.1.1 version of [http://genopus.cnes.fr GENOPUS], new criteriae on nodes and apsides (as well as recurreent dates) have been added to the previous ones (relative or absolute dates and <font color=#FF8C00 title="Argument Of Latitude">AOL</font>)
  
 
== Impulsive maneuvers with orbital parameters criteriae ==
 
== Impulsive maneuvers with orbital parameters criteriae ==
  
Thanks to the V2.1 version of [http://genopus.cnes.fr GENOPUS], it is now possible to define an impulsive maneuver giving orbital parameters increments:
+
Thanks to the V2.1.1 version of [http://genopus.cnes.fr GENOPUS], it is now possible to define an impulsive maneuver giving orbital parameters increments:
 
* on semi-major axis
 
* on semi-major axis
 
* on eccentricity (and semi-major axis eventually)
 
* on eccentricity (and semi-major axis eventually)
 
* on inclination (and semi-major axis eventually)
 
* on inclination (and semi-major axis eventually)
 
== Recurrent date events ==
 
 
Thanks to the V2.1 version of [http://genopus.cnes.fr GENOPUS], it is now possible to define date (relative or absolute ones) events with a recurrence (for example each day).
 
  
 
== New data for Dormand Price 853 integrator ==
 
== New data for Dormand Price 853 integrator ==
  
Thanks to the V4.4 version of [http://patrius.cnes.fr PATRIUS] and the V2.1 version of [http://genopus.cnes.fr GENOPUS] with its new specific widget, it is now possible to by-pass the <font color=#FF8C00>Dormand Price 853</font> error mode on the minimum step. When this solution is chosen, the propagation will go on even if the conditions on precision will not be temporary fulfilled.
+
Thanks to the V4.4 version of [http://patrius.cnes.fr PATRIUS] and the V2.1.1 version of [http://genopus.cnes.fr GENOPUS] with its new specific widget, it is now possible to by-pass the <font color=#FF8C00>Dormand Price 853</font> error mode on the minimum step. When this solution is chosen, the propagation will go on even if the conditions on precision will not be temporary fulfilled.
  
Moreover, a user help is available to initialize tolérances values for different kind of trajectories:
+
Moreover, a user help is available to initialize tolerances values for different kind of trajectories:
  
 
: [[Fichier:TolerancesHelp.png]]
 
: [[Fichier:TolerancesHelp.png]]
Ligne 28 : Ligne 28 :
 
== Additional validity criteria on PRS coefficients ==
 
== Additional validity criteria on PRS coefficients ==
  
Thanks to the V2.1 version of [http://genopus.cnes.fr GENOPUS], besides validity interval of [0,1] for each coefficient, there is an additional test on the sum of the three coefficients (absorption, specular and diffuse) that must be equal to 1.
+
Thanks to the V2.1.1 version of [http://genopus.cnes.fr GENOPUS], besides validity interval of [0,1] for each coefficient, there is an additional test on the sum of the three coefficients (absorption, specular and diffuse) that must be equal to 1.
  
 
== Altitudes on stop criteria ==
 
== Altitudes on stop criteria ==
Ligne 44 : Ligne 44 :
 
== Ergonomics change for output variables selection ==
 
== Ergonomics change for output variables selection ==
  
Thanks to the V2.1 version of [http://genopus.cnes.fr GENOPUS], we use a [http://genius.cnes.fr/uploads/JavaDocs/V1.9/fr/cnes/genius/highLevel/GListSelect.html GListSelect] widget rather than the previous list.
+
Thanks to the V2.1.1 version of [http://genopus.cnes.fr GENOPUS], we use a [http://genius.cnes.fr/uploads/JavaDocs/V1.9/fr/cnes/genius/highLevel/GListSelect.html GListSelect] widget rather than the previous list.
  
 
::: [[Fichier:SaveResultsNew.png|400px]]
 
::: [[Fichier:SaveResultsNew.png|400px]]
  
Using it, it is easier to select / move / remove the variables we want to store in the [http://genius.cnes.fr/index.php/ResultsFileManagement#Madona_files MADONA columns format] file
+
Using it, it is easier to add / move / remove the variables we want to store in the [http://genius.cnes.fr/index.php/ResultsFileManagement#Madona_files MADONA columns format] file
 +
 
 +
== New possibilities for plotting ==
 +
 
 +
Thanks to the V1.9.1 version of [http://genius.cnes.fr GENIUS],it is possible to plot dashed curves. Moreover a new utility tool is available outside <font color=#556B2F>'''PSIMU'''</font> allowing to plot curves from different files (with possibility of relative information): see [[:Fichier:gplot-1.9.zip|here]] or getting it with the full [https://logiciels.cnes.fr/en/node/76?type=tel GENIUS package].
  
 
== New output variables ==
 
== New output variables ==
  
 
New variables are now available:
 
New variables are now available:
* '''F107''' (Solar Flux / 0 if the atmospheric model does not use it)
+
* '''F107''' (solar Flux / 0 if the atmospheric model does not use it)
* '''AP''' (Geomagnetic index / 0 if the atmospheric model does not use it)
+
* '''AP''' (geomagnetic index / 0 if the atmospheric model does not use it)
* '''DV''' (Cumulated velocity increment in m/s / 0 if no maneuvers)
+
* '''DV''' (cumulated velocity increment in m/s / 0 if no maneuvers)
  
 
Moreover, the time scale used for dates may be selected in the [[Output#List_of_available_variables|Output]] panel (<font color=#FF8C00 title="Coordinated Universal Time">UTC</font> by default)
 
Moreover, the time scale used for dates may be selected in the [[Output#List_of_available_variables|Output]] panel (<font color=#FF8C00 title="Coordinated Universal Time">UTC</font> by default)
Ligne 61 : Ligne 65 :
 
== Possibility to customize its own output variables ==
 
== Possibility to customize its own output variables ==
  
<font color=#556B2F>'''PSIMU'''</font> allows to get hundred of output variables but, for some users, this output list may be incomplete and they will have to wait for a new version to get them. Indeed, these variables could be so particuler that there will be no interest to integrate them in a standard <font color=#556B2F>'''PSIMU'''</font> version!
+
<font color=#556B2F>'''PSIMU'''</font> allows to get hundreds of output variables but, for some users, this output list may be incomplete and they will have to wait for a new version to get them. Indeed, these variables could be so particular that there will be no interest to integrate them in a standard <font color=#556B2F>'''PSIMU'''</font> version! A specific mechanism (see [[Customize_output_variables|here]]) is now proposed using the <font color=#FF8C00>Java</font> interface (so, not available with the <font color=#FF8C00 title="Graphical User Interface">GUI</font> mode) to add as many variables as wished. Of course, these variables will be found in the same list as the initial basic variables.
 
+
A specific mechanism is now proposed using the <font color=#FF8C00>Java</font> interface (so, not available with the <font color=#FF8C00 title="Graphical User Interface">GUI</font> mode) to add as many variables as wanted. Of course, these variables will be found in the same list as the initial basic variables (see [[Customize_output_variables|here]]).
+
  
 
== New output modes ==
 
== New output modes ==
Ligne 73 : Ligne 75 :
 
* StorageType.'''FILE_COLUMNS''' ⇒ output variables stored in a [http://genius.cnes.fr/index.php/ResultsFileManagement#SqLite_files SQLite format] file
 
* StorageType.'''FILE_COLUMNS''' ⇒ output variables stored in a [http://genius.cnes.fr/index.php/ResultsFileManagement#SqLite_files SQLite format] file
  
Now, it is possible to combine any kind of output modes, using the following states:
+
Now, it is possible to combine any kind of output modes as explained [[Propagation#New_fashion_(since_V11.4)|here]].
 
+
* StorageType.'''MEMORY_SC''' (ex StorageType.'''MEMORY''') ⇒ spacecraft states memory stored
+
* StorageType.'''MEMORY_COL''' ⇒ output variables memory stored; possibility to get them using <font color=#4169E1>getVarsList()</font>, <font color=#4169E1>getVars(index)</font>, <font color=#4169E1>getVar(index,key)</font> methods
+
* StorageType.'''MEMORY_ALL''' ⇒ '''MEMORY_SC''' et '''MEMORY_COL'''
+
* StorageType.'''NONE''' ⇒ no memory storage
+
 
+
* StorageType.'''FILE_SC''' (ex StorageType.'''FILE_SC_BINARY''') ⇒ spacecraft states stored in a file
+
* StorageType.'''FILE_COL''' (ex StorageType.'''FILE_COLUMNS''') ⇒ output variables stored in a file
+
* StorageType.'''FILE_ALL''' ⇒ StorageType.'''FILE_SC''' et StorageType.'''FILE_COL'''
+
* StorageType.'''NONE''' ⇒ no files
+
 
+
In order to differentiate memory vs file choice, the <font color=#4169E1>propagateInMasterMode()</font> method can accept both states as in the examples below:
+
 
+
<syntaxhighlight lang="java">
+
test.propagateInMasterMode(output, events, StorageType.MEMORY_SC, StorageType.NONE);
+
</syntaxhighlight>
+
 
+
⇒ only spacecraft states memory stored (equivalent to the old '''MEMORY''' state)
+
 
+
<syntaxhighlight lang="java">
+
test.propagateInMasterMode(output, events, StorageType.NONE, StorageType.File_COL);
+
</syntaxhighlight>
+
 
+
⇒ no memory storage and output variables stored in a file (as the old '''FILE_COLUMNS''' state)
+
 
+
<syntaxhighlight lang="java">
+
test.propagateInMasterMode(output, events, StorageType.MEMORY_SC, StorageType.File_ALL);
+
</syntaxhighlight>
+
 
+
⇒ spacecraft states stored both in memory and file as output variables will be stored in a file.
+
 
+
At last, to manage output variables as spacecraft states, these methods are available:
+
 
+
* <font color=#4169E1>getVariablesList()</font>, <font color=#4169E1>getVariablesWithoutEventsList()</font>, <font color=#4169E1>getVariablesOnlyEventsList()</font>
+
* <font color=#4169E1>getVariables(index)</font>, <font color=#4169E1>getVariablesWithoutEvents(index)</font>, <font color=#4169E1>getVariablesOnlyEvents(index)</font>
+
* <font color=#4169E1>getVariable (index, key)</font>, <font color=#4169E1>getVariableWithoutEvents(index, key)</font>, <font color=#4169E1>getVariableOnlyEvents(index, key)</font>
+
  
 
== Some new util methods ==
 
== Some new util methods ==
  
The following methods have been declared as "public":
+
New methods have been declared as "public" to read data from files (see [[Propagation#Some_new_util_methods|here]]).
 
+
* to read a [http://genius.cnes.fr/index.php/ResultsFileManagement#SqLite_files SQLite format] file and extract  spacecraft states:
+
 
+
<syntaxhighlight lang="java">
+
public static List<SpacecraftState> readSpacecraftStatesFromFile ( final boolean isEphem, final boolean isEvent, final String outputDirectory, final String nameFile, final String varName )
+
</syntaxhighlight>
+
 
+
* to convert a spacecraft state in String and vice versa:
+
 
+
<syntaxhighlight lang="java">
+
public static SpacecraftState fromBase64(final String spacecraftStateString)
+
public static String toBase64(final SpacecraftState currentState)
+
</syntaxhighlight>
+
 
+
* to read a [http://genius.cnes.fr/index.php/ResultsFileManagement#SqLite_files SQLite format] file and extract a list of variables:
+
 
+
<syntaxhighlight lang="java">
+
public static List<HashMap<String, Object>> readVariablesFromFile( final boolean isEphem, final boolean isEvent, final String outputDirectory, final String nameFile, final ArrayList<String> listOfVarnames )
+
</syntaxhighlight>
+
  
 
== Anomaly corrections ==
 
== Anomaly corrections ==
Ligne 141 : Ligne 88 :
 
* <font color=#556B2F>'''PSIMU'''</font> is now able to propagate a trajectory using initial orbital parameters correspond to an hyperbolic trajectory.
 
* <font color=#556B2F>'''PSIMU'''</font> is now able to propagate a trajectory using initial orbital parameters correspond to an hyperbolic trajectory.
 
* when propagation duration is exactly equals to zero, <font color=#556B2F>'''PSIMU'''</font> will no more exit in error.
 
* when propagation duration is exactly equals to zero, <font color=#556B2F>'''PSIMU'''</font> will no more exit in error.
* use of mean zonal terms was previously wrong in case of ''Droziner'' or ''Cunningham'' équations (not available in <font color=#FF8C00 title="Graphical User Interface">GUI</font> mode); it is now corrected.
+
* use of mean zonal terms was previously wrong in case of ''Droziner'' or ''Cunningham'' equations (not available in <font color=#FF8C00 title="Graphical User Interface">GUI</font> mode); it is now corrected.
 
* In <font color=#FF8C00>Java</font> mode, using '''FILE_SC_BINARY''' output option, calling <font color=#4169E1>getSpacecraftStateList()</font> or <font color=#4169E1>getSpacecraftState(i)</font> methods now gives the same kind of results (sort problem corrected).
 
* In <font color=#FF8C00>Java</font> mode, using '''FILE_SC_BINARY''' output option, calling <font color=#4169E1>getSpacecraftStateList()</font> or <font color=#4169E1>getSpacecraftState(i)</font> methods now gives the same kind of results (sort problem corrected).
 
* geocentric altitude and latitude (so in <font color=#FF8C00 title="International Terrestrial Reference Frame">ITRF</font> frame) are now correctly computed.
 
* geocentric altitude and latitude (so in <font color=#FF8C00 title="International Terrestrial Reference Frame">ITRF</font> frame) are now correctly computed.

Version actuelle en date du 8 novembre 2019 à 09:33

Compatibility with PATRIUS

This version is compatible with the version 4.4 of the PATRIUS library.

Recurrent date events

Thanks to the V2.1.1 version of GENOPUS, it is now possible to define date (relative or absolute ones) events with a recurrence (for example each day).

New maneuvers trigerring criteriae

Thanks to the V2.1.1 version of GENOPUS, new criteriae on nodes and apsides (as well as recurreent dates) have been added to the previous ones (relative or absolute dates and AOL)

Impulsive maneuvers with orbital parameters criteriae

Thanks to the V2.1.1 version of GENOPUS, it is now possible to define an impulsive maneuver giving orbital parameters increments:

  • on semi-major axis
  • on eccentricity (and semi-major axis eventually)
  • on inclination (and semi-major axis eventually)

New data for Dormand Price 853 integrator

Thanks to the V4.4 version of PATRIUS and the V2.1.1 version of GENOPUS with its new specific widget, it is now possible to by-pass the Dormand Price 853 error mode on the minimum step. When this solution is chosen, the propagation will go on even if the conditions on precision will not be temporary fulfilled.

Moreover, a user help is available to initialize tolerances values for different kind of trajectories:

TolerancesHelp.png

Additional validity criteria on PRS coefficients

Thanks to the V2.1.1 version of GENOPUS, besides validity interval of [0,1] for each coefficient, there is an additional test on the sum of the three coefficients (absorption, specular and diffuse) that must be equal to 1.

Altitudes on stop criteria

It is now possible to choose if the stop criteria will be a geocentric or geodetic altitude.

Best management of consistency between force model and vehicle panels

In the previous versions, if we decided to select an atmospheric model without entering data on mass and aerodynamic coefficients, the error was only detected when launching the propagation. Now it is detected sooner and the vehicle tab becomes red as it shifts in error mode.

By default attitude law

Now an attitude law is defined by default (TNW) to avoid to select if it is not critical.

Ergonomics change for output variables selection

Thanks to the V2.1.1 version of GENOPUS, we use a GListSelect widget rather than the previous list.

SaveResultsNew.png

Using it, it is easier to add / move / remove the variables we want to store in the MADONA columns format file

New possibilities for plotting

Thanks to the V1.9.1 version of GENIUS,it is possible to plot dashed curves. Moreover a new utility tool is available outside PSIMU allowing to plot curves from different files (with possibility of relative information): see here or getting it with the full GENIUS package.

New output variables

New variables are now available:

  • F107 (solar Flux / 0 if the atmospheric model does not use it)
  • AP (geomagnetic index / 0 if the atmospheric model does not use it)
  • DV (cumulated velocity increment in m/s / 0 if no maneuvers)

Moreover, the time scale used for dates may be selected in the Output panel (UTC by default)

Possibility to customize its own output variables

PSIMU allows to get hundreds of output variables but, for some users, this output list may be incomplete and they will have to wait for a new version to get them. Indeed, these variables could be so particular that there will be no interest to integrate them in a standard PSIMU version! A specific mechanism (see here) is now proposed using the Java interface (so, not available with the GUI mode) to add as many variables as wished. Of course, these variables will be found in the same list as the initial basic variables.

New output modes

Previously, using Java interface, only three output modes were available:

  • StorageType.MEMORY ⇒ spacecraft states memory stored
  • StorageType.FILE_SC_BINARY ⇒ spacecraft states directly stored in a SQLite format file
  • StorageType.FILE_COLUMNS ⇒ output variables stored in a SQLite format file

Now, it is possible to combine any kind of output modes as explained here.

Some new util methods

New methods have been declared as "public" to read data from files (see here).

Anomaly corrections

  • Corrections due to GENOPUS anomalies
  • PSIMU is now able to propagate a trajectory using initial orbital parameters correspond to an hyperbolic trajectory.
  • when propagation duration is exactly equals to zero, PSIMU will no more exit in error.
  • use of mean zonal terms was previously wrong in case of Droziner or Cunningham equations (not available in GUI mode); it is now corrected.
  • In Java mode, using FILE_SC_BINARY output option, calling getSpacecraftStateList() or getSpacecraftState(i) methods now gives the same kind of results (sort problem corrected).
  • geocentric altitude and latitude (so in ITRF frame) are now correctly computed.