Fungsi pada Scilab dan cara lain menghitung RMS gelombang sinus

Pada post sebelumnya telah diungkapkan uji coba penggunaan Scilab untuk perhitungan numeris average (mean) dan RMS untuk gelombang sinus. Sedangkan perhitungan simbolik untuk menurunkan persamaan average dan RMS gelombang sinus dipergunakan Maxima, yang telah juga saya ungkap di post yang lain. Persamaan-persamaan ini bisa dibuktikan dengan percobaan menggunakan komponen hardware, dibantu dengan simulasi sebagai pembanding [link].

Pada post ini akan diungkapkan ulang mengenai penggunaan Scilab dengan fungsi. Juga sekaligus beberapa cara lain untuk menghitung hal yang sama yang pernah diungkap di post sebelumnya.

 

Gambar 1.

Pada bagian pertama ini percobaan penggunaan Scilab dimulai dari bentuk yang sederhana. Persamaan untuk mencari nilai RMS dari gelombang sinus dilakukan dengan pengaturan bahwa nilai amplitudonya (A_in) tetap yaitu bernilai satu.

Di bagian ini, sama seperti pada post terdahulu, kembali akan dimulai dengan penggunaan fungsi sqrt dan integrate.

clear;
clc;
A_in=1;
A_rms= A_in * sqrt((1/(2*%pi))*integrate('(sin(x))^2','x',0,(2*%pi)))

Gambar 2.

Gambar 3. Hasil perhitungan.

Pada Gambar 3, dapat dilihat hasil perhitungan numerik untuk mencari nilai RMS gelombang sinus.

Gambar 4. Nilai A_in diganti menjadi 100.

Gambar 5. Hasil perhitungan, nilai A_rms.

function [coef1,A_rms]=hitungRMS(A_in)
    coef1=sqrt((1/(2*%pi))*integrate('(sin(x))^2','x',0,(2*%pi)))
    A_rms=coef1*A_in
endfunction

Contoh salah:

Gambar 6.

Gambar 7.

Gambar 8.

Perhatikan penyebab sehingga Scilab menampilkan pesan kesalahan pada Gambar 8.

Contoh benar:

Gambar 9. Penampilan hasil perhitungan dalam matrix.

Gambar 10. Penamaan matrix pada pemanggilan fungsi.

Gambar 11. Pemanggilan fungsi tanpa menyediakan matrix untuk hasil.

Penggunaan fungsi linspace dan mean.

function Arms=hitungRMSv2(Ain,divr)
    x=linspace(0,2*%pi,divr)
    y=sin(x)
    Arms=Ain*sqrt(mean(y.^2))
endfunction

Gambar 12.

Gambar 13.

Fungsi disp.

function Arms=hitungRMSv2(Ain,divr)
    x=linspace(0,2*%pi,divr)
    y=sin(x)
    Arms=Ain*sqrt(mean(y.^2))
    disp (Arms, 'Nilai RMS dari Amplitudo yang anda masukkan')
endfunction

Gambar 14.

Gambar 15.

Gambar 16.

clear;
clc;
function y = f(x), y = x + 1, endfunction

Gambar 17.

Gambar 18.


clear;
clc;
function j = d(w), j = w + 1, endfunction

Gambar 19.


clear;
clc;
function j = d(w), j = w + 1, endfunction

A1=d(3)^2
A2=d(4)^2
A3=d(5)^2

Gambar 20.


clear;
clc;
function y = f(x), y = (sin(x))^2, endfunction

rms = sqrt( (1/(2*%pi)) * intg(0, 2*%pi, f))

Gambar 21.


clear;
clc;
function y = f(x), y = (sin(x))^2, endfunction
rms = sqrt( (1/(2*%pi)) * intg(0, 2*%pi, f));
printf("Nilai rms adalah :  " + string(rms));

Gambar 22.


Fungsi printf.

clear;
clc;
function y = f(x)
    y = (sin(x))^2
endfunction
rms = sqrt( (1/(2*%pi)) * intg(0, 2*%pi, f))

Gambar 23.


Fungsi intg.

clear;
clc;
function y = f(x)
    y = (sin(x))^2
endfunction
function hitungRMS(Ain)
    rmsNum = sqrt( (1/(2*%pi)) * intg(0, 2*%pi, f));
    rms = Ain * rmsNum;
    disp(rms,"Nilai rms dari sinyal masukan: ")
endfunction

Gambar 24.

Gambar 25.

Gambar 26.

Gambar 27.

clear;
clc;
function y = f(x)
    y = (sin(x))^2
endfunction
function hitungPeak(rms_in)
    rmsNum = sqrt( (1/(2*%pi)) * intg(0, 2*%pi, f));
    S_peak = rms_in / rmsNum;
    disp(S_peak,"Nilai amplitudo dari masukan rms :  ")
endfunction

Gambar 28.

Gambar 29.

Gambar 30.

function sunu_rms
    // clear;
    clc ;
    A = 1;
    x =0:1:10;

    sig =(integrate('A^2*(sin(x))^2','x',0,2*%pi))/(2*%pi);
    disp (sig, 'Kuadrat dari sinyal adalah : ');

    y2 = round (sig);
    disp (y2 , 'Pembulatan nilai kuadrat dari sinyal adalah:');

    A_rms=sqrt(sig);
    disp (A_rms , 'Nilai RMS (cara #1) dari sinyal adalah:');

    A_rms=A* sqrt((integrate('(sin(x))^2','x',0,2*%pi))/(2*%pi));
    disp (A_rms , 'Nilai RMS (cara #2) dari sinyal adalah:');

    A_rms=sqrt((integrate('(A*(sin(x)))^2','x',0,2*%pi))/(2*%pi));
    disp (A_rms , 'Nilai RMS (cara #3) dari sinyal adalah:');

    A_rms=sqrt((integrate('A^2*(cos(x))^2','x',0,2*%pi))/(2*%pi));
    disp (A_rms , 'Nilai RMS (cara #4) dari sinyal adalah:');        
endfunction

Gambar 31.

\(y = A\times \sin \left ( x+\theta \right )\)

clear;
clc;
function plotSig(Ain,res,end)
    //clc;
    A = Ain;
    f = 1;
    theta = 0;
    x = 0:res:end;
    y = A*sin((x)+theta);
    plot(x,y)
endfunction
plotSig(1,1e-3,2*%pi)

Gambar 32.

Gambar 33.


\(y = A \times \sin \left ( \left (2\times \pi \times f \times t \right ) +  \theta \right )\)
clear;
clc;
function plotSig(Ain,res,end)
    //clc;
    A = Ain;
    f = 1;
    theta = 0;
    x = 0:res:end;
    y = A*sin((2*%pi*f*x)+theta);
    plot(x,y)
endfunction
plotSig(1,1e-3,1)

Gambar 34.

Gambar 35.

clear;
clc;
function A_sesaat(Ain,t,thetaRad)
    //clc;
    y = Ain*sin((t)+thetaRad);
    disp(y,"Nilai amplitudo")
endfunction
A_sesaat(1,1.57,0)
A_sesaat(1, (1/4)*(2*%pi) ,0)

Gambar 36.


clear;
clc;
function A_sesaat(Ain,f,t,thetaRad)
    //clc;
    y = Ain*sin((2*%pi*f*t)+thetaRad);
    disp(y,"Nilai amplitudo")
endfunction
A_sesaat(1,50,0.005,0)
A_sesaat(1,50, asin(1)/(2*%pi*50) ,0)

Gambar 37.

Contoh penggunaan fungsi intsplin.

clc
t=0:1e-1:2*%pi;
sqrt((1/(2*%pi))*intsplin(t,sin(t).^2))

t=0:1e-3:2*%pi;
sqrt((1/(2*%pi))*intsplin(t,sin(t).^2))

Gambar 38.

Semua perhitungan yang menggunakan fungsi sin maupun cos dalam Scilab dihitung dalam radian. Sedangkan untuk mode derajat (degree) fungsi yang dipegunakan adalah sind dan cosd.

Gambar 39.

screenshot_20161012-020433.jpgGambar 40.

screenshot_20161012-020446.jpgGambar 41.

screenshot_20161012-020455.jpgGambar 42.

screenshot_20161012-021254.jpgGambar 43.

screenshot_20161012-021118.jpgGambar 44.

Leave a Reply

Your email address will not be published. Required fields are marked *