Anda di halaman 1dari 57

CONTROL MOTOR SPEED AND MOTOR POSITION

I. MOTOR SPEED
A. PEMODELAN PUTARAN MOTOR DC Pengaturan Fisik dan Persamaan Sistem Aktuator yang biasanya digunakan pada sistem control adalah motor DC. Aktuator tersebut secara langsung memberikan gerakan berputar dan, dikopel dengan roda atau drum dan kabel, gerakan transisional (perpindahan). Rangkaian elektrik dari jangkar dan diagram badan bebas dari rotor, ditunjukkan pada gambar di bawah ini:

Sebagai contoh, dapat diasumsikan parameter fisik sebagai berikut, dimana nilai-nilai ini merupakan penurunan dari percobaan dari motor actual di laboratorium control Carnegie Mellons undergraduate. Momen inersia rotor (J) Rasio damping sistem mekanis (b) Konstanta emf (K=Ke=Kt) Resistansi (R) Induktansi (L) Masukan (V) Keluaran () *rotor dan poros diasumsikan keras. Torsi motor, T, berhubungan dengan arus jangkar, I, dengan factor konstanta, Kt. GGL balik, e, berhubungan dengan kecepatan putaran, dengan persamaan berikut: Pada unit SI, Kt (konstanta jangkar) sama dengan Ke (konstanta motor) Dari gambar di atas didapatkan persamaan berikut yang didapatkan dari kombinasi hokum Newton dan Hukum Kirchhoff : 0.01 kg.m2/s2 : 0.1 Nms : 0.01 Nm/Amp :1 : 0.5 H : Tegangan sumber : posisi poros

1. Fungsi Alih

Menggunakan transformasi Laplace, persamaan model diatas dapat dinyatakan dalam bentuk s. ( ( ) ( ) ) ( ) ( ) ( )

Dengan mengeliminasi I(s) maka didapatkan fungsi alih loop terbuka, dimana keluarannya berupa kecepatan putar dan masukannya berupa tegangan. ( )( )

Fungsi alih di atas dapat direpresentasikan ke dalam MATLAB dengan mendefinisikan matrik numerator dan denominator seperti berikut: ( )( )

2.

State-Space

Pada bentuk state-space, persamaan diatas dapat dibentuk dengan pemilihan kecepatan putaran dan arus sebagai variable state dan tegangan sebagai masukan. Keluaran dipilih untuk kecepatan putaran.

[ ] [ [ ]

[ ] ][ ]

[ ]

Dapat direpresentasikan dengan menggunakan persamaan state-space.

Kebutuhan Desain Pertama, motor yang tidak dikompensasi hanya dapat berputar pada 0.1 rad/sek dengan tegangan masukan 1 volt. Karena kebutuhan paling dasar dari motor seharusnya dapat berputar pada putaran yang diingikan, eror keadaan tunak dari putaran motor harus kurang dari 1%. Kebutuhan kinerja motor lain adalah dapat mengalami percepatan pada kecepatan keadaan tunak. Pada kasus ini settling time nya sebesar 2 sekon. Karena putarannya lebih cepat dari putaran referensi , sehingga dapat merusak peralatan, maka diinginkan overshoot kurang dari 5%. Jika disimulasikan masukan referensi (r) menggunakan masukan unit step, maka putaran motor keluaran harus: Settling time kurang dari 2 sekon. Overshoot kurang dari 5% Eror keadaan tunak kurang dari 1%

B. METODE DESAIN PID PADA KOTROL KECEPATAN MOTOR DC

Dari masalah utama, persamaan dinamis dan fungsi alih loop-terbuka pada motor DC adalah: ( ( ( )( ) Dan skema sistemnya tampak seperti gambar di bawah ) ( ) ) ( ) ( ) ( )

Dengan input step 1 rad/sek, criteria desain tersebut adalah: Settling time kurang dari 2 detik Overshoot kurang dari 5% Kesalahan pada keadaan tunak kurang dari 1%

Fungsi alih untuk controller PID adalah

Kontrol Proposional

Kotrol PID Dari plot di atas dapat dilihat bahwa memiliki eror keadaan tunak dan overshoot yang terlalu besar. Dengan menambahkan hubungan integral akan mengeleminasi eror keadaan tunak dan penambahan hubungan turunan (derivative) akan mengurangi besarnya overshoot.

Pengaturan Gain

Sekarang masalahnya adalah settling time yang terlalu panjang, maka besarnya Ki dapat ditingkatkan untuk mengurangi lamanya settling time.

Dari plot diatas, dapat dilihat bahwa respon lebih cepat dari sebelumnya, tetapi Ki yang besar malah menyebabkan overshoot yang terlalu besar pula. Dengan meningkatkan nilai Kd maka dapat mengurangi overshoot seperti yang ditunjukkan pada plot di bawah ini

C. METODE DESAIN ROOT LOCUS UNTUK KONTROL KECEPATAN MOTOR DC

Dari masalah utama, persamaan dinamis dan fungsi alih loop-terbuka pada motor DC adalah: ( ( ( )( ) Dan skema sistemnya tampak seperti gambar di bawah ) ( ) ) ( ) ( ) ( )

Dengan input step 1 rad/sek, criteria desain tersebut adalah: Settling time kurang dari 2 detik Overshoot kurang dari 5% Kesalahan pada keadaan tunak kurang dari 1%

Penggambaran Root Locus untuk Loop-Terbuka Inti dari sedain root locus ada menemukan respon loop-tertutup dari plot root locus loopterbuka. Kemudian dengan menambahkan zero dan atau pole pada plant awal, respon loop-tertutup dapat diubah.

Dimana, rasio damping () sebesar 0.8 (sesuai dengan pemilihan overshoot sebesar 5%) dan frekuensi alami (Wn) = 0 (sesuai dengan criteria rise time)

Menemukan Gain dengan Mengguanakan Perintah rlocfind Damping yang besar ditunjukkan oleh titik pada root locus yang dekat dengan sumbu nyata (real axis). Respon yang cepat ditunjukkan oleh titik pada root locus yang jauh di sebelah kiri sumbu imajiner (imaginary axis). Untuk menemukan gain yang ditunjukkan oleh satu titik pada root locus, maka dapat digunakan perintah rlocfind

selected_point = -4.0748 + 0.0163i k= 6.1371 poles = -7.9251 -4.0749

Dapat dilihat bahwa plot di atas merupakan system overdamped dan setlling time nya sekitar 1s, sehingga dapat dikatakan bahwa setlling time dan besarnya overshoot, memuaskan. Salah satu masalah yang kita lihat dari plot di atas adalah, besarnya eror keadaan tunak yang mencapai hamper 50%. Jika kita meningkatkan nilai gain, maka overshoot yang terjadi akan terlalu besar, maka dibutukan lag controller untuk mengurangi eror keadaan tunak.

Penambahan Lag Controller

PLOTTING RESPON LOOP_TERTUTUP

Dari plot di atas dapat dilihat bahwa hasilnya kurang memuaskan, walaupun gain yang dipilih adalah hasil korelasi posisi terdekat dari criteria damping, overshoot bahkan tidak mendekati nilai 5%. Hal ini dikarenakan efek dari lag controller.

Tampak pada plot di atas bahwa eror keadaan tunak berkurang menjadi kurang dari 1%.

D. Frequency Design Method for DC Motor Speed Control


Dari masalah utama, persamaan dinamis dan fungsi transfer loop terbuka pada kecepatan motor DC: ( ( ( dan skematik sistemnya adalah: ) ) ( ) )( ) ( ) ( ) ( )

Dengan masukan 1 rad / sec, kriteria desainnya adalah: Settling time kurang dari 2 sekon Overshoor kurang dari 5 % Steady state error kurang dari 1%

Untuk mensimulasikan, dibuat m-file dan ketik command berikut (berdasarkan masalah utama)

J=0.01; b=0.1; K=0.01; R=1; L=0.5; num=K; den=[(J*L) ((J*R)+(L*b)) ((b*R)+K^2)];

Ide utama desain yang berdasarkan frekuensi adalah menggunakan gambar Bode dari loop terbuka fungsi alih untuk memperkirakan respon loop tertutup. Penambahan kontroler ke sistem mengubah plot Bode loop terbuka, sehingga mengubah respon loop tertutup pula. Pertama, gambar dahulu plot Bode untuk fungsi alih awal loop terbuka. Tambahkan kode di bawah ini pada akhir m-file dan kemudian jalankan di Matlab.
bode(num,den)

(simulasi web)

(simulasi sendiri)

Berdasarkan plot Bode di atas, bisa dilihat bahwa batas fasa dapat lebih besar dari 600 jika kurang dari 10 rad / sec. Lalu tambahkan gain ke sistem sehingga frekuensi bandwidth adalah 10 rad / sec, yang akan memberikan batas fasa sekitar 600. Untuk menemukan gain pada 10 rad / sec, dapat dibaca dari plot Bode (itu sedikit di atas -40 dB, atau besarnya 0,01). Perintah Bode dapat digunakan untuk mendapatkan besaran yang tepat.
[mag,phase,w] = bode(num,den,10) mag =0.0139

Untuk mendapatkan penambahan sebesar 1 pada 10 rad / sec, kalikan pembilangnya dengan 1/0,0139 atau sekitar 72.
num = 70*num

dan kembalikan m-file ke kedaan awal. Plot Bode yang seharusnya terjadi adalah:

(simulasi web)

(simulasi sendiri)

Dari plot di atas, dapat dilihat bahwa batas fasa menjadi lebih besar. Tambahkan kode di bawah ini di akhir m-file:
[numc,denc]=cloop(num, den, -1); t=0:0.01:10; step(numc,denc,t)

Maka hasil plotnya adalah:

(simulasi web)

(simulasi sendiri)

Settling time nya cukup cepat, tetapi overshoot dan steady state error-nya terlalu tinggi. Overshoot-nya dapat dikurangi dengan mengurangi sedikit gain untuk mendapatkan batas fasa yang lebih tinggi, tetapi dapat mengakibatkan kenaikan error steady state sehingga lag controller dapat digunakan. Dapat ditambahkan pula lag controller untuk mengurangi steady state error. Pada waktu yang sama, dapat dicoba juga untuk mengurangi overshoot dengan mengurangi gainnya. Mengurangi gain ke 50 dan mencoba lag controller ( ( ) )

yang seharusnya dapat mengurangi steady state error dengan faktor 1/0,01 = 100 (namun tidak dapat menaikkan settling time). Kembali dan ubah m-file sehingga menjadi:
num=K; den=[(J*L) ((J*R)+(L*b)) ((b*R)+K^2)]; num=50*K; z=1;

p=0.1; numa=[1 z]; dena=[1 p]; numb=conv(num,numa); denb=conv(den,dena); bode(numb,denb)

Jalankan kembali filenya dan didapat plot seperti ini:

(simulasi web)

(simulasi sendiri)

Steady state error diprediksikan sekitar 1/40 dB atau 1%. Tutup loop dan cek respon langkahnya. Tambahkan kode ke akhir m-file dan jalankan kembali.
[numc,denc]=cloop(numb, denb, -1); t=0:0.01:10; step(numc,denc,t)

(simulasi web)

(simulasi sendiri)

Sekarang didapat respon langkah yang memenuhi persyaratan desain. Steady state error kurang dari 1%, overshoot 5%, dan settling time sekitar 2 sekon.

E. Sebuah kontroler state-space untuk kecepatan motor DC


Dari permasalahan utama, persamaan dinamis dari bentuk state-space adalah sebagai berikut: [ ] [ ][ ] ][ ] [ ]

Dari permasalahan original dan penurunan persamaan di atas, lihat ke halaman pemodelan sebuah motor DC. Dengan referensi 1 rad/sekon ditambahkan ke sistem, kriteria desainnya adalah: Settling time kurang dari 2 sekon Overshoot kurang dari 5% Steady state error kurang dari 1%

Buat m-file pada matlab anda dengan kode sebagai berikut:


J=0.01; b=0.1; K=0.01; R=1; L=0.5; A=[-b/J K/J -K/L -R/L]; B=[0 1/L]; C=[1 0]; D=0;

Merancang kontroler full-state feedback Ketika kedua variabel pada permasalahan kita mudah untuk diukur ( ammeter untuk arus dan tachometer untuk kecepatan) kita dapat merancang kontroler full-state feedback untuk sistem tanpa perlu menghawatirkan peninjauan lebih lanjut. Skema untuk sisitem full-state feedback adalah

Mengingat karakteristik polinomial untuk sistem loop-tertutup adalah determinan dari (sI-(A-BK)) dimana s adalah variabel laplace. Saat matrik A dan B*K keduanya matrik 2x2 , maka sistem meiliki 2

kutub. Dengan merancang sebuah sistem kontroler full-state feedback, kita dapat memindahkan 2 kutub ini kemanapun kita inginkan. Pertama kita dapat mencoba untuk menempatkan kutub tersebut pada nilai -5 + i dan -5-i ( dengan catatan bahwa ini sesuai dengan zeta= 0,98 dengan overshoot 0,1% dan sigma = 5 yang mengarah ke settling time 1 sekon). Setelah kita mencoba dengan kutub yang kita inginkan tersebut, matlab akan menemukan matik kontroler K untuk kita. Cukup tambahkan kode berikut ini di file m anda sebelumnya di matlab:
p1 = -5 + i; p2 = -5 - i; K = place(A,B,[p1 p2]);

Sekarang lihat pada bagian diatas, setelah kita menambahkan matrik K ke dalam sistem, persamaan state-space menjadi: ( )

Kita dapat melihat respon tertutup degan menambahkan baris berikut di akhir m-file anda:
t=0:0.01:3; step(A-B*K,B,C,D,1,t)

jalankan m-file anda pada jendela perintah, kemudian anda akan melihat:

Menambahkan sebuah input referensi Dari plot ini kita dapat melihat bahwa error steady-state terlalu besar, berbeda dengan desain metode lainnya, dimana kita mengumpan balik output dan membandingkannya dengan referensi untuk menghitung kesalahan. Di sini kita memasukkan kembali kedua state. Kita perlu menghitung berapa nilai kondisi steady-state dan nilai state seharusnya, kalikan dengan gain K yang di tentukan dan kita gunakan nilai baru sebagai referensi untuk komputasi input. Hal ini dapat dilakukan dalam satu langkah dengan menambahkan sebuah gain Nbar yang konstan setelah referansi:

Kita dapat menemukan fakto Nbar ini dengan menggunakan perintah rescale pada matlab:
Nbar=rscale(A,B,C,D,K)

Perhatikan bahwa fungsi rscale adalah bukan sebuah fungsi standar pada matlab. Anda harus menyalin sebelum anda menggunakannya. Sekarang kita dapat plot respon langkah dengan menambahkan kode berikut pada baris m-file anda:
t=0:0.01:10; step(A-B*K,B*Nbar,C,D,1,t) title('Step Response with K Controller and Nbar')

Kali ini dihasilkan error steady-state jauh kurang dari 1%, dan semua kriteria desain lainnya telah terpenudi juga.

F. DIGITAL CONTROL MOTOR DC POSITION


Dalam pengaturan motor DC versi digital ini, control akan didesain dengan menggunakan metode root locus. Sebuah model Motor DC digital didapatkan dari konversi motor DC model analog. Fungsi alih open-loop dari posisi motor DC didapatkan dengan persamaan transformasi laplace sebagai berikut

((

)(

Dimana Resistansi Elektrik (R) = 4 Induktansi Elektrik (L) = 2.75 x 10-6 H Konstanta electromotive force ( K=Ke=Kt) = 0.0274 Nm/Amp Momen inersia dari rotor (J) = 3.2284 x10-6 Kg m2/s2 Damping rasio dari system mekanikal (b) = 3.5077 x 10-6 Nms

Input (V) = source voltage Output = kecepatan putar Kebutuhan designnya adalah sebagai berikut Settling time kurang dari 0.04 s Overshoot kurang dari 16% Error steady state 0 Langkah pertama yang harus dilakukan adalah mengubah fungsi alih kontinyu menjadi fungsi alih diskrit. Matlab bisa digunakan untuk mengubah fungsi alih kontinyu menjadi fungsi alih diskrit dengan perintah c2dm. listing di matlab nya sebagai berikut
R=4; L=2.75E-6; K=0.0274; J=3.2284E-6; b=3.5077E-6; num = K; den = [(J*L) (J*R)+(L*b) (R*b)+(K^2) 0]; T = 0.001; [numd,dend] = c2dm(num,den,T,'zoh')

Dan akan menghasilkan sebagai berikut


num = 0 den = 1.0000 -1.9425 0.9425 0.0000 0.0010 0.0010 0.0000

Dan fungsi alih diskritnya akan menjadi sebagai berikut ( ) ( ) Kita ingin melihat respon close loop dari system, oleh karena itu kita menggunakan listing berikut
[numd_cl,dend_cl] = cloop(numd,dend); [x1] = dstep(numd_cl,dend_cl,501); t=0:0.001:0.5; stairs(t,x1) xlabel('Time (seconds)') ylabel('Position (rad)') title('Stairstep Response:Original')

dan hasilnya akan menjadi berikut

Ide utama dari desain root locus adalah mendapatkan respon closed loop dari root locus open loop. Dengan menambahkan nol dan kutub ke dalam system root locus akan mengubah system menjadi respon closed loop.

Untuk menambahkan zero steady state error kita harus menambahkan integral control. Dan listingnya akan menjadi
numi = [1 -0.95]; deni = [1 -1]; numad = conv(numd,numi); denad = conv(dend,deni);

formula untuk mendapatkan frekuensi natural dan damping ratio adalah sebagai berikut ( ( ) )

OS = persen overshoot Ts = Settling time

Sehingga listing matlabnya adalah sebagai berikut


rlocus(numad,denad); zgrid(0.5,0.2) title('Root Locus of system with integral control')

dan akan menghasilkan plot sebagai berikut

Dari gambar di atas, menunjukkan bahwa system tidak stabil dikarenakan root locus berada di luar lingkaran. Dan unutk memperbaikinya digunakan listing sebagai berikut
numc = conv([1 -0.76],[1 -0.76]); denc = conv([1 0.98],[1 -0.61]); numoc = conv(numad,numc); denoc = conv(denad,denc); rlocus(numoc,denoc); zgrid(0.5,0.2) title('Root Locus of Compensated System')

dan akan menghasilkan plot sebagai berikut

Setelah root locus berada pada daerah yang diinginkan maka kita mencari gain. Mencari gain dengan listing matlab sebagai berikut
K = rlocfind(numoc,denoc)

[numd_cl,dend_cl] = cloop(K*numoc,denoc); [x2] = dstep(numd_cl,dend_cl,251); t=0:0.001:0.25; stairs(t,x2) xlabel('Time (seconds)') ylabel('Position (rad)') title('Stairstep Response of Compensated System')

dan akan menghasilkan plot sebagai berikut

Gain yang dihasilkan seharusnya sekitar 330 dan respon closed loop akan sebagai berikut

Pada respon di atas sebenarnya sudah bagus, namun overshootnya masih terlalu tinggi yaitu 22%. Oleh karena itu kita harus memperbaikinya dengan mengatur root locus lagi. Listing akan menjadi sebagai berikut
numc = conv([1 -0.85],[1 -0.85]); denc = conv([1 0.98],[1 -0.7]);

dan plotnya akan sebagai berikut

Kemudian kita harus memilih gain dari plot root locus di atas. Gain harus sekitar 450

Kemudian dihasilkan respon closed loop sesuai yang diinginkan

Respon di atas sudah sesuai dengan persyaratan di awal yaitu settling time nya kurang dari 0.04 s dan overshootnya tidak melebih 16%

Kemudian untuk melihat respon gangguan dari closed loop system kita harus menghilangkan gain yang telah dipilih, fungsi alih integral dan fungsi alih controller. Untuk itu digunakan listing sebagai berikut
numcld = conv(numd_cl,conv(denc,deni)); dencld = conv(dend_cl,conv(K*numc,numi)); [x4] = dstep(numcld,dencld,251); t=0:0.001:.25; stairs(t,x4) xlabel('Time (seconds)') ylabel('Position (rad)') title('Stairstep Response of Compensated System')

kemudian akan menghasilkan plot sebagai berikut

Dari gambar di atas dapat dilihat bahwa gangguannya kecil yaitu sebesar 3,3% dan setelah 0.04 s gangguannya nol Dari bahasan tentang digital control motor DC position ini dapat disimpukan bahwa kita bisa melakukan simulasi untuk mendapatkan posisi motor DC yang cocok hanya dengan menggunakan software Matlab. Hal ini tentu sangat menguntungkan bagi kita sebelum benar-benar mengaplikasikannya ke motor DC yang sebenarnya. Dengan software kita bisa mengetahui berapa besarnya gangguan yang akan terjadi pada motor DC nantinya. Dan pada bahasan ini terdapat pula materi yang telah kami dapatkan pada mata kuliah lain yaitu tentang root locus yang telah kami dapatkan di Sistem Kontrol. Namun di system control kami hanya dikenalkan secara general sehingga perlu kami mempelajari lebih intens lagi tentang teori ini jika ingin digunakan dalam mata kuliah PPME.

II.

MOTOR POSITION

A. Modeling
Contoh aktuator yang umum pada sistem kontro adalah motor DC. Rangkaian Elektrik dan gambar badan motor dapat dilihat sebagai berikut :

Beberapa parameter :

J (momem inersia) b (damping ratio ) k = Ke = Kt (konstanta) R (resistansi ) L (induktansi) V (input) (output/posisi shaft)

Persamaan Sistem : T = Kt . i Kt =konstanta jangkar ke = konstanta motor Jika mempertimbangkan hukum Newton dan hukum Kirchof, maka ( ) dari ramgkaian

Untuk mendapatkan sistem dapat dilakukan dengan dua cara : 1. Transfer Function

Lalu dengan penggunaan teori Laplace ( pengubahan dari kawasan waktu ke kawasan frekuensi ) telah didapat pada mata kuliah Rangkaian Elektrik dimana serta pada mata kuliah Sistem Linier dan Sistem Kontrol

( ) (
(

( ) ( )

( )
) ( )

. I

( ( ) ( )

) ( ) .II

Dengan memasukkan persamaan I ke II, dan membuat funsi alihnya didapatkan pada mata kuliah sistem kontrol, input / output

Setelah itu, kita membuat program dari fungsi alih tersebut, pada program MATLAB, kami telah mensimulasikannya

Pada permisalan sistem ini dengan input 1 Volt, maka perubahan posisi ialah 6 radian. Seharusnya dengan memasukkan 1 Volt kenaikannya ilaha 1 radian, sehingga pada sistem ini tidak mencapai steady state, sehingga design ini tidak memenuhi kriteria. Karena seharusnya pada suatu pemodelan sistem : a. Settling Time harus kurang dari 40ms b. Overshoot kurang dari 16% c. Tidak ada error steady state d. Tidak ada error steady state karena gangguan

2. State Space

Sehingga pada MATLAB

B. PID
Persamaan yang digunakan :

Dan mekani sistemnya dapat dibuat dalam :

Hampir sama persyaratannya :

a. Settling Time harus kurang dari 40ms b. Overshoot kurang dari 16% c. Tidak ada error steady state d. Tidak ada error steady state karena gangguan

Untuk Kontroler PI

Untuk disturbance

Sedangkan untuk PID

Respon dari sitem seperti yang skita lihat pada gambar di atas, overshootnya kurang dari 16%, dan settling time kurang dari 40ms, namun responnya lambat, jika Ki diubah menjadi 600,maka :

Pada sitem diatas telah didapatkan respon yang cepat., maka kontroller PID ini sudah yepat. Disturbance :

C. Root Locus Design Method for DC Motor Position Control


Fungsi Alih Motor DC: ( ( ( Diagram blok Motor DC: ) ( ) ) ( ) )( ) ( ) ( )

Dengan referensi putaran 1 rad/sec, criteria desainnya adalah sebagai berikut: Time Settling kurang dari 0,04 sekon

Tegangan Overshoot kurang dari 16% Tidak ada error steady state Tidak ada error steady state dikarenakan oleh gangguan

1. Menggambar root locus loop terbuka Tujuan utama dari desain root locus ini adalah untuk menemukan respon loop tertutup dari plot root locus loop terbuka.
J=3.2284E-6; b=3.5077E-6; K=0.0274; R=4; L=2.75E-6; num=K; den=[(J*L) ((J*R)+(L*b)) ((b*R)+K^2) 0]; rlocus(num,den) sgrid(.5,0) sigrid(100)

Jika dilihat titik-titik axis dari gambar plot ini, satu titik loop terbuka sangat jauh ke kiri (lebih jauh dari 1x106). Titik ini tidak berpengaruh terhadap gerak loop tertutup kecuali menggunakan gain yang sangat besar, dimana sistem akan tidak stabil. Dengan memperbesar sumbu sehingga porsi gain lebih kecil dari root locus, maka keadaan tersebut dapat dihindari. Sistem loop tertutup akan stabl pada gain yang kecil Dengan menambah command
axis([-400 100 -200 200])

maka didapatkan

Dapat dilihat dari plot dimana titip loop tertutup tidak pernah lebih cepat untuk mencapai kebutuhan settling time (yaitu, tidak pernah berpindah disebelah kiri sigma=100 vertical line). Dibutuhkan integrator pada sistem untuk menghilangkan error steady state yang dikarenakan oleh sebuah gangguan.

2. Integral Control
Menghilangkan gangguan dengan menggunakan control integral
J=3.2284E-6; b=3.5077E-6; K=0.0274; R=4; L=2.75E-6; num=K; den=[(J*L) ((J*R)+(L*b)) ((b*R)+K^2) 0]; numcf=[1]; dencf=[1 0]; numf=conv(numcf,num); denf=conv(dencf,den); rlocus(numf,denf) sgrid(.5,0) sigrid(100) axis([-400 100 -200 200])

Dari plot root locus ini dapat dilihat sistem loop tertutup dengan control integral tidak pernah stabil, dan kontroler lainnya harus digunakan.

3. Proportional plus integral control


Dengan menggunakan kontroler PI maka harus ditambahkan titik nol di sistem loop terbuka. Dalam hal ini titik nol berada pada s=-20. Titik nol harus berada di antara titikttik loop terbuka dari sistem sehingga loop tertutup akan stabil.
J=3.2284E-6; b=3.5077E-6; K=0.0274; R=4; L=2.75E-6; num=K; den=[(J*L) ((J*R)+(L*b)) ((b*R)+K^2) 0]; numcf=[1 20]; dencf=[1 0]; numf=conv(numcf,num); denf=conv(dencf,den); rlocus(numf,denf) sgrid(.5,0) sigrid(100) axis([-400 100 -200 200])

Sistem memiliki nol error steady state dari gangguan tetapi sistem tidak cukup cepat.

4. Proportional plus Integral plus Derivative Control


Untuk mendorong root locus lebih jauh ke kiri agar sistem lebih cepat, dibutuhkan menambahkan nol loop terbuka kedua, sehingga menghasilkan PID kontroler. Dimisalkan dua PID diletakkan pada s=60 dan s=70.
J=3.2284E-6; b=3.5077E-6; K=0.0274; R=4; L=2.75E-6; num=K; den=[(J*L) ((J*R)+(L*b)) ((b*R)+K^2) 0]; numcf=conv([1 60],[1 70]); dencf=[1 0]; numf=conv(numcf,num); denf=conv(dencf,den); rlocus(numf,denf) sgrid(.5,0) sigrid(100) axis([-400 100 -200 200])

Dapat dilihat 2 titik loop tertutup berputar membentuk lingkaran memenuhi kebutuhan settling time dan tegangan overshoot. Titik loop tertutup ketiga bergerak dari titik loop tertutup pada s=-59,2 ke nol loop terbuka s=-60. Titik loop tertutup ini dekat dengan nol (dimana menyisakan di fungsi alih loop tertutup) karena sangat dekat. Oleh karena itu, kita dapat mengabaikan efeknya. Namun, loop terbuka nol yang lain juga menyisakan di loop tertutup, dan akan berpengaruh terhadap respon, memperlambat, dan menambah overshoot.

5. Mencari gain dengan menggunakan perintah rlocfind


Jika ingin memanggil kembali command tersebut, dibutuhkan settling time dan overshoot sekecil mungkin, khususnya karena efek dari penambahan titik nol. Damping yang besar berpengaruh pada titik di root locus dekat dengan sumbu axis nyata. Respon yang cepat berpengaruh pada titik di root locus jauh ke kiri dari sumbu axis imajiner. Untuk mengetahui gain yang berhubungan dengan root locus dapat digunakan perintah rlocfind. Kita dapat menentukan gain dan mem-plot respon step menggunakan gain ini secara bersamaan.
[k,poles] = rlocfind(numf,denf) [numc,denc]=cloop(k*numf,denf,-1); t=0:0.001:.1; step(numc,denc,t)

Tampilan untuk respon step plot

Dapat dilihat bahwa sistem memiliki overshoot sekitar 15%, time settling sekitar 0,04 sekon, dan tidak ada error steady state. Untuk mengetahui respon gangguan dengan menghitung fungsi gangguan loop tertutup dan mem-plot respon step-nya.
numdcl=conv(numc,dencf); dendcl=conv(denc,numcf); step(numdcl,dendcl,t);

Dapat dilihat bahwa gangguan mencapai nilai nol pada steady state, dan kenyataannya tetap dengan 0,02 (atau 2%) setelah 0,04 sekon. Oleh karena itu, semua kebutuhan desain telah terpenuhi.

D. METODE PERANCANGAN FREKUENSI untuk PENGATURAN POSISI MOTOR DC


( ( ( Persamaan Umum motor DC : ) ( ) ) ( ) )( ) ( ) ( )

Skema sistem / blok diagram sistem

Menggambar Bode Plot

Membuat file bar m-file J=3.2284E-6; b=3.5077E-6; K=0.0274; R=4; L=2.75E-6; num=K; den=[(J*L) ((J*R)+(L*b)) ((b*R)+K^2) 0];

langkah pertama adalah menggambar Bode Plot untuk fungsi alih open loop, yaitu dengan menanmbahkan
w=logspace(0,4,101); bode(num,den,w)

Menambahkan integrator Menambahkan integrator zero steady-state error, dengan menambahkan ke m-file :
numi=1; deni=[1 0]; numiol=conv(num,numi); deniol=conv(den,deni); bode(numiol,deniol,w)

penguatan dan spesifikasi beda fasa dan oerancangan controller

Nilai overshoot yang diiinginkan adalah kurang dari 16%, sehingga menghitung rasio redaman berdasarkan overshoot 16%. Fasa sesuai yang diiinginkan adalah 100 kali rasio redaman. Dari kebutuhan waktu penyelesaian, kita dapat menghitung frekuensi bandwidth yang diinginkan. Tambahkan baris berikut ke file-m:
zeta=-log(.16)/sqrt(pi^2+(log(.16))^2); PM=100*zeta; wbw=(4/(0.04*zeta))*sqrt((1-2*zeta^2)+sqrt(4*zeta^4-4*zeta^2+2));

Beda fasa yang diinginkan setidaknya 50 derajat fasa sehingga penguatan jatuh sekitar -6 dan -7.5 dB pada beberapa frekuensi setelah 250 rad per sekon. Dari Bode Plot dapat kita lihat bahwa kita harus menambahkan sekitar 80 derajat fasa dan penguatan 60 dB pada frekuensi 250 rad/secon

Dari plot Bode kita melihat bahwa kita harus menambahkan sekitar 80 derajat dari fase dan 60 dB gain, pada frekuensi 250 rad / detik. Plot keuntungan akan terletak antara (-6 dan -7,5) dB dan setelah 244 rad / detik. Dari Bode plot fase kita dapat melihat bahwa ada sebuah tiang dekat 60 rad / detik. Kami akan menggunakan pengontrol PI untuk menempatkan nol pada s = 60 untuk meratakan keluar kurva fase. Tambahkan baris berikut ke file m Anda

a=(1 - sin(PM*pi/180))/(1 + sin(PM*pi/180)); T=1/(wbw*sqrt(a)); numpil = conv([1 60],[T 1]); denpil = conv([1 0],[a*T 1]); numpilol = conv(numpil,num); denpilol = conv(denpil,den); w = logspace(2,3,101); bode(numpilol,denpilol,w)

Bode plot baru sekarang menunjukkan bahwa beda fasa pada 250 rad / detik, tetapi keuntungan yang terlalu kecil dengan sekitar 20 dB. Crossover gain harus terjadi pada 240 rad / detik. Untuk membawa gain 20 dB oleh kita akan kalikan dengan keuntungan sebesar 10. Tambahkan baris berikut ke file-m Anda:
kpid = 10; bode(kpid*numpilol,denpilol,w)

mendapatkan plot berikut:

periksa respon langkah dari sistem loop tertutup. Tambahkan baris berikut ke m-file:

[numpilcl,denpilcl] = cloop(kpid*numpilol,denpilol,-1); t = 0:0.001:0.1; step(numpilcl,denpilcl)

Overshoot sekarang terlalu besar, namun settling time lebih baik dari yang diharapkan. Jadi mari kita coba yang desain lain,dan manabeda fasa lebih besar, katakanlah sekitar 70 derajat. Tambahkan baris berikut ke file-m Anda:
PM=70; a=(1 - sin(PM*pi/180))/(1 + sin(PM*pi/180)); T=1/(wbw*sqrt(a)); numpil=conv([1 60],[T 1]); denpil=conv([1 0],[a*T 1]); numpilol=conv(numpil,num); denpilol=conv(denpil,den); w=logspace(2,3,101); bode(numpilol,denpilol,w)

Sekarang mari kita memeriksa respon langkah lagi. Add the following lines to your m-file: Tambahkan baris berikut ke file-m Anda:
[numpilcl,denpilcl] = cloop (kpid*numpilol,denpilol,-1); [Numpilcl, denpilcl] = cloop (KPID * numpilol, denpilol, -1); t = 0:0.001:0.1; t = 0:0.001:0.1; step (numpilcl,denpilcl) langkah (numpilcl, denpilcl)

You should get the following step response: Anda harus mendapatkan respon langkah berikut:

Dari respon langkah kita sekarang melihat bahwa overshoot baik-baik saja, tetapi waktu menetap terlalu lama. . Mari kita coba bandwidth yang sedikit lebih tinggi. : Tambahkan baris berikut ke file-m Anda:
wbw = 300; a=(1-sin(PM*pi/180))/(1+sin(PM*pi/180)); a = (1-sin (PM * pi/180)) / (1 + sin (AM * pi/180)); T=1/(wbw*sqrt(a)); T = 1 / (wbw * sqrt (a)); numpil=conv([1 60],[T 1]); numpil = conv ([1 60], [T 1]); denpil=conv([1 0],[a*T 1]); denpil = conv ([1 0], [a * T 1]); numpilol=conv(numpil,num); numpilol = conv (numpil, num); denpilol=conv(denpil,den); denpilol = conv (denpil, den); w=logspace(2,3,101); w = logspace (2,3,101); bode (numpilol,denpilol,w) pertanda (numpilol, denpilol, w)

Baru ini menunjukkan alur pertanda bahwa fasa adalah benar pada frekuensi 250 rad / detik, tetapi keuntungan yang terlalu kecil dengan sekitar 18 dB. Crossover gain harus terjadi pada 240 rad / detik. Untuk membawa gain up kita akan kalikan dengan keuntungan sebesar 8 : Tambahkan baris berikut ke file-m Anda:

E. Kontroler Dengan Menggunakan Ruang Keadaan untuk Mengatur Posisi Motor DC


Persamaan dinamis untuk bentuk ruang keadaan adalah sebagai berikut:

[ ]

] [ ]

[ ]

(1 -1) [ ] [ ] (1 -2) Rumus yang didapatkan diatas telah diperhitungkan pada bahasan sebelumnya yaitu Modeling Posisi Motor DC. Dengan menggunakan referensi 1 rad yang ditambahkan pada sistem, maka kriteria design akan menjadi : Settling time kurang dari 0,04 s Overshoot kurang dari 16% Zero steady-state error ke bagian masukan Zero steady-state error ke bagian gangguan

Apabila di simulasikan pada Matlab, mengacu pada permasalah yang teah duraikan diatas maka dapat menggunakan command sebagai berikut : J=3.2284E-6; b=3.5077E-6; K=0.0274; R=4; L=2.75E-6; A=[0 1 0 0 -b/J K/J 0 -K/L -R/L]; B=[0 ; 0 ; 1/L]; C=[1 0 0]; D=[0];

Merancang Pengontrol Untuk Keadaan Umpan Balik Maksimum


Karena beberapa variabel keadaan dalam permasalahan yang ada sangat mudah untuk diukur (cukup dengan menggunakan sebuah ammeter untuk pengukuran arus, tachometer untuk pengukuran putaran, dan menggunakan potensiometer untuk pengukuran posisi), maka kita dapat merancang pengontrol untuk keadaan umpan balik maksimum tanpa menambahkan alat ukur. Skema dari sistem umpan balik maksimum adalah sebagai berikut :

Perlu diingat bahwa karakteristik dari polynomial untuk sistem loop tertutup adalah determinan dari (sI-(A-BKC)) dimana s merupakan variabel Laplace. Karena matriks A dan B*Kc, keduanya merupakan matriks 3x3, maka perlu ada 3 bagian dari sistem. Dengan merancang pengontrol keadaan umpan balik maksimum, kita dapat memindahkan tiga bagian dimana saja yang diinginkan. Pertama-tama kita dapat menempatkannya pada -100+100i dan -100-100i (catatan: sesuai dengan zeta=0.5 yang memberikan overshoot 0.16% dan sigma=100 yang mengarah settling time 0.4 s). Setelah mendapatkan bagian yang diinginkan, dengan program Matlab akan menemukan sebuah matriks kontroler, Kc, untuk bagian yang diinginkan. Cukup dengan menambahkan program sebagai berikut pada bagian akhir : p1=-100+100i; p2=-100-100i; p3=-200; Kc=place(A,B,[p1,p2,p3]); Setelah menambahkan matriks K ke dalam sistem, maka persamaan ruang keadaan menjadi : 3) (14) Untuk melihat respon dari loop tertutup pada Matlab dapat dengan hanya menambahkan baris berikut pada akhir baris dari m-file sebagai berikut: ( ) (1-

t=0:0.001:.05; step(A-B*Kc,B,C,D,1,t) Sehingga dengan melengkapi program tersebut, dan telah dijalankan pada jendela command Matlab maka akan menghasilkan keluaran sebagai berikut :

Respon Terhadap Gangguan


Untuk mendapatkan respon gangguan, maka perlu memberika masukan yang sesuai dengan sistem. Secara fisik, gangguan adalah torsi yang mana bekerja pada inersia motor. Torsi bertindak sebagai tambahan dari persamaan keadaan kedua ( yang mana akan dibagi dengan J, serta semua persyaratan lain dalam persamaan ini). Kita dapat mensimulasikan dengan memodifikasi loop tertutup dengan masukan matriks, B, untuk mendapatkan 1/J di baris kedua. Selanjutnya menambahkan perintah pada m-file sebagai berikut : step(A-B*Kc,[0;1/J;0],C,D,1,t) Dan dengan menambahkan command diatas pada m-file, maka akan menghasilkan keluaran sebagai berikut :

Menambahkan Integral
Telah kita ketahui bahwa jika kita menempatkan sebuah integrator secara seri dengan plant yang dapat menghilangkan kesalahan pada masukan ruang keadaan. Jika sebuah integrator diberikan sebelum adanya gangguan, maka akan menyebabkan tidak adanya gangguan dalam kondisi tunak. Sehingga perubahan pada kontrol menjadi sebagai berikut :

Kita dapat memodelkan integrator pada persamaan ruang keadaan dengan menambahkan persamaan yang mana merupakan integral dari output sistem. Hal ini menyebabkan turunan dari theta ( ) adalah theta ( ). Persamaan ini akan ditempatkan pada bagian atas dengan menambahkan kompnen pada matriks (1-1) dan (1-2) yang tertera diatas. Masukan, r,

memasuki sistem sebelum integrator, sehingga ditambahkan pada bagian atas matiks,

Diharapkan keluaran dari sistem adalah sama. Dan dapat dilihat menghasilkan matriks sebagai berikut : [ ] [ ] (1 -5) [ ][ ] [ ] [ ]

(1 -6) Persamaan ini menggambarkan sistem dinamik sebelum menjadi loop tertutup. Kita mengacu pada matriks sebagai Aa, Ba, Ca, dan Da. Dan kita mengacu pada vector keadaan pada sistem yang telah ditambahkan sebagai xa. Perlu diperhatikan bahwa referensi, r tidak mempengaruhi keadaan-keadaan (kecuali pada keadaan tambahan, integrator) atau keluaran dari plant, karena tidak ada jalur dari referensi pada masukan plant, u, tanpa menerapkan matriks umpan balik, Kc. Untuk menemukan persamaan dalam loop tertutup, kita harus melhat bagaimana masukan, u, mempengaruhi plant. Dalam kasus ini, dapat disamakan dengan persamaan yang belum ditambahkan. Oleh karena itu, terdapat sebuah vector yang disebut Bau, yang dapat menggantikan Ba ketika kita menerapkan sebagai masukan. Karena u=Kc* xa merupakan masukan untuk sistem loop tertutup, maka persamaannya akan tergatung pada Bau dan Ba. Sehingga persamaan dari loop tertutup ini akan menjadi : 7) (18) Sehinga, integral dari keluarannya akan diumpanbalikkan, dan akan digunakan oleh kontroler untuk meminimalisir kesalahan pada ruang keadaan dari gangguan. Kita dapat merancang kembali kontrolernya. Karena kita oerlu menempatkan loop tertutup pada tiap bagian pada ( ) (1-

plant, maka kita akan menempatkan bagian tersebut di -300. Karena matriks dari sistem loop tertutup ini tergantung dari Bau, maka kita akan menggunakan Bau pada Ba.. Maka perlu ditambahkan command berikut pada m-file :

Aa=[0 1 0 0 0 0 1 0 0 0 -b/J K/J 0 0 -K/L -R/L]; Ba=[ -1 ; 0 ; 0 ; 0]; Bau=[0 ; 0 ; 0 ; 1/L ]; Ca=[0 1 0 0]; Da=[0]; p4=-300; Kc=place(Aa,Bau,[p1,p2,p3,p4]); t=0:0.001:.05; step(Aa-Bau*Kc,Ba,Ca,Da,1,t) Yang menghasilkan keluaran sebagai berikut :

Untuk melihat respon gangguannya, maka kita dapat memasukkan matriks B yang sama seperti ketika mensimuasikan respon gangguan. Dan perlu menambahkan commad : step(Aa-Bau*Kc,[0 ; 0 ; 1/J ; 0] ,Ca,Da,1,t)

Dari yang telah dibahas ini yaitu kontrol motor DC dengan menggunakan kontroler ruang keadaan sesuai dengan praktikum Sistem Kontrol Dasar, mata kuliah Sistem Kontrol dimana di dalamnya menyangkut mengenai pengaturan posisi motor dengan menggunakan potensiometer. Sebelum mendapatkan hasil pada praktikum tersebut yang diinginkan maka analisis dengan menggunakan persamaan ruang keadaan dengan plant-plant yang digunakan sesuai dengan penggunaan peralatan pada praktikum ini.

F. KECEPATANMOTOR DCDIGITALDENGAN KONTROL PID Pada halaman ini, kita akan mempertimbangkankontrol versidigital dari masalahkecepatan motorDC. Sebuahmotor DCdigitalmodel dapatdiperolehdari konversidari modelanalog,seperti yang akan kitajelaskan. Controller untukcontoh iniakan dirancangdengan metodePID. DariModeling: sebuahmotorDC,loop terbukafungsi transferuntuk kecepatanmotor DCadalahditurunkan sebagai:

dimana: *hambatan listrik(R) = 1 ohm *induktansilistrik(L) = 0,5 H *gaya gerak listrikkonstan (Ke =Kt) = 0,01 Nm/Amp *momen inersiarotor(J) = 0,01 kg*m^ 2/s^ 2 *rasio redamandari sistemmekanik(b) = 0,1 NMS *input (V): TeganganSumber *Output(theta dot): Memutar kecepatan *Pararotor danporosyangdianggapkaku Persyaratan desainuntuk 1rad/ detikmasukanlangkahyang *PerkenalanWaktu: Kurang dari2detik *Overshoot: Kurang dari5% *Steady-state error: Kurang dari1% Terus menerus untuk Konversi Diskrit Langkah pertama dalam merancang sebuah sistem kontrol diskrit adalah untuk mengubah fungsi transfer kontinu ke fungsi transfer diskrit. Perintah matlab c2dm akan melakukan ini untuk Anda. Perintah c2dm membutuhkan empat argumen berikut: polinomial pembilang (num), penyebut polinomial (den), waktu sampling (Ts) dan jenis sirkuit terus. Dalam contoh ini, terus kita akan menggunakan adalah terus orde nol ('zoh'). Dari persyaratan desain, biarkan waktu sampling, Ts sama dengan 0,12 detik, yang adalah 1 / 10 waktu yang konstan sistem dengan settling time 2 detik. fungsi transfer diskrit dapat ditulis sebagai: Pertama, ingin melihat apa respon loop tertutup sistem terlihat seperti tanpa kontrol. Jika melihat matriks numz ditunjukkan di atas, memiliki satu nol ekstra di depan, kita harus menyingkirkan sebelum menutup loop dengan perintah cloop Matlab. Setelah melakukan ini, mari kita lihat bagaimana respon loop tertutup langkah terlihat seperti. Perintah dstep akan menghasilkan vektor sinyal output diskrit dan perintah tangga akan menghubungkan sinyalsinyal. Klik di sini untuk informasi lebih lanjut. Anda harus melihat plot berikut:

Pengontrol PID Ingatlah bahwa waktu kontinu fungsi transfer untuk kontroler PID adalah: Ada beberapa cara untuk pemetaan dari pesawat s ke z-pesawat. Yang paling akurat adalah. Kita tidak dapat memperoleh fungsi transfer PID dengan cara ini karena fungsi transfer diskrit-waktu akan lebih dari kutub nol, yang tidak direalisasikan. Sebaliknya, kita akan menggunakan transformasi bilinear ditampilkan sebagai berikut: Dengan demikian kita dapat memperoleh kontroler PID diskrit dengan pemetaan transformasi bilinear. Untuk derivasi lebih detail PID diskrit, lihat Pengendali PID Diskrit. Ekuivalen, perintah c2dm di Matlab akan membantu Anda untuk mengkonversi PID kompensator kontinu waktu ke waktu diskrit kompensator PID dengan menggunakan "Tustin" metode dalam kasus ini. The "Tustin" metode akan menggunakan pendekatan bilinear untuk mengkonversi ke waktu diskrit derivatif. Menurut Metode Desain PID untuk Motor DC halaman, Kp = 100, Ki = 200 dan Kd = 10 adalah memenuhi persyaratan desain. Kami akan menggunakan semua keuntungan dalam contoh ini Perhatikan bahwa pembilang dan penyebut dalam c2dm terbalik di atas. Alasannya adalah bahwa fungsi transfer PID tidak tepat. Matlab tidak akan membiarkan ini. Dengan beralih pembilang dan penyebut perintah c2dm dapat tertipu dalam memberikan jawaban yang benar. Mari kita lihat apakah kinerja respon loop tertutup dengan kompensator PID memenuhi persyaratan desain.

Seperti yang dapat Anda lihat dari plot di atas, respon loop tertutup sistem tidak stabil. Oleh karena itu harus ada sesuatu yang salah dengan sistem kompensasi.Jadi kita harus melihat pada lokus akar dari sistem kompensasi. Dari plot akar-lokus, kita melihat bahwa penyebut dari pengontrol PID memiliki tiang di -1 pada bidang z-. Kita tahu bahwa jika sebuah tiang dari suatu sistem berada di luar lingkaran satuan, sistem akan menjadi tidak stabil. Sistem kompensasi akan selalu tidak stabil untuk setiap keuntungan positif karena ada bahkan jumlah kutub dan nol di sebelah kanan tiang pada -1. Oleh karena itu tiang yang akan selalu bergerak ke kiri dan di luar lingkaran satuan. Tiang di -1 berasal dari kompensator, dan kita dapat mengubah lokasi dengan mengubah desain kompensator. Kami memilih untuk membatalkan nol di -0,62. Ini akan membuat sistem stabil untuk setidaknya beberapa keuntungan. Selanjutnya kita dapat memilih mendapatkan yang sesuai dari plot lokus akar untuk memenuhi persyaratan desain menggunakan kode Matlab rlocfind. Kemudian Matlab akan kembali keuntungan yang sesuai dan kutub kompensasi yang sesuai, dan itu akan plot

respon loop tertutup kompensasi sebagai berikut. Plot menunjukkan bahwa settling time kurang dari 2 detik dan overshoot persen adalah sekitar 3%. Selain itu, kesalahan steady state adalah nol. Juga, keuntungan, K, dari lokus root 0,2425 yang wajar. Oleh karena respon ini memenuhi semua persyaratan desain.

Anda mungkin juga menyukai