Anda di halaman 1dari 15

Sebuah bola ditempatkan di atas balok, lihat gambar di bawah, di mana bola itu dibiarkan

bergulir dengan 1 derajat kebebasan di sepanjang balok. Lengan tuas melekat pada balok di
satu ujung dan gigi servo di ujung lainnya. Saat gigi servo berputar dengan sudut $ \ theta $,
tuas mengubah sudut balok sebesar $ \ alpha $. Ketika sudut diubah dari posisi horizontal,
gravitasi menyebabkan bola bergulir di sepanjang balok. Kontroler akan dirancang untuk sistem
ini sehingga posisi bola dapat dimanipulasi.

Parameter sistem

Untuk masalah ini, kami akan menganggap bahwa bola menggelinding tanpa tergelincir dan
gesekan antara balok dan bola dapat diabaikan. Konstanta dan variabel untuk contoh ini
didefinisikan sebagai berikut:

(m) massa bola 0,11 kg

(R) jari-jari bola 0,015 m

(d) lengan tuas mengimbangi 0,03 m

(g) percepatan gravitasi 9,8 m / s ^ 2

(L) panjang balok 1,0 m

(J) momen inersia bola 9,99e-6 kg.m ^ 2

(r) koordinat posisi bola

(alpha) koordinat sudut balok

(theta) sudut gigi servo

Kriteria desain

Waktu penyelesaian <3 detik

Overshoot <5%

Persamaan sistem

Turunan kedua dari sudut input $ \ alpha $ sebenarnya mempengaruhi turunan kedua dari $ r $.
Namun, kami akan mengabaikan kontribusi ini. Persamaan gerak Lagrangian untuk bola
kemudian diberikan sebagai berikut:
(1) $$ 0 = \ kiri (\ frac {J} {R ^ 2} + m \ kanan) \ ddot {r} + m g \ sin {\ alpha} - m r

\ dot {\ alpha} ^ 2 $$

Linearisasi persamaan ini tentang sudut berkas, $ \ alpha = 0 $, memberi kita perkiraan linier
sistem berikut:

(2) $$ \ kiri (\ frac {J} {R ^ 2} + m \ kanan) \ ddot {r} = - m g \ alpha $$

Persamaan yang menghubungkan sudut berkas dengan sudut roda gigi dapat diperkirakan
sebagai linear dengan persamaan di bawah ini:

(3) $$ \ alpha = \ frac {d} {L} \ theta $$

Mengganti ini ke dalam persamaan sebelumnya, kita mendapatkan:

(4) $$ \ kiri (\ frac {J} {R ^ 2} + m \ kanan) \ ddot {r} = - m g \ frac {d} {L} \ theta $$

1. Fungsi Transfer

Mengambil transformasi Laplace dari persamaan di atas, persamaan berikut ditemukan:

(5) $$ \ kiri (\ frac {J} {R ^ 2} + m \ kanan) R (s) s ^ 2 = - m g \ frac {d} {L} \ Theta (s) $$

Penyusunan ulang kami menemukan fungsi transfer dari sudut roda gigi ($ \ Theta (s) $) ke
posisi bola ($ R (s) $).

(6) $$ P = \ frac {R (s)} {\ Theta (s)} = - \ frac {mgd} {L \ kiri (\ frac {J} {R ^ 2} + m \ kanan)}

\ frac {1} {s ^ 2} \ qquad [\ frac {m} {rad}] $$


Perlu dicatat bahwa fungsi transfer pabrik di atas adalah integrator ganda. Dengan demikian,
ini sedikit stabil dan akan memberikan masalah kontrol yang menantang.

Fungsi transfer dapat diimplementasikan dalam MATLAB sebagai berikut:

m = 0,111;

R = 0,015;

g = -9.8;

L = 1.0;

d = 0,03;

J = 9.99e-6;

s = tf ('s');

P_ball = -m * g * d / L / (J / R ^ 2 + m) / s ^ 2

P_ball =

0,21

----

s^2

Fungsi transfer kontinu-waktu.

2. State-Space

Persamaan sistem linierisasi juga dapat direpresentasikan dalam bentuk ruang-negara. Ini
dapat dilakukan dengan memilih posisi bola ($ r $) dan kecepatan ($ \ dot {r} $) sebagai variabel
status dan sudut roda gigi ($ \ theta $) sebagai input. Representasi state-space ditunjukkan di
bawah ini:

(7) $$ \ kiri [{\ begin {array} {c} \ dot {r} \\ \ ddot {r} \ end {array}} \ kanan] =
\ kiri [{\ mulai {array} {cc} 0 & 1 \\ 0 & 0 \ end {array}} \ kanan]

\ kiri [{\ begin {array} {c} r \\ \ dot {r} \ end {array}} \ kanan] +

\ left [{\ begin {array} {c} 0 \\ - \ frac {m g d} {L

\ kiri (\ frac {J} {R ^ 2} + m \ kanan)} \ end {array}} \ kanan] \ theta $$

Namun, untuk contoh state-space kami, kami akan menggunakan model yang sedikit berbeda.
Persamaan yang sama untuk bola masih berlaku tetapi alih-alih mengendalikan posisi melalui
sudut gigi, $ \ theta $, kami akan mengontrol torsi yang diterapkan pada balok secara langsung.
Di bawah ini adalah representasi dari sistem ini:

(8) $$ \ kiri [{\ begin {array} {c} \ dot {r} \\ \ ddot {r} \\ \ dot {\ alpha} \\ \ ddot {\ alpha} \ end
{array} } \ kanan] =

\ kiri [{\ mulai {array} {cccc} 0 & 1 & 0 & 0 \\ 0 & 0 & 0 & frac {-mg} {\ kiri (\ frac {J} {R ^ 2} + m \
kanan) } & 0 \\ 0 & 0 & 0 & 1 \\ 0 & 0 & 0 & 0 \ end {array}} \ kanan]

\ kiri [{\ begin {array} {c} r \\ \ dot {r} \\ \ alpha \\ \ dot {\ alpha} \ end {array}} \ kanan] +

\ kiri [{\ mulai {array} {c} 0 \\ 0 \\ 0 \\ 1 \ end {array}} \ kanan] u $$

(9) $$ y = \ kiri [{\ begin {array} {cccc} 1 & 0 & 0 & 0 \ end {array}} \ kanan]

\ kiri [{\ begin {array} {c} r \\ \ dot {r} \\ \ alpha \\ \ dot {\ alpha}

\ end {array}} \ kanan] $$

Catatan: Untuk sistem ini, roda gigi dan tuas tidak akan digunakan, sebagai gantinya motor di
tengah balok akan menerapkan torsi ke balok, untuk mengontrol posisi bola.

Persamaan state-space dapat direpresentasikan dalam MATLAB dengan perintah berikut


(persamaan ini adalah untuk model kontrol torsi).

H = -m * g / (J / (R ^ 2) + m);

A = [0 1 0 0

00H0
0001

0 0 0 0];

B = [0 0 0 1] ';

C = [1 0 0 0];

D = [0];

ball_ss = ss (A, B, C, D)

ball_ss =

A=

x1 x2 x3 x4

x1 0 1 0 0

x2 0 0 7 0

x3 0 0 0 1

x4 0 0 0 0

B=

u1

x1 0

x2 0

x3 0

x4 1

C=

x1 x2 x3 x4

y1 1 0 0 0

D=

u1
y1 0

Model ruang-ruang waktu-kontinu.

Model sistem

Fungsi transfer dari sudut roda gigi ($ \ Theta (s) $) ke posisi bola ($ R (s) $), seperti yang
diturunkan di halaman Ball & Beam: System Modeling.

(1) $$ P = s \ frac {R (s)} {\ Theta (s)} = - \ frac {mgd} {L \ kiri (\ frac {J} {R ^ 2} + m \ kanan)}

\ frac {1} {s ^ 2} \ qquad [\ frac {m} {rad}] $$

Buka file-m baru dan tambahkan kode berikut untuk membuat model fungsi transfer di MATLAB.

m = 0,111;

R = 0,015;

g = -9.8;

L = 1.0;

d = 0,03;

J = 9.99e-6;

s = tf ('s');

P_ball = -m * g * d / L / (J / R ^ 2 + m) / s ^ 2

P_ball =

0,21

----

s^2

Fungsi transfer kontinu-waktu.


Peta kutub / nol

Sistem Bola dan Balok adalah sistem tipe II yang memiliki dua kutub pada asalnya, seperti yang
terlihat pada peta kutub / nol di bawah ini. Karena kutub tidak secara ketat berada di bidang
setengah kiri, sistem loop terbuka akan tidak stabil seperti yang terlihat pada respons langkah di
bawah ini.

pzmap (P_ball)

Respon langkah loop terbuka

Sekarang, kami ingin mengamati respons bola terhadap input step pada sudut gear motor servo
$ \ theta $ (step 1-radian). Untuk melakukan ini, Anda perlu menambahkan baris berikut ke
file-m Anda.

langkah (P_ball)

Dari plot ini jelas bahwa sistem tidak stabil dalam loop terbuka yang menyebabkan bola bergulir
langsung dari ujung balok. Oleh karena itu, diperlukan beberapa metode untuk mengendalikan
posisi bola dalam sistem ini. Beberapa contoh desain pengontrol disediakan dalam tutorial ini
untuk mengatasi masalah ini.

Fungsi transfer loop terbuka tanaman untuk percobaan bola dan balok diberikan di bawah ini:

(1) $$

P (s) = \ frac {R (s)} {\ Theta (s)} =

- \ frac {mgd} {L \ kiri (\ frac {J} {R ^ 2} + m \ kanan)} \ frac {1} {s ^ 2} \ qquad [\ frac {m} {rad}]

$$

Kriteria desain untuk masalah ini adalah:

Waktu penyelesaian kurang dari 3 detik

Overshoot kurang dari 5%


Untuk melihat derivasi persamaan untuk masalah ini merujuk ke halaman Ball & Beam: System
Modeling.

Representasi loop tertutup

Diagram blok untuk contoh ini dengan pengontrol dan umpan balik kesatuan posisi bola
ditunjukkan di bawah ini:

Pertama, kita akan mempelajari respon dari sistem yang ditunjukkan di atas ketika pengontrol
proporsional digunakan. Kemudian, kontrol derivatif dan / atau integral akan ditambahkan jika
perlu.

Ingat, bahwa fungsi transfer untuk pengontrol PID adalah:

(2) $$

C (s) = K_p + \ frac {K_i} {s} + K_d s = \ frac {K_d s ^ 2 + K_p s + K_i} {s}

$$

Kontrol proporsional

Fungsi transfer loop tertutup untuk kontrol proporsional dengan keuntungan proporsional
($ K_p $) sama dengan 100, dapat dimodelkan dengan menyalin baris kode MATLAB berikut ke
dalam file-m baru.

m = 0,111;

R = 0,015;

g = -9.8;

L = 1.0;

d = 0,03;

J = 9.99e-6;
s = tf ('s');

P_ball = -m * g * d / L / (J / R ^ 2 + m) / s ^ 2;

Kp = 1;

C = pid (Kp);

sys_cl = umpan balik (C * P_ball, 1);

Sekarang, kita dapat memodelkan respons sistem terhadap input langkah 0,25 m. Tambahkan
baris kode berikut ke file-m Anda dan jalankan. Anda harus mendapatkan output berikut:

langkah (0.25 * sys_cl)

sumbu ([0 70 0 0,5])

Seperti yang Anda lihat, sistem tetap sedikit stabil dengan penambahan keuntungan
proporsional. Coba ubah nilai $ K_p $ dan perhatikan bahwa sistemnya tetap tidak stabil.

Kontrol proporsional-turunan

Sekarang, kita akan menambahkan istilah turunan ke controller. Salin baris kode berikut ke
file-m dan jalankan untuk melihat respons sistem terhadap metode kontrol ini. Plot Anda harus
serupa dengan yang berikut:

m = 0,111;

R = 0,015;

g = -9.8;

L = 1.0;

d = 0,03;

J = 9.99e-6;

s = tf ('s');

P_ball = -m * g * d / L / (J / R ^ 2 + m) / s ^ 2;
Kp = 10;

Kd = 10;

C = pid (Kp, 0, Kd);

sys_cl = umpan balik (C * P_ball, 1);

t = 0: 0,01: 5;

langkah (0.25 * sys_cl)

Sekarang sistemnya stabil tetapi overshootnya terlalu tinggi dan waktu penyelesaian perlu
sedikit turun. Dari halaman tutorial PID di bagian tentang karakteristik pengontrol P, I, dan D,
kita melihat bahwa dengan meningkatkan $ K_d $ kita dapat menurunkan overshoot dan
mengurangi sedikit waktu penyelesaian. Karena itu, hasilkan $ K_d $ = 20 dalam file-m Anda
dan jalankan lagi. Output Anda harus:

Kp = 10;

Kd = 20;

C = pid (Kp, 0, Kd);

sys_cl = umpan balik (C * P_ball, 1);

langkah (0.25 * sys_cl)

Kriteria overshoot terpenuhi tetapi waktu penyelesaian perlu turun sedikit. Untuk mengurangi
waktu penyelesaian, kami dapat mencoba menambah $ K_p $ sedikit untuk menambah waktu
naik. Keuntungan turunan ($ K_d $) juga dapat ditingkatkan untuk melepas beberapa overshoot
yang menyebabkan $ K_p $ akan ditimbulkan. Setelah bermain dengan keuntungan sedikit, plot
respons langkah berikut ini dapat dicapai dengan $ K_p $ = 15 dan $ K_d $ = 40:

Kp = 15;

Kd = 40;

C = pid (Kp, 0, Kd);

sys_cl = umpan balik (C * P_ball, 1);


langkah (0.25 * sys_cl)

Seperti yang Anda lihat dari plot di atas, semua tujuan kontrol telah dipenuhi tanpa
menggunakan pengontrol integral (waktu penyelesaian untuk contoh ini dianggap tercapai ketika
responsnya kurang dari 2% dari nilai akhir). Ingat, bahwa untuk masalah kontrol biasanya ada
lebih dari satu solusi untuk masalah tersebut.

Fungsi transfer loop terbuka tanaman untuk percobaan bola dan balok diberikan di bawah ini:

(1) $$

P (s) = \ frac {R (s)} {\ Theta (s)} =

- \ frac {mgd} {L \ kiri (\ frac {J} {R ^ 2} + m \ kanan)} \ frac {1} {s ^ 2} \ qquad [\ frac {m} {rad}]

$$

Kriteria desain untuk masalah ini adalah:

Waktu penyelesaian kurang dari 3 detik

Overshoot kurang dari 5%

Untuk melihat derivasi persamaan untuk masalah ini merujuk ke halaman Ball & Beam: System
Modeling.

Buka lokus root loop

Gagasan utama dari desain lokus root adalah memperkirakan respons loop tertutup dari plot
lokus root loop terbuka. Dengan menambahkan nol dan / atau kutub ke sistem asli
(menambahkan kompensator), lokus root dan dengan demikian respons loop tertutup akan
dimodifikasi. Pertama mari kita lihat lokus root untuk tanaman di loop terbuka. Buat file-m
baru dengan kode MATLAB berikut untuk memodelkan tanaman dan plot locus root. Sekarang,
jalankan file-m dan Anda akan melihat plot locus root berikut:

m = 0,111;
R = 0,015;

g = -9.8;

L = 1.0;

d = 0,03;

J = 9.99e-6;

s = tf ('s');

P_ball = -m * g * d / L / (J / R ^ 2 + m) / s ^ 2;

rlocus (P_ball)

Seperti yang Anda lihat, sistem ini memiliki dua kutub di titik asalnya hingga tak terhingga
sepanjang sumbu imajiner.

Kriteria desain juga dapat diplot ke lokus root menggunakan perintah sgrid. Perintah ini
menghasilkan grid rasio redaman konstan dan frekuensi alami. Rasio redaman ($ \ zeta $) dan
frekuensi alami ($ \ omega_n $) ditemukan menggunakan persamaan berikut yang
menghubungkannya dengan persen overshoot maksimum kami ($ Mp $) dan persyaratan waktu
penyelesaian ($ T_s $):

(2) $$

Mp = e ^ {- \ zeta \ pi / \ sqrt {1- \ zeta ^ 2}}

$$

(3) $$

T_s = \ frac {4} {\ zeta \ omega_n}

$$

Perhatikan, bahwa persamaan dengan $ T_s $ ditemukan dengan mengasumsikan sistem telah
diselesaikan ketika responsnya tetap dalam 2% dari nilai akhirnya. Dari persamaan ini, rasio
redaman dan frekuensi alami ditemukan masing-masing 0,7 dan 1,9.
sgrid (0.70, 1.9)

sumbu ([- 5 5 -2 2])

Area antara dua garis diagonal bertitik mewakili lokasi di mana persen overshoot kurang dari 5%.
Area di luar garis lengkung mewakili lokasi di mana waktu penyelesaian kurang dari 3 detik.
Perhatikan bahwa tidak ada wilayah plot yang termasuk dalam kriteria desain yang ditunjukkan
oleh garis-garis ini. Untuk memperbaiki ini dan membawa lokus root ke bidang kiri untuk
stabilitas, kami akan mencoba menambahkan kompensator timbal ke sistem.

Pengontrol timbal

Kompensator timah orde pertama cenderung menggeser lokus root ke bidang sebelah kiri.
Untuk deskripsi yang lebih rinci tentang kompensator timbal, lihat halaman Desain Kompensator
Lead & Lag. Kompensator timah memiliki formulir di bawah ini:

(4) $$

C (s) = K_c \ frac {(s + z_0)} {(s + p_0)}

$$

di mana, besarnya $ z_0 $ kurang dari besarnya $ p_0 $.

Sekarang, mari kita tambahkan controller ke instalasi dan melihat lokus root. Kami akan
memposisikan nol di dekat titik asal untuk membatalkan salah satu kutub. Kutub kompensator
kami akan ditempatkan di sebelah kiri titik asal untuk menarik lokus akar lebih jauh ke bidang
sebelah kiri. Tambahkan baris kode MATLAB berikut ke file-m Anda. Jalankan file-m Anda di
jendela perintah MATLAB dan Anda akan melihat yang berikut:

zo = 0,01;

po = 5;

C = tf ([1 zo], [1 po]);


rlocus (C * P_ball)

sgrid (0.70, 1.9)

Sekarang, cabang lokus root berada dalam kriteria desain kami.

Memilih keuntungan

Sekarang kami telah memindahkan lokus root ke bidang sebelah kiri, kami dapat memilih gain
yang akan memenuhi persyaratan desain kami. Kita dapat menggunakan perintah rlocfind
untuk membantu kita melakukan ini. Tambahkan kode [k, kutub] = rlocfind (C * P_ball) di akhir
file-m Anda.

Lalu pergi ke plot dan pilih titik dekat yang ditunjukkan oleh tanda silang pada plot di bawah ini.

Setelah melakukan ini, Anda akan melihat output berikut di jendela perintah MATLAB.

Pilih satu titik di jendela grafik

Perhatikan bahwa nilai yang dikembalikan di jendela perintah MATLAB Anda mungkin tidak persis
sama, tetapi setidaknya harus memiliki urutan besarnya yang sama. Sekarang, kita dapat
merencanakan respons dengan keuntungan ini.

Merencanakan respons loop tertutup

Nilai k ini dapat dimasukkan ke dalam sistem dan respons loop tertutup ke input langkah 0,25 m
dapat diperoleh. Tambahkan baris berikut ke file-m Anda untuk melakukan analisis ini.
Jalankan file-m Anda dan pilih titik pada lokus root mirip dengan titik yang dipilih di atas.
Respons langkah harus terlihat seperti berikut.

sys_cl = umpan balik (k * C * P_ball, 1);

t = 0: 0,01: 5;
angka

langkah (0.25 * sys_cl, t)

Dari plot ini kita melihat bahwa ketika input langkah 0,25-m diberikan kepada sistem, baik waktu
penyelesaian dan persen kriteria desain overshoot terpenuhi.

Catatan: Masalah desain tidak harus memiliki jawaban yang unik. Menggunakan metode ini
(atau yang lain) dapat menghasilkan banyak kompensator berbeda. Coba jalankan file-m Anda
beberapa kali lagi memilih titik yang berbeda setiap kali dan mempelajari efeknya terhadap
respons langkah. Untuk latihan, Anda mungkin juga ingin kembali ke lokus root loop terbuka
asli dan mencoba menemukan cara lain untuk menambahkan nol dan kutub untuk mendapatkan
respons yang lebih baik.

Anda mungkin juga menyukai