Linear Time-Invariant (LTI) Systems¶
Much of network control assumes the state dynamics follow a linear time-invariant model.
or the continuous time analog
These functions provide assistive functions to help with the transition from a network model to a linear systems model as well as facilitate generating specific realizations of a LTI system (with weights) from a structured network.
-
netcontrolz.
kalman_generic_rank
(G, controls[, repeats=None])[source]¶ Finds the reachability corresponding to a graph
G
(adjacency matrix A) and itscontrols
(a list of tuples of node objects) by brute force computing the Kalman rank condition:In order to compute the rank generically, we generate random entries for A and B, subject to their zero/non-zero sparsity patterns and compute the true rank. We repeat this
repeats
times (default is 100) and return the largest value.
-
netcontrolz.
kalman_generic_rank_
(G, controls[, repeats=None])[source]¶ Finds the reachability corresponding to a graph
G
(adjacency matrix A) and itscontrols
(a list of tuples of node indices) by brute force computing the Kalman rank condition:In order to compute the rank generically, we generate random entries for A and B, subject to their zero/non-zero sparsity patterns and compute the true rank. We repeat this
repeats
times (default is 100) and return the largest value.
-
netcontrolz.
controls_idx
(G, controls)[source]¶ Convenience function to return the list of tuples of control indices of a network
G
corresponding to the list of tuples of node objects incontrols
.
-
netcontrolz.
input_matrix
(G, controls[, m=None])[source]¶ Returns the
n
xm
input matrix B corresponding to the list of tuplescontrols
of node indices that are driven by the controls, wheren
is the number of nodes in the networkG
(ifG
is not compact, then the sizen
may be larger than the number of nodes). Ifm
is not specified, thenm
is taken as the number of controls (i.e., the length ofcontrols
).
-
netcontrolz.
input_matrix_
(n, controls[, m=None])[source]¶ Returns the
n
xm
input matrix B corresponding to the list of tuplescontrols
of node indices that are driven by the controls. Ifm
is not specified, thenm
is taken as the number of controls (i.e., the length ofcontrols
).