Percobaan III - Open Dan Close Loop

Embed Size (px)

DESCRIPTION

program

Citation preview

----------------------- Page 1----------------------- Percobaan III Open dan Close Loop System I. TUJUAN Mahasiswa mampu memberikan definisi Sistem Open Loop dan Close Loop, mampua mendesain dan mengaplikasikannya. Diharapkan setelah melaksanakan praktek mahasiswa mampu memahami kekurangan dan kelebihan masing-masing sistem. II. PERALATAN YANG DIBUTUHKAN 1. Komputer 1 unit 2. Modul motor DC 1 unit 3. Power Supply 1 unit 4. Kabel serial 1 unit III. CARA KERJA Pengendalian kecepatan motor dapat dilakukan dengan dua cara, yaitu open loop dan close loop. Secara definisi, Sistem Kontrol Loop Terbuka (Open Loop) adalah suatu sistem yang keluarannya tidak mempunyai pengaruh terhadap aksi kontrol. Keuntungan menggunakan open loop adalah kemudahan dalam proses desain dan murah biaya pembuatan. Kekurangannya adalah tidak mampu melakukan koreksi apabila terjadi kesalahan. Gambar 3.1 Diagram Alir Sistem Ikal Terbuka Kekurangan ini bisa atasi dengan menggunakan cloose loop. Sistem Kontrol Umpan balik adalah sistem kontrol yang outputnya berpengaruh pada sistem 1 ----------------------- Page 2----------------------- pengendaliannya. Dikarenakan output sistem akan menjadi salah satu input sistem, selain referensi input itu sendiri. Sistem koreksi dilakukan dengan cara apabila terjadi beda antara setting point dan nilai real kecepatan maka akan ditambahkan tegangan input ke motor sehingga kecepatannya bisa disesuaikan. Kekurangan sistem close loop adalah perancangan relatif lebih sulit dikarenakan kestabilan menjadi salah satu tujuannya. Flowgraph Close Loop, Gambar 3.2 Diagram Alir Sistem Ikal Tertutup Praktikum ini bertujuan membandingkan performa sistem dalam mencapai setpoint kecepatan motor dengan menggunakan open loop dan closeloop sistem. IV. PROSEDUR PERCOBAAN SISTEM OPEN LOOP 1. Rangkailah modul motor dc dengan komputer 2. Berikanlah power supply dc sebesar 9 Volt 3. Pastikan nilai potensiometer pada nilai minimal (motor berputar maksimal) dan motor langsung berputar begitu ada tegangan masuk. 4. Pastikan komunikasi serial motor dengan komputer telah terkoneksi dengan cara mencoba dengan program yang telah dibuat pada praktek sebelummnya. 5. Jalankan aplikasi Visual Basic 6 dan simpan sesuai dengan folder kelompoknya masing-masing 6. Buatlah form aplikasi seperti Gambar 3.3 dan copy-kan source code-nya. 2 ----------------------- Page 3----------------------- Gambar 3.3 Form Aplikasi Open Loop Listing Program Open Loop OptionExplicit Dimrpm,i2,itotAsInteger DimpwmAsSingle DimOfsXAsSingle DimOfsYAsSingle DimSkalaXAsSingle DimSkalaYAsSingle Constpi=3.14159265358979 PrivateFunctionTitikX(x)AsSingle TitikX=OfsX+x*SkalaX EndFunction PrivateFunctionTitikY(y)AsSingle TitikY=OfsYy*SkalaY EndFunction PrivateSubCommand1_Click()'SetPoint Ifrpm=0Then Picture1.Cls i2=0 Gambar Picture1.Line(TitikX(0),TitikY(Val(Text1)))(TitikX(10),TitikY(Val(Text1))),vbRed 3 ----------------------- Page 4-----------------------Picture1.Line(TitikX(0),TitikY(0))(TitikX(0),TitikY(0)) EndIf Ifrpm0Then Picture1.Line(TitikX(0),TitikY(Val(Text1)))(TitikX(10),TitikY(Val(Text1))),vbGreen Picture1.PSet(TitikX(i2/10),TitikY(rpm)) EndIf SelectCaseVal(Text1) `Konversirpskepwm Case0To31 pwm=Round(Val(Text1)/3) Case32To63 pwm=Round(0.2265*Val(Text1)+4.4022) Case65To81 pwm=Round(1.3176*Val(Text1)68.976) Case82To90 pwm=Round(6.8303*Val(Text1)520.8) CaseElse MsgBox("outofrange") Text1=0 pwm=0 EndSelect Label2.Caption=pwm MSComm1.Output=Chr(pwm) Command3.Enabled=False Command5.Enabled=False EndSub PrivateFunctionpangkat(x1,y1)AsSingle pangkat=1 Fori=0Toy11 pangkat=pangkat*x1 Next EndFunction PrivateSubGambar()'Gambarbackgroundgrafik Dimx1AsSingle Dimx2AsSingle DimhAsSingle DimnAsInteger DimiAsLong DimxAsSingle DimMaxXAsSingle DimMaxYAsSingle DimLxAsInteger DimLyAsInteger Lx=5000 Ly=4000 OfsX=500 OfsY=4250 MaxX=10 MaxY=100 SkalaX=Lx/MaxX 4 ----------------------- Page 5-----------------------SkalaY=Ly/MaxY Picture1.Cls Picture1.Line(TitikX(0),TitikY(0))(TitikX(0),TitikY(MaxY)) Picture1.Line(TitikX(0),TitikY(0))(TitikX(MaxX),TitikY(0)) Fori=1ToMaxX Picture1.Line(TitikX(i),TitikY(0)25)(TitikX(i),TitikY(0)+25) Picture1.CurrentX=TitikX(i)Picture1.TextWidth(i)/250 Picture1.CurrentY=TitikY(0)+50 Picture1.Print(i*10)+(100*itot) Picture1.DrawStyle=2 Picture1.Line(TitikX(i),TitikY(0))(TitikX(i),TitikY(MaxY)) Picture1.DrawStyle=0 Next Fori=0ToMaxYStep10 Picture1.Line(TitikX(0)25,TitikY(i))(TitikX(0)+25,TitikY(i)) Picture1.CurrentX=TitikX(0)400 Picture1.CurrentY=TitikY(i*1)Picture1.TextHeight(i*10)/2 Picture1.Printi*1 Picture1.DrawStyle=2 Picture1.Line(TitikX(0),TitikY(i))(TitikX(MaxX),TitikY(i)) Picture1.DrawStyle=0 Next Picture1.PSet(TitikX(0),TitikY(0)) EndSub PrivateSubCommand2_Click()'Stop MSComm1.Output=Chr(0) 'itot=0 Command3.Enabled=True Command5.Enabled=True EndSub PrivateSubCommand3_Click()'Exit MSComm1.PortOpen=False End EndSub PrivateSubCommand4_Click()'Tune IfrpmVal(Text1)Then pwm=pwm1 EndIf MSComm1.Output=Chr(pwm) Label2.Caption=pwm EndSub PrivateSubCommand5_Click()'Reset itot=0 i2=0 EndSub 5 ----------------------- Page 6----------------------- PrivateSubForm_Load() MSComm1.PortOpen=True MSComm1.RThreshold=1 'Gambar i2=0 rpm=0 itot=0 EndSub PrivateSubMSComm1_OnComm()'GambarGrafikkecepatan IfMSComm1.CommEvent=comEvReceiveThen rpm=Str(Asc(MSComm1.Input)) Label4.Caption=rpm Ifrpm0Theni2=i2+1 EndIf Ifi2=>100Then Picture1.Cls i2=0 itot=itot+1 Gambar Picture1.Line(TitikX(0),TitikY(Val(Text1)))(TitikX(10),TitikY(Val(Text1))),vbRed Picture1.PSet(TitikX(0),TitikY(rpm)) EndIf Picture1.Line(TitikX(i2/10),TitikY(rpm)) Label6.Caption=i2+(itot*100) EndSub V. Kerjakan Tugas berikut 1. Lengkapi tabel Open Loop berikut. Error = setpoint rps Note : data diambil setelah jumlah data mencapai75. Setiap pengambilan data, harus diawali dari keadaan motor berhenti. Tabel. 3.1 Open Loop Sistem No. SetPoint rps error pwm 1 0 2 5 3 10 4 15 5 6 7 8 9 10 11 12 6 ----------------------- Page 7----------------------- 13 14 15 16 17 18 19 Max 20 Speed 2. Modifikasi program diatas agar dapat berhenti secara otomatis saat jumlah data mencapai 75 dan dapat menampilkan nilai kecepatan tertinggi yang bisa dicapai. SISTEM CLOSE LOOP Kelemahan dari sistem Open Loop adalah apabila nilai setpoint tidak tercapai maka sistem tidak bisa memberikan koreksi pada outputnya. Sistem Close Loop mempunyai feedback dari output yang dihasilkan, apabila output belum sesuai dengan setpoint maka akan ada nilai error yang dihasilkan. Nilai error ini dijadikan sebagai nilai koreksi pada output. Untuk membuat sistem close loop, maka diperlukan looping secara terus menerus. Agar waktu tundanya bisa diatur maka dipergunakan timer. Prosedur Percobaan : a. Modifikasi Form Open Loop menjadi bentuk berikut : Gambar 3.4 Form Close Loop b. Tambahkan varibel kontrol di variabel global 7 ----------------------- Page 8-----------------------c. Untuk melakukan looping dipergunakan Timer1, set enable = off, interval = 500, timer ini akan diaktifkan tombol setpoint sehingga perlu ditambahkan Timer1.Enable = True pada Private Sub Command1_Click() Setpoint Button . Masukkan program berikut di Private Sub Timer1_Timer() Private Sub Timer1_Timer() Dim galat As Integer 'pakai i2 = i2 + 1 If i2 = 100 Then Picture1.Cls i2 = 0 itot = itot + 1 Gambar Picture1.Line (TitikX(0), TitikY(Val(Text1)))-(TitikX(10), TitikY(Val(Text1))), vbRed Picture1.PSet (TitikX(0), TitikY(rpm)) End If Picture1.Line -(TitikX(i2 / 10), TitikY(rpm)) Label6.Caption = i2 + (itot * 100) If kontrol = 1 Then galat = Val(Text1) - rpm 'pakai Label8.Caption = galat pwm = pwm + Round(galat * 0.2) 'pakai Label2.Caption = pwm MSComm1.Output = Chr(pwm) 'pakai End If End Sub Untuk mematikan Timer1, tambahkan Timer1.Enable = False pada Private Sub Command2_Click() Stop Button d. Tambahkan program berikut di tempat yg sesuai : Private Sub Command6_Click() Loop ON kontrol = 1 Label8.Caption = "ON" End Sub Private Sub Command7_Click() Loop OFF kontrol = 0 Label8.Caption = "OFF" End Sub dan lengkapi tabel berikut. Error = setpoint - rps Note : data diambil setelah jumlah data mencapai75. Setiap pengambilan data, harus diawali dari keadaan motor berhenti No. SetPoint rps error pwm 1 0 2 5 3 10 4 15 8 ----------------------- Page 9----------------------- 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 100 3. Bandingkan error hasil open loop dan close loop. Buat kesimpulan !! 9