iconnect
(Not recommended) Create empty iconnect (interconnection)
objects
iconnect is not recommended. For model interconnections, use
connect instead.
Syntax
H = iconnect
Description
Interconnection objects (class iconnect) are an alternative to
sysic, and are used to build complex interconnections of uncertain
matrices and systems.
An iconnect object has 3 fields to be set by the user,
Input, Output and Equation.
Input and Output are icsignal
objects, while Equation.is a cell-array of equality constraints (using
equate) on icsignal objects. Once these are specified,
then the System property is the input/output model, implied by the
constraints in Equation. relating the variables defined in
Input and Output.
Examples
iconnect can be used to create the transfer matrix M
as described in the following figure.
![]()
Create three scalar icsignal:
r, e and y. Create an empty iconnect
object, M. Define the output of the interconnection to be [e;
y], and the input to be r. Define two constraints among the
variables: e = r-y, and y = (2/s) e. Get the transfer
function representation of the relationship between the input (r) and the
output [e; y].
r = icsignal(1);
e = icsignal(1);
y = icsignal(1);
M = iconnect;
M.Input = r;
M.Output = [e;y];
M.Equation{1} = equate(e,r-y);
M.Equation{2} = equate(y,tf(2,[1 0])*e);
tf(M.System)
The transfer functions from input to outputs are
s
#1: -----
s + 2
2
#2: -----
s + 2
By not explicitly introducing e, this can be done more concisely with
only one equality constraint.
r = icsignal(1);
y = icsignal(1);
N = iconnect;
N.Input = r;
N.Output = [r-y;y];
N.Equation{1} = equate(y,tf(2,[1 0])*(r-y));
tf(N.System)
You have created the same transfer functions from input to outputs.
s
#1: -----
s + 2
2
#2: -----
s + 2
You can also specify uncertain, multivariable interconnections using
iconnect. Consider two uncertain motor/generator constraints among 4
variables [V;I;T;W], V-R*I-K*W=0, and
T=K*I. Find the uncertain 2x2 matrix
B so that [V;T] = B*[W;I].
R = ureal('R',1,'Percentage',[-10 40]);
K = ureal('K',2e-3,'Percentage',[-30 30]);
V = icsignal(1);
I = icsignal(1);
T = icsignal(1);
W = icsignal(1);
M = iconnect;
M.Input = [W;I];
M.Output = [V;T];
M.Equation{1} = equate(V-R*I-K*W,iczero(1));
M.Equation{2} = equate(T,K*I);
B = M.System
UMAT: 2 Rows, 2 Columns
K: real, nominal = 0.002, variability = [-30 30]%, 2 occurrences
R: real, nominal = 1, variability = [-10 40]%, 1 occurrence
B.NominalValue
ans =
0.0020 1.0000
0 0.0020
A simple system interconnection, identical to the system illustrated in the sysic reference pages. Consider a three-input, two-output state-space matrix
T,

which has internal structure

P = rss(3,2,2);
K = rss(1,1,2);
A = rss(1,1,1);
W = rss(1,1,1);
M = iconnect;
noise = icsignal(1);
deltemp = icsignal(1);
setpoint = icsignal(1);
yp = icsignal(2);
rad2deg = 57.3
rad2deg =
57.3000
M.Equation{1} = equate(yp,P*[W*deltemp;A*K*[noise+yp(2);setpoint]]);
M.Input = [noise;deltemp;setpoint];
M.Output = [rad2deg*yp(1);setpoint-yp(2)];
T = M.System;
size(T)
State-space model with 2 outputs, 3 inputs, and 6 states.
Limitations
The syntax for iconnect objects and icsignals is
very flexible. Without care, you can build inefficient (i.e., nonminimal) representations
where the state dimension of the interconnection is greater than the sum of the state
dimensions of the components. This is in contrast to sysic. In
sysic, the syntax used to specify inputs to systems (the
input_to_ListedSubSystemName variable) forces you to include each
subsystem of the interconnection only once in the equations. Hence, interconnections formed
with sysic are componentwise minimal. That is, the state dimension of the
interconnection equals the sum of the state dimensions of the components.
Algorithms
Each equation represents an equality constraint among the variables. You choose the input
and output variables, and the imp2exp function makes the implicit
relationship between them explicit.
Version History
Introduced before R2006a