determine controllability of a state-space system
Controllable( sys, opts )
System(ss); system object to test
(optional) equation(s) of the form option = value; specify options for the Controllable command
method = staircase or rank
Selects the method used for testing controllability. The default is staircase.
parameters = set(name = complexcons) or list(name = complexcons)
Specifies numeric values for parameters in sys. These values override those specified by the parameters field of the system object, which in turn override the settings in in SystemOptions(parameters). The numeric value on the right-hand side of each equation is substituted for the name on the left-hand side in the expressions that define the model. No checking is done during the substitution to determine whether the substituted value is valid. For example, a complex value can be substituted for the coefficient of a polynomial. If the complex value had been originally assigned to the model at creation, a warning would be generated.
The Controllable command determines whether sys, a state-space system, is controllable.
If sys is controllable, true is returned, otherwise false is returned.
Two methods, selected by the method option, are available for determining controllability.
The staircase method applies the controllable staircase transform to the A and B Matrices of sys. If the state matrix of the resulting controllable subsystem has the same dimension as A, the system is controllable, otherwise it is uncontrollable.
The rank method constructs the controllability matrix of sys system using the DynamicSystems[ControllabilityMatrix] command. If the matrix has full rank, the system is controllable, otherwise, it is uncontrollable.
An error occurs if sys is not a state-space system.
with( DynamicSystems ):
aSys := StateSpace( <<1,2>|<3,4>>, <<2,3>>, <<1,0>|<0,1>>, <<0,0>> ):
aSys:-a, aSys:-b, aSys:-c;
Controllable( aSys );
Controllable( aSys, method = rank );
Download Help Document
What kind of issue would you like to report? (Optional)