<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="fr">
	<id>https://patrius.cnes.fr/index.php?action=history&amp;feed=atom&amp;title=SequenceOfManeuvers_4.1</id>
	<title>SequenceOfManeuvers 4.1 - Historique des versions</title>
	<link rel="self" type="application/atom+xml" href="https://patrius.cnes.fr/index.php?action=history&amp;feed=atom&amp;title=SequenceOfManeuvers_4.1"/>
	<link rel="alternate" type="text/html" href="https://patrius.cnes.fr/index.php?title=SequenceOfManeuvers_4.1&amp;action=history"/>
	<updated>2026-04-07T03:33:11Z</updated>
	<subtitle>Historique des versions pour cette page sur le wiki</subtitle>
	<generator>MediaWiki 1.43.6</generator>
	<entry>
		<id>https://patrius.cnes.fr/index.php?title=SequenceOfManeuvers_4.1&amp;diff=1842&amp;oldid=prev</id>
		<title>Admin : Page créée avec « &lt;syntaxhighlight lang=&quot;java&quot;&gt; public class SequenceOfManeuvers {      public static void main(String[] args) throws PatriusException {                  // Patrius Dataset... »</title>
		<link rel="alternate" type="text/html" href="https://patrius.cnes.fr/index.php?title=SequenceOfManeuvers_4.1&amp;diff=1842&amp;oldid=prev"/>
		<updated>2018-12-18T10:24:56Z</updated>

		<summary type="html">&lt;p&gt;Page créée avec « &amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt; public class SequenceOfManeuvers {      public static void main(String[] args) throws PatriusException {                  // Patrius Dataset... »&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nouvelle page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public class SequenceOfManeuvers {&lt;br /&gt;
&lt;br /&gt;
    public static void main(String[] args) throws PatriusException {&lt;br /&gt;
        &lt;br /&gt;
        // Patrius Dataset initialization (needed for example to get the UTC time)&lt;br /&gt;
        PatriusDataset.addResourcesFromPatriusDataset() ;&lt;br /&gt;
&lt;br /&gt;
        // Recovery of the UTC time scale using a &amp;quot;factory&amp;quot; (not to duplicate such unique object)&lt;br /&gt;
        final TimeScale TUC = TimeScalesFactory.getUTC();&lt;br /&gt;
&lt;br /&gt;
        // Creating a mass model with a main part and with a tank&lt;br /&gt;
        final AssemblyBuilder builder = new AssemblyBuilder();&lt;br /&gt;
        &lt;br /&gt;
        // Main part (dry mass)&lt;br /&gt;
        final double dryMass = 1000.;&lt;br /&gt;
        builder.addMainPart(&amp;quot;MAIN&amp;quot;);&lt;br /&gt;
        builder.addProperty(new MassProperty(dryMass), &amp;quot;MAIN&amp;quot;);&lt;br /&gt;
        &lt;br /&gt;
        // Tank part (ergols mass)&lt;br /&gt;
        final double ergolsMass = 100.;&lt;br /&gt;
        final TankProperty tank = new TankProperty(ergolsMass);&lt;br /&gt;
        builder.addPart(&amp;quot;TANK&amp;quot;, &amp;quot;MAIN&amp;quot;, Transform.IDENTITY);&lt;br /&gt;
        builder.addProperty(tank, &amp;quot;TANK&amp;quot;);&lt;br /&gt;
        &lt;br /&gt;
        // Engine part&lt;br /&gt;
        final double isp = 300.;&lt;br /&gt;
        final double thrust = 400.;&lt;br /&gt;
        final PropulsiveProperty prop = new PropulsiveProperty(thrust, isp);&lt;br /&gt;
        builder.addPart(&amp;quot;PROP&amp;quot;, &amp;quot;MAIN&amp;quot;, Transform.IDENTITY);&lt;br /&gt;
        builder.addProperty(prop, &amp;quot;PROP&amp;quot;);&lt;br /&gt;
        &lt;br /&gt;
        final Assembly assembly = builder.returnAssembly();&lt;br /&gt;
        final MassProvider mm = new MassModel(assembly);&lt;br /&gt;
        &lt;br /&gt;
// SPECIFIC IMPULSIVE MANEUVER&lt;br /&gt;
        // Event corresponding to the criteria to trigger the impulsive maneuver&lt;br /&gt;
        // (when the S/C is at the apogee)&lt;br /&gt;
        final EventDetector event = new AnomalyDetector(PositionAngle.TRUE, FastMath.PI);&lt;br /&gt;
        // Creation of the impulsive maneuver (20 m/s int the x vehicle direction)&lt;br /&gt;
        final Vector3D deltaV = new Vector3D(20., 0., 0.);&lt;br /&gt;
        final ImpulseManeuver imp = new ImpulseManeuver(event, deltaV, prop, mm, tank, LOFType.TNW);&lt;br /&gt;
        &lt;br /&gt;
// SPECIFIC CONTINUOUS MANEUVER&lt;br /&gt;
        // Duration of the continuous maneuver to get a 20 m/s boost&lt;br /&gt;
        final AbsoluteDate startDate = new AbsoluteDate(&amp;quot;2010-01-01T12:00:00.000&amp;quot;, TUC);&lt;br /&gt;
        final double G0 = 9.80665;&lt;br /&gt;
        final double duration = G0*isp*mm.getTotalMass()*(1. - FastMath.exp(-20/(G0*isp)))/thrust;&lt;br /&gt;
        // Direction of the thrust in the X vehicle axis&lt;br /&gt;
        final Vector3D direction = new Vector3D(1., 0., 0.);&lt;br /&gt;
        // Creation of the continuous thrust maneuver&lt;br /&gt;
        final ContinuousThrustManeuver man = new ContinuousThrustManeuver(startDate, duration, prop, direction, mm, tank, LOFType.TNW);&lt;br /&gt;
&lt;br /&gt;
// SPECIFIC SEQUENCE OF MANEUVERS&lt;br /&gt;
        ManeuversSequence seq = new ManeuversSequence(10., 10.);&lt;br /&gt;
        seq.add(imp);&lt;br /&gt;
        seq.add(man);&lt;br /&gt;
        &lt;br /&gt;
        System.out.println(&amp;quot;Amount of maneuvers: &amp;quot;+seq.getSize());&lt;br /&gt;
&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
</feed>