Praktikum Sistem Kontrol Digital Eksperimen 7 – Pemodelan dengan Representasi State Space
Tujuan 1. Mempelajari konsep pemodelan dengan representasi state-space. 2. Membuat pemodelan dengan representasi state-space dengan Scilab.
Dasar Teori Untuk sistem LTI (Linear Time Invariant) yang kontinu, representasi state space dirumuskan : (1) ̇ (2) Keterangan: x adalah vektor dari variabel state (nx1), ̇ derivatif waktu dari vektor state (nx1), u adalah masukan atau vektor kontrol (px1), y adalah vektor keluaran (qx1), A adalah matriks sistem (nxn), B adalah masukan matriks (nxp), C adalah keluaran matriks (qxn) D adalah matriks feedforward (qxp). Diagram representasi state space ditunjukkan Gambar 1.
Gambar 1. Diagram representasi state-space
Persamaan keluaran (2) diperlukan karena seringkali ada variabel state yang tidak diamati secara langsung. Matriks keluaran C digunakan untuk menentukan variabel state mana yang digunakan oleh kontroler. Kadang-kadang tidak ada feedforward secara langsung yang menyebabkan D berupa matriks nol. Representasi state-space disebut juga representasi domain waktu dapat menangani sistem multi masukan multi keluaran (MIMO), sistem dengan kondisi awal yang tidak nol dan sistem non-linear dengan persamaan (1).
Eksperimen Eksperimen 1 : Pemodelan State Space Kontrol Kendaraan
Gambar 1. Model Kontrol Kendaraan sumber : http://ctms.engin.umich.edu/CTMS/index.php?example=CruiseControl§ion=SystemModeling
[ ̇]
[
] [ ] y = [1].[v]
dengan parameter : m = 1000 kg b = 50 N. S / Kg u = 500 N v = kecepatan dan y = keluaran (posisi) Spesifikasi desainnya : Rise time < 5 detik Overshoot < 10 % Steady State Error < 2 % Instruksi Scilab clear; clc; s = %s; m = 1000; b = 50;
[ ] [ ]
A = -b/m; B = 1/m; C = 1; D = 0; state_space = syslin('c',A,B,C,D); //disp(state_space) disp(state_space("A")) disp(state_space("B")) disp(state_space("C")) [A1,B1,C1,D1]=abcd(state_space); disp(A1) disp(B1) disp(C1)
Perancangan Kontrol dengan Peletakkan Kutub
Gambar 2. Skematik Full State Feedback Cruise Control sumber : http://ctms.engin.umich.edu/CTMS/index.php?example=CruiseControl§ion=ControlStateSpace#1
Dengan : K = matriks Kontrol u = -Kv = masukan karena A-B*K matriks yaitu [1x1] maka hanya bisa ditempatkan satu kutub misalnya p1 = -1.5, x0 = 0; p1 = -1.5; t = 0:0.1:10; u = 500*ones(size(t,1),size(t,2)); K = ppol(A,B,p1); disp(K) sistem_cl = syslin('c',A-B*K,B,C,D); step_respons = csim(u, t, sistem_cl, x0); scf(1); clf(1); xgrid(); xtitle('Step Respons', 'time', 'response'); plot(t, step_respons, 'r-');
Masukkan hasil analisa pada tabel berikut ini : t saat 10 % t saat 90 % rise time p1 (t1) (t2) (t2 – t1) -1.0 -1.5 -2.0 -2.5 -3.0
steady state SSE (%) (s) abs(masukan - s)
Masukan Referensi
Gambar 3. Skematik Scaling Factor Nbar sumber : http://ctms.engin.umich.edu/CTMS/index.php?example=CruiseControl§ion=ControlStateSpace#1
Skala faktor (NBar) dapat digunakan untuk mengeliminasi steady state error. Dengan skala masukan 500 N dan keluaran yang diinginkan 10 m/s maka NBar dihitung manual dengan: function NBar = rscale(a,b,c,d,k) s = size(a,1); Z = [zeros(1,s) 1]; N = inv([a,b;c,d])*Z'; Nx = N(1:s); Nu = N(1+s); NBar = Nu + k*Nx; endfunction NBar = rscale(A1,B1,C1,D1,K); NBar = NBar.*10/500; sistem_cl = syslin('c',A-B*K,B*NBar,C,D); step_respons = csim(u, t, sistem_cl); scf(1); clf(1); xgrid(); xtitle('Step Respons', 'time', 'response'); plot(t, step_respons, 'b-');
Setelah itu lengkapi tabel berikut ini : t saat 10 % t saat 90 % NBar (t1) (t2) 10 20 30 40 50
Rise Time (t2 – t1)
Stady State (s)
SSE (%) Abs(masukan -s)
Eksperimen 2 : Pemodelan State Space Kecepatan Motor DC
Gambar 4. Model Motor Sumber : http://ctms.engin.umich.edu/CTMS/index.php?example=MotorSpeed§ion=SystemModeling
̇ [ ]
̇ ][ ]
[
[ Spesifikasi desain: Settling time kurang dari 2s Overshoot kurang dari 5% Steady state error kurang dari 1% Instruksi Scilab clear; clc; s J b K R
= = = = =
%s; 0.01; 0.1; 0.01; 1;
̇ ][ ]
[ ]
L = 0.5; A = [-b/J K/J -K/L -R/L]; B = [0 1/L]; C = [1 0]; D = 0; state_space = syslin('c',A,B,C,D); disp(state_space)
Perancangan Kontrol dengan Peletakan Kutub
Gambar 5. Skematik Full State Feedback Motor Sumber : http://ctms.engin.umich.edu/CTMS/index.php?example=MotorSpeed§ion=ControlStateSpace
Dengan : karena A-B*Kc berupa matriks [2x2] maka akan ada dua kutub. // mencari poles z=0.98; wn=5; lamda = s^2+2*z*wn*s+wn^2; clpoles = roots(lamda); disp(clpoles) // atau manual p1 = -5 + 1*%i; p2 = -5 - 1*%i; Kc = ppol(A,B,[p1 p2]); t = 0:0.01:3; sistem_cl = syslin('c',A-B*Kc,B,C,D); step_respons = csim('step', t, sistem_cl); scf(1); clf(1); xgrid();
xtitle('Step Respons with State-Feedback Controller', 'time', 'response'); plot(t, step_respons, 'r-');
Masukkan hasil analisa pada tabel berikut ini : t saat t saat rise time p1 10 % (t1) 90 % (t2) (t2 – t1) [-5 + 1i, -5 – 1i]
steady state (s)
SSE (%) abs(masukan - s)
Menambah precompensator
Gambar 6. Skematik Full State Feedback dengan Precompensator Sumber : http://ctms.engin.umich.edu/CTMS/index.php?example=MotorSpeed§ion=ControlStateSpace
Skala faktor (NBar) dapat digunakan untuk mengeliminasi steady state error. function NBar = rscale(a,b,c,d,k) s = size(a,1); Z = [zeros(1,s) 1]; N = inv([a,b;c,d])*Z'; Nx = N(1:s); Nu = N(1+s); NBar = Nu + k*Nx; endfunction t = 0:0.01:10; NBar = rscale(A,B,C,D,Kc); step_respons = csim('step', t, sistem_cl*NBar); scf(2);clf(2); xgrid(); xtitle('Step Respons with State-Feedback Controller and Recompensator', 'time', 'response'); plot(t, step_respons, 'b-');
Setelah itu lengkapi tabel berikut ini : t saat 10 % t saat 90 % NBar (t1) (t2) 11 12 13 14 15
Rise Time (t2 – t1)
Stady State (s)
SSE (%) Abs(masukan -s)
Tugas Hitung representasi state space dari model berikut (tulis sampai ketemu A,B,C,D nya saja)
1.
2.