This example demonstrates the conversion of a MIMO zeros-and-poles system into a state space system.
function conversionToZerosAndPolesMIMO
extends Modelica.Icons.Function;
import Modelica_LinearSystems2.StateSpace;
input Boolean systemOnFile = false "True, if state space system is defined on file" annotation(
Dialog(group = "system data definition"),
choices(checkBox = true));
input String fileName = "NoName" "file where matrix [A, B; C, D] is stored" annotation(
Dialog(group = "system data definition", loadSelector(filter = "MAT files (*.mat);; All files (*.*)", caption = "state space system data file"), enable = systemOnFile));
input String matrixName = "ABCD" "Name of the state space system matrix" annotation(
Dialog(group = "system data definition", enable = systemOnFile));
input Real A[:, size(A, 1)] = [-1.0, 0.0, 0.0; 0.0, -2.0, 0.0; 0.0, 0.0, -3.0] annotation(
Dialog(group = "system matrices", enable = not systemOnFile));
input Real B[size(A, 2), :] = [0.0, 1.0; 1.0, 1.0; -1.0, 0.0] annotation(
Dialog(group = "system matrices", enable = not systemOnFile));
input Real C[:, size(A, 1)] = [0.0, 1.0, 1.0; 1.0, 1.0, 1.0] annotation(
Dialog(group = "system matrices", enable = not systemOnFile));
input Real D[size(C, 1), size(B, 2)] = [1.0, 0.0; 0.0, 1.0] annotation(
Dialog(group = "system matrices", enable = not systemOnFile));
output Boolean ok;
end conversionToZerosAndPolesMIMO;