Sabtu, 19 November 2011

P3LS menggunakan matlab 7.10.0 (R2010a)



METODE P3LS
 
Langkah- langkah identifikasi Menggunakan metode P3LS:
1. Running program simulink dibawah ini (data_output_xkyk.mdl) untuk mendapatkan
data x(k) dan y(k) :

Data output dari simulasi simulink di atas :
Running Program yang sudah dibuat dari editor, untuk mendapatkan tetha
Program berikut terdapat 3 Model pendekatan sistem yaitu :
b1)y(k)=-a1*y(k-1)-a2*y(k-2)+b0*x(k-1)+b1*x(k-2)                       nA=2,nB=1,d=1 >> tipe 1
b2)y(k)=-a1*y(k-1)-a2*y(k-2)-a3*y(k-3)+b0*x(k-1)                        nA=3,nB=0,d=1 >> tipe 2
b3)y(k)=-a1*y(k-1)+b0*x(k-1)+b1*x(k-2)+b2*x(k-3)+b3*x(k-4))   nA=1,nB=3,d=1 >> tipe 3


Listing program untitled.m :
% ========================Program P3LS=============================
clc;
disp('                            Ahmad Roni Utomo (22101015012)')
disp('Langkah - langkah :')
disp('1. Jalankan data_output_xkyk.mdl --> Untuk mendapatkan x(k) dan y(k)')
disp('Tentukan Model pendekatan sistem adalah:')
disp('b1)y(k)=-a1*y(k-1)-a2*y(k-2)+b0*x(k-1)+b1*x(k-2)              nA=2,nB=1,d=1')
disp('b2)y(k)=-a1*y(k-1)-a2*y(k-2)-a3*y(k-3)+b0*x(k-1)              nA=3,nB=0,d=1')
disp('b3)y(k)=-a1*y(k-1)+b0*x(k-1)+b1*x(k-2)+b2*x(k-3)+b3*x(k-4))   nA=1,nB=3,d=1')
disp('Masukkan data sesuai ketentuan diatas :')
na=input('Panjang nA model: ');
nb=input('Panjang nB model: ');
d=input('Panjang d model: ');
disp('Hasil =')
y=zeros((na+nb+d),1);       %vektor y
T=zeros((na+nb+d),1);       %vektor theta
P=zeros((na+nb+d),(na+nb+d));%jumlah MATRIX P
Theta=zeros((na+nb+d),1);   %vektor theta

m=max(na,nb+d)              %nilai m
n=na+nb+d                   %total n
k=length(yk)-1              %total data
p=k-(m+n)+2                 %total perulangan
m=m+1;                      %berhubung data dimulai dari 1

   for k=m:p+m-1            %perulangan dari dari data k=m+1 sampai p
       for a=1:n            %a=1 sampai n
           for i=1:na       %i=1 sampai 2 (na=2)P(n,i)=-yk(n+na-i+k)
               P(a,i)=-yk(a+k-i-1); %(m+1)-i
           end
           for j=1:(nb+d)   %j=1 sampai 2 (nb+d=2)P(n,j+na)=xk(n+nb+d-j+k)
               P(a,j+na)=xk(a+k-j-1);%(m+1)-j
           end 
           y(a,1)=yk(k+a-1);%
       end
       y
       P
   T= (inv(P)*y)
   Theta=Theta+T
   end
   Theta=Theta/((p+m-1)-m+1)

 
Saat program untitled.m dijalankan (untuk tipe1)
Ahmad Roni Utomo (22101015012)
Langkah - langkah :
1. Jalankan data_output_xkyk.mdl --> Untuk mendapatkan x(k) dan y(k)
Tentukan Model pendekatan sistem adalah:
tipe1)y(k)=-a1*y(k-1)-a2*y(k-2)+b0*x(k-1)+b1*x(k-2)              nA=2,nB=1,d=1
tipe 2)y(k)=-a1*y(k-1)-a2*y(k-2)-a3*y(k-3)+b0*x(k-1)              nA=3,nB=0,d=1
tipe 3)y(k)=-a1*y(k-1)+b0*x(k-1)+b1*x(k-2)+b2*x(k-3)+b3*x(k-4))   nA=1,nB=3,d=1
Masukkan data sesuai ketentuan diatas :

Panjang nA model: 2
Panjang nB model: 1
Panjang d model: 1


Hasilnya adalah=

m =
     2
n =
     4
k =
    10
p =
     6
y =
    0.0678
    0.1239
    0.1565
    0.1967

P =

   -0.0522         0    0.5470    0.7190
   -0.0678   -0.0522    1.1789    0.5470
   -0.1239   -0.0678    1.1793    1.1789
   -0.1565   -0.1239    1.4347    1.1793

T =
   -1.4425
    0.4493
    0.0726
   -0.0657

Theta =
   -1.4425
    0.4493
    0.0726
   -0.0657

y =

    0.1239
    0.1565
    0.1967
    0.1832

P =
   -0.0678   -0.0522    1.1789    0.5470
   -0.1239   -0.0678    1.1793    1.1789
   -0.1565   -0.1239    1.4347    1.1793
   -0.1967   -0.1565    0.8835    1.4347

T =
   -1.4425
    0.4493
    0.0726
   -0.0657

Theta =
   -2.8849
    0.8987
    0.1452
   -0.1315

y =
    0.1565
    0.1967
    0.1832
    0.1918

P =
   -0.1239   -0.0678    1.1793    1.1789
   -0.1565   -0.1239    1.4347    1.1793
   -0.1967   -0.1565    0.8835    1.4347
   -0.1832   -0.1967    1.0194    0.8835

T =
   -1.4425
    0.4493
    0.0726
   -0.0657

Theta =
   -4.3274
    1.3480
    0.2178
   -0.1972

y =
    0.1967
    0.1832
    0.1918
    0.2240

P =
   -0.1565   -0.1239    1.4347    1.1793
   -0.1967   -0.1565    0.8835    1.4347
   -0.1832   -0.1967    1.0194    0.8835
   -0.1918   -0.1832    1.3310    1.0194

T =
   -1.4425
    0.4493
    0.0726
   -0.0657

Theta =
   -5.7698
    1.7973
    0.2905
   -0.2629
y =
    0.1832
    0.1918
    0.2240
    0.1883

P =
   -0.1967   -0.1565    0.8835    1.4347
   -0.1832   -0.1967    1.0194    0.8835
   -0.1918   -0.1832    1.3310    1.0194
   -0.2240   -0.1918    0.5346    1.3310

T =
   -1.4425
    0.4493
    0.0726
   -0.0657

Theta =
   -7.2123
    2.2466
    0.3631
   -0.3287

y =
    0.1918
    0.2240
    0.1883
    0.1760

P =
   -0.1832   -0.1967    1.0194    0.8835
   -0.1918   -0.1832    1.3310    1.0194
   -0.2240   -0.1918    0.5346    1.3310
   -0.1883   -0.2240    0.5535    0.5346

T =
   -1.4425
    0.4493
    0.0726
   -0.0657

Theta =
   -8.6547
    2.6960
    0.4357
   -0.3944

Theta =
   -1.4425
    0.4493
    0.0726
   -0.0657

Lakukan juga simulasi untuk mendapatkan theta tipe 2 dan tipe 3. jika sudah maka lakukan pengecekan dengan menggunakan  simulink dan program dari editor pada matlab seoerti dibawah ini :

Nilai theta dari masing-masing model pendekatan sistem diatas, dibandingkan dengan respons step, disini
time samplingnya adalah 0.5:


Isikan data di matlab function sesuai nama function output (function output)program :

Pada tab Matlab Function isikan sesuai output program dalam hal ini ada tiga macam program yang ingin di ambil datanya yaitu àthetabaru_1” ; “ thetabaru_2” ; “thetabaru_3”


Dimana perintah pada MATLAB Fcn adalah:
1.        tipe1 (Pada matlab function (MATLAB Fcn) yang digunakan adalah thetabaru_1)
Rumus : y(k)=-a1y(k-1) –a2y(k-2) +b0x(k-1) +b1x(k-2)
theta =
   a1 = -1.4425
   a2 =0.4493
   b0 = 0.0726
   b1 =-0.0657

Masukkan variabel theta diatas ke rumus pada program dibawah ini ke >> yk(d)= ..”

function output = thetabaru_1(data)                   %Function definition line
global yk xk
t=data(1)          %timer 0.5 1 1.5 2 2.5 dst
d=1+(t/0.5)        %d= 1,2,3,4,5
xk(d)=data(2)      %ambil data xk
output=0;yk(d)=0;
if d>2      %karena m=2
    % Masukkan tetha yang didapat ke dalam Rumus -->
    % y(k)=-a1y(k-1) –a2y(k-2) +b0x(k-1) +b1x(k-2)
    yk(d)=-(-1.4425*yk(d-1))-(0.4493*yk(d-2))+(0.0726*xk(d-1))+(-0.0657*xk(d-2))
    output=yk(d)
end
end

Berikut adalah gambar Hasil simulasi :
 
1.        tipe2(Pada matlab function yang digunakan adalah thetabaru_2)
Rumus :   y(k)=-a1*y(k-1)-a2*y(k-2)-a3*y(k-3)+b0*x(k-1)

Theta =
a1 =  -0.5084
a2 =  -0.0439
a3 =  -0.1289
b0 =  0.0677

Masukkan variabel theta diatas ke rumus pada program dibawah ini ke >> yk(d)= ..”
function output = thetabaru_2(data)                   %Function definition line
global yk xk
t=data(1)          %timer 0.5 1 1.5 2 2.5 dst
d=1+(t/0.5)        %d= 1,2,3,4,5
xk(d)=data(2)      %ambil data xk
output=0;yk(d)=0;
if d>3 %karena m=3
    % Masukkan tetha yang didapat ke dalam Rumus -->
    %y(k)=-a1*y(k-1)-a2*y(k-2)-a3*y(k-3)+b0*x(k-1)
    yk(d)=-(-0.5084*yk(d-1))-(-0.0439*yk(d-2))-(-0.1289*yk(d-3))+(0.0677*xk(d-1))
    output=yk(d)
end
end

Hasil Simulasi :


Ø  Biru langit = Input step
Ø  Ungu         = Respon plant (Transfer Fcn)
Ø  Kuning      = Respon pendekatan sistem ( Hasil perhitunganTetha)

Dari ketiga metode dapat dilihat mana pemodelan yang hasil simulasinya mendekati dengan plant !!!

Tidak ada komentar:

Posting Komentar