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}