sysic

Build interconnections of certain and uncertain matrices and systems

Syntax

sysout = sysic

Description

sysic requires that 3 variables with fixed names be present in the calling workspace: systemnames, inputvar and outputvar.

systemnames is a char containing the names of the subsystems (double, tf, zpk, ss, uss, frd, ufrd, etc) that make up the interconnection. The names must be separated by spaces with no additional punctuation. Each named variable must exist in the calling workspace.

inputvar is a char, defining the names of the external inputs to the interconnection. The names are separated by semicolons, and the entire list is enclosed in square brackets [ ]. Inputs can be scalar or multivariate. For instance, a 3-component (x,y,z) force input can be specified with 3 separate names, Fx, Fy, Fz. Alternatively, a single name with a defined integer dimension can be specified, as in F{3}. The order of names in inputvar determines the order of inputs in the interconnection.

outputvar is a char, describing the outputs of the interconnection. Outputs do not have names-they are simply linear combinations of individual subsystem's outputs and external inputs. Semicolons delineate separate components of the interconnections outputs. Between semicolons, signals can be added and subtracted, and multiplied by scalars. For multivariable subsystems, arguments within parentheses specify which subsystem outputs are to be used and in what order. For instance, plant(2:4,1,9:11) specifies outputs 2,3,4,1,9,10,11 from the subsystem plant. If a subsystem is listed in outputvar without arguments, then all outputs from that subsystem are used.

sysic also requires that for every subsystem name listed in systemnames, a corresponding variable, input_to_ListedSubSystemName must exist in the calling workspace. This variable is similar to outputvar – it defines the input signals to this particular subsystem as linear combinations of individual subsystem's outputs and external inputs.

sysout = sysic will perform the interconnection described by the variables above, using the subsystem data in the names found in systemnames. The resulting interconnection is returned in the output argument, listed above as sysout.

After running sysic the variables systemnames, inputvar, outputvar and all of the input_to_ListedSubSystemName will exist in the workspace. Setting the optional variable cleanupsysic to 'yes' will cause these variables to be removed from the workspace after sysic has formed the interconnection.

Examples

A simple system interconnection, identical to the system illustrated in the iconnect description. Consider a three-input, two-output LTI 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); 
systemnames = 'W A K P'; 
inputvar = '[noise;deltemp;setpoint]'; 
outputvar = '[57.3*P(1);setpoint-P(2)]'; 
input_to_W = '[deltemp]'; 
input_to_A = '[K]'; 
input_to_K = '[P(2)+noise;setpoint]'; 
input_to_P = '[W;A]'; 
cleanupsysic = `yes';
T = sysic; 
exist(`inputvar') 

Limitations

The syntax of sysic is limited, and for the most part is restricted to what is shown here. The iconnect interconnection object can also be used to define complex interconnections, and has a more flexible syntax.

Within sysic, error-checking routines monitor the consistency and availability of the subsystems and their inputs. These routines provide a basic level of error detection to aid the user in debugging.

See Also

Was this topic helpful?