append

Method of mdss.

Append multiple mdss models block-diagonally, without connecting them.

Source: src/model/@mdss/append.m

Syntax

sysOut = append(sys1, sys2, ..., sysN)
sysOut = sys1.append(sys2, ..., sysN)

Description

append stacks the component models into a single mdss whose structure and parameter matrices are the block-diagonal composition of the inputs. No signals are connected — the combined model simply carries every state, input, algebraic and binary signal of its parts, with the index vectors, names, units and input-role sets shifted and concatenated accordingly.

All models must share the same timeStepSize.

Appending is the first step of an index-based connect: once the sub-models sit in one object, their signals can be wired together by index. (The name-based / multi-argument forms of connect call append for you.)

Input arguments

Argument Description
sys1 … sysN mdss models to append. All must have equal timeStepSize.

Output arguments

Output Description
sysOut The block-diagonal composition of the inputs, with all signals carried over and indices shifted/concatenated. No signals connected.

Example

room = stringParser.symbolicToMdss("0 = -m*xp1 + u1 + u2", 0, ...
                                   ["xp","x","u","y","z"], "m", 1200);

loss = stringParser.symbolicToMdss("y1 = k*(u1 - u2)", 0, ...
                                   ["xp","x","u","y","z"], "k", 3);

sys = append(room, loss);
% sys now has room's + loss's states, inputs and algebraic variables,
% with the indices of loss shifted after those of room.

See also

connect · mdss · symbolicToMdss


MyToolbox Documentation | Generated automatically by CI/CD pipeline