is_controllable (MathScript RT Module Function)
- Updated2023-03-14
- 2 minute(s) read
is_controllable (MathScript RT Module Function)
Owning Class: info
Requires: Control Design and Simulation Module and MathScript RT Module
Syntax
[control, stabilize] = is_controllable(SysInSS)
[control, stabilize] = is_controllable(SysInSS, tol)
[control, stabilize] = is_controllable(A, B, tol)
Legacy Name: isctrb
Description
Determines whether a system model is controllable or stabilizable. A system of order n is controllable if the controllability matrix is full rank, meaning the rank of this matrix is equal to n. A system is stabilizable if all the unstable eigenvalues are controllable.
Inputs
| Name | Description |
|---|---|
| SysInSS | Specifies a linear time-invariant (LTI) system in transfer function, zero-pole-gain, or state-space form. This function converts transfer function and zero-pole-gain models to state-space form. |
| tol | Specifies the tolerance in determining whether the controllability matrix is rank-deficient. If a diagonal value in the A matrix of SysInSS is less than the value of tol, this function considers that value equal to 0. The default value of tol is 0.00000001. tol is a real scalar. |
| A | Specifies an n x n state matrix, where n is the number of states. The default is an empty matrix. A is a real matrix. |
| B | Specifies an n x m input matrix, where m is the number of inputs. The default is an empty matrix. B is a real matrix. |
Outputs
| Name | Description |
|---|---|
| control | Returns 1 if the SysInSS model is controllable. This output returns 0 if the model is not controllable. |
| stabilize | Returns 1 if the SysInSS model is stabilizable. This output returns 0 if the model is not stabilizable. |
Details
The following table lists the support characteristics of this function.
| Supported in the LabVIEW Run-Time Engine | Yes |
| Supported on RT targets | Yes |
| Suitable for bounded execution times on RT | Not characterized |
Examples
SysInSS = ss(-eye(2), [1 ; 1e-16], [1 1], 0);
[control, stabilize] = is_controllable(SysInSS, 1e-3);