Implementasi Kontrol PID Pada Pendulum Terbalik Menggunakan Pengontrol Mikro AVR ATMega 16.

(1)

i Universitas Kristen Maranatha

IMPLEMENTASI KONTROL PID PADA PENDULUM

TERBALIK MENGGUNAKAN

PENGONTROL MIKRO AVR ATMEGA 16

Disusun Oleh:

Nama : Earline Ignacia Sutanto NRP : 0622012

Jurusan Teknik Elektro, Fakultas Teknik, Universitas Kristen Maranatha, Jl. Prof.Drg.Suria Sumantri, MPH no.65, Bandung, Indonesia,

email : juve_linear@yahoo.com

ABSTRAK

Sistem kontrol merupakan sebuah sistem yang terdiri atas satu atau beberapa peralatan yang berfungsi untuk mengontrol sistem lain yang berhubungan dengan sebuah proses. Salah satu contoh pengontrol adalah PID. Pengontrol PID memiliki algoritma yang sederhana, persamaan tunggal tetapi dapat menyediakan hasil kontrol yang baik untuk beberapa proses yang berbeda.

Dalam Tugas Akhir ini telah dirancang dan direalisasikan Pengontrol PID pada sebuah pendulum terbalik menggunakan pengontrol mikro AVR ATMega16. Sistem pendulum terbalik mensimulasikan sebuah mekanisme kontrol untuk mengatasi permasalahan kestabilan. Pendulum terbalik sendiri merupakan salah satu plant yang dinamis sehingga proses pengaturannya menjadi lebih rumit apabila menggunakan teknik kontrol on/off saja.

Input sistem berupa sudut referensi dan diberi pengontrol PID (Kp, Ki, Kd) yang berbasis pengontrol mikro AVR ATMega 16. Metoda Trial and Error agar error ± 3º maka didapat Kp = 9.8, Ki = 0 ,dan Kd = 0.27. Pengontrol mikro AVR ATMega 16 memberikan sinyal kepada motor DC yang ada pada sistem pendulum terbalik untuk bergerak. Sensor sudut akan mengukur sudut aktual (output) dari sistem pendulum terbalik tersebut. Jika sensor sudut mendeteksi adanya error ± 3º dari sudut referensi yang berarti error ≠ 0, maka pengontrol mikro AVR ATMega 16 akan memberi sinyal kepada motor DC agar terus bergerak sehingga pendulum terbalik dapat berdiri.

Dari semua percobaan yang dilakukan, pengontrolan pendulum terbalik dengan menggunakan pengontrol PID di setiap sudut awal yang berbeda pada batang pendulum menghasilkan rata-rata error yang lebih kecil dibandingkan dengan menggunakan pengontrol Proporsional dan penggontrol on/off, perbandingan waktu bertahan pendulum PID=6.4s, P=4.2s, dan on / off =3.5s dan perbandingan rata – rata error PID=3.8°, P=4.7°, dan on / off =8.9°. Pengontrol PID menggunakan pengontrol mikro AVR ATMega 16 dapat dikembangkan untuk plant pendulum terbalik yang lintasannya berbentuk lingkaran.

Kata Kunci : Sistem Kontrol, Pendulum Terbalik, ATMEGA16, pengontrol PID, Motor Driver.


(2)

ii Universitas Kristen Maranatha

PID CONTROL IMPLEMENTATION OF AN INVERTED

PENDULUM USING

AVR ATMEGA 16 MICROCONTROLLER

Composed by:

Name : Earline Ignacia Sutanto NRP : 0622012

Electrical Engineering, Maranatha Christian University, Jl. Prof.Drg.Suria Sumantri, MPH no.65, Bandung, Indonesia,

email : juve_linear@yahoo.com

ABSTRACT

Control system is a system consisting of one or more devices that function to other systems associated with a process. One example is the PID controller. PID controller has a simple algorithm, single equation but can provide good control result for several different processes.

In this Final Project has been designed and realized PID controller on an inverted pendulum using AVR ATMega16 microcontrollers. An inverted pendulum system simulates control mechanism to overcome the stability problems. Inverted pendulum is one of the dynamic plant so that the process becomes more complicated settings when using the technique of control on / off only.

Input to the system is a reference angle and given a PID controller (Kp, Ki, Kd) based of AVR ATMega 16 microcontroller. By using the method of Trial and Error for error is ± 3 º so Kp = 9.8, Ki = 0, and Kd = 0:27. AVR ATMega 16 microcontroller provides signals to DC motor on an inverted pendulum system to move. Angle sensor will measure the actual angle (output) of an inverted pendulum system. If the sensor detects an error ±3º from the angle reference,

which means error ≠ 0, then the AVR ATMega 16 microcontroller will give a

signal to a DC motor to keep moving so that an inverted pendulun can stand. Of all the experiments, inverted pendulum control using PID controller in every different angle of the beginning in a pendulum rod produces an average error smaller than by using proportional controller and on / off controller, the survival time of the pendulum PID=6.4s, P=4.2s, and on / off =3.5s and the average error ratio PID=3.8°, P=4.7°, and on / off =8.9°. PID controller using AVR ATMega 16 microcontroller can be developed for inverted pendulum plant a circular path.

Key Word : Control System, inverted pendulum, ATMEGA 16, PID Controller,


(3)

v Universitas Kristen Maranatha

DAFTAR ISI

Halaman

ABSTRAK ... i

ABSTRACT ... ii

KATA PENGANTAR ... iii

DAFTAR ISI ... v

DAFTAR TABEL ... ix

DAFTAR GAMBAR... x

BAB I PENDAHULUAN I.1 Latar Belakang ... 1

I.2 Identifikasi Masalah ... 2

I.3 Perumusan Masalah ... 2

I.4 Tujuan ... 2

I.5 Pembatasan Masalah ... 2

I.6 Sistematika Pembahasan ... 3

BAB II LANDASAN TEORI II.1 Dasar Sistem Kontrol ... 5

II.2 Sistem Kontrol Closed loop ... 6

II.3 Pengontrol Proporsional – Integral – Derivatif ... 6

II.3.1 Aksi Pengontrol Proporsional ... 8

II.3.2 Aksi Pengontrol Integral ... 8

II.3.3 Aksi Pengontrol Derivatif ... 9

II.3.4 Rangkuman Aksi Pengontrol Proporsional, Integral, dan Derivatif ... 10

II.5 Plant Pendulum Terbalik ... 11

II.6 Motor Driver ... 12

II.7 Pengontrol Mikro ... 13

II.7.1 Pengontrol Mikro ATMEGA16 ... 13

II.7.1.1 Fitur ATMEGA16 ... 14

II.7.1.2 Konfigurasi Pin ATMEA16 ... 15


(4)

vi Universitas Kristen Maranatha

II.7.1.4 Peta Memori ATMEGA16 ... 18 II.7.1.5 PWM (Pulse Width Modulation) ATmega16 ... 20 II.7.1.6 Pin Input/Output ATMEGA16 ... 22 BAB III PERANCANGAN DAN REALISASI

III.1 Perancangan Sistem Pendulum Terbalik ... 23 III.1.1 Diagram Blok Sistem Pendulum Terbalik ... 23 III.2 Perancangan dan Realisasi Rangkaian Motor Driver dan Pengontrol .. 24 III.2.1 Motor Driver ... 24 III.2.2 Pengontrol ... 25 III.2.2.1 ADC ... 25 III.2.2.2 Skematik Pengontrol Berbasis Pengontrol Mikro

ATMEGA 16 ... 26 III.2.2.3 Algoritma Pemograman pada Pengontrol Mikro

AVR ATMega 16 ... 28 III.2.2.4 Pengontrol Motor DC ... 31 III.2.2.5 Pengontrol PID ... 33 BAB IV DATA PENGAMATAN DAN ANALISA

IV.1 Pengujian Pendulum Terbalik dengan Menggunakan Pengontrol

On/Off ... ... 42 IV.2 Pengujian Keluaran sinyal kontrol di Pengontrol Mikro AVR ATMega

16 Pada Pendulum Terbalik dengan Menggunakan Pengontrol PID .... 50 IV.3 Pengujian Pendulum Terbalik dengan Menggunakan Pengontrol PID . 51 IV.4 Pengujian Pendulum Terbalik dengan Menggunakan Pengontrol

Proporsional ... 59 BAB V KESIMPULAN DAN SARAN

V.1 Kesimpulan ... 68 V.2 Saran ... 68 DAFTAR PUSTAKA ... 69 LAMPIRAN – A Program pada Pengontrol Mikro AVR ATMEGA16 LAMPIRAN – B Foto Alat


(5)

vii Universitas Kristen Maranatha

DAFTAR TABEL

Halaman

1. Tabel 2.1 Tabel Karakteristik Pengontrol PID ... 11

2. Tabel 2.2 Tabel Kebenaran Motor Driver ... 13

3. Tabel 2.3 Fungsi Khusus Port B ... 16

4. Tabel 2.4 Fungsi Khusus Port C ... 16

5. Tabel 2.5 Fungsi Khusus Port D ... 17

6. Tabel 2.6 Konfigurasi Port ATMEGA16 ... 22

7. Tabel 4.1 Pengujian Pendulum Terbalik dengan Menggunakan Pengontrol On/Off ... 49

8. Tabel 4.2 Pengujian Pendulum Terbalik dengan Menggunakan Pengontrol PID ... 58

9. Tabel 4.3 Pengujian Pendulum Terbalik dengan Menggunakan Pengontrol Proporsional ... 66


(6)

viii Universitas Kristen Maranatha

DAFTAR GAMBAR

Halaman

1. Gambar 1.1 Pendulum Terbalik ... 3

2. Gambar 2.1 Diagram Blok Sistem Kontrol Closed Loop ... 6

3. Gambar 2.2 Diagram Blok Pengontrol Proporsional – Integral – Derivatif ... 7

4. Gambar 2.3 Diagram Alir Pengontrol Proporsional ... 8

5. Gambar 2.4 Diagram Alir Pengontrol Integral ... 9

6. Gambar 2.5 Diagram Alir Pengontrol Derivatif ... 10

7. Gambar 2.6 Pendulum Terbalik ... 11

8. Gambar 2.7 Diagram Blok Motor Driver ... 12

9. Gambar 2.8 Konfigurasi Pin ATMEGA16 ... 15

10.Gambar 2.9 Diagram Blok ATMEGA16 ... 18

11.Gambar 2.10 Pemetaan Memori ATMEGA16 ... 19

12.Gambar 2.11 Pemetaan Memori Data ATMEGA16 ... 20

13.Gambar 3.1 Diagram Blok Sistem Pendulum Terbalik ... 23

14.Gambar 3.2 Alokasi Pin Driver Motor (SGS – Thompson) ... 25

15.Gambar 3.3 Skematik Pengontrol Berbasis Pengontrol Mikro AT MEGA 16 ... 27

16.Gambar 3.4 Diagram Alir Pendulum Terbalik ... 29

17.Gambar 3.5 Diagram Alir Perhitungan dari PID ... 30

18.Gambar 3.6 Respon Saat PID = 2. ... 32

19.Gambar 3.7 Respon Saat PID = 4 .. ... 32

20.Gambar 3.8 Respon Plant Pendulum Terbalik dengan Kp = 1, Ki = 0, dan Kd = 0... 34

21.Gambar 3.9 Respon Plant Pendulum Terbalik dengan Kp = 10, Ki = 0, dan Kd = 0. ... 34

22.Gambar 3.10 Respon Plant Pendulum Terbalik dengan Kp = 10.8, Ki = 0, dan Kd = 0... ... 35


(7)

ix Universitas Kristen Maranatha

23.Gambar 3.11 Respon Plant Pendulum Terbalik dengan Kp = 9.9,

Ki = 0, dan Kd = 0... ... 35 24.Gambar 3.12 Respon Plant Pendulum Terbalik dengan Kp = 9.8,

Ki = 0, dan Kd = 0. ... 36 25.Gambar 3.13 Respon Plant Pendulum Terbalik dengan Kp = 9,

Ki = 0, dan Kd = 0... 36 26.Gambar 3.14 Respon Plant Pendulum Terbalik dengan Kp = 9.8,

Ki = 0, dan Kd = 0.1 ... 37 27.Gambar 3.15 Respon Plant Pendulum Terbalik dengan Kp = 9.8,

Ki = 0, dan Kd = 0.2 ... 37 28.Gambar 3.16 Respon Plant Pendulum Terbalik dengan Kp = 9.8,

Ki = 0, dan Kd = 0.3 ... 38 29.Gambar 3.17 Respon Plant Pendulum Terbalik dengan Kp = 9.8,

Ki = 0, dan Kd = 0.4 ... 38 30.Gambar 3.18 Respon Plant Pendulum Terbalik dengan Kp = 9.8,

Ki = 0, dan Kd = 0.5 ... 39 31.Gambar 3.19 Respon Plant Pendulum Terbalik dengan Kp = 9.8,

Ki = 0, dan Kd = 0.17 ... 40 32.Gambar 3.20 Respon Plant Pendulum Terbalik dengan Kp = 9.8,

Ki = 0, dan Kd = 0.25 ... 40 33.Gambar 3.21 Respon Plant Pendulum Terbalik dengan Kp = 9.8,

Ki = 0, dan Kd = 0.27 ... 41 34.Gambar 4.1 Hasil Pengujian Pendulum Terbalik Menggunakan Pengontrol

On/Off dengan sudut awal = 0º ... 42 35.Gambar 4.2 Hasil Pengujian Pendulum Terbalik Menggunakan Pengontrol

On/Off sudut awal = 5º ... 43 36.Gambar 4.3 Hasil Pengujian Pendulum Terbalik Menggunakan Pengontrol

On/Off dengan sudut awal = 10º ... 43 37.Gambar 4.4 Hasil Pengujian Pendulum Terbalik Menggunakan Pengontrol


(8)

x Universitas Kristen Maranatha

38.Gambar 4.5 Hasil Pengujian Pendulum Terbalik Menggunakan Pengontrol On/Off dengan sudut awal = 20º ... 44 39.Gambar 4.6 Hasil Pengujian Pendulum Terbalik Menggunakan Pengontrol

On/Off dengan sudut awal = 25º ... 45 40.Gambar 4.7 Hasil Pengujian Pendulum Terbalik Menggunakan Pengontrol

On/Off dengan sudut awal = 30º ... 45 41.Gambar 4.8 Hasil Pengujian Pendulum Terbalik Menggunakan Pengontrol

On/Off dengan sudut awal = -5º ... 46 42.Gambar 4.9 Hasil Pengujian Pendulum Terbalik Menggunakan Pengontrol

On/Off dengan sudut awal = -10º ... 46 43.Gambar 4.10 Hasil Pengujian Pendulum Terbalik Menggunakan Pengontrol

On/Off dengan sudut awal = -15º ... 47 44.Gambar 4.11 Hasil Pengujian Pendulum Terbalik Menggunakan Pengontrol

On/Off dengan sudut awal = -20º ... 47 45.Gambar 4.12 Hasil Pengujian Pendulum Terbalik Menggunakan Pengontrol

On/Off dengan sudut awal = -25º ... 48 46.Gambar 4.13 Hasil Pengujian Pendulum Terbalik Menggunakan Pengontrol

On/Off dengan sudut awal = -30º ... 48 47.Gambar 4.14 Hasil Pengujian Rata – Rata Sinyal Kontrol dengan sudut

awal = 0º ... 50 48.Gambar 4.15 Hasil Pengujian Rata – Rata Sinyal Kontrol dengan sudut

awal = 10º ... 51 49.Gambar 4.16 Hasil Pengujian Pendulum Terbalik Menggunakan Pengontrol

PID dengan sudut awal = 0º... 51 50.Gambar 4.17 Hasil Pengujian Pendulum Terbalik Menggunakan Pengontrol

PID dengan sudut awal = 5º... 52 51.Gambar 4.18 Hasil Pengujian Pendulum Terbalik Menggunakan Pengontrol

PID dengan sudut awal = 10º ... 52 52.Gambar 4.19 Hasil Pengujian Pendulum Terbalik Menggunakan Pengontrol


(9)

xi Universitas Kristen Maranatha

53.Gambar 4.20 Hasil Pengujian Pendulum Terbalik Menggunakan Pengontrol PID dengan sudut awal = 20º ... 53 54.Gambar 4.21 Hasil Pengujian Pendulum Terbalik Menggunakan Pengontrol

PID dengan sudut awal = 25º ... 54 55.Gambar 4.22 Hasil Pengujian Pendulum Terbalik Menggunakan Pengontrol

PID dengan sudut awal = 30º ... 54 56.Gambar 4.23 Hasil Pengujian Pendulum Terbalik Menggunakan Pengontrol

PID dengan sudut awal = -5º ... 55 57.Gambar 4.24 Hasil Pengujian Pendulum Terbalik Menggunakan Pengontrol

PID dengan sudut awal = -10º ... 55 58.Gambar 4.25 Hasil Pengujian Pendulum Terbalik Menggunakan Pengontrol

PID dengan sudut awal = -15º ... 56 59.Gambar 4.26 Hasil Pengujian Pendulum Terbalik Menggunakan Pengontrol

PID dengan sudut awal = -20º ... 56 60.Gambar 4.27 Hasil Pengujian Pendulum Terbalik Menggunakan Pengontrol

PID dengan sudut awal = -25º ... 57 61.Gambar 4.28 Hasil Pengujian Pendulum Terbalik Menggunakan Pengontrol

PID dengan sudut awal = -30º ... 57 62.Gambar 4.29 Hasil Pengujian Pendulum Terbalik Menggunakan Pengontrol

Proporsional dengan sudut awal = 0º ... 59 63.Gambar 4.30 Hasil Pengujian Pendulum Terbalik Menggunakan Pengontrol

Proporsional dengan sudut awal = 5º ... 60 64.Gambar 4.31 Hasil Pengujian Pendulum Terbalik Menggunakan Pengontrol

Proporsional dengan sudut awal = 10º ... 60 65.Gambar 4.32 Hasil Pengujian Pendulum Terbalik Menggunakan Pengontrol

Proporsional dengan sudut awal = 15º ... 61 66.Gambar 4.33 Hasil Pengujian Pendulum Terbalik Menggunakan Pengontrol

Proporsional dengan sudut awal = 20º ... 61 67.Gambar 4.34 Hasil Pengujian Pendulum Terbalik Menggunakan Pengontrol


(10)

xii Universitas Kristen Maranatha

68.Gambar 4.35 Hasil Pengujian Pendulum Terbalik Menggunakan Pengontrol Proporsional dengan sudut awal = 30º ... 62 69.Gambar 4.36 Hasil Pengujian Pendulum Terbalik Menggunakan Pengontrol

Proporsional dengan sudut awal = -5º ... 63 70.Gambar 4.37 Hasil Pengujian Pendulum Terbalik Menggunakan Pengontrol

Proporsional dengan sudut awal = -10º ... 63 71.Gambar 4.38 Hasil Pengujian Pendulum Terbalik Menggunakan Pengontrol

Proporsional dengan sudut awal = -15º ... 64 72.Gambar 4.39 Hasil Pengujian Pendulum Terbalik Menggunakan Pengontrol

Proporsional dengan sudut awal = -20º ... 64 73.Gambar 4.40 Hasil Pengujian Pendulum Terbalik Menggunakan Pengontrol

Proporsional dengan sudut awal = -25º ... 65 74.Gambar 4.41 Hasil Pengujian Pendulum Terbalik Menggunakan Pengontrol


(11)

LAMPIRAN A

PROGRAM PADA PENGONTROL MIKRO AVR

ATMEGA 16


(12)

A-1 Program Pengontrolan Pendulum

Terbalik Menggunakan on/off /*********************************** This program was produced by the

CodeWizardAVR V1.25.3 Standard Automatic Program Generator

© Copyright 1998-2007 Pavel Haiduc, HP InfoTech s.r.l.

http://www.hpinfotech.com Project :

Version : Date : 1/5/2010

Author : F4CG Company : F4CG Comments:

Chip type : ATmega16 Program type : Application Clock frequency : 11.059200 MHz Memory model : Small

External SRAM size : 0 Data Stack size : 256

***********************************/ #include <mega16.h>

#include <stdio.h> #include <delay.h>

// Alphanumeric LCD Module functions #asm

.equ __lcd_port=0x15 ;PORTC #endasm

#include <lcd.h>

#define ADC_VREF_TYPE 0x40 // Read the AD conversion result unsigned int read_adc(unsigned char adc_input)

{

ADMUX=adc_input | (ADC_VREF_TYPE & 0xff);

// Start the AD conversion ADCSRA|=0x40;

// Wait for the AD conversion to complete while ((ADCSRA & 0x10)==0);

ADCSRA|=0x10; return ADCW; }

// Declare your global variables here void main(void)

{char lcd_buffer[33]; float vd,vpot,x1,x2,g,h; int temp,f,cek;

// Declare your local variables here // Input/Output Ports initialization // Port A initialization

// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T PORTA=0x00;

DDRA=0x00; // Port B initialization

// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T PORTB=0x00;

DDRB=0x00; // Port C initialization

// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T PORTC=0x00;

DDRC=0x00; // Port D initialization

// Func7=Out Func6=Out Func5=Out Func4=Out Func3=Out Func2=Out Func1=Out Func0=Out

// State7=0 State6=0 State5=0 State4=0 State3=0 State2=0 State1=0 State0=0 PORTD=0x00;

DDRD=0xFF;

// Timer/Counter 0 initialization // Clock source: System Clock // Clock value: Timer 0 Stopped // Mode: Normal top=FFh // OC0 output: Disconnected TCCR0=0x00;

TCNT0=0x00; OCR0=0x00;

// Timer/Counter 1 initialization // Clock source: System Clock


(13)

A-1 // Clock value: Timer 1 Stopped

// Mode: Normal top=FFFFh // OC1A output: Discon. // OC1B output: Discon. // Noise Canceler: Off

// Input Capture on Falling Edge // Timer 1 Overflow Interrupt: Off // Input Capture Interrupt: Off // Compare A Match Interrupt: Off // Compare B Match Interrupt: Off TCCR1A=0x00; TCCR1B=0x00; TCNT1H=0x00; TCNT1L=0x00; ICR1H=0x00; ICR1L=0x00; OCR1AH=0x00; OCR1AL=0x00; OCR1BH=0x00; OCR1BL=0x00;

// Timer/Counter 2 initialization // Clock source: System Clock // Clock value: Timer 2 Stopped // Mode: Normal top=FFh // OC2 output: Disconnected ASSR=0x00;

TCCR2=0x00; TCNT2=0x00; OCR2=0x00;

// External Interrupt(s) initialization // INT0: Off

// INT1: Off // INT2: Off MCUCR=0x00; MCUCSR=0x00;

// Timer(s)/Counter(s) Interrupt(s) initialization

TIMSK=0x00;

// USART initialization

// Communication Parameters: 8 Data, 1 Stop, No Parity

// USART Receiver: On // USART Transmitter: On // USART Mode: Asynchronous // USART Baud rate: 9600 UCSRA=0x00;

UCSRB=0x18; UCSRC=0x86; UBRRH=0x00; UBRRL=0x47;

// Analog Comparator initialization

// Analog Comparator: Off

// Analog Comparator Input Capture by Timer/Counter 1: Off

ACSR=0x80; SFIOR=0x00; // ADC initialization

// ADC Clock frequency: 86.400 kHz // ADC Voltage Reference: AVCC pin // ADC Auto Trigger Source: None ADMUX=ADC_VREF_TYPE & 0xff; ADCSRA=0x87;

// LCD module initialization lcd_init(16);

while (1)

{temp=read_adc(0); vpot=((float)temp*0.0048); lcd_gotoxy(0,0);

sprintf(lcd_buffer,"Vpot: %3.2f V",vpot); lcd_puts(lcd_buffer); delay_us(50); cek++; if(cek==500){ printf("%3.2f",vpot);cek=0;} vd=read_adc(1); g=((float)vd*0.0048); lcd_gotoxy(0,1);

sprintf(lcd_buffer,"vd: %3.2f V",g); lcd_puts(lcd_buffer); delay_us(50); if (g<=0.63) { PORTD.1=0; delay_us(10); PORTD.2=0; delay_us(10); } if (g>=4.75) { PORTD.1=0; delay_us(10); PORTD.2=0; delay_us(10); }

if (g>=0.64 && g<=4.74) {

if (vpot<=2.44) { PORTD.1=1; delay_us(50);


(14)

A-2 PORTD.2=0;

delay_us(50); }

if (vpot>=2.47) {

PORTD.2=1; delay_us(50); PORTD.1=0; delay_us(50); }

if (vpot>=2.45 && vpot<=2.46) {

{PORTD.1=0; delay_us(50); PORTD.2=0; delay_us(50);} }}


(15)

A-3 Program Pengontrolan Pendulum

Terbalik Menggunakan Pengontrol PID

/*********************************** This program was produced by the

CodeWizardAVR V1.25.3 Standard Automatic Program Generator

© Copyright 1998-2007 Pavel Haiduc, HP InfoTech s.r.l.

http://www.hpinfotech.com Project :

Version : Date : 1/8/2010

Author : F4CG Company : F4CG Comments:

Chip type : ATmega16 Program type : Application Clock frequency : 11.059200 MHz Memory model : Small

External SRAM size : 0 Data Stack size : 256

***********************************/ #include <mega16.h> #include <delay.h> #include <stdio.h> #include <stdlib.h> #include <math.h>

// Alphanumeric LCD Module functions #asm

.equ __lcd_port=0x15 ;PORTC #endasm

#include <lcd.h>

#define ADC_VREF_TYPE 0x40 unsigned char key,key1[6]; unsigned char keypad(); unsigned int k,a,c,d,j,cek; eeprom float sp,kp,ki,kd;

// Read the AD conversion result unsigned int read_adc(unsigned char adc_input)

{

ADMUX=adc_input | (ADC_VREF_TYPE & 0xff);

// Start the AD conversion ADCSRA|=0x40;

// Wait for the AD conversion to complete while ((ADCSRA & 0x10)==0);

ADCSRA|=0x10; return ADCW; }

// Declare your global variables here unsigned int u,V;

unsigned char text[32],lcd_buffer[33];; void main(void)

{ float pv,er,p,i,d,I,o,rate,PID,vd,vpot,g; int temp;

// Declare your local variables here // Input/Output Ports initialization // Port A initialization

// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T PORTA=0x00;

DDRA=0x00; // Port B initialization

// Func7=In Func6=In Func5=In Func4=In Func3=Out Func2=Out Func1=Out Func0=Out

// State7=P State6=P State5=P State4=P State3=1 State2=1 State1=1 State0=1 PORTB=0xFF;

DDRB=0x0F; // Port C initialization

// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T PORTC=0x00;

DDRC=0x00; // Port D initialization

// Func7=In Func6=In Func5=In Func4=In Func3=Out Func2=Out Func1=In Func0=In // State7=T State6=T State5=T State4=T State3=0 State2=0 State1=T State0=T PORTD=0x00;

DDRD=0x0C;


(16)

A-4 // Clock source: System Clock

// Clock value: Timer 0 Stopped // Mode: Normal top=FFh // OC0 output: Disconnected TCCR0=0x00;

TCNT0=0x00; OCR0=0x00;

// Timer/Counter 1 initialization // Clock source: System Clock // Clock value: Timer 1 Stopped // Mode: Normal top=FFFFh // OC1A output: Discon. // OC1B output: Discon. // Noise Canceler: Off

// Input Capture on Falling Edge // Timer 1 Overflow Interrupt: Off // Input Capture Interrupt: Off // Compare A Match Interrupt: Off // Compare B Match Interrupt: Off TCCR1A=0x00; TCCR1B=0x00; TCNT1H=0x00; TCNT1L=0x00; ICR1H=0x00; ICR1L=0x00; OCR1AH=0x00; OCR1AL=0x00; OCR1BH=0x00; OCR1BL=0x00;

// Timer/Counter 2 initialization // Clock source: System Clock // Clock value: 10.800 kHz // Mode: Fast PWM top=FFh // OC2 output: Non-Inverted PWM ASSR=0x00;

TCCR2=0x6F; TCNT2=0x00; OCR2=0x00;

// External Interrupt(s) initialization // INT0: Off

// INT1: Off // INT2: Off MCUCR=0x00; MCUCSR=0x00;

// Timer(s)/Counter(s) Interrupt(s) initialization

TIMSK=0x00;

// USART initialization

// Communication Parameters: 8 Data, 1 Stop, No Parity

// USART Receiver: On // USART Transmitter: On // USART Mode: Asynchronous // USART Baud rate: 9600 UCSRA=0x00;

UCSRB=0x18; UCSRC=0x86; UBRRH=0x00; UBRRL=0x47;

// Analog Comparator initialization // Analog Comparator: Off

// Analog Comparator Input Capture by Timer/Counter 1: Off

ACSR=0x80; SFIOR=0x00; // ADC initialization

// ADC Clock frequency: 86.400 kHz // ADC Voltage Reference: AVCC pin // ADC Auto Trigger Source: None ADMUX=ADC_VREF_TYPE & 0xff; ADCSRA=0x87;

// LCD module initialization lcd_init(16);

u=0; while (1) {

// program tampilan awal:

awal: lcd_clear(); key=keypad(); lcd_gotoxy(0,0);

lcd_putsf("A=INPUT B=DATA"); lcd_gotoxy(0,1); lcd_putsf("C=StArT MoT0r"); delay_ms(100); if(key=='A'){ goto inputdata;} else if(key=='B') {goto lihat;} else if(key=='C') {lcd_clear();goto adc;} delay_ms(100); goto awal; lihat: lcd_clear(); lcd_gotoxy(0,0); sprintf(text,"SP: %3.3f",sp);


(17)

A-5 lcd_puts(text); lcd_gotoxy(0,1); sprintf(text,"KP: %3.3f",kp); lcd_puts(text); delay_ms(2000); lcd_clear(); lcd_gotoxy(0,0); sprintf(text,"Ki: %3.3f",ki); lcd_puts(text); lcd_gotoxy(0,1); sprintf(text,"Kd: %3.3f",kd); lcd_puts(text); delay_ms(2000); goto awal; // program

inputdata========================= =============================== ============== inputdata: key=keypad(); lcd_clear(); lcd_gotoxy(0,1); lcd_putsf("INPUT NILAI:"); delay_ms(500); c=0; for(j=0;j<=5;j++) { key=keypad(); key1[c]=key; lcd_gotoxy(0,1); lcd_clear(); if(c==0) {lcd_gotoxy(0,0);sprintf(text,"INPUT 1:");} else if(c==1) {lcd_gotoxy(0,0); lcd_putsf("INPUT 2:");lcd_gotoxy(0,1); sprintf(text,"%c",key1[0]);} else if(c==2) {lcd_gotoxy(0,0); lcd_putsf("INPUT 3:");lcd_gotoxy(0,1); sprintf(text,"%c%c",key1[0],key1[1]);} else if(c==3) {lcd_gotoxy(0,0); lcd_putsf("INPUT 4:");lcd_gotoxy(0,1); sprintf(text,"%c%c%c",key1[0],key1[1],key 1[2]);} else if(c==4) {lcd_gotoxy(0,0); lcd_putsf("INPUT 5:");lcd_gotoxy(0,1); sprintf(text,"%c%c%c%c",key1[0],key1[1], key1[2],key1[3]);} else if(c==5) {lcd_gotoxy(0,0); lcd_putsf("INPUT 6:");lcd_gotoxy(0,1); sprintf(text,"%c%c%c%c%c",key1[0],key1[ 1],key1[2],key1[3],key1[4]);} lcd_puts(text); delay_ms(200); c++; if(key==247) { j=j-1; c=c-1; } } lcd_clear(); sprintf(text,"%c%c%c%c%c%c",key1[0],ke y1[1],key1[2],key1[3],key1[4],key1[5]); lcd_puts(text); delay_ms(2000); ulang: lcd_clear(); lcd_gotoxy(0,0); lcd_putsf("pilih A=SP"); lcd_gotoxy(6,1); lcd_putsf("B=KP"); lcd_gotoxy(12,0); lcd_putsf("C=Ki"); lcd_gotoxy(12,1); lcd_putsf("D=Kd"); delay_ms(100); key=keypad(); if(key=='A') goto setpoint; else if(key=='B') goto nilai_kp; else if(key=='C') goto nilai_ki; else if(key=='D') goto nilai_kd; else delay_ms(100); goto ulang; setpoint: sp=atof(key1); lcd_clear(); lcd_gotoxy(0,0); sprintf(text,"SP:%3.3f",sp); lcd_puts(text); delay_ms(2000); goto awal; nilai_kp:


(18)

A-6 kp=atof(key1); lcd_clear(); lcd_gotoxy(0,0); sprintf(text,"KP:%3.3f",kp); lcd_puts(text); delay_ms(2000); goto awal; nilai_ki: ki=atof(key1); lcd_clear(); lcd_gotoxy(0,0); sprintf(text,"Ki:%3.3f",ki); lcd_puts(text); delay_ms(2000); goto awal; nilai_kd: kd=atof(key1); lcd_clear(); lcd_gotoxy(0,0); sprintf(text,"Kd:%3.3f",kd); lcd_puts(text); delay_ms(2000); goto awal; adc: temp=read_adc(0); vpot=((float)temp*0.0048); lcd_gotoxy(0,0); sprintf(lcd_buffer,"Vp:%3.2f %3.2f",vpot,PID); lcd_puts(lcd_buffer); delay_us(50); cek++; if(cek==500){ printf("%3.2f",vpot);cek=0;} vd=read_adc(1); g=((float)vd*0.0048); lcd_gotoxy(0,1); sprintf(lcd_buffer,"vd:%3.2f %3.2f",g,er); lcd_puts(lcd_buffer); delay_us(50); //buat PID pv=vpot; if(u==0) {o=sp-pv; i=0; goto hitungPID;} else goto hitungPID;

hitungPID: er=sp-pv; //P kontroller p=kp*er; // I konroller i=i+er; I=i*ki; // D kontroller rate=er-o; d=rate*kd; // PID

PID = p+I+d;

o=sp-pv; u++;

if (g<=0.63 || g>=4.75) { PORTD.2=0; delay_us(50); PORTD.3=0; delay_us(50); }

if (g>=0.64 && g<=4.74) { if (PID>0) { PORTD.2=1; delay_us(50); PORTD.3=0; delay_us(50);

V=0,5*((PID^2)^1/2) + 6; OCR2= 28,33* V; } if (PID<0) { PORTD.2=0; delay_us(50); PORTD.3=1; delay_us(50);

V=0,5*((PID^2)^1/2) + 6; OCR2= 28,33* V; } if (PID==0) {PORTD.2=0; delay_us(50); PORTD.3=0; delay_us(50);}


(19)

A-7 g<=4.55 && g>=4.3)

} }

key=keypad(); if(key=='D')goto awal; else goto adc; };

}

unsigned char keypad() {

PORTB=0b11111110; if(PINB.4==0)return('*'); if(PINB.5==0)return('2'); if(PINB.6==0)return('3'); if(PINB.7==0)return('A');

//======================== PORTB=0b11111101;

if(PINB.4==0)return('1'); if(PINB.5==0)return('5'); if(PINB.6==0)return('6'); if(PINB.7==0)return('B');

//======================== PORTB=0b11111011;

if(PINB.4==0)return('4'); if(PINB.5==0)return('8'); if(PINB.6==0)return('9'); if(PINB.7==0)return('C');

//======================== PORTB=0b11110111;

if(PINB.4==0)return('7'); if(PINB.5==0)return('0'); if(PINB.6==0)return('.'); if(PINB.7==0)return('D');

//======================== }


(20)

LAMPIRAN B

FOTO ALAT


(21)

B-1

B-1 Foto Sistem Pendulum Terbalik


(22)

B-2

B-3 Foto Motor Driver


(23)

LAMPIRAN C

DATASHEET


(24)

1

BAB I

PENDAHULUAN

Pada bab ini berisi tentang latar belakang, identifikasi masalah, perumusan masalah, tujuan, pembatasan masalah, spesifikasi alat, dan sistematika penulisan laporan tugas akhir.

I.1 Latar Belakang

Sistem kontrol merupakan sebuah sistem yang terdiri atas satu atau beberapa peralatan yang berfungsi untuk mengontrol sistem lain yang berhubungan dengan sebuah proses. Dalam suatu industri, semua variabel proses seperti daya, temperatur dan laju alir harus dipantau setiap saat. Aksi kontrol dasara berkembang sejak awal abad ke 20 yaitu dengan ditemukannya sistem kontrol proporsional, integral dan sistem kontrol differensial. Dalam perkembangannya, ketiga sistem kontrol tersebut digabung menjadi satu, menjadi sistem kontrol PID ( Proporsional, Integral, Differensial ) yang bekerja sama dengan mengkombinasikan elemen-elemennya untuk menghasilkan keluaran sistem yang mendekati set point.

Pengontrol PID memiliki algoritma yang sederhana, persamaan tunggal tetapi dapat menyediakan hasil kontrol yang baik untuk beberapa proses yang berbeda. Karena memiliki banyak kegunaan, pengontrol PID banyak tersedia hampir di semua sistem kontrol komersil.

Saat ini pengontrol PID dapat dibuat pada pengontrol mikro AVR ATMega 16. Penggunaan pengontrol mikro sendiri memiliki banyak kelebihan yaitu dapat digunakan untuk berbagai aplikasi misalnya untuk pengontrol, akuisisi data, telekomunikasi, dll. AVR ATMega 16 memiliki keunggulan dibandingkan pengontrol mikro lainnya, yaitu: harganya murah, dapat diprogram berulang kali, memiliki kecepatan eksekusi program yang cepat. Selain itu, pengontrol mikro AVR ATMega 16 memiliki fitur yang lengkap (ADC internal, electrical EEPROM internal, port I/O, dll)


(25)

BAB I PENDAHULUAN 2

Pada Tugas Akhir ini, Pengontrol PID diimplementasikan pada sebuah pendulum terbalik. Sistem pendulum terbalik adalah mensimulasikan sebuah mekanisme kontrol untuk mengatasi permasalahan kestabilan. Pendulum terbalik sendiri merupakan salah satu plant yang dinamis sehingga proses pengaturannya menjadi lebih rumit apabila menggunakan teknik kontrol on/off saja.

I.2 Identifikasi Masalah

Berdasar latar belakang, pendulum terbalik tidak dapat dikontrol hanya dengan menggunakan teknik kontrol on off saja. Sehingga masalah utama yang akan diangkat pada Tugas Akhir ini adalah mengontrol posisi pendulum terbalik pada titik equilibriumnya dengan error ± 3º menggunakan pengontrol PID pada pengontrol mikro AVR ATMega 16.

I.3 Perumusan Masalah

Permasalahan yang akan dibahas dalam Tugas Akhir ini adalah bagaimana mengimplementasikan perangkat lunak pengontrol PID pada pendulum terbalik dengan menggunakan pengontrol mikro AVR ATMega 16 untuk mengatur agar pendulum terbalik pada titik equilibrium?

I.4 Tujuan

Tujuan yang hendak dicapai dalam pengerjaan Tugas Akhir ini adalah mengontrol pendulum terbalik dengan menggunakan pengontrol PID berbasis pengontrol mikro AVR ATMega 16 agar dapat berada pada titik equilibriumnya dengan error ± º3.

I.5 Pembatasan Masalah

Pembatasan masalah pada Tugas Akhir ini meliputi :

1. Proses / plant adalah model fisis dari pendulum terbalik yang telah tersedia di laboratorium sistem kontrol. Pendulum terbalik yang digunakan produksi quanser type linear motion.


(26)

BAB I PENDAHULUAN 3

PENDULUM

MOTOR GEAR POTENSIOMETER

GEAR

ANGLE SENSOR

Gambar 1.1 Pendulum Terbalik 2. Pergerakan sistem pendulum terbalik berbentuk linear.

3. Pendulum terbalik memiliki input berupa sudut referensi dan output berupa sudut aktual pendulum (SISO) .

I.6 Sistematika Penulisan

Laporan Tugas akhir ini disusun dengan sistematika sebagai berikut :

 Bab I Pendahuluan

Dalam bab ini akan diberikan gambaran tentang tugas akhir ini, yang diawali dengan latar belakang, identifikasi masalah, perumusan masalah, tujuan, pembatasan masalah, spesifikasi alat, dan yang terakhir adalah sistematika penulisan laporan tugas akhir.

 Bab II Landasan Teori

Pada bab ini dijelaskan mengenai teori-teori penunjang yang diperlukan dalam mengimplementasikan pengontrol PID pada pendulum terbalik menggunakan pengontrol mikro AVR ATMega 16 yaitu berupa teori tentang pengontrol PID, pendulum terbalik, dan pengontrol mikro.

 Bab III Perancangan Program

Bab ini akan dibahas perancangan pengontrol PID untuk mengontrol posisi pendulum terbalik dengan menggunakan pengontrol mikro AVR ATMega 16


(27)

BAB I PENDAHULUAN 4

 Bab IV Data Pengamatan

Pada bab ini berisi tentang hasil pengamatan yang telah dilakukan terhadap pendulum terbalik dengan pengontrol PID dengan menggunakan pengontrol mikro AVR ATMega 16

 Bab V Kesimpulan dan Saran

Pada bab ini berisi kesimpulan dari Tugas Akhir dan saran-saran yang perlu dilakukan untuk perbaikan di masa mendatang.


(28)

68 Universitas Kristen Maranatha

BAB V

KESIMPULAN DAN SARAN

Bab ini berisi kesimpulan dari Tugas Akhir dan saran-saran yang perlu dilakukan untuk perbaikan di masa mendatang.

V.1 Kesimpulan

Dengan memperhatikan data pengamatan dan analisis pada bab sebelumnya, dapat disimpulkan bahwa:

1. Pengontrol PID dapat diimplemantasikan pada pengontrol mikro AVR ATMEGA 16.

2. Pengontrolan pendulum terbalik dengan menggunakan pengontrol PID di setiap sudut awal yang berbeda – beda pada batang pendulum menghasilkan rata-rata error yang lebih kecil dibandingkan dengan menggunakan pengontrol Proporsional dan penggontrol on/off,

perbandingan waktu bertahan pendulum PID=6.4s, P=4.2s, dan on / off =3.5s dan perbandingan rata rata error PID=3.8°, P=4.7°, dan

on / off =8.9°.

3. Pengontrolan pendulum terbalik dengan menggunakan pengontrol Proporsional di setiap sudut awal yang berbeda – beda pada batang pendulum menghasilkan rata-rata error yang lebih kecil dibandingkan dengan menggunakan pengontrol on/off.

V.2 Saran

Saran-saran yang dapat diberikan untuk perbaikan dan pengembangan dari Tugas Akhir ini adalah sebagai berikut:

1. Pengotrol PID dengan menggunakan mikrokontrol AVR ATMEGA 16 dapat dikembangkan untuk plant pendulum terbalik yang lintasannya berbentuk lingkaran.


(29)

Universitas Kristen Maranatha

65

DAFTAR PUSTAKA

1. Andrianto, H., Buku Panduan : Pelatihan Mikrokontroler AVR ATmega16, 2008.

2. Budiharto, W., Membuat Robot Cerdas, Jakarta : Gramedia, 2006.

3. Ogata, K., Modern Control Engineering, alih bahasa oleh Ir. Edi Leksono, Erlangga, Jakarta, Edisi Kedua,1997,

4. http://en.wikipedia.org/wiki/Degrees_of_freedom_(mechanics).15Juli2009.22. 32.

5. http://www.solarbotics.com/assets/documentation/kit10.pdf

6. http://tutorial-elektronika.blogspot.com/2009/02/rangkaian-driver-motor-dc-motor-stepper.html

7. http://wito-chandra.blogspot.com/2009/08/menggunakan-ic-l293d.html 8. http://avr.web.id/rangkaian-driver-motor-dengan-l293.html

9. http://www.ittelkom.ac.id/library/index.php?view=article&catid=16%3Amikr

oprocessorkontroller&id=305%3Amotor-dc&option=com_content&Itemid=15

10.http://www.innovativeelectronics.com/innovative_electronics/download_files/ manual/Manual%20SPC%20DC%20Motor.pdf

11.http://www.datasheetcatalog.org/datasheet/SGSThomsonMicroelectronics/mX yzuxsr.pdf

12.http://www.societyofrobots.com/programming_PID.shtml 13.http://www.atmel.com.15Juli2009.22.45.

14.http://www.atmel.com/dyn/resources/prod_documents/doc2466.pdf.15Juli200 9.23.15.

15.http://www.atmel.com/dyn/resources/prod_documents/DOC2543.PDF.15Juli2 009.22.36.


(1)

1

BAB I

PENDAHULUAN

Pada bab ini berisi tentang latar belakang, identifikasi masalah, perumusan masalah, tujuan, pembatasan masalah, spesifikasi alat, dan sistematika penulisan laporan tugas akhir.

I.1 Latar Belakang

Sistem kontrol merupakan sebuah sistem yang terdiri atas satu atau beberapa peralatan yang berfungsi untuk mengontrol sistem lain yang berhubungan dengan sebuah proses. Dalam suatu industri, semua variabel proses seperti daya, temperatur dan laju alir harus dipantau setiap saat. Aksi kontrol dasara berkembang sejak awal abad ke 20 yaitu dengan ditemukannya sistem kontrol proporsional, integral dan sistem kontrol differensial. Dalam perkembangannya, ketiga sistem kontrol tersebut digabung menjadi satu, menjadi sistem kontrol PID ( Proporsional, Integral, Differensial ) yang bekerja sama dengan mengkombinasikan elemen-elemennya untuk menghasilkan keluaran sistem yang mendekati set point.

Pengontrol PID memiliki algoritma yang sederhana, persamaan tunggal tetapi dapat menyediakan hasil kontrol yang baik untuk beberapa proses yang berbeda. Karena memiliki banyak kegunaan, pengontrol PID banyak tersedia hampir di semua sistem kontrol komersil.

Saat ini pengontrol PID dapat dibuat pada pengontrol mikro AVR ATMega 16. Penggunaan pengontrol mikro sendiri memiliki banyak kelebihan yaitu dapat digunakan untuk berbagai aplikasi misalnya untuk pengontrol, akuisisi data, telekomunikasi, dll. AVR ATMega 16 memiliki keunggulan dibandingkan pengontrol mikro lainnya, yaitu: harganya murah, dapat diprogram berulang kali, memiliki kecepatan eksekusi program yang cepat. Selain itu, pengontrol mikro AVR ATMega 16 memiliki fitur yang lengkap (ADC internal, electrical EEPROM internal, port I/O, dll)


(2)

BAB I PENDAHULUAN 2

Pada Tugas Akhir ini, Pengontrol PID diimplementasikan pada sebuah pendulum terbalik. Sistem pendulum terbalik adalah mensimulasikan sebuah mekanisme kontrol untuk mengatasi permasalahan kestabilan. Pendulum terbalik sendiri merupakan salah satu plant yang dinamis sehingga proses pengaturannya menjadi lebih rumit apabila menggunakan teknik kontrol on/off saja.

I.2 Identifikasi Masalah

Berdasar latar belakang, pendulum terbalik tidak dapat dikontrol hanya dengan menggunakan teknik kontrol on off saja. Sehingga masalah utama yang akan diangkat pada Tugas Akhir ini adalah mengontrol posisi pendulum terbalik pada titik equilibriumnya dengan error ± 3º menggunakan pengontrol PID pada pengontrol mikro AVR ATMega 16.

I.3 Perumusan Masalah

Permasalahan yang akan dibahas dalam Tugas Akhir ini adalah bagaimana mengimplementasikan perangkat lunak pengontrol PID pada pendulum terbalik dengan menggunakan pengontrol mikro AVR ATMega 16 untuk mengatur agar pendulum terbalik pada titik equilibrium?

I.4 Tujuan

Tujuan yang hendak dicapai dalam pengerjaan Tugas Akhir ini adalah mengontrol pendulum terbalik dengan menggunakan pengontrol PID berbasis pengontrol mikro AVR ATMega 16 agar dapat berada pada titik equilibriumnya dengan error ± º3.

I.5 Pembatasan Masalah

Pembatasan masalah pada Tugas Akhir ini meliputi :

1. Proses / plant adalah model fisis dari pendulum terbalik yang telah tersedia di laboratorium sistem kontrol. Pendulum terbalik yang digunakan produksi


(3)

PENDULUM

MOTOR GEAR POTENSIOMETER

GEAR

ANGLE SENSOR

Gambar 1.1 Pendulum Terbalik 2. Pergerakan sistem pendulum terbalik berbentuk linear.

3. Pendulum terbalik memiliki input berupa sudut referensi dan output berupa sudut aktual pendulum (SISO) .

I.6 Sistematika Penulisan

Laporan Tugas akhir ini disusun dengan sistematika sebagai berikut :

 Bab I Pendahuluan

Dalam bab ini akan diberikan gambaran tentang tugas akhir ini, yang diawali dengan latar belakang, identifikasi masalah, perumusan masalah, tujuan, pembatasan masalah, spesifikasi alat, dan yang terakhir adalah sistematika penulisan laporan tugas akhir.

 Bab II Landasan Teori

Pada bab ini dijelaskan mengenai teori-teori penunjang yang diperlukan dalam mengimplementasikan pengontrol PID pada pendulum terbalik menggunakan pengontrol mikro AVR ATMega 16 yaitu berupa teori tentang pengontrol PID, pendulum terbalik, dan pengontrol mikro.

 Bab III Perancangan Program

Bab ini akan dibahas perancangan pengontrol PID untuk mengontrol posisi pendulum terbalik dengan menggunakan pengontrol mikro AVR ATMega 16


(4)

BAB I PENDAHULUAN 4

 Bab IV Data Pengamatan

Pada bab ini berisi tentang hasil pengamatan yang telah dilakukan terhadap pendulum terbalik dengan pengontrol PID dengan menggunakan pengontrol mikro AVR ATMega 16

 Bab V Kesimpulan dan Saran

Pada bab ini berisi kesimpulan dari Tugas Akhir dan saran-saran yang perlu dilakukan untuk perbaikan di masa mendatang.


(5)

68 Universitas Kristen Maranatha

BAB V

KESIMPULAN DAN SARAN

Bab ini berisi kesimpulan dari Tugas Akhir dan saran-saran yang perlu dilakukan untuk perbaikan di masa mendatang.

V.1 Kesimpulan

Dengan memperhatikan data pengamatan dan analisis pada bab sebelumnya, dapat disimpulkan bahwa:

1. Pengontrol PID dapat diimplemantasikan pada pengontrol mikro AVR ATMEGA 16.

2. Pengontrolan pendulum terbalik dengan menggunakan pengontrol PID di setiap sudut awal yang berbeda – beda pada batang pendulum menghasilkan rata-rata error yang lebih kecil dibandingkan dengan menggunakan pengontrol Proporsional dan penggontrol on/off,

perbandingan waktu bertahan pendulum PID=6.4s, P=4.2s, dan on / off =3.5s dan perbandingan rata rata error PID=3.8°, P=4.7°, dan

on / off =8.9°.

3. Pengontrolan pendulum terbalik dengan menggunakan pengontrol Proporsional di setiap sudut awal yang berbeda – beda pada batang pendulum menghasilkan rata-rata error yang lebih kecil dibandingkan dengan menggunakan pengontrol on/off.

V.2 Saran

Saran-saran yang dapat diberikan untuk perbaikan dan pengembangan dari Tugas Akhir ini adalah sebagai berikut:

1. Pengotrol PID dengan menggunakan mikrokontrol AVR ATMEGA 16 dapat dikembangkan untuk plant pendulum terbalik yang lintasannya berbentuk lingkaran.


(6)

Universitas Kristen Maranatha

65

DAFTAR PUSTAKA

1. Andrianto, H., Buku Panduan : Pelatihan Mikrokontroler AVR ATmega16, 2008.

2. Budiharto, W., Membuat Robot Cerdas, Jakarta : Gramedia, 2006.

3. Ogata, K., Modern Control Engineering, alih bahasa oleh Ir. Edi Leksono, Erlangga, Jakarta, Edisi Kedua,1997,

4. http://en.wikipedia.org/wiki/Degrees_of_freedom_(mechanics).15Juli2009.22. 32.

5. http://www.solarbotics.com/assets/documentation/kit10.pdf

6. http://tutorial-elektronika.blogspot.com/2009/02/rangkaian-driver-motor-dc-motor-stepper.html

7. http://wito-chandra.blogspot.com/2009/08/menggunakan-ic-l293d.html 8. http://avr.web.id/rangkaian-driver-motor-dengan-l293.html

9. http://www.ittelkom.ac.id/library/index.php?view=article&catid=16%3Amikr

oprocessorkontroller&id=305%3Amotor-dc&option=com_content&Itemid=15

10.http://www.innovativeelectronics.com/innovative_electronics/download_files/ manual/Manual%20SPC%20DC%20Motor.pdf

11.http://www.datasheetcatalog.org/datasheet/SGSThomsonMicroelectronics/mX yzuxsr.pdf

12.http://www.societyofrobots.com/programming_PID.shtml 13.http://www.atmel.com.15Juli2009.22.45.

14.http://www.atmel.com/dyn/resources/prod_documents/doc2466.pdf.15Juli200 9.23.15.

15.http://www.atmel.com/dyn/resources/prod_documents/DOC2543.PDF.15Juli2 009.22.36.