Laporan Praktikum Dan Sistem Kendali

BAB I
Sistem Motor Arus Searah
% Data-data Motor Arus Searah
Ka = 10;
Ta = 0.05;
Td = 1;
Te = 6;
Tr = 0.02;
% Fungsi ALih Lingkar Terbuka
disp('Fungsi Alih Lingkar Terbuka')
num=[0 0 Ka];
den=[((1*Ta*Te*Td)/Tr)];
sys_o1=tf(num,den)
disp ('Fungsi Alih Lingkar Tertutup')
sys_cl=feedback(sys_o1,1)
Hasil Program
Fungsi Alih Lingkar Terbuka
sys_o1 =
0.01
--------------------------------0.005 s^2 + 0.06 s + 0.1001
Continous-time transfer function.

fungsi alih tertutup
sys_c1 =
0.01
-------------------------------0.005 s^2 + 0.06 s + 0.1101
continous time transfer function

Hasil Program

Percobaan 1
Analisa Perfomansi Dalam Domain Waktu
clc
clear all
close all
close all hidden
%
% Data-data Motor Arus Searah
Ka = 10;
Ta = 0.05;
Td = 1;
Te = 6;

Tr = 0.02;
% Fungsi ALih Lingkar Terbuka
disp('Fungsi Alih Lingkar Terbuka')
num=[0 0 Ka];
den=[((1*Ta*Te*Td)/Tr)];
sys_o1=tf(num,den)
disp ('Fungsi Alih Lingkar Tertutup')
sys_c1=feedback(sys_o1,1)
%
% disp('Perfomansi Lingkar Terbuka dalam Domain Waktu')
num_c1=get(sys_c1,'num');
den_c1=get(sys_c1,'den');
t=0:0.1:10.00;
[y,x,t]=step(num_c1,den_c1);
P = stepinfo(sys_c1)
k = max(y);
tv = sum(abs(diff(y)));
k1 = sort(y,'descend');
k2 = k1(1);
k3 = k1(2);

K = k3/k2;
e1 = abs(1-dcgain(sys_c1));
EV = (tv/abs(dcgain(sys_c1)));
fprintf('Total Variasi
= %10.5g\n',tv)
fprintf('Decay Rasio
= %10.5g\n',K)
fprintf('Steady State Offset = $10.5g\n',e1)
fprintf('Excess Variation
= %10.5g\n',EV)
%Tanggapan Terhadap Masukan Undak Masukan
t = 0:0.01:10;
[y,x,t] = step (num_c1,den_c1,t);
plot (t,y);
grid on
title('Tanggapan Terhadap Masukan Undak Satuan')
ylabel('keluaran')
xlabel('detik')

Hasil Program


Hasil Grafik

Percobaan 2 Analisa Perfomansi Dalam Domain Frekuensi
clc
clear all
close all
close all hidden
% Data-data Motor Arus Searah
Ka = 10;
Ta = 0.05;
Td = 1;
Te = 6;
Tr = 0.02;
% Fungsi ALih Lingkar Terbuka
disp('Fungsi Alih Lingkar Terbuka')

num=[0 0 Ka];
den=[((1*Ta*Te*Td)/Tr)];
sys_o1=tf(num,den)

disp ('Fungsi Alih Lingkar Tertutup')
sys_cl=feedback(sys_o1,1)
disp('Fungsi ALih Lingkar Tertutup')
sys_cl=feedback(sys_o1,1)
%
%Perfomansi Lingkar Terbuka dalam Domain Frekuensi
disp('Perfomansi Lingkar Terbuka dalam Domain Frekuensi')
[Gm,Pm,Wgm,Wpm] = margin (sys_o1);
fprintf('Margin Penguatan
= %10.5 \n',Gm)
fprintf('Margin Fasa
= %10.5 \n',Pm)
fprintf('Frekuensi Margin Penguatan
= %10.5 \n',Wgm)
fprintf('Frekuensi Margin Fasa
= %10.5 \n',Wpm)
%
% Digram Bode
margin (sys_o1)
grid on


Hasil Program

Hasil Grafik

Perfomansi sistem lingkar tertutup dalam domain frekuensi meliputi nilai puncak
resonansi frekuensi puncak resonansi dan lebar pita
clc
clear all
close all
close all hidden
% Data-data Motor Arus Searah
J = 1;
b = 0.16;
K = 0.99;
R = 0.11;
L = 0.5;
% Fungsi ALih Lingkar Terbuka
disp('Fungsi Alih Lingkar Terbuka')
num=[0 0 K];

den=[(J*L) ((J*R)+(b*L)) ((b*R)+(K*K))];
sys_o1=tf(num,den)
%
disp('Fungsi Alih Lingkar Tertutup')
sys_c1=feedback(sys_o1,1)
% Diagram Magnitude Bode Sistem Eksitasi Generator
bodemag(sys_c1)
grid on

Hasil Program

Hasil Grafik

Percobaan 4 Analisa Kestabilan
clc
clear all
close all
close all hidden
% Data-data Motor Arus Searah
Ka = 10;

Ta = 0.05;
Td = 1;
Te = 6;
Tr = 0.02;
% Fungsi ALih Lingkar Terbuka
disp('Fungsi Alih Lingkar Terbuka')
num=[0 0 Ka];
den=[((1*Ta*Te*Td)/Tr)];

sys_o1=tf(num,den)
disp ('Fungsi Alih Lingkar Tertutup')
sys_cl=feedback(sys_o1,1)
disp('Fungsi Alih Lingkar Tertutup')
sys_cl=feedback(sys_o1,1)
%
% Periksa Kestabilan dengan Kriteria Nyquist
nyquist(num,den)
grid on

Hasil Program


Hasil Grafik

Diagram Nynquist dari gambar diatas
clc
clear all
close all
close all hidden
% Data-data Motor Arus Searah
J = 1;
b = 0.16;
K = 0.99;
R = 0.11;
L = 0.5;
% Fungsi ALih Lingkar Terbuka
disp('Fungsi Alih Lingkar Terbuka')
num=[0 0 K];
den=[(J*L) ((J*R)+(b*L)) ((b*R)+(K*K))];
sys_o1=tf(num,den)
%

disp('Fungsi Alih Lingkar Tertutup')
sys_cl=feedback(sys_o1,1)
%
% Periksa Kestabilan dengan Kriteria Bode
[Gm,Pm,Wgm,Wpm] = margin (sys_o1);
K = 1/Gm
if (K2
Kp=inf; Kv=inf; Ka=inf;
EssStep = 0; EssRamp = 0; EssParab=0;
end
if(systype)0
Kp=inf; Kv=inf; Ka=inf;
EssStep = 0;EssRamp = 0; EssParab = 0;
end
if(systype)2

Kp=inf; Kv=inf; Ka=inf;
EssStep = 0; EssRamp = 0; EssParab = 0;

Kp)

n', Kv)

end
if(systype)');
Ki=input('Konstanta Ki ->');
den1=[(J*L) ((J*R)+(b*L)) ((b*R)+(K*K)) 0];
num2=[0 0 (K*Kp) Ki];
den2=[(J*L) ((J*R)+(b*L)) ((b*R)+(K*K)+Kp) Ki];
disp('Fungsi Alih Lingkar Terbuka dengan Kendali PI')
sys_opi1=tf(num2,den1)
disp('Fungsi Alih Lingkar Tertutup dengan Kendali PI')
sys_cpi1=tf(num2,den2)
[z,p,k]=tf2zp(num2,den2);
p=-p;
z=-z;
sysm=0; sysn=0;
systype=0;
km=1;
kn=1;
[n]=length(p);
[m]=length(z);
for i=1:m
if(z(i))==0
sysm=sysm+1;
else, end
if(z(i))~=0
if(z(i))~=-inf
km=km*z(i);
else
end
else
end
end
for i=1:n
if(p(i))==0
sysn=sysn+1;
else
if(p(i))~=-inf

kn=kn*p(i);
end
end

Kp)

end
Kc=k*km/kn;
systype=sysn-sysm;
if(systype)==0
Kp=Kc; Kv=0; Ka=0;
EssStep = 1/(1+Kc); EssRamp = inf; EssParab = inf;
end
if(systype)==1
Kp=inf; Kv=Kc; Ka=0;
EssStep = 0; EssRamp = 1/Kv; EssParab = inf;
end
if(systype)==2
Kp=inf; Kv=inf; Ka=Kc;
EssStep = 0; EssRamp = 0; EssParab = 1/Ka;
end
if(systype)>2
Kp=inf; Kv=inf; Ka=inf;
EssStep = 0; EssRamp = 0; EssParab = 0;
end
if(systype)2
Kp=inf; Kv=inf; Ka=inf;
EssStep = 0; EssRamp = 0; EssParab=0;
end
if(systype)2

Kp=inf; Kv=inf; Ka=inf;
EssStep = 0; EssRamp = 0; EssParab=0;
end
if(systype)2
Kp=inf; Kv=inf; Ka=inf;

EssStep = 0; EssRamp = 0; EssParab = 0;
end
if(systype)2
Kp=inf; Kv=inf; Ka=inf;
EssStep = 0; EssRamp = 0; EssParab = 0;
end
if(systype)