summaryrefslogtreecommitdiff
path: root/2048/DEPENDENCIES/pp_im2.sci
blob: 61ba58d1bcba7c33391faf9484cb558105912231 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
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;