controllable = ZerosAndPoles.Analysis.isControllable(zp, method)
Function ZerosAndPoles.Analysis.isControllable checks the controllability of a zeros-and-poles transfer function. Therefore, the transfer function is converted into a state space representation which is applied to StateSpace.Analysis.isControllable.
ZerosAndPoles p = Modelica_LinearSystems2.ZerosAndPoles.p(); Modelica_LinearSystems2.ZerosAndPoles zp=(p+1)/(p^2 + 2*p +1); Types.Method method=Modelica_LinearSystems2.Types.StaircaseMethod.SVD Boolean controllable; algorithm controllable := Modelica_LinearSystems2.StateSpace.Analysis.isControllable(zp, method); // controllable = true
encapsulated function isControllable import Modelica_LinearSystems2; import Modelica_LinearSystems2.StateSpace; import Modelica_LinearSystems2.ZerosAndPoles; input ZerosAndPoles zp "ZerosAndPoles transfer function of a system"; input Modelica_LinearSystems2.Utilities.Types.StaircaseMethod method = Modelica_LinearSystems2.Utilities.Types.StaircaseMethod.SVD; output Boolean controllable; end isControllable;