ss = StateSpace.'*'(ss1, ss2)
This operator function computes the addition of two state space systems connected in series.
The operator is used by writing just the following command:
result := ss1 * ss2;
StateSpace ss1 = StateSpace(A=[-1, 0; 0, -2], B=[1; 2], C=[0, 1], D=[0]); StateSpace ss2 = StateSpace(A=[-3, 0; 0, -4], B=[3; 4], C=[0, 2], D=[0.2]); StateSpace ss3; algorithm ss3 := ss1 - ss2; // ss.A = [-1, 0, 0, 0; 0, -2, 0, 0; 0, 0, -3, 0; 0, 0, 0, -4], // ss.B = [0.2; 0.4; 3; 4], // ss.C = [0, 1, 0, 0], // ss.D = [0],
encapsulated operator function '*' import Modelica_LinearSystems2.StateSpace; input StateSpace ss1 "State space system 1"; input StateSpace ss2 "State space system 2"; output StateSpace result(redeclare Real A[size(ss1.A, 1) + size(ss2.A, 1), size(ss1.A, 2) + size(ss2.A, 2)], redeclare Real B[size(ss1.B, 1) + size(ss2.B, 1), size(ss2.B, 2)], redeclare Real C[size(ss1.C, 1), size(ss1.C, 2) + size(ss2.C, 2)], redeclare Real D[size(ss1.D, 1), size(ss2.D, 2)]) "y = G(s)*u = G(ss1)*G(ss2)*u"; end '*';