Abstrak
Pada praktikum ini, praktikan
merancang sebuah pengendali untuk
mengendalikan posisi dari motor DC.
Pengendali berupa pengaturan letak
pole (pole placement) dari sistem
sehingga sistem menghasilkan respon
sesuai dengan yang diharapkan. Lalu,
praktikan mencoba memberi gangguan
pada motor dan mencatat respon yang
diberikan. Praktikan juga menentukan Gambar Atmega8535
deadband dari motor DC tersebut.
Kata kunci: Deadband, Pole Placement,
Posisi.
1. PENDAHULUAN
Setelah praktikum ini dilakukan, diharapkan
praktikan:
- dapat memodelkan motor dc ke
persamaan state space
- Mampu menganalisis kinerja sistem
melalui pemodelan sistem tersebut
Gambar Atmega16
- Merancang sistem pengendali pole
placement posisi motor DC
- Mengimplementasikan rancangan 2.2 LCD
pengendali yang sudah dibuat.
LCD yang digunakan dalam praktikum ini
adalah LCD yang berbasis pada HD44780
2. STUDI PUSTAKA
LCD controller. Sebelum praktikum, praktikan
diharuskan untuk membaca dan memahami
2.1 AVR
proses untuk menjalankan LCD yang
AVR merupakan seri mikrokontroler CMOS 8- diuraikan pada datasheet HD44780 tersebut.
bit buatan atmel yang paling sering dipakai
pada bidang elektronika dan instrumentasi. 2.3 MOTOR DC
Mikrokontroler ATMega8535/ATMega16
adalah salah satu mikrokontroler dari Persamaan fungsi transfer kecepatan dari
keluarga AVR processor. Arsitektur dari motor DC adalah
mikrokontroler ini adalah RISC 8 bit. K
H(s) =
s+1
Persamaan fungsi transfer posisi dari motor
DC adalah
3. METODOLOGI
Alat-alat yang digunakan:
Nx =
[ 0
23.652 ]
Nbar = 311.1502
- 1 set komputer dan software
winAVR/CodevisionAVR.
- ATMega8535 (sismin) dan Trainer Respon motor DC ketika diberi initial state
Board. (referensi input tidak digunakan).
- H-Bridge L298N.
- Servo Amplifier dan motor DC
- Potensiometer
- Power Supply DC.
- Osiloskop.
- Kabel-kabel penghubung.
DAFTAR PUSTAKA
[1] http://maxembedded.com/2012/01/a
vr-timers-pwm-mode-part-ii/
[2] http://www.electroschematics.com/
10053/avr-adc/
[3] http://maxembedded.com/2011/06/t
he-adc-of-the-avr/
void main(void)
{
while (1)
{
lcd_init(16);
lcd_clear();
//OCR0 = (int)PID;
OCR0 = (int) error;
PWM=OCR0;
//D=OCR0;
X = 200;
V=PWM*100/256;
AD= (X*5/255);
lcd_gotoxy(0,0);
lcd_putsf("err=");
sprintf(vtr,"%d ",(int) error);
lcd_gotoxy(6,0);
lcd_puts(vtr);
// lcd_gotoxy(0,1);
/* lcd_putsf("VPSO=");
sprintf(str,"%d ",AD);
lcd_gotoxy(6,1);
lcd_puts(str);
lcd_gotoxy(8,1);
lcd_putsf("V");*/
delay_ms(1000);
}
}
%State space%
MG_zbaru = ss(G_zbaru)
A = [1.659 -0.6594; 1 0]
B = [0.5; 0]
%mencari nilai K%
K = acker(A,B,pole(charc_z))
%matriks A,B,C,D
matrikz = [1.659 -0.6594 0.5; 1 0 0; 0.1821 0.1585 0]
inv_matrikz = inv(matrikz)
%Mencari Nu dan Nx
NuNx = inv_matrikz*[0;0;1]
Nu = 8.32
Nx = [0;6.3]
%Mencari Nbar
Nbar = Nu - K*Nx