From b1f5c3f8d6671b4331cef1dcebdf63b7a43a3a2b Mon Sep 17 00:00:00 2001 From: priyanka Date: Wed, 24 Jun 2015 15:03:17 +0530 Subject: initial commit / add all books --- 2048/CH9/EX9.8/pp_im.sci | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100755 2048/CH9/EX9.8/pp_im.sci (limited to '2048/CH9/EX9.8') diff --git a/2048/CH9/EX9.8/pp_im.sci b/2048/CH9/EX9.8/pp_im.sci new file mode 100755 index 000000000..f1a512fea --- /dev/null +++ b/2048/CH9/EX9.8/pp_im.sci @@ -0,0 +1,25 @@ +// Pole placement controller using internal model principle, as discussed in Sec. 9.4. +// 9.8 + +// function [Rc,Sc,Tc,gamma,phit] = pp_im(B,A,k,phi,Delta) +// Calculates 2-DOF pole placement controller. + +function [Rc,Sc,Tc,gamm] = pp_im(B,A,k,phi,Delta) + +// Setting up and solving Aryabhatta identity +[Ag,Ab] = polsplit3(A); dAb = length(Ab) - 1; +[Bg,Bb] = polsplit3(B); dBb = length(Bb) - 1; + +[zk,dzk] = zpowk(k); + +[N,dN] = polmul(Bb,dBb,zk,dzk); +dDelta = length(Delta)-1; +[D,dD] = polmul(Ab,dAb,Delta,dDelta); +dphi = length(phi)-1; + +[S1,dS1,R1,dR1] = xdync(N,dN,D,dD,phi,dphi); + +// Determination of control law +Rc = convol(Bg,convol(R1,Delta)); Sc = convol(Ag,S1); +Tc = Ag; gamm = sum(phi)/sum(Bb); +endfunction; -- cgit