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));