Sistem Kendali Servo Pada Sumbu Mesin CNC Aciera F5
Oleh:
Eko Purwanto Aribowo
NIM: 612012802
Tugas Akhir
Untuk melengkapi syarat-syarat memperoleh
Ijasah Sarjana Teknik Elektro
FAKULTAS TEKNIK ELEKTRONIKA DAN KOMPUTER
PROGRAM STUDI TEKNIK ELEKTRO
UNIVERSITAS KRISTEN SATYA WACANA
SALATIGA
1
Sistem Kendali Servo Pada Sumbu Mesin
CNC Aciera F5
Eko Purwanto Aribowo1,F. Dalu Setiaji
2, Deddy Susilo
3
Program Studi Teknik Elektro,
Fakultas Teknik Elektronika dan Komputer,
Universitas Kristen Satya Wacana, Salatiga [email protected],
Intisari
Sistem kendali servo yang dibuat pada penelitian ini akan digunakan untuk
menggantikan perangkat servo pada mesin CNC Aciera F5 yang telah rusak.
Isyarat masukan dari setpoint akan diumpankan ke bagian pencacah untuk
dikurangkan dengan isyarat dari umpanbalik pada sistem servo. Hasil
pengurangan tersebut kemudian diumpankan ke pengendali PID dan
menghasilkan keluaran berupa sinyal PWM. Sinyal PWM kemudian disaring
dengan menggunakan Low pass Filter untuk mendapatkan tegangan konstan
sebagai masukan servo amplifier. Penalaan PID menggunakan metode Ziegler-
Nichols dan dipadu dengan metode osilasi.
Kata kunci: Servo, Mesin CNC, Ziegler-Nichols
1. Pendahuluan
Salah satu mesin yang digunakan sebagai media praktek mahasiswa di
Politeknik Atmi Surakarta adalah mesin CNC aciera F5. Setelah digunakan
selama 32 tahun, bagian kelistrikan dari mesin tersebut mengalami kerusakan
tetapi bagian mekanik mesin tersebut masih dapat berfungsi. Namun demikian,
baik kerusakan mekanik maupun elektronik pada mesin CNC, tetaplah membuat
mesin CNC tersebut menjadi tidak dapat digunakan. Oleh karena itu, perlu
dipikirkan bagaimana caranya agar mesin CNC aciera F5 dapat berfungsi kembali.
Kerusakan pada mesin Aciera F5 terjadi pada bagian servo driver dan
numerical control. Meskipun demikian, sirkuit penguat servo masih dapat
berfungsi. Masalah yang terjadi adalah penguat servo yang ada pada mesin ini
menggunakan sistem komunikasi analog. Pada saat ini sudah tidak ada lagi
numerical kontrol CNC yang menggunakan sistem komunikasi analog melainkan
menggunakan komunikasi digital. Sebetulnya masalah ini dapat diatasi dengan
mengganti keseluruhan sistem mulai dari motor hingga servo amplifier yang
mampu berkomunikasi dengan kontrol CNC secara digital dan tentunya dengan
daya dan torsi yang sesuai. Namun demikian, penggantian seluruh sistem
penggerak akan membutuhkan biaya yang mahal. Jika rangkaian servo driver
2
yang rusak dapat dibuat sendiri dengan sistem kendali digital, maka biaya
perbaikan mesin akan menjadi murah karena tidak perlu mengganti keseluruhan
sistem kelistrikan dari mesin.
2. Perancangan
Perbaikan mesin aciera F5 dimulai dengan pemeriksaan awal kondisi mesin.
Dari pemeriksaan awal mesin diketahui bahwa bagian servo amplifier mesin
masih dapat berfungsi. Meskipun demikian, bagian servo driver mesin sudah tidak
berfungsi sehingga perlu diganti. Saat ini servo driver yang sesuai dengan
spesifikasi yang diperlukan oleh mesin sudah tidak lagi diproduksi. Sehubungan
dengan hal itu, perlu adanya perancangan dan pembuatan servo driver untuk
menggantikan servo driver yang telah rusak.
2.1. Servo Driver
"Sistem pengikut (servo), adalah sebuah sistem yang keluaran prosesnya
selalu mengikuti masukan proses"[sulasno,thomas Agus Prayitno, teknik sistem
kontrol, 2007]. Masukan dari proses pengendalian motor servo pada mesin aciera
F5 adalah perintah posisi yang dihasilkan oleh unit kontrol numerik. kontrol
numerik bertugas memproses program CNC yang ditulis menggunakan bahasa
pemrograman G-code dan menghasilkan keluaran berupa isyarat posisi yang harus
dipenuhi oleh servo system. Isyarat yang diterima oleh servo system kemudian
dibandingkan dengan isyarat posisi dari encoder oleh servo driver. Dengan
mengurangkan kedua isyarat tersebut, kemudian dihasilkan isyarat error (e) yang
diperlukan untuk memperbaiki posisi plant agar sesuai dengan set point.
3
Gambar 1. Diagram alir servo driver
Gambar 2. Diagram alir sub program interrupt 1
4
Mulai sub program
interrupt 2
Koreksi arah
positip ya
tidak
Memori B = B-1 Memori B = B+1
Selesai sub program
interrupt 2
Gambar 3. Diagram alir sub program interrupt 2
Dalam diagram alir ditunjukan proses operasi pengurangan nilai masukan dari
numerical control dikurangi dengan pulsa umpan balik dari encoder. Apabila hasil
pengurangan tidak sama dengan "0" maka hal ini menunjukan bahwa terjadi
ketidaksesuaian antara posisi plant dengan set point. Jika hal tersebut terjadi,
maka nilai error yang didapat akan diproses melalui algoritma PID agar dihasilkan
keluaran yang dapat menggerakan motor sampai posisinya terpenuhi.
Servo system akan mengendalikan posisi poros motor DC agar dapat
menggerakan ketiga sumbu pada mesin Aciera f5. Sistem kendali yang dirancang
merupakan kendali close loop dengan penambahan kontrol PID.
Gambar 4. Diagram blok servo
2.2. Pengolahan sinyal pada mikrokontroler
mikrokontroler atmega 8 menerima masukan berupa isyarat posisi shaft motor
dari rotary encoder yang terhubung melalui pin interrupt 1 pada Microcontroler
5
atmega 8. Pin interrupt 1 dihubungkan pada keluaran encoder phase A lalu diatur
agar dapat membaca tepian positip setiap kali mendapatkan detak pulsa. Setelah
membaca tepian positip dari detak pulsa interrupt mikrokontroler akan memanggil
sub routin yang berisi program untuk menguji kondisi pin 1 pada port D. Pin D.1
dihubungkan dengan keluaran encoder phase B. Jika Pin D.1 berlogika tinggi
maka pencacah akan mencacah naik, sebaliknya jika pin D.1 berlogika nol maka
pencacah akan mencacah turun. Selanjutnya nilai hasil pencacahan disimpan pada
memori yang nantinya akan digunakan untuk menentukan besarnya isyarat error
(e). Hasil perhitungan nilai error kemudian diolah untuk menghasilkan analog
output yang baru dari mikrokontroler yang diambil dari pin OCR1A. Proses
tersebut akan berulang terus menerus hingga nilai kesalahan mendekati nol. Servo
amplifier memerelukan tegangan analog yang terbebas oleh nois sehingga
diperlukan adanya rangkaian tapis lolos bawah untuk menapis sinyal PWM yang
dihasilkan mikrokontroler.
2.3. Tapis Aktif PWM
Sebagai upaya dalam menghasilkan keluaran tegangan analog yang terbebas
dari komponen frekuensi maka dibuatlah sebuah tapis aktif. Tapis yang diperlukan
adalah tapis lolos bawah dengan frekuensi penggal pada 20Hz dan kecuraman
(roll-off) sebesar -20dB/dekade.
Untuk memenuhi tuntutan tersebut maka dipilihlah jenis penapis orde
pertama dengan menggunakan sebuah Op-Amp UA741. Adapun schematic
diagram dari rangkaian tersebut adalah sebagai berikut.
Gambar 5. Rangkaian servo driver dilengkapi tapis lolos bawah
Terdapat dua keluaran PWM dari mikrokontroler, satu diantaranya (PB.2)
merupakan isyarat yang nilaianya berubah-ubah tergantung dengan nilai set-point
dan kesalahan (error). Isyarat PWM yang lain (PB.1) merupakan isyarat yang
6
nilaianya tetap dan berfungsi sebagai referensi tegangan analog keluaran
rangkaian. Perlu diketahui bahwa tegangan analog yang diperlukan oleh sistem
adalah -5V sampai dengan 5V.
Beda potensial dari keluaran Vout dan Vref akan mempengaruhi kecepatan
motor servo yang dikendalikan, semakin tinggi beda potensialnya semakin tinggi
pula angka putaran motor. Polaritas antara Vout dan Vref akan mempengaruhi
arah putaran motor. Sebagai contoh jika tegangan Vout sebesar 2,5V diukur dari
Vref maka motor akan berputar searah jarum jam dengan kecepatan 50%. Jika
tegangan Vout sebesar -5V diukur dari Vref maka motor berputar berlawanan arah
jarum jam dengan kecepatan 100% (Maksimum).
2.4. Penalaan PID
Pada mesin Aciera F5 sangat sulit untuk menentukan pemodelan secara
matematis dikarenakan pada mesin tersebut terdapat banyak komponen mekanis
yang saling terhubung. Oleh karena itu maka perancangan kontroler PID secara
analitis tidak mungkin dilakukan sehingga perancangan kontroler PID harus
dilakukan secara eksperimental. Metode tuning yang dipilih untuk menentukan
nilai Kp,Ti,dan Td adalah metode tuning Ziegler - Nichols dengan mengamati
kurva respon osilasi. Ziegler – Nichols mengusulkan aturan untuk menentukan
nilai Kp, Ti dan Td berdasarkan pada karakteristik tanggapan peralihan dari plant
yang diberikan.
Didalam perancangan kontroler PID diperlukan penentuan parameter kontroler
PID supaya sistem close loop memenuhi kriteria performansi yang diinginkan.
Metode penalaan pada penelitian ini didasarkan pada reaksi sistem untaian
tertutup. Plant disusun serial dengan kontroller PID. Semula parameter-parameter
integrator disetel tak berhingga dan parameter diferensial disetel nol (Ti = ~ ;Td =
0). Parameter proporsional kemudian dinaikkan bertahap. Mulai dari nol sampai
mencapai harga yang mengakibatkan reaksi sistem berosilasi. Reaksi sistem harus
berosilasi dengan magnitud tetap(Sustain oscillation) (Gutterus, 1994, 9-9). Nilai
penguatan proportional pada saat sistem mencapai kondisi sustain oscillation
disebut ultimate gain Ku. Periode dari sustained oscillation disebut ultimate
period Tu (Perdikaris, 1991, 433).
3. Pengujian dan Analisis
Pengujian dan analisis yang dilakukan meliputi pengujian kepresisian mesin,
Akurasi mesin, sinkronisasi sumbu X dan sumbu Y, kecepatan pergerakan mesin,
dan analisa kedalaman pemakanan pada benda kerja dengan kekerasan 60 HRc.
Pengujian akurasi pergerakan motor servo dilakukan dengan membandingkan
jarak yang dimasukkan pada pengendali MACH3 dengan keadaan sesungguhnya.
Pengukuran dilakukan dengan menggunakan dial indicator sebagai alat ukurnya.
Akurasi mesin yang ditargetkan minimal 0,05 mm maka alat ukur yang dipilih
adalah alat ukur dengan resolusi sebesar 0,01mm. Hasil dari pengujian yang
dilakukan adalah sebagai berikut.
7
Gambar 6. Pengujian akurasi sumbu X
Gambar 7. Pengujian akurasi sumbu Y
8
Gambar 8. Pengujian akurasi sumbu Z
Pengujian kepresisian mesin dilakukan dengan membandingkan jarak yang
dimasukkan pada pengendali MACH3 dengan keadaan sesungguhnya. Pengujian
dilakukan dengan jarak uji yang tetap namun pengujian diulang sampai 30 kali
lalu diamati penyimpangan yang terjadi. Pengukuran dilakukan dengan
menggunakan dial indicator sebagai alat ukurnya. Kepresisian mesin yang
ditargetkan minimal 0,05 mm maka alat ukur yang dipilih adalah alat ukur dengan
resolusi sebesar 0,01mm.
Gambar 9. Pengujian kepresisian sumbu X
9
Gambar 10. Pengujian kepresisian sumbu Y
Gambar 11. Pengujian kepresisian sumbu Z
Pada percobaan pengujian keparalelan mesin didapat hasil bahwa keparalelan
mesin terdapat koreksi sebesar 0,01 mm. hal ini disebabkan karena kondisi
mekanik mesin yang sudah tidak presisi sehingga menghasilkan penyimpangan
ukuran. Pengujian ketegak lurusan mesin dengan menggunakan alat ukur bavel
protactor menunjukkan bahwa sudut yang terbentuk adalah 90° pada keempat sisi
pengukuran.
Pengujian kecepatan pergerakan maksimum diukur dengan menggunakan
stopwatch dan mistar. Mesin diprogram untuk bergerak sejauh 500 mm kemudian
10
dihitung kecepatan gerakan pada sumbu yang diuji. Pada progran diatur kecepatan
gerak tanpa pemotongan sebesar 500 mm per menit. Dari 25 kali pengujian
didapat hasil bahwa mesin menempuh jarak sejauh 500 mm dalam waktu 1 menit.
Pengujian kedalaman pemakanan bertujuan untuk mengetahui kekuatan mesin
dalam memotong benda kerja. Pengujian dilakukan dengan menempatkan benda
kerja berupa besi dengan tipe ST60 pada ragum mesin. Kecepatan spindle
ditentukan dengan menggunakan tabel Cuting Speed dan jenis material. Benda
kerja dipotong dengan kedalaman pemakanan sebanyak 5mm pada feeding 5 mm
per menit. Mesin dapat memotong benda kerja dengan benar sampai program
selesai dieksekusi seluruhnya.
4. Kesimpulan
Dari keseluruhan proses penelitian ini dapat diambil kesimpulan bahwa mesin
CNC aciera F5 telah mampu beroperasi kembali dan digunakan sebagai sarana
belajar mahasiswa. Adapun pengujian terhadap mesin menghasilkan kesimpulan
sebagai berikut:
Pengujian keakuratan mesin menunjukkan bahwa akurasi minimum mesin
yang dapat dicapai sebesar 0,04mm pada ketiga sumbu mesin. Pengujian
kepresisian mesin menunjukkan bahwa koreksi maksimum mesin sebesar 0,04mm
pada ketiga sumbu mesin. Resolusi terkecil yang dapat dibaca oleh mesin hingga
0,01mm. Pemotongan pada benda dengan kekerasan 60Hrc dengan kedalaman
5mm tidak menujukkan adanya gejala kerusakan alat potong ataupun kesalahan
fungsi pada keseluruhan sistem. Kecepatan maksimum pergerakan mesin
mencapai 500 mm per menit tanpa pemakanan.
Daftar Pustaka
[1] Sulasno dan Agus Prayitno, Thomas, Teknik Sistem Kontrol,Graha Ilmu,
yogyakarta,2006.
[2] Ogata, Katsuhiko, Modern Control Engineering, Prentice-Hall, Englewood
Cliffs,NJ.
[3] Ogata, Katsuhiko, Teknik Kontrol Otomatik, Jilid 1, Jakarta : Erlangga, 1991.
[4] Ogata, Katsuhiko, Teknik Kontrol Otomatik, Jilid 2, Jakarta : Erlangga, 1997.
[5] Wijaya,Eka Candra, Auto Tuning PID Berbasis Metode Osilasi Ziegler-
Nichols Menggunakan Mikrokontroler AT89S52 pada Pengendalian Suhu,
universitas diponegoro, 2000
LAMPIRAN
PROGRAM
/*****************************************************
This program was produced by the
CodeWizardAVR V2.05.0 Professional
Automatic Program Generator
© Copyright 1998-2010 Pavel Haiduc, HP InfoTech s.r.l.
http://www.hpinfotech.com
Project : Servo Driver
Version : 1.6
Date : 4/1/2015
Author : Eko Purwanto Aribowo
Company : Politeknik Atmi Surakarta
Comments:
Chip type : ATmega8L
Program type : Application
AVR Core Clock frequency: 12.000000 MHz
Memory model : Small
External RAM size : 0
Data Stack size : 256
*****************************************************/
#include <mega8.h>
#include <delay.h
float es,en,eni,end,e , //deklarasi sinyal
p=1000,
i=0.005,
d=100,
esp,esd,esi,
op,
oi,
od;
//External Interrupt 0 service routine
interrupt [EXT_INT0] void ext_int0_isr(void)
{
DDRD.1=1 ;
if (PIND.1==0)
{
e=e-0.001; //!!!!!!!!!!!!!!!!!!!!!!!!
}
else
{
e=e+0.001;
};
DDRD.1=1 ;
}
//
// External Interrupt 1 service routine
interrupt [EXT_INT1] void ext_int1_isr(void)
{
DDRD.0=1;
if (PIND.0==0)
{
e=e+0.001;
}
else
{
if (PIND.0==1)
{
e=e-0.001;
}
};
}
// Declare your global variables here
void main(void)
{
// Declare your local variables here
// Input/Output Ports initialization
// Port B 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
PORTB=0x00;
DDRB=0xFF;
// Port C initialization
// Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// 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=In Func2=In Func1=In
Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T
State0=T
PORTD=0b00000011;// Harus do Pull UP input pin D0 dan D1
DDRD=0x00;
// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: Timer 0 Stopped
TCCR0=0x00;
TCNT0=0x00;
// Timer/Counter 1 initialization
// Clock source: System Clock
// Clock value: 1500.000 kHz
// Mode: Fast PWM top=0x03FF
// OC1A output: Non-Inv.
// OC1B output: Non-Inv.
// Noise Canceler: Off
// Input Capture on Falling Edge
// Timer1 Overflow Interrupt: Off
// Input Capture Interrupt: Off
// Compare A Match Interrupt: Off
// Compare B Match Interrupt: Off
TCCR1A=0xA3;
TCCR1B=0x0A;
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: Timer2 Stopped
// Mode: Normal top=0xFF
// OC2 output: Disconnected
ASSR=0x00;
TCCR2=0x00;
TCNT2=0x00;
OCR2=0x00;
// External Interrupt(s) initialization
// INT0: On
// INT0 Mode: Rising Edge
// INT1: On
// INT1 Mode: Rising Edge
GICR|=0xC0;
MCUCR=0x0F;
GIFR=0xC0;
// Timer(s)/Counter(s) Interrupt(s) initialization
TIMSK=0x00;
// USART initialization
// USART disabled
UCSRB=0x00;
// Analog Comparator initialization
// Analog Comparator: Off
// Analog Comparator Input Capture by Timer/Counter 1: Off
ACSR=0x80;
SFIOR=0x00;
// ADC initialization
// ADC disabled
ADCSRA=0x00;
// SPI initialization
// SPI disabled
SPCR=0x00;
// TWI initialization
// TWI disabled
TWCR=0x00;
// Global enable interrupts
#asm("sei")
e=511;//nilai awal sinyal eror
while (1)
{
OCR1A=op+oi+od+511;
OCR1B=440; //reference signal
DDRD.1=1;
//kendali proporsional
en=e-511;
op=p*en; //nilai p ditentukan melalui tuning
//kendali integral
eni=en+esi;
oi=i*eni; //nilai Ki ditentukan melalui tuning
esi=eni;
//kendali Deferensial
end=en-esd;
od=d*end; //nilai Kd ditentukan melalui tuning
esd=end;
//pengaman jika terjadi over count
if (e>1000)
{
OCR1A=511;e=511;eni=0;end=0;en=0;esi=0;esd=0;op=0;oi=0;od=0;delay
_ms(100);};
if (e<20)
{
OCR1A=511;e=511;eni=0;end=0;en=0;esi=0;esd=0;op=0;oi=0;od=0;delay
_ms(100);};
}
}
Top Related