Mercurial > hg > octave-nkf
diff scripts/control/mb.m @ 3213:ba1c7cdc6090
[project @ 1998-11-06 16:15:36 by jwe]
author | jwe |
---|---|
date | Fri, 06 Nov 1998 16:16:31 +0000 |
parents | |
children | dbcc24961c44 |
line wrap: on
line diff
new file mode 100644 --- /dev/null +++ b/scripts/control/mb.m @@ -0,0 +1,40 @@ +# $Revision: 1.1 $ + +Ap = [0 1;1960 0]; +Bp = [0;-6261]; +Cp = [1 0]; +Dp = 0; + +Gp = ss2sys(Ap,Bp,Cp,Dp,0,2,0,[],"delta_i","delta_y"); +Gp = syschnames(Gp,"st",1,"delta_x1"); +Gp = syschnames(Gp,"st",2,"delta_x2"); + +Ak = [-20 1;-22160 -200]; +Bk = [-20;-2160]; +Ck = [-3.5074 -0.0319]; +Dk = 0; + +Gk = ss2sys(Ak,Bk,Ck,Dk,0,2,0,[],"y","i"); +Gk = syschnames(Gk,"st",1,"x1"); +Gk = syschnames(Gk,"st",2,"x2"); + +Gc = sysgroup(Gp,Gk); + +Gc = sysdup(Gc,[],[1 2]); +# Gc = sysscale(Gc,[],diag([1,1,1,1])); + +Gc = sysconnect(Gc,[1 2],[4 3]); +Gc = sysprune(Gc,1,[1 2]); + +disp("after pruning, closed loop system is") +sysout(Gc) + +# Gc = sysdup(Gc,[],2); +# Gc = sysconnect(Gc,1,3); +# Gc = sysprune(Gc,1,1); + +is_stable(Gc) +eig(Gc.a) + +Acl = [Gp.a, -Gp.b*Gk.c; Gk.b*Gp.c, Gk.a] +eig(Acl)