<?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=ContinuousManeuverByEvents_4.4</id>
	<title>ContinuousManeuverByEvents 4.4 - 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=ContinuousManeuverByEvents_4.4"/>
	<link rel="alternate" type="text/html" href="https://patrius.cnes.fr/index.php?title=ContinuousManeuverByEvents_4.4&amp;action=history"/>
	<updated>2026-04-04T19:18:24Z</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=ContinuousManeuverByEvents_4.4&amp;diff=2501&amp;oldid=prev</id>
		<title>Admin : Page créée avec « &lt;syntaxhighlight lang=&quot;java&quot;&gt; public class ContinuousManeuverByEvents {      public static void main(String[] args) throws PatriusException, IOException, URISyntaxExceptio... »</title>
		<link rel="alternate" type="text/html" href="https://patrius.cnes.fr/index.php?title=ContinuousManeuverByEvents_4.4&amp;diff=2501&amp;oldid=prev"/>
		<updated>2019-10-03T12:50:51Z</updated>

		<summary type="html">&lt;p&gt;Page créée avec « &amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt; public class ContinuousManeuverByEvents {      public static void main(String[] args) throws PatriusException, IOException, URISyntaxExceptio... »&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 ContinuousManeuverByEvents {&lt;br /&gt;
&lt;br /&gt;
    public static void main(String[] args) throws PatriusException, IOException, URISyntaxException {&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); // au lieu de new PropulsiveProperty(&amp;quot;PROP&amp;quot;, 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&lt;br /&gt;
        // Duration of the 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;
        // Start and end thrust events&lt;br /&gt;
        final EventDetector eventStart = new DateDetector(startDate);&lt;br /&gt;
        final EventDetector eventEnd = new DateDetector(startDate.shiftedBy(duration));&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(eventStart, eventEnd, prop, direction, mm, tank, LOFType.TNW);&lt;br /&gt;
//SPECIFIC&lt;br /&gt;
&lt;br /&gt;
        System.out.println(&amp;quot;End of the thrust: &amp;quot;+man.getEndDate());&lt;br /&gt;
        System.out.println(&amp;quot;Duration of the thrust: &amp;quot;+duration+&amp;quot; s&amp;quot;);&lt;br /&gt;
        System.out.println(&amp;quot;Duration of the thrust: &amp;quot;+man.getEndDate().durationFrom(startDate)+&amp;quot; s&amp;quot;);&lt;br /&gt;
        // The getFrame() method is returning &amp;quot;null&amp;quot; as a LOF frame is not define as a frame.&lt;br /&gt;
        // Nevertheless, an attitude law will not be mandatory when propagating the orbit.&lt;br /&gt;
        System.out.println(&amp;quot;Maneuver frame: &amp;quot;+man.getFrame());&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>