comparison scripts/control/c2d.m @ 3238:041ea33fbbf4

[project @ 1999-03-26 17:48:16 by jwe]
author jwe
date Fri, 26 Mar 1999 17:48:35 +0000
parents 98e15955107e
children f7e4a95916f2
comparison
equal deleted inserted replaced
3237:737b219ab65a 3238:041ea33fbbf4
95 [csys,Acd] = syscont(sys); # extract continuous subsystem 95 [csys,Acd] = syscont(sys); # extract continuous subsystem
96 [csys_a, csys_b, csys_c, csys_d] = sys2ss(csys); 96 [csys_a, csys_b, csys_c, csys_d] = sys2ss(csys);
97 [ sys_a, sys_b, sys_c, sys_d] = sys2ss( sys); 97 [ sys_a, sys_b, sys_c, sys_d] = sys2ss( sys);
98 if(isempty(Acd)) Bmat = sys_b; 98 if(isempty(Acd)) Bmat = sys_b;
99 elseif(isempty(csys_b)) Bmat = Acd; 99 elseif(isempty(csys_b)) Bmat = Acd;
100 else Bmat = [Acd csys_b]; endif 100 else Bmat = [Acd, csys_b]; endif
101 101
102 row_zer = columns(Bmat); 102 row_zer = columns(Bmat);
103 csysn = sysdimensions(csys); 103 csysn = sysdimensions(csys);
104 col_zer = csysn + row_zer; 104 col_zer = csysn + row_zer;
105 105
106 [csysa,csysb,csysc,csysd] = sys2ss(csys); 106 [csysa,csysb,csysc,csysd] = sys2ss(csys);
107 if(isempty(Bmat) ) 107 if(isempty(Bmat) )
108 warning("c2d: no inputs to continuous subsystem."); 108 warning("c2d: no inputs to continuous subsystem.");
109 mat = csysa; 109 mat = csysa;
110 else 110 else
111 mat = [csysa Bmat ; zeros( row_zer,col_zer) ]; 111 mat = [csysa, Bmat ; zeros( row_zer,col_zer) ];
112 endif 112 endif
113 113
114 matexp = expm(mat * T); 114 matexp = expm(mat * T);
115 115
116 Abar = matexp( 1:csysn , 1:(csysn + columns(Acd)) ); 116 Abar = matexp( 1:csysn , 1:(csysn + columns(Acd)) );