dss = DiscreteStateSpace.Import.fromModel(modelName, T_linearize, fileName, Ts, method)
Generate a discrete state space data record by linearization of a model defined by modelName. The linearization is performed at time T_linearize of the simulation. The result of linearization is transformed into a state space record and then converted into a discrete state space record.
String modelName = "Modelica_LinearSystems2.Utilities.Plants.DoublePendulum";
Real T_linearize = 5;
algorithm
dss = Modelica_LinearSystems2.DiscreteStateSpace.Import.fromModel(modelName, T_linearize);
// ss.A = [1, 0.1, 0.0338415578929376, 0.00169207789464688, -0.010114371760331, -0.000505718588016548;
0, 1, 0.676831157858752, 0.0338415578929376, -0.202287435206619, -0.010114371760331;
0, 0, 0.892698457060726, 0.0946349228530364, -0.0895698633812754, -0.00447849316906376;
0, 0, -2.14603085878547, 0.892698457060726, -1.79139726762551, -0.0895698633812755;
0, 0, 0.0738077919657481, 0.0036903895982874, 1.0110083777752, 0.10055041888876;
0, 0, 1.47615583931496, 0.0738077919657481, 0.220167555503916, 1.0110083777752];
// ss.B= [0.00170323086692055;
0.0165800882263292;
-0.00215003506298196;
-0.02103518146498;
0.00152042385523347;
0.0144812915324601];
// ss.C=identity(6),
// ss.D= [0.000437113227802044;
0.00874226455604088;
-0.000549137994799829;
-0.0109827598973295;
0.000398179639293453;
0.00796359278610463];
ss.B2 = [0.000437113227802044;
0.00874226455604088;
-0.000549137994866478;
-0.0109827598973295;
0.000398179639305232;
0.00796359278610463];
function fromModel
import Modelica;
import DymolaCommands;
import Simulator = DymolaCommands.SimulatorAPI;
import Modelica_LinearSystems2;
import Modelica_LinearSystems2.StateSpace;
import Modelica_LinearSystems2.DiscreteStateSpace;
input String modelName "Name of the Modelica model" annotation(
Dialog(__Dymola_translatedModel(translate = true)));
input Modelica.Units.SI.Time T_linearize = 0 "point in time of simulation to linearize the model";
input String fileName = "dslin" "Name of the result file";
input Modelica.Units.SI.Time Ts = 1 "Sample time";
input Modelica_LinearSystems2.Utilities.Types.Method method = Modelica_LinearSystems2.Utilities.Types.Method.Trapezoidal "Discretization method";
output DiscreteStateSpace result(redeclare Real A[nx, nx], redeclare Real B[nx, nu], redeclare Real B2[nx, nu], redeclare Real C[ny, nx], redeclare Real D[ny, nu]) "State space description of model linearized at initial point";
end fromModel;