B = Streams.readMatrixB2(fileName, matrixName, nx, nu);
Opens the given MATLAB MAT file and returns the submatrix B of the matrix
matrixName given as
B[nx, nu] = matrixName[1:nx, nx+1:nx+nu];
// Generate dslin.mat of the double pendulum example first
Modelica_LinearSystems2.Utilities.Import.linearize(
"Modelica_LinearSystems2.Utilities.Plants.DoublePendulum", 1.0);
// Read B matrix of the linearized system
readMatrixB2("dslin.mat", "ABCD", 6, 1)
// =
// [0.0;
// 0.13297862810901506;
// 0.0;
// -0.022602364424528787;
// 0.0;
// -0.11931966525935421]
function readMatrixB2
extends Modelica.Icons.Function;
input String fileName = DataDir + "abcd.mat" annotation(
Dialog(loadSelector(filter = "MAT files (*.mat);; All files (*.*)", caption = "state space system data file")));
input String matrixName = "ABCD" "Name of the generalized state space system matrix";
input Integer nx "System order";
input Integer nu "Number of inputs";
output Real B[nx, nu] = ABCD[1:nx, nx + 1:nx + nu];
end readMatrixB2;