Mercurial > hg > octave-nkf
comparison scripts/control/system/sysdup.m @ 3462:04aef7306dca
[project @ 2000-01-19 17:16:43 by hodelas]
Updated to accept signal names or signal indices as inputs (calls to
either sysidx or listidx)
author | hodelas |
---|---|
date | Wed, 19 Jan 2000 17:16:45 +0000 |
parents | 3234a698073a |
children | 7923abdeb4e5 |
comparison
equal
deleted
inserted
replaced
3461:1f2ce6b49c57 | 3462:04aef7306dca |
---|---|
24 ## @table @var | 24 ## @table @var |
25 ## @item Asys | 25 ## @item Asys |
26 ## system data structure | 26 ## system data structure |
27 ## @item out_idx | 27 ## @item out_idx |
28 ## @itemx in_idx | 28 ## @itemx in_idx |
29 ## list of connections indices; | 29 ## indices or names of desired signals (see @code{sigidx}). |
30 ## duplicates are made of @code{y(out_idx(ii))} and @code{u(in_idx(ii))}. | 30 ## duplicates are made of @code{y(out_idx(ii))} and @code{u(in_idx(ii))}. |
31 ## @end table | 31 ## @end table |
32 ## | 32 ## |
33 ## @strong{Outputs} | 33 ## @strong{Outputs} |
34 ## @var{retsys}: resulting closed loop system: | 34 ## @var{retsys}: resulting closed loop system: |
66 endif | 66 endif |
67 | 67 |
68 Asys = sysupdate(Asys,"ss"); | 68 Asys = sysupdate(Asys,"ss"); |
69 [nn,nz,mm,pp] = sysdimensions(Asys); | 69 [nn,nz,mm,pp] = sysdimensions(Asys); |
70 [aa,bb,cc,dd] = sys2ss(Asys); | 70 [aa,bb,cc,dd] = sys2ss(Asys); |
71 | |
72 ## check for signal names | |
73 if(is_signal_list(input_list) | isstr(input_list)) | |
74 input_list = sysidx(Asys,"in",input_list); | |
75 endif | |
76 if(is_signal_list(output_list) | isstr(output_list)) | |
77 output_list = sysidx(Asys,"out",output_list); | |
78 endif | |
71 | 79 |
72 ## first duplicate inputs | 80 ## first duplicate inputs |
73 if(is_vector(input_list)) | 81 if(is_vector(input_list)) |
74 for ii=1:length(input_list); | 82 for ii=1:length(input_list); |
75 bb(:,mm+ii) = bb(:,input_list(ii)); | 83 bb(:,mm+ii) = bb(:,input_list(ii)); |