.Modelica_LinearSystems2.StateSpace.Transformation.extract

Information

Syntax

subsystem = StateSpace.Transformation.extract(ss, outputIndex, inputIndex)

Description

This function computes the subsystem of a state space system corresponding to the indices in outputIndex and inputIndex, i.e.

subsystem.A = ss.A;
subsystem.B = ss.B[:, inputIndex];
subsystem.C = ss.C[outputIndex, :];
subsystem.D = ss.D[outputIndex, inputIndex];

Example

  Modelica_LinearSystems2.StateSpace ss=Modelica_LinearSystems2.StateSpace(
    A=[-1, 1, 2; 0, -2, 3;-3, 2, 1],
    B=[1, 0; 0, 1; 1, 0],
    C=[1, 1, 0; 0, 1, 1],
    D=[0, 0; 0,0]);

  Integer outputIndex={1, 2};
  Integer inputIndex={2}

algorithm
  tss:=Modelica_LinearSystems2.StateSpace.Transformation.extract(ss, outputIndex, inputIndex);
//  tss=StateSpace(
      A=[-1, 1, 2; 0, -2, 3;-3, 2, 1],
      B=[0; 1; 0],
      C=[1, 1, 0; 0, 1, 1],
      D=[0; 0])

Interface

encapsulated function extract
  import Modelica;
  import Modelica_LinearSystems2;
  import Modelica_LinearSystems2.StateSpace;
  input StateSpace ss "State space system";
  input Integer outputIndex[:] = {1} "Vector of subsystem outputs indices";
  input Integer inputIndex[:] = {1} "Vector of subsystem inputs indices";
  output StateSpace subSc(redeclare Real A[size(ss.A, 1), size(ss.A, 2)], redeclare Real B[size(ss.B, 1), size(inputIndex, 1)], redeclare Real C[size(outputIndex, 1), size(ss.C, 2)], redeclare Real D[size(outputIndex, 1), size(inputIndex, 1)]) "Subsystem state space record";
end extract;

Generated at 2024-04-25T18:15:59Z by OpenModelicaOpenModelica 1.22.3 using GenerateDoc.mos