Setpoint Tracking dengan LQR


Sistem kendali tanpa input reference pasti akan membosankan. Sama seperti kita membeli memainkan mobil radio kontrol tetapi kita tidak bisa mengendalikan mobilnya. Pada artikel sebelumnya saya jelaskan dasar dan pemakaian LQR tetapi tanpa input reference. Dan sekarang mari kita lihat LQR yang disertai input reference sehingga output sistem dapat kita ubah-ubah sesuai keinginan.

Dimulai dari state space plant/proses yang akan dikendalikan:

dx/dt = Ax + Bu

y = Cx + Du

Kita menginginkan output y(t) bisa mengikuti input reference r(t). Jadi pada saat steady state, persamaan plant menjadi:

0 = Ax* + Bu*

r = Cx* + Du*

x* dan u* adalah nilai x dan u ketika output sudah mengikuti reference dan bisa dicari dari nilai r dengan hubungan:

x* = Fr

u* = Nr

Objektif dari LQR adalah membuat output plant menjadi nol, tetapi di sini kita belum tentu menginginkan output tersebut menjadi nol. Oleh karena itu, kita harus memodifikasi persamaan sehingga output dari plant adalah error atau perbedaan antara output y(t) dan referensi r(t).

dx/dt = A(x-x*) + B(u-u*)

y-r = C(x-x*) + D(u-u*)

Bisa dilihat sekarang, objektif LQR adalah membuat y-r menjadi nol (membuat output y sama dengan reference r). Persamaan feedback sistem kendalinya menjadi:

(u-u*) = -K(x-x*)

substitusi u* dan x*,

u – Nr = -K(x – Fr)

u – Nr = -Kx + KFr

Voila! Jadilah input sistem kendali LQR dengan tambahan input reference:

u = -Kx + (KF+N)r

Sistem kendali LQR dalam diagram blok sekarang menjadi seperti ini:

Sekarang yang menjadi pertanyaan adalah: Bagaimana cara mencari F dan N? Ada dua cara yang dapat dipakai untuk mencari F dan N.

Solusi Pertama:

Susun persamaan state space ketika steady state ke dalam satu matrix:

Ingat bahwa x*=Fr dan u*=Nr, maka kita bisa memperoleh F dan N dengan membalikan persamaan menjadi:

Jadi F dan N adalah bagian dari inverse matrix ABCD tersebut yang berhubungan dengan x* dan u*. Bingung? Mungkin solusi kedua lebih mudah untuk dimengerti.

Solusi Kedua:

Anggap sistem kendali belum menggunakan blok KF+N, sehingga persamaan state-nya:

dx/dt = (A-BK)x + Br

y = Cx + Du

Fungsi transfer loop tertutupnya menjadi:

G(s) = C inv(sI-A+BK) B

Agar output y(t) nilainya bisa sama dengan r(t), maka gain frekuensi rendah (diasumsikan reference input tidak berupa sinyal berfrekuensi tinggi) dari G(s) harus bernilai 1. Jadi, pertama kita lihat berapa gain G(s) tanpa blok KF+N.

lim s→0 [G(s)] = L

s →0 sama dengan frekuensi mendekati nol atau frekuensi rendah. nilai G(s) pada frekuensi ini adalah L yang merupakan gain frekuensi rendah dari G(s). Agar gain keseluruhannya menjadi 1, maka sistem harus diberi gain 1/L pada input. Atau dengan kata lain, KF+N = 1/L.

Pusing? Baca Intinya saja di Sini:

  • LQR dengan input reference bentuknya seperti pada gambar diagram blok di atas.
  • Mirip dengan LQR tanpa reference, tetapi ditambahkan input r dan blok KF+N dijalur r tersebut.
  • Gain feedback K diperoleh dengan cara yang sama pada LQR tanpa input reference.
  • KF+N dapat dibentuk dengan mencari dahulu F dan N atau langsung KF+N = 1/L di mana L adalah gain frekuensi rendah loop tertutup.

Referensi

Hespanha, João P. 2007. Undergraduate Lecture Notes on LQG/LQR Controller Design. Santa Barbara CA: University of California. http://www.ece.ucsb.edu/~hespanha/ece147c/web/lqrlqgnotes.pdf. diakses 26 Juli 2010.

About Junot D. Ojong

Author is a control systems engineer at a private company in Jakarta.
This entry was posted in Ah, teori! and tagged , , , , , , , , , , , . Bookmark the permalink.

9 Responses to Setpoint Tracking dengan LQR

  1. Pingback: 2D Crane Sway Control dengan LQR | Akirajunto’s Blog

  2. unis says:

    mas mau tanya:
    kalau sistemnya orde satu bisa ga dikerjakan dengan LQR dimana nilai R nya saya set 1. dan untuk setpoint tracking ini cara mengeluarkan responnya gimana ya mas??

    saya udah kerjakan Mfile nya hanya sampai nilai K (persamaan kalman) dan L atau di persamaan yang dituliskan diatas adalah KF+N.
    sedangkan untuk mencari U=-Kx+Lr.
    disini saya kesulitan mengeluarkan hasil sinyalnya mas. nilai x dan r itu didapatkan dari mana ya??
    terimakasih dan mohon bimbingannya.😀

    • Nilai R nya sih belum tentu 1 ya, dicoba-coba saja.

      Nilai r itu adalah reference atau setpoint, jadi terserah kita mau seperti apa (fungsi step, sinusoid, impulse, dll).

      Nilai x itu adalah state dari plant, diperoleh dengan menyelesaikan persamaan state space sistemnya.

  3. Aldi says:

    mas, saya ada pertanyaan. bagaimana kalau matrix [A B;C 0] (anggap D=0) tidak mempunyai inverse sedangkan systemnya itu controllable? bagaimana cara mendesign gain untuk tracking dalam hal ini?

    Aldi

    • Halo Aldi, maaf nih baru bisa balas sekarang. Kalau matrix [A B; C D] nya tidak mempunya inverse, kita bisa coba dengan cara yang kedua. Cara itu ialah dengan mencari low frekuensi gain closed loop systemnya. Lalu gain trackingnya adalah kebalikan dari low frekuensi gain tersebut.

  4. Heri Purnawan says:

    mau tanya mas. bagaimana jika 2 input dan 4 output. apakah harus ditentukan 2 ouput saja? agar bisa dicari KF+N pakai cara yang ke 2.
    bagaimana jika menggunakan skema LQR dengan integral action?
    terima kasih.

    • Output di sini maksudnya y atau state x? Jika y, maka harusnya sama jumlahnya dengan reference r. Jika tidak, mungkin ada nilai output yg tujuannya menjadi nol.

      Integral control akan muncul otomatis mas, tergantung hasil kalkulasi matrix LQR nya.

  5. Heri Purnawan says:

    apakah jika matriksnya bukan persegi bisa digunakan cara diatas, mas? (Pseudo invers/pinv)
    Jika A=4×4 , B=4×2 , C=eye(4), D=zeros(4,2).
    terima kasih.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s