controllability/
controllability.rs

1use control_sys::analysis;
2use control_sys::model;
3
4extern crate nalgebra as na;
5
6fn main() -> Result<(), Box<dyn std::error::Error>> {
7    let ss_model = model::DiscreteStateSpaceModel::from_matrices(
8        &nalgebra::dmatrix![1.0, -2.0; 
9                            2.0, 1.0],
10        &nalgebra::dmatrix![1.0;
11                            2.0],
12        &nalgebra::dmatrix![],
13        &nalgebra::dmatrix![],
14        0.05,
15    );
16
17    let (is_controllable, controllability_matrix) = analysis::is_ss_controllable(&ss_model);
18
19    if is_controllable {
20        println!("The system is controllable");
21        println!("Its controllability matrix is: {}", controllability_matrix);
22    }
23
24    Ok(())
25}