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