Anda di halaman 1dari 37

1.

PENDAHULUAN

1.1 Operasi Matematika Sederhana

Sepertihalnya kalkulator, matlab dapat menyelesaikan persoalan matematika


sederhana:

 Operasi Penjumlahan
» 4+6-7
ans =
3
 Perkalian dan pembagian
» 4*10
ans =
40

» 100/4
ans =
25

 Akar dan pangkat suatu bilangan


» sqrt(25)
ans =
5

» sqrt(-10)
ans =
0+3.1623i

» 2^3
ans =
8

» 8^(1/3)
ans =
2.0000

FUNGSI TRIGONOMETRI
» cos(0)
ans =
1

» cos(pi/3)
ans =
0.5000
» sin(pi/2)
ans =
1

» cos(pi/3)+sin(pi/2)
ans =
1.3660

1.2 Matrik

Perintah-perintah yang ada di MATLAB didasarkan pada operasi matriks


» A=[1 2 3; 5 3 2; 3 4 5]
A=
1 2 3
5 3 2
3 4 5

» B=[2;3;5]
B=
2
3
5

» A*B
ans =
23
29
43

» inv(A)
ans =
3.5000 1.0000 -2.5000
-9.5000 -2.0000 6.5000
5.5000 1.0000 -3.5000

» det(A)
ans =
2

1.3 Bilangan Kompleks

Bilangan kompleks dinyatakan dengan j atau i sebagai berikut:

» 2+3i
ans =
2.0000 + 3.0000i
» 2+4j
ans =
2.0000 + 4.0000j

Imajiner

4j

Real
2

Error: Reference source not found

Sedangkan sudut (argumen) bilangan kompleks tersebut dapat dicari sebagai berikut:
» angle(2+4j)
ans =
1.1071

masih dalam satuan radian, jika diinginkan dalam satuan derajat:

» angle(2+4j)*180/pi
ans =
63.4349

kemudian jika dicari harga mutlaknya:

» abs(2+4j)
ans =
4.4721

1.4 Grafik

Pernyataan berikut ini menyatakan matriks yang terdiri dari 11 kolom mulai dari 0
hingga 10

» x = 0:1:10
x=
0 1 2 4 5 6 7 8 9 10
Jika x tidak ingin ditampilkan maka tambahkan ‘;’ misalkan

» x = 0:1:10;

maka x adalah matriks dengan 101 kolom;


sedangkan jika kita ingin membuat fungsi:

f(x) = 3 * x2 – 10x

maka jika kita perhatikan suku 3 * x^2 terlihat bahwa angka 3 merupakan matriks
dengan satu kolom dan satu baris, begitu pula dengan angka 2 maka perkalian 3
dengan x^2 merupakan perkalian array karena (perkalian matriks 1 X 1 dengan
matriks m X n), hal yang sama dengan pangkat dua dengan suku persamaan tersebut.
Sehingga dalam MATLAB fungsi tersebut dituliskan ( * diganti .*) sebagai berikut:

» f=3.*.^2-10.*x;

dedangkan jika ingin ditampilkan f dan x maka

»x
x=

Columns 1 through 7
0 0.1000 0.2000 0.3000 0.4000 0.5000 0.6000

Columns 8 through 14
0.7000 0.8000 0.9000 1.0000 1.1000 1.2000 1.3000

Columns 15 through 21
1.4000 1.5000 1.6000 1.7000 1.8000 1.9000 2.0000

Columns 22 through 28
2.1000 2.2000 2.3000 2.4000 2.5000 2.6000 2.7000

Columns 29 through 35
2.8000 2.9000 3.0000 3.1000 3.2000 3.3000 3.4000

Columns 36 through 42
3.5000 3.6000 3.7000 3.8000 3.9000 4.0000 4.1000

Columns 43 through 49
4.2000 4.3000 4.4000 4.5000 4.6000 4.7000 4.8000

Columns 50 through 56
4.9000 5.0000 5.1000 5.2000 5.3000 5.4000 5.5000
Columns 57 through 63
5.6000 5.7000 5.8000 5.9000 6.0000 6.1000 6.2000

Columns 64 through 70
6.3000 6.4000 6.5000 6.6000 6.7000 6.8000 6.9000

Columns 71 through 77
7.0000 7.1000 7.2000 7.3000 7.4000 7.5000 7.6000

Columns 78 through 84
7.7000 7.8000 7.9000 8.0000 8.1000 8.2000 8.3000

Columns 85 through 91
8.4000 8.5000 8.6000 8.7000 8.8000 8.9000 9.0000

Columns 92 through 98
9.1000 9.2000 9.3000 9.4000 9.5000 9.6000 9.7000

Columns 99 through 101


9.8000 9.9000 10.0000

Matriks x dan matriks f merupakan matriks dengan ukuran 1 X 101 sedangkan x’


(transpose matriks x) adalah matriks dengan ukuran 101 X 1 hal ini akan dijelaskan
pada bagian selanjutnya.
Penggunaan grafik dilkukan dengan menggunakan perintah:

» plot(x,f)

<gambar grafik>

Sedangkan perintah grid dilakukan untuk membuat garis-garis pada gambar.


Sedangkan sumbu x dan sumbu y dapat diberikan nama dengan perintah
xlabel(`nama sumbu x`) dan ylabel(‘nama sumbu y’).

» t = 0:0.1:3*pi;
» y = sin(t);
» plot(t,y)
» title(‘contoh 1’)
» ylabel(‘amplitude y’)
» xlabel(‘t’)
» grid

<gambar grafik>

INTEGRAL

Integrasi atau luas area di bawah suatu persamaan garis (fungsi) dapat dihitung
dengan menggunakan trapz, quad dan quad8, funsi trapz adalah integrasi dengan
pendekatan luas dibagi-bagi dalam bentuk trapesium:

<gambar>

» x = 0:0.2:5;
» y = 2.* x;
» trapz(x,y)
ans =
25.0000

II. MATRIKS DAN ALJABAR LINEAR

Matriks adlah array dua dimensi dari bilangan riil maupun bilangan kompleks. Aljabar
linear adalah persamaan-persamaan matematika yang dapat diselesaikan dengan
menggunakan operasi matirks. Sebagai contoh perhatikan persamaan berikut:

5x – 10y + z = 24
x+y+z=5
3x + 2y + 3z = 16

persamaan tersebut dalam bentuk matriks:

5 -10 1 x 24
1 1 1 y = 5
3 2 3 z 16

jika persamaan tersebut dibentuk menjadi:

A. d = b

maka d = A-1 b.
dengan menggunakan MATLAB:

» A = [5 -10 1;1 1 1;3 2 3]


A=
5 -10 1
1 1 1
3 2 3

» b = [24;5;16]
b=
24
5
16

» A\b
ans =
2.0000
-1.0000
4.0000
atau dapat juga menggunakan perintah berikut:
» d = inv(A) * b
d=
2.0000
-1.0000
4.0000

Maka didapatkan:

x = 2; y = -1; z = 4;

Perkalian matriks haruslah mempunyai dimensi yang berkesesuaian, perhatikan contoh


berikut:

» A = [2;3]
A=
2
3

» B = [2;3;4]
B=
2
3
4

»A*B
??? Error using => *
Inner matrix dimensions must agree

INVERS DAN DETERMINAN

Jika A adalah sebuah nmaatriks yang memenuhi persamaan:

AX = I dan XA = I

Dimana I adalah matriks identitas, maka X disebut matriks invers dari matriks A atau
lebih sering disebut A-1. Dalam MATLAB ooperasi yang digunakan adalah inv.
Determinan dari sebuah matriks sangat berguna dalam beberapa komputasi teknik. Dalam
MATLAB operasi yang digunakan adalah det.

Contoh:
» G=[3 4 2;2 3 4;4 5 6]
G=
3 4 2
2 3 4
4 5 6
» det(G)
ans =
6

» inv(G)
ans =
-0.3333 -2.3333 1.6667
0.6667 1.6667 -1.3333
-0.3333 0.1667 0.1667

DOT PRODUCT

Dari aljabar linear telah kita ketahui jika:

A = a1 i + a2 j + a3 k
B = b 1 i + b2 j + b3 k

Maka hasil dot product A dan B adalah:

A.B = a1b1 + a2b2 + a3b3

Contoh dengan menggunakan MATLAB:


Jika:

a = 3I + 2j – 3k
b = 2I + k

» a = [3 2 -3]
a=
3 2 -3

» b = [2 0 1]
b=
2 0 1

» a.*b
ans =
6 0 3

TRANSPOS

Operasi transpos adalah operasi tukar tempat aij dan aji misalkan:

» A = [2 3 4 5 6 1 2]
A=
2 3 4 5 6 1 2
Maka [A]T adalah:

» A’
ans =
2
3
4
5
6
1
2

atau jika
» B = [1 2 3;4 5 6]
B=
1 2 3
4 5 6

»B
ans =
1 2
2 5
3 6

LATIHAN
1. Selesaikan persamaan-persamaan di bawah ini dengan menggunakan MATLAB:
a. 5x1 + 4x2 + 4x3 + 2x4 = 57
b. 3x1 + 2x2 + 4x3 + 1x4 = 34
c. 7x1 + 4x2 + 2x4 = 55
d. 5x1 + 5x3 + 2x4 = 57

OPERASI ARRAY

Matlab dapat dapat membuat array secara berurutan sesuai kehendak kita, mislakan:
» t = 0:1:8
t=
0 1 2 3 4 5 6 7 8
atau
» t = 0:0.1:2
t=
Columns 1 through 7
0 0.1000 0.2000 0.3000 0.4000 0.5000 0.6000
Columns 8 through 14
0.7000 0.8000 0.9000 1.0000 1.1000 1.2000 1.3000
Columns 15 through 21
1.4000 1.5000 1.6000 1.7000 1.8000 1.9000 2.0000

jika kita ingin mengetahui t pada kolom 7 maka:


» t(7)
ans =
0.6000

atau hanya menampilkan 5 angka pertama:


» t(1:5)
ans =
0 0.1000 0.2000 0.3000 0.4000

Array of Ones and Zeros

MATLAB dapat membuat matriks dengan ukuran yang kita inginkan yang seluruh
elemennya nol atau satu misalkan:

A = zeros(7)
A=
0 0 0 0 0 0 0
0 0 0 0 0 0 0
0 0 0 0 0 0 0
0 0 0 0 0 0 0
0 0 0 0 0 0 0
0 0 0 0 0 0 0
0 0 0 0 0 0 0

» A = ones(7)
A=
1 1 1 1 1 1 1
1 1 1 1 1 1 1
1 1 1 1 1 1 1
1 1 1 1 1 1 1
1 1 1 1 1 1 1
1 1 1 1 1 1 1
1 1 1 1 1 1 1

» A = ones(2,7)
A=
1 1 1 1 1 1 1
1 1 1 1 1 1 1
» A = ones(4,3)
A=
1 1 1
1 1 1
1 1 1
1 1 1

Jika ingin kita ubah matriks A tersebut mislkan:

A(2,2) = 5;
» A(4,2) = 7;
» A(1,3) = 10;

maka matriks A tersebut menjadi:


»A
A=
1 1 10
1 5 1
1 1 1
1 7 1

Jika pada A hendak dicari elemen yang mempunyai nila > 5 pada baris 1 maka:
» B = find(A(1,:)>5)
B=
3
artinya nilai A > 5 pada A(1,3)
» A = (1,3)
ans =
10

» find(A(2,:)>5)
ans =
[]
artinya pada baris 2 tidak ada elemen A > 5
» find(A(4,:)>5)
ans =
2

» A(4,2)
ans =
7
III. PEMROGRAMAN M – FILE

A. Quick Start
M-File adalah file-file yang memuat bahasa pemrograman MATLAB, M-File
dapat berupa fungsi (function) yang dapat menerima argument input dan menghasilkan
output, atau dapat berupa script yang mengeksekusi pernyataan-pernyataan MATLAB.
Contoh akar persamaan untuk persamaan kuadrat:

−b±√ b2 −4∗a∗c
x 1,2=
2∗a

Pada MATLAB Click File + New kemudian ketikan:

Contoh membuat program yang pertama:


a = input(‘masukan harga a :’)
b = input(‘masukan harga b :’)
c = input(‘masukan harga c :’)
x1 = (-b+sqrt(b^2-4*a*c))/(2*a)
x2 = (-b-sqrt(b^2-4*a*c))/(2*a)

lalu save dengan nama p1


» p1
masukan harga a : 2
a=
2
masukan harga b : 3
b=
3
masukan harga c : 4
c=
4
x1 =
-0.75000 + 1.1990i

x2 =
-0.7500 - 1.1990i

Atau M-File dibuat dalam satu function sebagai berikut:

Contoh membuat program yang kedua


Function x=p2(a,b,c)
x1 = (-b+sqrt(b^2-4*a*c))/(2*a)
x2 = (-b-sqrt(b^2-4*a*c))/(2*a)
lalu save dalam nama p2
» p2(2,3,4)
x1 =
-0.7500 + 1.1990i

x2 =
-0.7500 - 1.1990i

LATIHAN
1. Buatlah program untuk mencari luas lingkaran dengan menggunakan M-File dengan:
a. Bentuk M-File script
b. bentuk M-File Function

2. Buatlah program untuk mencari volume silinder dengan menggunakan M-File dengan:
a. Bentuk M-File script
b. bentuk M-File Function

3. Buatlah Tabel antara input dan output fungsi transfer seperti berikut ini dengan harga
ω berfariasi dari mulai 0 s/d 100:

2
H ( ω )=
10−ω 2 + j∗5∗ω

Gambarkan juga ω vs H(ω)

OPERASI LOGIKA DAN RELASI

Dalam MATLAB operasi relasi dan perbandingan terlihat dari tabel berikut:
Operator Deskripsi
< Lebih kecil dari
<= Lebih kecil dari atau sama dengan
> Lebih besar dari
>= Lebih besar dari atau sama dengan
= Sama dengan
~= Tidak sama dengan

Contoh program:
» D = [2 3 4 2 1 3 4 12 4 5 6 7]
D=
2 3 4 2 1 3 4 12 4 5 6 7

» C = D>3
C=
0 0 1 0 0 0 1 1 1 1 1 1
Perhatikan bedanya dengan statemen berikut:
» B = find(D>3)
B=
3 7 8 9 10 11 12

artinya
D(3), D(7), D(8), D(9), D(10), D(11) dan D(12)>3
B=
3 7 8 9 10 11 12

» D(3)
ans =
4
» D(7)
ans =
4
» D(8)
ans =
12
» D(9)
ans =
4

IV. CONTROL FLOW


4.1 For Loops
Pengulangan for digunakan untuk mengulang suatu proses sebanyak yang kita inginkan
secara umum:

for x = array
commands ……..
end

Contoh 4.1:

for i = 1:10
r = input(‘Jari-jari :’)
V = 4*pi*r^3/3
End

» p4
Jari-jari : 2
r=2
V = 33.5103
Jari-jari : 3
r=3
V = 113.0973

Jari-jari = 4
r=4
V = 268.0826

Jika V tidak dinyatakan dalam bentuk V(i) maka hanya harga terakhir saja yang direkam.

Latihan:
Ubahlah program di atas agar anda hanya cukup sekali mengeksekusi tanpa memasukan
harga r 10 kali :
a. harga r mulai dari 1 hingga 10
b. harga r mulai dari 5 hingga 9
c. bandingkan jika V diganti V(i)

4.2 While Loops


Pengulangan while digunakan untuk mengevaluasi sejumlah perintah dalam loop
tersebut. Secara umum bentuk while loops adalah :

While expression
commands ……
end

4.3 if – else – then


Bentuk tersebut mengkondisikan suatu perintah, secara umum bentuknya adalah:

if expression
commands
end

Jika alternatif kondisi tersebut banyak, maka:

if pernyataan 1
commands…..
elseif pernyataan 2
commnads…..
elseif pernyataan 3
commands…..
end
Contoh:
Buatlah persamaan garis berikut:

10 20 30 40 50

Error: Reference source not found


Persamaan garis tersebut di atas adalah:

5 untuk 0 ≤ x ≤ 10

f(x) =

1 otherwise

for i=1:30
k=i
if k>=0 & k<=10
x(i)=5;
elseif k>=10 & k<=20
x(i)=0;
elseif k>=20 & k<=30
x(i)=5;
end
end

plot(x)
axis([0 34 -1 6])
grid

<grafik>
Latihan:
1. Ubahlah tersebut untuk n jumlah gelombang

5 untuk (2n-2)*10 ≤ x ≤ 10*(2n-1)

f(x) =

0 otherwise
2. Buatlah program untuk menggambarkan gelombang segitiga seperti pada gambar

5 10 15 20 25

Error: Reference source not found

V. POLINOMIAL

MATLAB dapat mendefinisikan polinom sebagai berikut:

5 3 2
P ( x )=x +4 +3 x +10

dalam bentuk
p = [1 0 4 3 10]
» p=[1 0 4 3 10]
p=
1 0 4 3 10

5.1 Akar Polinom


Sedangkan akar polinom dapat dicari dengan perintah roots

» roots(p)
ans =
0.8052 + 1.8920i
0.8052 – 1.8902i
-0.8052 + 1.3103i
-0.8052 – 1.3103i

Misalkan akar dari persamaan:


g(x) = x2 + 7x + 12

» g = [1 7 12]
g=
1 7 12

» roots(g)
ans =
-4
-3

5.2 Perkalian Polinom


Perkalian polinom dilakukan dengan menggunkan conv

» conv(p,g)
ans =
1 7 16 31 79 106 120

misalkan:
p1(x) = x-5
p2(x) = x+4
» p1 = [1 -5]
» p2 = [1 4]
» p = conv(p1,p2)
p=
1 -1 -20

5.3 Pembagian Polinom


» deconv(p,p1)
ans =
1 4

» deconv(p,[1 -5])
ans =
1 4

5.4 Pembentukan Pecahan Parsial


dari kuliah teknik pengaturan telah dijelaskan bahwa bentuk polinom dapat diubah
menjadi bentuk pecahan parsial, misalkan:
P(x)
F ( x )=
Q( x )

Lalu dijadikan pecahan parsial sebagai berikut:


m m−1
P ( x ) a1 x + a2 x +.. . .. .. . .+ am+1
=
Q ( x ) b1 x n + b2 x n−1 + .. .. . .. ..+ bn+1
Lalu dijadikan pecahan parsial sebagai berikut:

P (x ) K1 K2 Kn
= + +. .. . .. .+
Q ( x ) ( x−p 1 ) ( x− p2 ) ( x− pn )
MATLAB dapat mencari koefisien pecahan parsial tersebut berikut ‘pole dan zero’ nya
sebagai berikut:

P (x ) x+7
= 2
Q ( x ) x + 8 x +15

dari persamaan tersebut diketahui bahwa:


Numerator:

N=x+7

Denumerator

D = x2 + 8x + 15

Maka zero adalah akar dari N :


» n = [1 7]
n=
1 7
» roots(n)
ans =
-7
» d =[1 8 15]
d=
1 8 15
pole (kutub) adalah akar dari D:
» roots(d)
ans =
-5
-3

jika kita juga ingin mengetahui koefisien pecahan parsial maka:


» [r,p,k] = residuen(n,d)
r=
-1
2

p=
-5
-3

k=
[]
Koefisien tersebut adalah –1 dan 2, atau secara matematik:

P (x ) −1 2
=c= +
Q (x) ( x+5 ) ( x+3 )

VI. Symbolic Math Toolbox


MATLAB dapat juga bekerja dengan menggunkan variabel-variabel dengan cara
mendevinisikan terlebih dahulu variabel tersebut dengan perintah syms atau sym:

» syms x
»f = x + 7
f=
x+7

» int(f)
ans =
½ * x^2 + 7

VII. Aplikasi Matlab Untuk Getaran Mekanik

Sistem dengan 1 derajat kebebasan


Contoh:

Respon suatu sistem pegas, massa dan peredam yang digetarkan dengan gaya F:

m f=F

k = 500 N/m
m = 5 kg c k
c = 2 N s/m

m ẍ +c ( ẋ )+k (x )=F (t )
Lalu dengan menggunakan transformasi laplace:

( ms 2 + cs+ k ) X=F ( s )

Maka fungsi transfer sistem suspensi pasif:

1
2
F(s) ms +cs +k X(s)

Lalu dengan mensubsitusikan s dengan j ω

1
K ( ω )=
k-m ω2 + ic ω

Sedangkan hubungan antara input dan output:

F( ω)∗H (ω)=X ( ω)

F
X ( ω )=
k −mω2 +ic ω

Maka dengan bantuan MATLAB dapat dicari respon sistem tersebut

omeg=0:0.1:20;
f=5;
k=500; m=5; c=2;
j=sqrt(-1);
x=f./((k-m.*omeg.^2)+j.*c.*omeg);
plot(omeg,abs(x))

<grafik>

Latihan:
Buatlah program seperti di atas dengan menggunakan for loops

Koefisien Fourier dicarisebagai berikut:


Definisikan:

x(t) =2 untuk 0 ≤ t ≤ 0.5


X(t)=

x(t) =-2 untuk 0.5 ≤ t < 1

ω = 2*

Maka :

0. 5 1
2
an =
1 (∫ 0
2 cos ( nω t ) dt− ∫ 2cos ( nω t ) dt
0. 5
)
0. 5 1
2 2 2
a1 = ( 1 ω
sin ( ω t )| − sin ( ω t )|
0 ω )
0 .5
0. 5 1
2 2 2
a = ( sin ( ω t )| − sin ( ω t )| )
1
1 2π 2π 0 0 .5
0 .5 1
2
a = (sin (2 πt )| − sin ( 2 πt )| )=0
1
π 0 0. 5

Dengan cara yang sama didapatkan:


a2 = a3 = a4 = 0

Koefisien untuk sinus:

0. 5 1
2
bn =
t (∫ 0
2 sin ( nω t ) dt− ∫ 2 sin ( nω t ) dt
0. 5
)
0 .5 1
2 2 2
1 2π (
b1 = − cos ( ω t )| + cos ( ω t )|
0 2π 0. 5 )
0.5 1
2
π (
b1 = − cos ( 2 πt )| +cos ( 2πt )|
0 0 .5
)
8
b1 =
π
b2 =0
8
b3 =

b 4 =0
8
b5 =

Dengan bantuan Matlab (fft) maka koefisien fourier didapatkan sebagai berikut:

<grafik>
Maka masing-masing bentuk gelombang pada deret Fourier:
f (t )=a0 +a1 cos ω t+ a2 cos2 ω t +. .. .. . ..+a n cos nω t+b 1 sin ω t+b2 sin 2 ω t+bn sin nω t
4 4 4
f (t )= sin2 πt+ sin 6 πt + sin10 πt+. . .. .. . .. ..
π 3π 5π

<grafik>

Atau dalam bentuk tiga dimensi yang terdiri dari domain waktu dan domainfrekwensi
adalah:

Amplitudo
Frequency

Pengaruh banyknya suku-suku deret fourier terhadp bentuk gelombang:

<grafik>

Kesimpulan:
Semakin banyaknya siku-siku pada deret yang digunakan maka bentuk sinyal atau
gelombang akan semakin menyerupai bentuk segi empat.

Bentuk Eksponensial Deret Fourier


Bentuk eksponensial deret Fourier didasarkan pada bentuk Euler, yang dapat dituliskan
sebagai berikut:
in ωt −inωt
e +e
cosnω t=
2

e inωt +e−in ωt
sin nω t=
2i

Lalu dengan mensubstitusikan ekspresi tersebut pada persamaan maka deret fourier
menjadi:

1 ∞
x (t )=a0 + ∑ [ ( a n − jbn ) exp ( jnω t ) + ( an + jb n ) exp (− jnω t ) ]
t n=1
Dan dapat disederhanakan dengan substitusi berikut:

c 0 =a0
( a n − jb n )
c n=
2
( an + jb n )
c−n =
2
Maka dalam bentuk yan sederhana:

x(t )= ∑ c n exp ( jnω 0 t )
n=−1
t +T
0
1
c n= ∫ x(t )exp(− jnω t ) dt
t t0

Suatu sinyal yang terdiri dari beberapa buah gelombang sebagai berikut:

f (t )=5 *sin 4 πt+2 *sin 12 πt+5 *sin 10 πt +5 *cos 10 πt +10 *cos20 πt

<grafik_1>

Atau jika gelombang di atas dijabarkansatu persatu:


24
Penggunaan Matlab Untuk Transformasi Fourier:

Berikut ini contoh penggunaan MATLAB untuk transformasi Fourier:


Contoh:
Membentuk gelombang segitiga seperti gambar berikut:

18
12
6

Pada gambar tersebut terdapat 2 persamaan garis yaitu:


1. x(t) = t/3-2*n pada selang 0+2n*6 <= (2n+1)*6 n = 0,1,2,…
2. x(t) = t/3-2*n pada selang 0+2n*6 <= (2n+1)*6 n = 0,1,2,…

Pembuatan grafik x(t) vs t adalah sebagai berikut:


Untuk 1 gelombang
2

for i=1:13
t(i)=i-1;
if i<=7
x(i)=t(i)/3;
else if i>7
x(i)=-(t(i)/3)+4
end
end

» plot(t,x)

<grafik>

Untuk Banyak Gelombang

clear
n=input (‘Jumlah Perioda : ‘)
for j=1:n;
for I=1:13
t(i)=12*(n-1)+i-1;
if I<=7
x(i)=(t(i)/3)-4*(n-1);
else if i>7
x(i)=-t(i)/3+4*((n-1)+1);
end
end
plot(t,x)
axis([0 12*n+1 -0.5 2.5])
grid
hold on

end

Transformasi Dari Domain Waktu Ke Domain Frekwensi:

T
2
an = ∫ x(t )cos(nω t ) dt
T 0
T
2
bn = x(t )sin(nω t ) dt
T∫0

T = Perioda
ω = 2 π /t= Frekwensi dalam rad/s
f = 1/T = Frekwensi dalam Hz

Koefisien cosinus an dan koefisien sinus bn dapat dicari dengan menggunakan MATLAB:

an =
w an
0 2
2* π 2
4* π 2
6* π 2
bn =
w bn
2* π 1.6667
4* π 1.6667
4* π 1.6667

Bentuk Eksponen Deret Fourier


Bentuk eksponen dari deret fourier didasarkan pada bentuk Eulier, yang dapat
dituliskan sebagai berikut:
ein ω t +e−in ω t
cosnω t=
2
in ω t −inω t
e −e
sin nω t=
2i
Lalu dengna mensubstitusikan ekspresi tersebut pada persamaan maka deret fourier
menjadi:

1 ∞
x (t )=a0 + ∑ [ (a − jbn)exp( jnω t )+(an + jbn )exp(− jn ω t )]
T n=1 n

dan dapa tdisederhanakan dengan substitusi berikut:

c 0 =a0
( a − jb n )
c n= n
2
( an + jb n )
c−n =
2

maka dalam bentuk yang lebih sederhana:



x (t )= ∑ c n exp( jnω 0 )
n=−∞
t +T
0
1
c n= ∫ x (t )exp(− jnω t ) dt
T t0
PROGRAM MATLAB
1.1 Transformasi Fourier Cepat

Cara menggunakan (“.fft”) pada program MATLAB:


Berikut ini contoh untuk mencari koefisien Fourier:

t=0:0.01:10;
y=2*sin(3*pi*t)+4*sin(5*pi*t)+3*cos(4*pi*t)-2*cos(2*pi*t);
f=conj(fft(y))/(length(t)/2);
figure(1)
subplot(211)
% Karena (“.fft”)pada dasarnya menganggap jumlah data (integer) sebanyak
(length(t)) data maka harus dibagi
% suatu faktor length(f)*0.01, kalau hasilnya dengan sumbu x 1000
% (simetris) atau 500 tidak simetris

plot([0:length(t)/2-1]/(length(f)*0.01,real(f(1:length(f)/2)))
axis([0 6 -3 5])
grid
subplot(212)
plot([0:length(t)/2-1]/(length(f)*0.01,imag(f(1:length(f)/2)))
axis([0 6 -3 5])
grid
figure(2)
plot(y)
grid

Sedangkan (“.fft”) jika tidak dibagi (length(f)*0.01), maka itulah yang


dinamakan Transformasi Fourier.

Contoh program dengan menggunakan eksponensial kompleks

clf
clear all
for n=1:220;
w=(n-1)/20;
t=0:0.01:20;
y=5*sin(2*t)+cos(3*t)+5*cos(10*t)+4*sin(5*t);
A=trapz(t,y);
k=exp(-i*w.*t).*y;
cn(n)=(trapz(t,k));
ww(n)=w;
end
an=(cn+conj(cn))./20;
bn=(imag(conj(cn)_(cn))./20;
disp([ an’ bn’])
cc=find(2*abs(cn)/50>=1)
subplot(311)
plot(ww,an)
subplot(312)
plot(ww,bn)
subplot(313)
plot(t,y)
size(t)
x=zeros(size(t));
z1=ones(size(t));
z2=2*ones(size(t));
z3=3*ones(size(t));
y1=sin(t);
y2=sin(5*t);
y3=sin(7*t);
figure(2)
subplot(111)
plot3(t,z1,y1,z2,y2,z3,y3,t,z,y1+y2+y3)
view(30,30)
grid

Contoh program dengan menggunakan Fungsi Trionometri

clf
clear all
for n=1:140;
w=(n-1)/2;
t=0:0.01:20;
y=5*sin(20*t)+7*cos(30*t)+5*cos(10*t)+4*sin(50*t);
A=trapz(t,y);
k1=cos(w.*t).*y;
k2=sin(w.*t).*y;
an(n)=2*(trapz(t,k1))/20;
bn(n)=2*(trapz(t,k1))/20;
ww(n)=w;
end
disp([ an’ bn’]);
figure(1)
subplot(311)
plot(ww,an)
subplot(312)
plot(ww,bn)
subplot(313)
plot(t,y)
%size(t)
z=zeros(size(t));
z1=ones(size(t));
z2=2.*ones(size(t));
z3=3.*ones(size(t));
y1=sin(t);
y2=sin(5*t);
figure(2)
subplot(111)
plot3(t,z1,y1,t,z2,y2,tz3,y3,t,z,y1+y2+y3)
biew(30,30)
grid
c1=find(2*abs(an)>=2);
c2=find(2*abs(bn)>=2);
AA=an(c1)*sin(ww(c1)’*t);
AA(1,:)
AA(:,2)
Igure(3)
Plot(t,AA(1,:)+AA(:,2))
Axis([0 10 -15 20])

PENGGUNAAN SIMULINK

Simulink dapat digunakan dengan mudah untuk menyelesaikan sistem linear dari matlab
lakukan perintah:

»simulink

kemudian akan muncul

<gambar>

Lalu dengan ‘click” dua kali pada source akan muncul gambar berikut :

<gambar>

Lalu ‘click and drag Band Limited White Noise’ lalu masukan dalam file kemudian
‘click’ dua kali pada sink

<gambar>

kemudian ‘click and drag scope dan simout lalu masukan pada file
hal yang sama dilakukan : ‘click’ dua kali pada linear
<gambar>

kemudian pada model disusun sebagai berikut:

<gambar>

pada ‘power Spectral density’ masukan harga-harga berikut:


length of buffer=65
Number of points for fft=512
Plot after how many points=65
Sample time=0.1

Lalu pada simulation tekan start

Sedangkan simout adalah data-data yang ditransfer ke MATLAB, kemudian data-data


tersebut dapat diolah.
METODA RUNGE KUTTA
(Kasus 2 Derajat Kebebasan)

Kasus 1
Respon suatu sistem pegas, massa peredam yang digetarkan dengan gaya periodik
f(t) = 2*cos(2*pi*t1):

m
2 f=
F
c k
2 2

m
1

c k
1 1

Respon dengan input gaya periodik

<grafik>

Kasus 2
Respon suatu sistem pegas, massa dan peredam yang digetarkan dengan gaya random
f(t)=random:

m2
f=
F
c k2
2

m1

c k1
1
%Program MATLAB untuk mencari kurva FRF dengan menggunakan Metoda Runge
%Kutta pada sistem dengan 2 derajat kebebasan dimana input berupa
%sinyal periodik

clf
clear
n=3000;
x=zeros(2,1);
v=zeros(2,1);
dt=0.02*pi;
dn=dt*n;
k1=30;
k2=20;
c1=0.02;
c2=0.02;
m1=1;
m2=2;
K=[k1+k2, -k2, -k2, k2];
C=[c1+c2, -c1, -c2, c2];
M=[m1, 0, 0, m2];
t=0.0;
for i = 1:n;
t1=t;
x1=x;
v1=v;
f1=inv(M)*([2*cos(2*pi*t1);0]-C*v1-K*x1);
%
t2=t+dt/2;
x2=x+v1.*dt/2;
v2=v+f1*dt/2;
f2=inv(M)*([2*cos(2*pi*t2);0]-C*v2-K*x2);
%
t3=t+dt/2;
x3=x+v2.*dt/2;
v3=v+f2*dt/2;
f3=inv(M)*([2*cos(2*pi*t3);0]-C*v3-K*x3);
%
t4=t+dt/2;
x4=x+v3.*dt/2;
v4=v+f3*dt/2;
f4=inv(M)*([2*cos(2*pi*t3);0]-C*v3-K*x3);
t=t+dt;
v=v+dt/6.*(f1+2.*f2+2.*f3+f4);
x=x+dt/6.*(v1+2.*v2+2.*v3+v4);
a= inv(M)*([2*cos(2*pi*t);0]-C*v-K*x);
tt(i)=t;
f=[2*cos(2*pi*t);0];
ff1(i)=f(1,1);
vv1(i)=v(1,1);
vv2(i)=v(2,1);
xx1(i)=x(1,1);
xx2(i)=x(2,1);
aa1(i)=a(1,1);
aa2(i)=a(2,1);
end

inp=abs(fft(xx1(300:n)));%karena kondisi transien maka data dimulai


%dari 300 dengan
oup=abs(fft(ff1(300:n)));%asumsi setelah pencuplikan data ke 300
%keadaan sudah stedi
h=inp./oup;%kurva FRF diambil pada keadaan stedi
inp2=abs(fft(xx2(300:n)));
h2=inp2./oup;
figure(1)
subplot(211)
plot(tt, xx1, ‘k--‘, tt, xx2)
axis ([0 10 1.5*min(xx1) 1.5*max(xx1)])
xlabel(‘waktu(s) ‘)
ylabel(‘simpangan’)
gtext(-=simpangan untuk massa 1’)
gtext(--=simpangan untuk massa 2’)
grid
subplot(212)
plot(tt, vv1, ‘k—‘, tt, vv2)
axis ([0 10 1.5*min(vv1) 1.5*max(vv1)])
xlabel(‘waktu(s)’)
ylabel(‘Kecepatan’)
gtext(-=Kecepatan untuk massa 1’)
gtext(--=Kecepatan untuk massa 2’)
grid
figure(2)
subplot(311)
plot(tt, aa1, ‘k—‘, tt, aa2)
axis ([0 10 1.5*min(aa1) 1.5*max(aa1)])
xlabel(‘waktu(s)’)
ylabel(‘Percepatan’)
gtext(-=Percepatan untuk massa 1’)
gtext(--=Percepatan untuk massa 2’)
grid
subplot(312)
plot((2*pi*[0:length(h)/2-1]/dn),h(1:length(h)/2))
axis([0 2.0 -0.1 1.6])
xlabel(‘Frekwensi’)
gtext(‘kurva FRF massa 1’)
grid
subplot(313)
plot((2*pi*[0:length(h)/2-1]/dn),h2(1:length(h)/2))
axis([0 20 -0.1 1.6])
xlabel(‘Frekwensi’)
gtext(‘kurva FRF massa 2’)
grid

%program MATLAB untuk mencari kurva FRF dengan menggunakan metoda Runge
%Kutta pada sistem dengan 2 derajat kebebasan dimana input berupa
%sinyal random
clf
clear
n=input(‘Jumlah data random’);
gy=rand(1,n+1);
for i=1:n;
f=([gy(i);0]/2+[gy(i+1);0]/2);
ff1(i)=f(1,1);
ff2(i)=f(2,1);
end
ff=[ff1;ff2];
x=zeros(2,1);
v=zeros(2,1);
dt=0.02*pi;
dn=dt*n;
k1=30;
k2=20;
c1=0.02;
c2=0.02;
m1=1;
m2=2;
K=[k1+k2’ –k2; -k2,k2];
C=[c1+c2, -c2; -c2, c2];
M=[m1, 0; 0, m2];
T=0.0;
For i = 1:n;
t1=t;
x1=x;
v1=v;
f1=inv(M)*([gy(i);0]-C*v1-K*x1);
%
t2=t+dt/2;
x2=x+v1.*dt/2;
v2=v+f1.*dt/2;
f2=inv(M)*([ff1(i);0]-C*v2-K*x2);
%
t3=t+dt/2;
x3=x+v2.*dt/2;
v3=v+f2*dt/2;
f3=inv(M)*([ff1(i);0]-C*v3-K*x3);
%
t4=t+dt;
x4=x+v3.*dt/2;
v4=v+f3*dt/2;
f4=inv(M)*([ff1(i);0]-C*v4-K*x4);
t=t+td;
v=v+dt/6.*(f1+2.*f2+2.*f3+f4);
x=x+dt/6.*(v1+2.*v2+2.*v3+v4);
a=inv(M)*([gy(i);0]-C*v-K*x);
tt(i)=t;
vv1(i)=v(1,1);
vv2(i)=v(2,1);
xx1(i)=v(1,1);
xx2(i)=v(2,1);
aa1(i)=v(1,1);
aa2(i)=v(2,1);
end

oup=abs(fft(xx1(300:n)));%karena kondisi transien maka data dimulai


%dari 300 dengan
inp=abs(fft(gy(300:n)));%asumsi setelah pencuplikan data ke 300 keadaan
%sudah stedi
h=oup./inp;%kurvaFRF diambil pada keadaan stedi
oup2=abs(fft(xx2(300:n)));
h2=oup2./inp;
figure(1)
subplot(311)
plot(([0:n]),gy)
axis([0 40 -0.1 1.2])
gtext(‘Gaya Random’)
grid
subplot(312)
plot(tt, xx1)
axis ([0 40 1.5*min(xx1) 1.5*max(xx1)])
xlabel(‘waktu(s) ‘)
ylabel(‘simpangan’)
gtext(-=simpangan untuk massa 1’)
grid
subplot(313)
plot(tt, vv1)
axis ([0 40 1.5*min(vv1) 2.5*max(vv1)])
xlabel(‘waktu(s)’)
ylabel(‘Kecepatan’)
gtext(-=Kecepatan untuk massa 1’)
grid
figure(2)
subplot(311)
plot(tt, aa1)
axis ([0 40 1.5*min(aa1) 2.5*max(aa1)])
xlabel(‘waktu(s)’)
ylabel(‘Percepatan’)
gtext(-=Percepatan untuk massa 1’)
grid
subplot(312)
plot((2*pi*[0:length(h)/2-1]/dn),h(1:length(h)/2))
axis([0 20 -0.1 1.5])
xlabel(‘Frekwensi (rad/s)’)
gtext(‘kurva FRF massa 1’)
grid
subplot(313)
plot((2*pi*[0:length(h)/2-1]/dn),h2(1:length(h2)/2))
axis([0 20 -0.1 1.6])
xlabel(‘Frekwensi’)
gtext(‘kurva FRF massa 2’)
grid
figure(3)
subplot(311)
plot(tt, xx2)
axis([0 40 1.5*min(xx2) 1.5*max(xx2)])
xlabel(‘waktu(s)’)
ylabel(‘Simpangan’)
gtext(‘Simpangan untuk massa 2’)

grid
subplot(312)
plot(tt, vv2)
axis([0 40 1.5*min(vv2) 2.5*max(vv2)])
xlabel(‘waktu(s)’)
ylabel(‘Kecepatan’)
gtext(‘Kecepatan untuk massa 2’)

grid
subplot(313)
plot(tt, aa2)
axis([0 40 1.5*min(aa2) 2.5*max(aa2)])
xlabel(‘waktu(s)’)
ylabel(‘Percepatan’)
gtext(‘Percepatan untuk massa 2’)
grid

Kurva θ vs f untuk permukaan setengah bola dengan persamaan sebagai berikut:


<rumus>

List program MATLAB


x1=0:90;
x=x1*pi/180;
a=(2*x)-sin(2*x);
figure(1)
plot(x1,a);
b=sin(x);c=b.^2;
d=c*pi;
figure(2)
plot=(x1,d);
f=a./d
figure(3)
plot(x1,f)

<grafik>

Gambar kurva W vs f untuk permukaan setengah bola, dengan persamaan sebagai


berikut:
<rumus>

Nilai θ dimasukkan dari 0o s/d 90o

List program MATLAB

x1=0:90;
x=x1*pi/180;
m=sin(x)
w=pi.*(m.^2);
a=(2*x)-sin(2*x);
b=sin(x);
c=b.^2;
d=c*pi;
f=a./d
figure(1)
plot(w,f)
<grafik>

Kkurva θ – f untuk permukaan kerucut dengan persamaan sebagai berikut::


<rumus + kurva)

Kurva W vs f untuk permukaan kerucut dengan ersamaan sebagai berikut:


<rumus>

Nilai θ dimasukkan dari 10o s/d 80o


<kurva>

Anda mungkin juga menyukai