Mercurial > forge
comparison main/control/feedback.m @ 0:6b33357c7561 octave-forge
Initial revision
author | pkienzle |
---|---|
date | Wed, 10 Oct 2001 19:54:49 +0000 |
parents | |
children | 7c7be07e7805 |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:6b33357c7561 |
---|---|
1 ## feedback(sys1,sys2) | |
2 ## _____________ | |
3 ## + | | | |
4 ## u --->0----->| sys1 |-------> | |
5 ## |- |____________| | | |
6 ## | | | |
7 ## | _____________ | | |
8 ## | | | | | |
9 ## -------| sys2 |---- | |
10 ## |____________| | |
11 ## | |
12 ## This only works for SISO systems. | |
13 | |
14 ## Author: Ben Sapp <mailto:bsapp@lanl.gov> | |
15 | |
16 function out = feedback(sys1,sys2) | |
17 if (nargin != 2) | |
18 error("only 2 arguements accepted"); | |
19 endif | |
20 if(!is_siso(sys1) || !is_siso(sys2)) | |
21 error("only single input single output systems supported"); | |
22 endif | |
23 T = sysgroup(sys1,sys2); | |
24 T = sysdup(T,2,[]); | |
25 T = sysscale(T,diag([1,1,-1]),[]); | |
26 T = sysconnect(T,3,1); | |
27 T = sysconnect(T,1,2); | |
28 out = sysprune(T,1,1); | |
29 endfunction |