Anda di halaman 1dari 9

Putri Gita Artha Adjani Syindy_3110191019

KENDALI ADAPTIF
Tugas MRAC MIT

Kita fokus pada sistem simple orde pertama, yang direpresentasikan pada persamaan :
𝑑𝑦
= −𝑎𝑦 + 𝑏𝑢
𝑑𝑡
Dimana 𝑦 adalah keluaran dari sistem yang ingin kita kendalikan, 𝑢 merupakan keluaran dari
pengontrol (disebut sebagai masukan kendali), 𝑎 dan 𝑏 merupakan konstanta yang menentukan
dinamika sistem. Kami berasumsi bahwa konstanta 𝑎 dan 𝑏 tidak diketahui selama prosedur desain
kontrol.
Tujuan dari Model Reference Adaptive Controller (MRAC) adalah untuk menghitung input
kontrol sedemikian rupa sehingga output sistem sedekat mungkin dengan output dari model
referensi. Model referensi adalah model yang menentukan perilaku sistem yang
diinginkan. Artinya, output dari model referensi adalah output sistem yang diinginkan yang ingin
kita capai dalam praktik. Selama proses desain MRAC, diasumsikan bahwa model referensi
diketahui. Dengan demikian, untuk model ( 1 ), model referensi didefinisikan oleh persamaan
berikut:
𝑑𝑦𝑚
= −𝑎𝑚 𝑦𝑚 + 𝑏𝑚 𝑢𝑐 (1)
𝑑𝑡
Dimana 𝑦𝑚 adalah output dari model referensi, 𝑢𝑐 adalah input dari model referensi,
𝑎𝑚 dan 𝑏𝑚 merupakan parameter dari model referensi. Kami berasumsi bahwa 𝑎𝑚 dan 𝑏𝑚
diketahui. Sinyalnya 𝑢𝑐 diketahui. Karena 𝑢𝑐 diketahui, kita dapat mensimulasikan model
referensi ( 2 ) untuk menghasilkan output dari model referensi 𝑦𝑚 . Struktur input kontrol diberikan
oleh persamaan berikut:
𝑢(𝑡) = 𝜃1 (𝑡)𝑢𝑐 (𝑡) − 𝜃2 (𝑡)𝑦(𝑡) (2)

di mana 𝜃1 (𝑡) dan 𝜃2 (𝑡) adalah parameter kontrol adaptif yang ditentukan oleh algoritma kontrol
adaptif.

Tujuan dari algoritma kontrol adaptif adalah untuk menentukan parameter


𝜃1 (𝑡) dan 𝜃2 (𝑡) sedemikian rupa sehingga keluaran sistem 𝑦(𝑡) sedekat mungkin dengan
keluaran 𝑦𝑚 (𝑡) model acuan untuk beberapa fungsi masukan acuan yang dipilih 𝑢𝑐 (𝑡) . Untuk
pengembangan algoritma kontrol, adalah instruktif untuk melakukan analisis berikut. Yaitu,
dengan mensubstitusikan hukum kontrol ( 3 ) pada ( 1 ), kita memperoleh

𝑑𝑦
= −(𝑎 + 𝑏𝜃2 )𝑦 + 𝑏𝜃1 𝑢𝑐 (3)
𝑑𝑡
Model ( 4 ) adalah sistem kontrol loop tertutup. Mari kita bandingkan ( 4 ) dengan model referensi
( 2 ). Jika parameter 𝜃1 dan 𝜃2 ambil nilai konstan berikut :

𝑏𝑚 𝑎𝑚 − 𝑎
𝜃1 = 𝜃1∗ = , 𝜃2 = 𝜃2∗ =
𝑏 𝑎

kemudian, kita dapat menyimpulkan bahwa dinamika sistem loop tertutup ( 4 ) identik dengan
model referensi ( 2 ). Namun, dalam praktiknya, kita tidak mengetahui konstanta 𝑎 dan 𝑏 sistem,
dan akibatnya, kita tidak dapat menentukan parameter 𝜃1 dan 𝜃2 dengan cara ini. Meskipun
demikian, analisis yang disajikan di atas akan membantu kami untuk memvalidasi konvergensi
pengontrol adaptif yang akan dikembangkan dalam sekuelnya.

Secara longgar, aturan kontrol adaptif MIT bertujuan meminimalkan fungsi biaya berikut:

1
𝐽 = 𝑒2
2

di mana 𝑒 kesalahan kontrol didefinisikan sebagai berikut:

𝑒(𝑡) = 𝑦(𝑡) − 𝑦𝑚 (𝑡)

Untuk menurunkan nilai dari 𝐽 adalah wajar untuk menyesuaikan parameter 𝜃1 dan 𝜃2 dalam arah
gradien negatif dari 𝐽. Dengan menggunakan ide ini, kita memperoleh :

𝑑𝜃1 𝛼(𝜕𝐽) 𝛼𝑒(𝜕𝑒)


=− =−
𝑑𝑡 𝜕𝜃1 𝜕𝜃1

𝑑𝜃2 𝛼(𝜕𝐽) 𝛼𝑒(𝜕𝑒)


=− =−
𝑑𝑡 𝜕𝜃2 𝜕𝜃2

Untuk menghitung turunan parsial ini, kita perlu menyatakan 𝑦(𝑡) dari ( 4 ). Ini dapat dilakukan
dengan menggunakan operator turunan 𝑝, yang bekerja pada suatu fungsi dengan cara berikut:

𝑑𝑓(𝑡)
𝑝𝑓(𝑡) =
𝑑𝑡

Akibatnya, dari ( 4 ), kami memperoleh

𝑝𝑦 = −(𝑎 + 𝑏𝜃2 )𝑦 + 𝑏𝜃1 𝑢𝑐


(𝑝 + 𝑎 + 𝑏𝜃2 )𝑦 = 𝑏𝜃1 𝑢𝑐
𝑏𝜃1 𝑢𝑐
𝑦=
(𝑝 + 𝑎 + 𝑏𝜃2 )
Akibatnya, menggunakan ( 10 ), kesalahan dapat ditulis sebagai berikut:

𝑏𝜃1 𝑢𝑐
𝑒= − 𝑦𝑚
(𝑝 + 𝑎 + 𝑏𝜃2 )

Dengan mengambil turunan parsial dari ( 11 ) terhadap 𝜃1 dan 𝜃2 , kita peroleh

(𝜕𝑒) 𝑏𝜃1 𝑢𝑐
=
𝜕𝜃1 (𝑝 + 𝑎 + 𝑏𝜃2 )
(𝜕𝑒) −𝑏𝑦
=
𝜕𝜃2 (𝑝 + 𝑎 + 𝑏𝜃2 )

Turunan parsial dalam ( 12 ) bergantung pada parameter sistem yang tidak diketahui 𝑎 dan
𝑏 akibatnya, kita tidak dapat menghitungnya secara eksplisit. Untuk melakukan perhitungan, kita
perlu memperkenalkan pendekatan yang dibenarkan secara fisik. Pada dasarnya, dalam skenario
ideal, parameter 𝜃1 dan 𝜃2 harus konvergen ke nilai 𝜃1∗ dan 𝜃2∗ yang membuat dinamika loop
tertutup sama dengan dinamika model referensi. Dalam kasus ideal ini, dari ( 5 ) kita memiliki

𝑎𝑚 = 𝑎 + 𝑏𝜃2∗ ≈ 𝑎 + 𝑏𝜃2

Akibatnya, kita dapat menggunakan aproksimasi ini untuk memperkirakan suku-suku yang tidak
diketahui dalam penyebut dari ekspresi dalam ( 12 ). Dengan demikian, kami memiliki

𝑝 + 𝑎 + 𝑏𝜃2∗ ≈ 𝑝 + 𝑎𝑚

Selanjutnya, kita substitusikan aproksimasi ini ke dalam ( 12 ) dan sebagai hasilnya, kita peroleh

(𝜕𝑒) 𝑏𝑢𝑐

𝜕𝜃1 𝑝 + 𝑎𝑚

(𝜕𝑒) −𝑏𝑦

𝜕𝜃2 𝑝 + 𝑎𝑚

Akhirnya, dengan mensubstitusi turunan parsial ini ke dalam ( 8 ) kita memperoleh ekspresi akhir
yang menjelaskan perubahan parameter dalam waktu

𝑑𝜃1 𝛼𝑏 𝑎𝑚 𝑢𝑐 𝑎𝑚 𝑢𝑐
=− . 𝑒 = −𝛾 𝑒
𝑑𝑡 𝑎𝑚 𝑝 + 𝑎𝑚 𝑝 + 𝑎𝑚

𝑑𝜃2 𝛼𝑏 𝑎𝑚 𝑦 𝑎𝑚 𝑦
= . 𝑒=𝛾 𝑒
𝑑𝑡 𝑎𝑚 𝑝 + 𝑎𝑚 𝑝 + 𝑎𝑚
𝛼𝑏
mana 𝛾 = 𝑎 keuntungan baru. Perhatikan bahwa kami telah menormalkan filter
𝑚

1
𝑝 + 𝑎𝑚
Lewat sini
𝑎𝑚
𝑝 + 𝑎𝑚

Filter ini sekarang akan memiliki unit penguatan kondisi tunak.


Persamaan pada ( 16 ) dan persamaan terakhir pada ( 10 ) menggambarkan dinamika sistem loop
tertutup. Persamaan ini ditulis dalam bentuk domain waktu campuran dan operator
diferensial p. Untuk pengembangan lebih lanjut, adalah instruktif untuk mewakili persamaan ini
dalam domain waktu murni. Menggunakan definisi operator diferensial ( 9 ) dan dengan
melakukan beberapa langkah aljabar, kita memperoleh:

Di mana

Sistem persamaan diferensial ini digabungkan dengan persamaan model referensi ( 2 ) yang kami
tulis ulang di sini untuk kejelasan.
𝑑𝑦𝑚
= −𝑎𝑚 𝑦𝑚 + 𝑏𝑚 𝑢𝑐
𝑑𝑡
Untuk terpilih 𝑢𝑐 (𝑡) kita dapat mensimulasikan model referensi ( 21 ). Dengan cara ini, kita
memperoleh keluaran model referensi 𝑦𝑚 (𝑡) yang merupakan fungsi waktu yang diketahui. Deret
waktu {𝑢𝑐 (𝑡), 𝑦𝑚 (𝑡)} digunakan sebagai "input" yang diketahui untuk mengarahkan dinamika
yang diberikan oleh ( 19 ).
Untuk mensimulasikan model ( 19 ), kita perlu mengubahnya menjadi model state-space. Pertama,
kita perlu memperkenalkan variabel state-space:

Model ruang kedaan adalah


Selanjutnya, kami menjelaskan kode untuk mensimulasikan perilaku sistem loop tertutup. Kami
mengasumsikan parameter berikut:

Kombinasi parameter ini memberikan nilai parameter konvergen berikut (lihat persamaan pada
( 5 ))

Nilai parameter ini akan digunakan untuk memverifikasi konvergensi algoritma.

Baris kode berikut digunakan untuk mendefinisikan model referensi dan untuk menghasilkan input
referensi dan sinyal output referensi.

% MATLAB simulation of a model reference adaptive controller


% Author: Aleksandar Haber
% Date: April 21, 2021

% reference model parameters

am=2
bm=2

% plant parameters (that are unknown during control design)


a=1
b=0.5

% final values of the parameters for verification of convergence


theta1final=bm/b
theta2final=(am-a)/b

% reference model
Wm=tf([bm],[1 am])

tmax=100 % max simulation time


time=0:0.001:tmax; %time vector

% define a reference input signal


pulsew = 10; %pulse width
delayop= pulsew/2:pulsew*2:tmax; %delay vector
% reference input
ur=2*pulstran(time,delayop,'rectpuls',pulsew)-1;

% input reference signal


figure(1)
plot(time,ur);
set(gca,'Ylim',[-1.5 1.5]);

% output reference signal


yr=lsim(Wm,ur,time)

figure(2)
plot(time,yr,'r')
hold on
plot(time,ur,'k')
Baris kode 36 pada kode di atas digunakan untuk membangkitkan sinyal keluaran referensi dengan
mensimulasikan model referensi.

Sinyal input referensi dan sinyal output referensi ditunjukkan pada Gambar 1 di bawah ini.

Dinamika sistem loop tertutup didefinisikan oleh fungsi MATLAB berikut.


function dxdt = dynamics_adaptive(t, x, um, ym, time_um,am,bm,a,b,gamma)

um_interp = interp1(time_um, um, t); % Interpolate the data set (time_um,


um) at time t
ym_interp = interp1(time_um, ym, t); % Interpolate the data set (time_um,
ym) at time t

dxdt(1,1)=x(2);
dxdt(2,1)=-am*x(2)-gamma*am*x(5)*um_interp+gamma*am*ym_interp*um_interp;
dxdt(3,1)=x(4);
dxdt(4,1)=-am*x(4)+gamma*am*x(5)^2-gamma*am*x(5)*ym_interp;
dxdt(5,1)=-a*x(5)+b*x(1)*um_interp-b*x(3)*x(5);

Fungsi ini mengambil input waktu saat ini "t", status saat ini "x", vektor input kontrol model
referensi "um", vektor output model referensi "ym", vektor waktu "time_um", parameter "am",
"bm", "a", "b", dan kontrol mendapatkan "gamma". Fungsi ini merupakan implementasi MATLAB
dari dinamika sistem loop tertutup yang diberikan oleh ( 23 ).
Kami menggunakan pendekatan interpolasi untuk menangani input yang bervariasi waktu "um"
dan "ym" dalam simulasi fungsi ode45. Rincian lebih lanjut tentang pendekatan ini dapat
ditemukan di ini dan di posting ini.

Lintasan keadaan disimulasikan dengan mengeksekusi baris kode ini.


% initial condition
x0=zeros(5,1);
% gain
gamma2=0.5;

[time1 state_trajectories] = ode45(@(t,x) dynamics_adaptive(t, x, ur, yr,


time,am,bm,a,b,gamma2), time, x0);

theta1=state_trajectories(:,1)
theta2=state_trajectories(:,3)
y=state_trajectories(:,5)

figure(3)
plot(time,yr,'k')
hold on
plot(time,y,'m')

figure(4)
plot(time,theta1,'k')
hold on
plot(time,theta2,'m')

figure(3)
plot(time,yr,'k')
hold on
plot(time,y,'m')

figure(4)
plot(time,theta1,'k')
hold on
plot(time,theta2,'m')

Kami mensimulasikan respon sistem untuk tiga nilai gain controller 𝛾 = 0.5 , 𝛾 = 2 dan , 𝛾 = 4
Output model referensi dan output terkontrol dari pabrik ditunjukkan pada Gambar. 2 untuk 𝛾 =
0.5
Lintasan konvergensi parameter 𝜃1 dan 𝜃2 ditunjukkan pada Gambar. 3 untuk 𝛾 = 0.5
Output model referensi dan output terkontrol dari pabrik ditunjukkan pada Gambar. 6 untuk 𝛾 =
4

Anda mungkin juga menyukai