Anda di halaman 1dari 6

LAPORAN PRAKTIKUM

LABSHEET 8

PLOT DATA REAL TIME DARI ARDUINO MENGGUNAKAN MATLAB

Disusun oleh :
Daniel edo 1641170055

PROGRAM STUDI TEKNIK ELEKTRONIKA


JURUSAN TEKNIK ELEKTRO
POLITEKNIK NEGERI MALANG
1. Kompetensi
Setelah melakukan praktik, mahasiswa memiliki kompetensi: melihat grafik dari Plant yang
ingin di kendalikan secara Nyata.
2. Sub Kompetensi
Setekah melakukan praktik, mahasiswa memiliki sub kompetensi:
a. Mengidentifikasi Grafik dari Plant
b. Membuat Plot melalui MATLAB
c. Membaca keluaran plant Melalui Arduino
3. Tujuan

Pada praktikum kali ini mahasiswa dapat memvisualisasikan data menggunakan MATLAB
berdasarkan data yang diperoleh dari Arduino.

4. Alat dan Bahan


a. Arduino Uno
b. Software Matlab
c. Modul Praktikum
d. Multimeter Digital
e. Laptop
f. Kabel dan Konektor
5. Langkah Kerja
a. Upload perogram arduino untuk membaca pin analog dengan cara

double x;
   
void setup() {
   //kecepatan komunikasi serial
   Serial.begin(9600);
}
   
void loop() {
   int nilaiKeluaran = analogRead (A0);
float V = nilaiKeluaran*(5.0/1023.0);
Serial.println(V);
   delay(50);
}
b. Bangkitkan program MATLAB dengan cara

clear
clc

%User Defined Properties


serialPort = 'COM4'; % define COM port #
plotTitle = 'Serial Data Log'; % plot title
xLabel = 'Time (s)'; % x-axis label
yLabel = 'Amplitude'; % y-axis label
plotGrid = 'on'; % 'off' to turn off grid
min = 0; % set y-min
max = 1050; % set y-max
scrollWidth = 10; % display period in plot, plot
entire data log if <= 0
delay = .01; % make sure sample faster than
resolution

%Define Function Variables


time = 0;
data = 0;
count = 0;

%Set up Plot
plotGraph = plot(time,data,'-mo',...
'LineWidth',1,...
'MarkerEdgeColor','k',...
'MarkerFaceColor',[.49 1 .63],...
'MarkerSize',2);

title(plotTitle,'FontSize',25);
xlabel(xLabel,'FontSize',15);
ylabel(yLabel,'FontSize',15);
axis([0 10 min max]);
grid(plotGrid);
%Open Serial COM Port
s = serial(serialPort)
disp('Close Plot to End Session');
fopen(s);

tic

while ishandle(plotGraph) %Loop when Plot is Active

dat = fscanf(s,'%f'); %Read Data from Serial as Float

if(~isempty(dat) && isfloat(dat)) %Make sure Data Type is


Correct
count = count + 1;
time(count) = toc; %Extract Elapsed Time
data(count) = dat(1); %Extract 1st Data Element

%Set Axis according to Scroll Width


if(scrollWidth > 0)
set(plotGraph,'XData',time(time > time(count)-
scrollWidth),'YData',data(time > time(count)-scrollWidth));
axis([time(count)-scrollWidth time(count) min max]);
else
set(plotGraph,'XData',time,'YData',data);
axis([0 time(count) min max]);
end

%Allow MATLAB to Update Plot


pause(delay);
end
end

%Close Serial COM Port and Delete useless Variables


fclose(s);
clear count dat delay max min plotGraph plotGrid plotTitle s ...
scrollWidth serialPort xLabel yLabel;

disp('Session Terminated...');

c. Amati Hasilnya

6. Tugas
a. Apa dampak perubahan yang terjadi ketika setpoint diubah-ubah
b. Identifikasi Sistem yang anda kerjakan! Dengan cara kasih set point sebesar 10% 50%
dan 100%. Apa yang terjadi?
c. Buat Fungsi Alih dari Identifikasi Sistem Tersebut
7. Hasil Percobaan
 Open Loop
Vref = 5V
Voutput = 6V
Vu(controller) = 5V
Open Loop
7

4
Amplitudo

0
6 8 10 12 14 16 18 20 22 24
Time

 Close Loop
Vref = 5V
Voutput = 3,4V
Vu(controller) = 1,6V
Close Loop
5

4.5

3.5

3
Amplitude

2.5

1.5

0.5

0
10 15 20 25 30 35 40 45 50 55 60
Time

 Close Loop PID


Vref = 4V Kp = 10
Voutput = 4,2V Ki = 50
Vu(controller) = 2V Kd = 0,05
Close Loop Control PID
90

80

70

60

Amplitude
50

40

30

20

10

0
8 10 12 14 16 18 20 22 24 26 28 30
Time

8. Analisa

Berdasarkan hasil percobaan diperoleh open loop dengan Vreferensi menghasilkan


output 6V, close loop dengan Vreferensi menghasilkan output 3,4V dan pada close loop
terkontrol/PID mengahasilkan Vreferensi 4,2V.

9. Kesimpulan

Berdasarkan hasil analisa, dapat disimpulkan bahwa sistem kontrol yang yang baik
digunakan adalah sistem kontrol Close Loop dengan PID.

Anda mungkin juga menyukai