tf = TransferFunction.Import.fromModel(modelName, T_linearize, fileName)
Generate a matrix of TransferFunction data records by linearization of a model defined by modelName. The linearization is performed at time T_linearize of the simulation. The system is generated using StateSpace.Import.fromFile followed by a conversion from state space to transfer function representation.
String modelName = "Modelica_LinearSystems2.Utilities.Plants.DoublePendulum"; Real T_linearize = 5; algorithm tf = Modelica_LinearSystems2.TransferFunction.Import.fromModel(modelName, T_linearize); // tf = [(0.13*s^4 + 0.05558*s^3 + 1.12241*s^2 - 5.16971*s + 9.04744)/(s^6 + 0.09*s^5 + 9.13717*s^4 - 32.0637*s^3 + 58.78*s^2 + 6.3659e-014*s - 1.1703e-014); (0.13*s^4 + 0.05558*s^3 + 1.12241*s^2 - 5.16971*s + 9.04744)/(s^5 + 0.09*s^4 + 9.13717*s^3 - 32.0637*s^2 + 58.78*s - 2.7929e-015); (-0.014*s^2 + 0.31906*s - 0.8106)/(s^4 + 0.09*s^3 + 9.13717*s^2 - 32.0637*s + 58.78); (-0.014*s^3 + 0.31906*s^2 - 0.8106*s)/(s^4 + 0.09*s^3 + 9.13717*s^2 - 32.0637*s + 58.78); (-0.1*s^2 - 0.160918*s - 0.21842)/(s^4 + 0.09*s^3 + 9.13717*s^2 - 32.0637*s + 58.78); (-0.1*s^3 - 0.160918*s^2 - 0.21842*s)/(s^4 + 0.09*s^3 + 9.13717*s^2 - 32.0637*s + 58.78)]
function fromModel import Modelica; import DymolaCommands; import Simulator = DymolaCommands.SimulatorAPI; import Modelica_LinearSystems2; import Modelica_LinearSystems2.StateSpace; import Modelica_LinearSystems2.TransferFunction; input String modelName "Name of the Modelica model" annotation( Dialog(__Dymola_translatedModel(translate = true))); input Real T_linearize = 0 "Point in time of simulation to linearize the model"; input String fileName = "dslin" "Name of the result file"; output TransferFunction tf[:, :]; end fromModel;