encapsulated function fromFactorization
import Modelica;
import Modelica_LinearSystems2;
import Modelica_LinearSystems2.WorkInProgress.DiscreteZerosAndPoles;
input Real n1[:] = fill(0, 0) "[p^0] coefficients of 1st order numerator polynomials" annotation(
Dialog(group = "y = k*(product(p+n1[i]) * product(p^2+n2[i,1]*p+n2[i,2])) / (product(p+d1[i])*product(p^2+d2[i,1]*p+d2[i,2])) *u"));
input Real n2[:, 2] = fill(0, 0, 2) "[p,p^0] coefficients of 2nd order numerator polynomials" annotation(
Dialog(group = "y = k*(product(p+n1[i]) * product(p^2+n2[i,1]*p+n2[i,2])) / (product(p+d1[i])*product(p^2+d2[i,1]*p+d2[i,2])) *u"));
input Real d1[:] = fill(0, 0) "[p^0] coefficients of 1st order denominator polynomials" annotation(
Dialog(group = "y = k*(product(p+n1[i]) * product(p^2+n2[i,1]*p+n2[i,2])) / (product(p+d1[i])*product(p^2+d2[i,1]*p+d2[i,2])) *u"));
input Real d2[:, 2] = fill(0, 0, 2) "[p,p^0] coefficients of 2nd order denominator polynomials" annotation(
Dialog(group = "y = k*(product(p+n1[i]) * product(p^2+n2[i,1]*p+n2[i,2])) / (product(p+d1[i])*product(p^2+d2[i,1]*p+d2[i,2])) *u"));
input Real k = 1.0 "Multiplicative factor of transfer function" annotation(
Dialog(group = "y = k*(product(p+n1[i]) * product(p^2+n2[i,1]*p+n2[i,2])) / (product(p+d1[i])*product(p^2+d2[i,1]*p+d2[i,2])) *u"));
input Modelica.Units.SI.Time Ts = 1 "Sample time";
input Modelica_LinearSystems2.Utilities.Types.Method method = Modelica_LinearSystems2.Utilities.Types.Method.Trapezoidal "Discretization method";
input String uName = "" "input name";
input String yName = "" "output name";
output DiscreteZerosAndPoles dzp(redeclare Real n1[size(n1, 1)], redeclare Real n2[size(n2, 1), 2], redeclare Real d1[size(d1, 1)], redeclare Real d2[size(d2, 1), 2]) "ZerosAndPoles transfer function";
end fromFactorization;