Struct nyx_space::md::targeter::Targeter [−][src]
pub struct Targeter<'a, D: Dynamics<StateType = Spacecraft>, E: ErrorCtrl> where
DefaultAllocator: Allocator<f64, <D::StateType as State>::Size> + Allocator<f64, <D::StateType as State>::PropVecSize>, { pub prop: Arc<&'a Propagator<'a, D, E>>, pub objectives: Vec<Objective>, pub objective_frame: Option<(Frame, Arc<Cosm>)>, pub variables: Vec<Variable>, pub iterations: usize, }
Expand description
The target is a differential corrector.
Fields
prop: Arc<&'a Propagator<'a, D, E>>
The propagator setup (kind, stages, etc.)
objectives: Vec<Objective>
The list of objectives of this targeter
objective_frame: Option<(Frame, Arc<Cosm>)>
An optional frame (and Cosm) to compute the objectives in. Needed if the propagation frame is separate from objectives frame (e.g. for B Plane targeting).
variables: Vec<Variable>
The kind of correction to apply to achieve the objectives
iterations: usize
Maximum number of iterations
Implementations
Create a new Targeter which will apply an impulsive delta-v correction.
Create a new Targeter which will apply an impulsive delta-v correction.
pub fn delta_v_in_frame(
prop: Arc<&'a Propagator<'a, D, E>>,
objectives: Vec<Objective>,
objective_frame: Frame,
cosm: Arc<Cosm>
) -> Self
[src]
pub fn delta_v_in_frame(
prop: Arc<&'a Propagator<'a, D, E>>,
objectives: Vec<Objective>,
objective_frame: Frame,
cosm: Arc<Cosm>
) -> Self
[src]Create a new Targeter which will apply an impulsive delta-v correction. By default, max step is 0.5 km/s.
Create a new Targeter which will apply an impulsive delta-v correction.
pub fn delta_r_in_frame(
prop: Arc<&'a Propagator<'a, D, E>>,
objectives: Vec<Objective>,
objective_frame: Frame,
cosm: Arc<Cosm>
) -> Self
[src]
pub fn delta_r_in_frame(
prop: Arc<&'a Propagator<'a, D, E>>,
objectives: Vec<Objective>,
objective_frame: Frame,
cosm: Arc<Cosm>
) -> Self
[src]Create a new Targeter which will MOVE the position of the spacecraft at the correction epoch
Create a new Targeter which will MOVE the position of the spacecraft at the correction epoch
pub fn try_achieve_from(
&self,
initial_state: Spacecraft,
correction_epoch: Epoch,
achievement_epoch: Epoch
) -> Result<TargeterSolution, NyxError>
[src]
pub fn try_achieve_from(
&self,
initial_state: Spacecraft,
correction_epoch: Epoch,
achievement_epoch: Epoch
) -> Result<TargeterSolution, NyxError>
[src]Runs the targeter using finite differencing (for now).
pub fn try_achieve_fd(
&self,
initial_state: Spacecraft,
correction_epoch: Epoch,
achievement_epoch: Epoch
) -> Result<TargeterSolution, NyxError>
[src]
pub fn try_achieve_fd(
&self,
initial_state: Spacecraft,
correction_epoch: Epoch,
achievement_epoch: Epoch
) -> Result<TargeterSolution, NyxError>
[src]Differential correction using finite differencing
pub fn try_achieve_from_dual(
&self,
initial_state: Spacecraft,
correction_epoch: Epoch,
achievement_epoch: Epoch
) -> Result<TargeterSolution, NyxError>
[src]
pub fn try_achieve_from_dual(
&self,
initial_state: Spacecraft,
correction_epoch: Epoch,
achievement_epoch: Epoch
) -> Result<TargeterSolution, NyxError>
[src]Differential correction using hyperdual numbers for the objectives
Apply a correction and propagate to achievement epoch. Also checks that the objectives are indeed matched
pub fn apply_with_traj(
&self,
solution: TargeterSolution
) -> Result<(Spacecraft, ScTraj), NyxError>
[src]
pub fn apply_with_traj(
&self,
solution: TargeterSolution
) -> Result<(Spacecraft, ScTraj), NyxError>
[src]Apply a correction and propagate to achievement epoch, return the final state and trajectory. Also checks that the objectives are indeed matched. WARNING: This checks that the final objectives are matched with TEN TIMES the initial tolerances XXX Check why that is the case.
Trait Implementations
Auto Trait Implementations
impl<'a, D, E> !RefUnwindSafe for Targeter<'a, D, E>
impl<'a, D, E> !UnwindSafe for Targeter<'a, D, E>
Blanket Implementations
Mutably borrows from an owned value. Read more
type Output = T
type Output = T
Should always be Self
The inverse inclusion map: attempts to construct self
from the equivalent element of its
superset. Read more
pub fn is_in_subset(&self) -> bool
pub fn is_in_subset(&self) -> bool
Checks if self
is actually part of its subset T
(and can be converted to it).
pub fn to_subset_unchecked(&self) -> SS
pub fn to_subset_unchecked(&self) -> SS
Use with care! Same as self.to_subset
but without any property checks. Always succeeds.
pub fn from_subset(element: &SS) -> SP
pub fn from_subset(element: &SS) -> SP
The inclusion map: converts self
to the equivalent element of its superset.
pub fn vzip(self) -> V