summaryrefslogtreecommitdiff
path: root/2048/DEPENDENCIES/pp_im2.sci
diff options
context:
space:
mode:
authorprashantsinalkar2018-02-03 11:01:52 +0530
committerprashantsinalkar2018-02-03 11:01:52 +0530
commit7bc77cb1ed33745c720952c92b3b2747c5cbf2df (patch)
tree449d555969bfd7befe906877abab098c6e63a0e8 /2048/DEPENDENCIES/pp_im2.sci
parentd1e070fe2d77c8e7f6ba4b0c57b1b42e26349059 (diff)
downloadScilab-TBC-Uploads-master.tar.gz
Scilab-TBC-Uploads-master.tar.bz2
Scilab-TBC-Uploads-master.zip
Added new codeHEADmaster
Diffstat (limited to '2048/DEPENDENCIES/pp_im2.sci')
-rw-r--r--2048/DEPENDENCIES/pp_im2.sci31
1 files changed, 31 insertions, 0 deletions
diff --git a/2048/DEPENDENCIES/pp_im2.sci b/2048/DEPENDENCIES/pp_im2.sci
new file mode 100644
index 000000000..61ba58d1b
--- /dev/null
+++ b/2048/DEPENDENCIES/pp_im2.sci
@@ -0,0 +1,31 @@
+// Pole placement controller without intra sample oscillations, as discussed in Sec. 9.5.
+// 9.13
+
+// function [Rc,Sc,Tc,gamma,phit] = pp_im2(B,A,k,phi,Delta,a)
+// 2-DOF PP controller with internal model of Delta and without
+// hidden oscillations
+
+function [Rc,Sc,Tc,gamm,phit] = pp_im2(B,A,k,phi,Delta,a)
+
+if argn(2) == 5, a = 1; end
+dphi = length(phi)-1;
+
+// Setting up and solving Aryabhatta identity
+[Ag,Ab] = polsplit3(A,a); dAb = length(Ab) - 1;
+[Bg,Bb] = polsplit3(B,a); 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);
+
+[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);
+
+// Total characteristic polynomial
+phit = convol(phi,convol(Ag,Bg));
+endfunction;