Lines 20-39
Link Here
|
20 |
## @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}) |
20 |
## @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}) |
21 |
## |
21 |
## |
22 |
## Form an arbitrary complex (open or closed loop) system in |
22 |
## Form an arbitrary complex (open or closed loop) system in |
23 |
## state-space form from several systems. "@code{buildssic}" can |
23 |
## state-space form from several systems. @command{buildssic} can |
24 |
## easily (despite it's cryptic syntax) integrate transfer functions |
24 |
## easily (despite its cryptic syntax) integrate transfer functions |
25 |
## from a complex block diagram into a single system with one call. |
25 |
## from a complex block diagram into a single system with one call. |
26 |
## This function is especially useful for building open loop |
26 |
## This function is especially useful for building open loop |
27 |
## interconnections for H_infinity and H2 designs or for closing |
27 |
## interconnections for |
28 |
## loops with these controllers. |
28 |
## @iftex |
|
|
29 |
## @tex |
30 |
## $ { \cal H }_\infty $ and $ { \cal H }_2 $ |
31 |
## @end tex |
32 |
## @end iftex |
33 |
## @ifinfo |
34 |
## H-infinity and H-2 |
35 |
## @end ifinfo |
36 |
## designs or for closing loops with these controllers. |
29 |
## |
37 |
## |
30 |
## Although this function is general purpose, the use of "@code{sysgroup}" |
38 |
## Although this function is general purpose, the use of @command{sysgroup} |
31 |
## "@code{sysmult}", "@code{sysconnect}" and the like is recommended for |
39 |
## @command{sysmult}, @command{sysconnect} and the like is recommended for |
32 |
## standard operations since they can handle mixed discrete and continuous |
40 |
## standard operations since they can handle mixed discrete and continuous |
33 |
## systems and also the names of inputs, outputs, and states. |
41 |
## systems and also the names of inputs, outputs, and states. |
34 |
## |
42 |
## |
35 |
## The parameters consist of 4 lists that describe the connections |
43 |
## The parameters consist of 4 lists that describe the connections |
36 |
## outputs and inputs and up to 8 systems s1-s8. |
44 |
## outputs and inputs and up to 8 systems @var{s1}--@var{s8}. |
37 |
## Format of the lists: |
45 |
## Format of the lists: |
38 |
## @table @var |
46 |
## @table @var |
39 |
## @item clst |
47 |
## @item clst |
Lines 42-68
Link Here
|
42 |
## equal to the sum of all inputs of s1-s8. |
50 |
## equal to the sum of all inputs of s1-s8. |
43 |
## |
51 |
## |
44 |
## Example: |
52 |
## Example: |
45 |
## @code{[1 2 -1; 2 1 0]} ==> new input 1 is old inpout 1 |
53 |
## @code{[1 2 -1; 2 1 0]} means that: new input 1 is old input 1 |
46 |
## + output 2 - output 1, new input 2 is old input 2 |
54 |
## + output 2 - output 1, and new input 2 is old input 2 |
47 |
## + output 1. The order of rows is arbitrary. |
55 |
## + output 1. The order of rows is arbitrary. |
48 |
## |
56 |
## |
49 |
## @item ulst |
57 |
## @item ulst |
50 |
## if not empty the old inputs in vector Ulst will |
58 |
## if not empty the old inputs in vector @var{ulst} will |
51 |
## be appended to the outputs. You need this if you |
59 |
## be appended to the outputs. You need this if you |
52 |
## want to "pull out" the input of a system. Elements |
60 |
## want to ``pull out'' the input of a system. Elements |
53 |
## are input numbers of s1-s8. |
61 |
## are input numbers of @var{s1}--@var{s8}. |
54 |
## |
62 |
## |
55 |
## @item olst |
63 |
## @item olst |
56 |
## output list, specifiy the outputs of the resulting |
64 |
## output list, specifiy the outputs of the resulting |
57 |
## systems. Elements are output numbers of s1-s8. |
65 |
## systems. Elements are output numbers of @var{s1}--@var{s8}. |
58 |
## The numbers are alowed to be negative and may |
66 |
## The numbers are allowed to be negative and may |
59 |
## appear in any order. An empty matrix means |
67 |
## appear in any order. An empty matrix means |
60 |
## all outputs. |
68 |
## all outputs. |
61 |
## |
69 |
## |
62 |
## @item ilst |
70 |
## @item ilst |
63 |
## input list, specifiy the inputs of the resulting |
71 |
## input list, specifiy the inputs of the resulting |
64 |
## systems. Elements are input numbers of s1-s8. |
72 |
## systems. Elements are input numbers of @var{s1}--@var{s8}. |
65 |
## The numbers are alowed to be negative and may |
73 |
## The numbers are allowed to be negative and may |
66 |
## appear in any order. An empty matrix means |
74 |
## appear in any order. An empty matrix means |
67 |
## all inputs. |
75 |
## all inputs. |
68 |
## @end table |
76 |
## @end table |
Lines 82-101
Link Here
|
82 |
## @end group |
90 |
## @end group |
83 |
## @end example |
91 |
## @end example |
84 |
## |
92 |
## |
85 |
## The closed loop system GW can be optained by |
93 |
## The closed loop system @var{GW} can be optained by |
86 |
## @example |
94 |
## @example |
87 |
## GW = buildssic([1 2; 2 -1], 2, [1 2 3], 2, G, K); |
95 |
## GW = buildssic([1 2; 2 -1], 2, [1 2 3], 2, G, K); |
88 |
## @end example |
96 |
## @end example |
89 |
## @table @var |
97 |
## @table @var |
90 |
## @item clst |
98 |
## @item clst |
91 |
## (1. row) connect input 1 (G) with output 2 (K). |
99 |
## 1st row: connect input 1 (@var{G}) with output 2 (@var{K}). |
92 |
## (2. row) connect input 2 (K) with neg. output 1 (G). |
100 |
## |
|
|
101 |
## 2nd row: connect input 2 (@var{K}) with negative output 1 (@var{G}). |
93 |
## @item ulst |
102 |
## @item ulst |
94 |
## append input of (2) K to the number of outputs. |
103 |
## Append input of 2 (@var{K}) to the number of outputs. |
95 |
## @item olst |
104 |
## @item olst |
96 |
## Outputs are output of 1 (G), 2 (K) and appended output 3 (from Ulst). |
105 |
## Outputs are output of 1 (@var{G}), 2 (@var{K}) and |
|
|
106 |
## appended output 3 (from @var{ulst}). |
97 |
## @item ilst |
107 |
## @item ilst |
98 |
## the only input is 2 (K). |
108 |
## The only input is 2 (@var{K}). |
99 |
## @end table |
109 |
## @end table |
100 |
## |
110 |
## |
101 |
## Here is a real example: |
111 |
## Here is a real example: |
Lines 104-111
Link Here
|
104 |
## +----+ |
114 |
## +----+ |
105 |
## -------------------->| W1 |---> v1 |
115 |
## -------------------->| W1 |---> v1 |
106 |
## z | +----+ |
116 |
## z | +----+ |
107 |
## ----|-------------+ || GW || => min. |
117 |
## ----|-------------+ |
108 |
## | | vz infty |
118 |
## | | |
109 |
## | +---+ v +----+ |
119 |
## | +---+ v +----+ |
110 |
## *--->| G |--->O--*-->| W2 |---> v2 |
120 |
## *--->| G |--->O--*-->| W2 |---> v2 |
111 |
## | +---+ | +----+ |
121 |
## | +---+ | +----+ |
Lines 114-127
Link Here
|
114 |
## u y |
124 |
## u y |
115 |
## @end group |
125 |
## @end group |
116 |
## @end example |
126 |
## @end example |
|
|
127 |
## @iftex |
128 |
## @tex |
129 |
## $$ { \rm min } \Vert GW_{vz} \Vert _\infty $$ |
130 |
## @end tex |
131 |
## @end iftex |
132 |
## @ifinfo |
133 |
## @example |
134 |
## min || GW || |
135 |
## vz infty |
136 |
## @end example |
137 |
## @end ifinfo |
117 |
## |
138 |
## |
118 |
## The closed loop system GW from [z; u]' to [v1; v2; y]' can be |
139 |
## The closed loop system @var{GW} |
119 |
## obtained by (all SISO systems): |
140 |
## @iftex |
|
|
141 |
## @tex |
142 |
## from $ [z,~u]^{ \rm T } $ to $ [v_1,~v_2,~y]^{ \rm T } $ |
143 |
## @end tex |
144 |
## @end iftex |
145 |
## @ifinfo |
146 |
## from [z, u]' to [v1, v2, y]' |
147 |
## @end ifinfo |
148 |
## can be obtained by (all @acronym{SISO} systems): |
120 |
## @example |
149 |
## @example |
121 |
## GW = buildssic([1, 4; 2, 4; 3, 1], 3, [2, 3, 5], |
150 |
## GW = buildssic([1, 4; 2, 4; 3, 1], 3, [2, 3, 5], |
122 |
## [3, 4], G, W1, W2, One); |
151 |
## [3, 4], G, W1, W2, One); |
123 |
## @end example |
152 |
## @end example |
124 |
## where "One" is a unity gain (auxillary) function with order 0. |
153 |
## where ``One'' is a unity gain (auxillary) function with order 0. |
125 |
## (e.g. @code{One = ugain(1);}) |
154 |
## (e.g. @code{One = ugain(1);}) |
126 |
## @end deftypefn |
155 |
## @end deftypefn |
127 |
|
156 |
|