control_sys/
trajectory.rs

1extern crate nalgebra as na;
2
3/// Generate a pulse trajectory
4///
5/// # Arguments
6///
7/// * `time_steps` - Number of time_steps on which the trajectory should be generated
8///
9/// # Returns
10///
11/// A matrix that contains the trajectory.
12pub fn generate_pulse_trajectory(time_steps: usize) -> na::DMatrix<f64> {
13    let mut traj = na::DMatrix::<f64>::zeros(time_steps, 1);
14    traj.view_range_mut(0..time_steps / 3, 0..1)
15        .copy_from(&na::DMatrix::from_element(time_steps / 3, 1, 1.0));
16    traj.view_range_mut(2 * time_steps / 3..time_steps, 0..1)
17        .copy_from(&na::DMatrix::from_element(time_steps / 3, 1, 1.0));
18
19    traj
20}