Skip to content

Commit 39d4b45

Browse files
committed
[MINOR] Make deorbit radius configurable
1 parent 2f16812 commit 39d4b45

File tree

2 files changed

+9
-2
lines changed

2 files changed

+9
-2
lines changed

src/bsk_rl/sim/dyn/base.py

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -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),

tests/unittest/sim/test_dynamics.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -153,6 +153,7 @@ def test_wheel_properties(self):
153153
)
154154
def test_altitude_valid(self, vec, valid):
155155
dyn = BasicDynamicsModel(MagicMock(simulator=MagicMock()), 1.0)
156+
dyn.min_orbital_radius = 1e6
156157
dyn.simulator.world = MagicMock()
157158
dyn.scObject = MagicMock()
158159
message = dyn.scObject.scStateOutMsg.read.return_value

0 commit comments

Comments
 (0)