Home > freetb4matlab > control > buildssic.m

buildssic

PURPOSE ^

%

SYNOPSIS ^

function sys = buildssic (Clst, Ulst, Olst, Ilst, s1, s2, s3, s4, s5, s6, s7, s8)

DESCRIPTION ^

% -*- texinfo -*-
% @deftypefn {Function File} {} buildssic (@var{clst}, @var{ulst}, @var{olst}, @var{ilst}, @var{s1}, @var{s2}, @var{s3}, @var{s4}, @var{s5}, @var{s6}, @var{s7}, @var{s8})
%
% Form an arbitrary complex (open or closed loop) system in
% state-space form from several systems. @command{buildssic} can
% easily (despite its cryptic syntax) integrate transfer functions
% from a complex block diagram into a single system with one call.
% This function is especially useful for building open loop
% interconnections for 
% @iftex
% @tex
% $ { \cal H }_\infty $ and $ { \cal H }_2 $
% @end tex
% @end iftex
% @ifinfo
% H-infinity and H-2
% @end ifinfo
% designs or for closing loops with these controllers.
%
% Although this function is general purpose, the use of @command{sysgroup}
% @command{sysmult}, @command{sysconnect} and the like is recommended for
% standard operations since they can handle mixed discrete and continuous
% systems and also the names of inputs, outputs, and states.
%
% The parameters consist of 4 lists that describe the connections
% outputs and inputs and up to 8 systems @var{s1}--@var{s8}.
% Format of the lists:
% @table @var
% @item      clst
% connection list, describes the input signal of
% each system. The maximum number of rows of Clst is
% equal to the sum of all inputs of s1-s8.
%
% Example:
% @code{[1 2 -1; 2 1 0]} means that:  new input 1 is old input 1
% + output 2 - output 1, and new input 2 is old input 2
% + output 1. The order of rows is arbitrary.
%
% @item ulst
% if not empty the old inputs in vector @var{ulst} will
% be appended to the outputs. You need this if you
% want to ``pull out'' the input of a system. Elements
% are input numbers of @var{s1}--@var{s8}.
%
% @item olst
% output list, specifies the outputs of the resulting
% systems. Elements are output numbers of @var{s1}--@var{s8}.
% The numbers are allowed to be negative and may
% appear in any order. An empty matrix means
% all outputs.
%
% @item ilst
% input list, specifies the inputs of the resulting
% systems. Elements are input numbers of @var{s1}--@var{s8}.
% The numbers are allowed to be negative and may
% appear in any order. An empty matrix means
% all inputs.
% @end table
%
% Example:  Very simple closed loop system.
% @example
% @group
% w        e  +-----+   u  +-----+
%  --->o--*-->|  K  |--*-->|  G  |--*---> y
%      ^  |   +-----+  |   +-----+  |
%    - |  |            |            |
%      |  |            +----------------> u
%      |  |                         |
%      |  +-------------------------|---> e
%      |                            |
%      +----------------------------+
% @end group
% @end example
%
% The closed loop system @var{GW} can be obtained by
% @example
% GW = buildssic([1 2; 2 -1], 2, [1 2 3], 2, G, K);
% @end example
% @table @var
% @item clst
% 1st row: connect input 1 (@var{G}) with output 2 (@var{K}).
%
% 2nd row: connect input 2 (@var{K}) with negative output 1 (@var{G}).
% @item ulst
% Append input of 2 (@var{K}) to the number of outputs.
% @item olst
% Outputs are output of 1 (@var{G}), 2 (@var{K}) and 
% appended output 3 (from @var{ulst}).
% @item ilst
% The only input is 2 (@var{K}).
% @end table
%
% Here is a real example:
% @example
% @group
%                          +----+
%     -------------------->| W1 |---> v1
% z   |                    +----+
% ----|-------------+
%     |             |
%     |    +---+    v      +----+
%     *--->| G |--->O--*-->| W2 |---> v2
%     |    +---+       |   +----+
%     |                |
%     |                v
%    u                  y
% @end group
% @end example
% @iftex
% @tex
% $$ { \rm min } \Vert GW_{vz} \Vert _\infty $$  
% @end tex
% @end iftex
% @ifinfo
% @example
% min | GW   |
%          vz   infty
% @end example
% @end ifinfo
%
% The closed loop system @var{GW} 
% @iftex
% @tex
% from $ [z, u]^T $ to $ [v_1, v_2, y]^T $
% @end tex
% @end iftex
% @ifinfo
% from [z, u]' to [v1, v2, y]' 
% @end ifinfo
% can be obtained by (all @acronym{SISO} systems):
% @example
% GW = buildssic([1, 4; 2, 4; 3, 1], 3, [2, 3, 5],
%                [3, 4], G, W1, W2, One);
% @end example
% where ``One'' is a unity gain (auxiliary) function with order 0.
% (e.g. @code{One = ugain(1);})
% @end deftypefn

CROSS-REFERENCE INFORMATION ^

This function calls: This function is called by:
Generated on Fri 22-May-2009 15:13:00 by m2html © 2003