@@ -317,6 +317,7 @@ def _setup_dynamics_objects(self, **kwargs) -> None:
317317 vN = None ,
318318 oe = random_orbit ,
319319 mu = orbitalMotion .MU_EARTH * 1e9 ,
320+ min_orbital_radius = (orbitalMotion .REQ_EARTH + 200 ) * 1e3 ,
320321 )
321322 def setup_spacecraft_hub (
322323 self ,
@@ -330,6 +331,7 @@ def setup_spacecraft_hub(
330331 rN : Optional [Iterable [float ]],
331332 vN : Optional [Iterable [float ]],
332333 mu : float ,
334+ min_orbital_radius : float ,
333335 priority : int = 2000 ,
334336 ** kwargs ,
335337 ) -> None :
@@ -352,6 +354,7 @@ def setup_spacecraft_hub(
352354 mu: Gravitational parameter (used only with ``oe``).
353355 rN: [m] Initial inertial position.
354356 vN: [m/s] Initial inertial velocity.
357+ min_orbital_radius: [m] Minimum allowable orbital radius.
355358 priority: Model priority.
356359 kwargs: Passed to other setup functions.
357360 """
@@ -384,6 +387,8 @@ def setup_spacecraft_hub(
384387 self .task_name , self .scObject , ModelPriority = priority
385388 )
386389
390+ self .min_orbital_radius = min_orbital_radius
391+
387392 self .setup_gravity_bodies ()
388393 self .setup_disturbance_torque (** kwargs )
389394 self .setup_density_model ()
@@ -502,9 +507,10 @@ def setup_simple_nav_object(self, priority: int = 1400, **kwargs) -> None:
502507 def altitude_valid (self ) -> bool :
503508 """Check that satellite has not deorbited.
504509
505- Checks if altitude is greater than 200km above Earth's surface.
510+ Checks if altitude is greater than the configurable minimum orbital radius
511+ (`min_orbital_radius`). The default value corresponds to 200km above Earth's surface.
506512 """
507- return np .linalg .norm (self .r_BN_N ) > ( orbitalMotion . REQ_EARTH + 200 ) * 1e3
513+ return np .linalg .norm (self .r_BN_N ) > self . min_orbital_radius
508514
509515 @default_args (
510516 wheelSpeeds = lambda : np .random .uniform (- 1500 , 1500 , 3 ),
0 commit comments