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.

[su_panel border=”2px solid #7FFF81″ shadow=”1px 2px 2px #7FFF81″ radius=”10″]

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.

[/su_panel]

[su_panel border=”2px solid #FF6473″ shadow=”1px 2px 2px #D95562″ radius=”10″]

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.

[/su_panel]

[su_panel border=”2px solid #65E6FF” shadow=”1px 2px 2px #65E6FF” radius=”10″]

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.

[/su_panel]

[su_panel border=”2px solid #A46D00″ shadow=”1px 2px 2px #A46D00″ radius=”10″]

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.

[/su_panel]

[su_panel border=”2px solid #D1FF8C” shadow=”1px 2px 2px #D1FF8C” radius=”10″]

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.

[/su_panel]

[su_panel border=”2px solid #C5BB4A” shadow=”1px 2px 2px #C5BB4A” radius=”10″]

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.

[/su_panel]

[su_panel border=”2px solid #CCFF33″ shadow=”1px 2px 2px #CCFF33″ radius=”10″]

\(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.

[/su_panel]

[su_panel border=”2px solid #FF3300″ shadow=”1px 2px 2px #FF3300″ radius=”10″]

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.

[/su_panel]

[su_panel border=”2px solid #9900FF” shadow=”1px 2px 2px #8900E5″ radius=”10″]

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.

[/su_panel]

[su_panel border=”2px solid #80B3FF” shadow=”1px 2px 2px #80B3FF” radius=”10″]

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. [/su_panel]

[su_panel border=”2px solid #FF33CC” radius=”10″]

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.

[/su_panel]

Uji perhitungan nilai gelombang sinus dengan Scilab

Pada post ini akan ditampilkan snippet yang memanfaatkan Scilab untuk melakukan perhitungan  average (mean / rata-rata) dan RMS (nilai efektif) dari gelombang sinus. Sama dengan LTspice, dari sisi pengguna Scilab adalah software yang secara legal gratis. Kita bisa mempergunakannya tanpa perlu membajak.

 

Jenis software (perangakat lunak) komputasi dapat digolongkan ke dalam beberapa bagian. Dua bagian yang menjadi perhatian untuk pembahasan kali ini adalah numerical analysis software dan computer algebra systems. Mesikipun sebagian software dapat melakukan keduanya (dua jenis pekerjaan matematis). Contoh dari numerical analysis software adalah MATLAB, Scilab dan GNU/Octave. Sedangkan Maxima termasuk ke dalam computer algebra systems.

Gambar 1.

Pada post sebelumya telah dibahas menganai perhitungan gelombang AC sinus ideal. Komputasi simbolik pada Gambar 1 dilakukan oleh software CAS yaitu Maxima. Nilai tegangan rata-ratanya (pada bentuk sinus ideal) sama dengan nol. Untuk menyegarkan kembali secara singkat mengenai average (dan RMS), bisa melihat kembali post ini.

Kita bisa melakukan simulasi yang sama dengan Scilab, namun untuk perhitungan numeris.

Sebelum melanjutkan dengan perhitungan, perlu dikemukakan bahwa Scilab dapat dipergunakan secara offline maupun online. Untuk penggunaan offline Scilab dapat bekerja di lingkungan sistem operasi Microsoft Windows maupun GNU/Linux (seperti Fedora, Debian, Ubuntu, Mint, Slackware). Untuk penggunaan online bisa dicari dengan kata kunci online scilab . Misalnya: rollapp.com/app/scilab.

Gambar 2. Scilab (offline) di sistem GNU/Linux.

 

Gambar 3. Scilab-cli (offline) di sistem GNU/Linux.

 

Gambar 4. Scilab (online) di rollApp.

 

((1/(1*%pi))*integrate('(sin(t))^1','t',0,(1*%pi)))

Gambar 5.

 

Perhitungan untuk rata-rata dengan mempergunakan setengah siklus sinus.

Gambar 6. Perhitungan nilai rata-rata gelombang sinus.

 

((1/(1*%pi))*integrate('(sin(t))^1','t',0,(1*%pi)))

Gambar 7.

 

Gambar 8.

 

Perhitungan untuk RMS dengan mempergunakan satu siklus penuh sinus.

Gambar 9.

 

Gambar 10.

 

sqrt((1/(2*%pi))*integrate('(cos(x))^2','x',0,(2*%pi)))
sqrt((1/(2*3.14))*integrate('(cos(x))^2','x',0,(2*3.14)))
sqrt((1/(2*%pi))*integrate('(sin(x))^2','x',0,(2*%pi)))
sqrt((1/(2*3.14))*integrate('(sin(x))^2','x',0,(2*3.14)))

Gambar 11.

 

Gambar 12.

 

Gambar 13.

 

Gambar 14.

 

Gambar 15.

 

 

Perhitungan nilai gelombang AC dengan nilai offset

Nilai rata-rata (average) dan efektif (RMS) untuk gelombang sinus (sinusoid) telah dibahas pada post yang lalu. Pada post itu diasumsikan nilai offset sebesar nol (zero), yang artinya tidak memiliki offset. Pada post ini dipaparkan contoh simulasi dan perhitungan untuk gelombang sinus yang memiliki nilai offset.

Gambar 1.

Gambar 2.

Pada Gambar 1 dan Gambar 2 dapat dilihat pengaturan sumber tegangan dengan frekuensi 50 Hz, nilai tegangan puncak AC (AC peak) sebesar 9 Volt dan nilai tegangan offset DC sebesar 12 Volt. Dari Gambar 1 bisa dilihat bahwa nilai tegangan selalu positif dan tidak pernah mengecil (turun) mendekati nilai nol (0 Volt).

Gambar 3.

screenshot_20161003-135424.jpgGambar 4. Perhitungan nilai tegangan RMS (AC+DC) dengan Algeo.

 

Di Gambar 4 dapat dilihat bahwa nilai yang dipakai dapat berupa nilai tegangan “RMS dari gelombang sinus AC tanpa DC offset” yang dikuadratkan atau dapat menggunakan separuh dari nilai tegangan puncak yang telah dikuadratkan. Hasil dari perhitungan yang dilakukan akan sama.

 

Gambar 5. Simulasi gelombang sinus dengan offset, puncak nilai positif dan negatif.

Pada Gambar 5, karena nilai amplitudo lebih besar dari nilai tegangan DC offset maka gelombang sinus melewati nilai nol dan memasuki wilayah negatif. Bisa dicoba untuk dibuktikan sendiri bahwa cara perhitungan masih tetap sama.

Sumber di Internet mengenai hal ini dan bisa dicari dengan variasi kata-kata kunci sine wave with DC offset.


update:

Untuk mencegah kemungkinan adanya kebingungan, secara teknis artikel ini lebih tepat ditulis sebagai “gelombang sinus dengan DC offset“. Sebab terdapat contoh di mana gelombang sinus hanya berada dalam satu kuadran, kebetulan yang dipilih yaitu kuadran positif. Sehingga, karena hanya berada di satu kuadran saja (satu polaritas) maka secara resmi gelombang itu adalah gelombang searah/DC.

Tetapi cara perhitungan ini juga berlaku untuk gelombang sinus AC dengan offset, seperti di Gambar 5. Selain itu, dalam pengukuran kadang-kadang akan ditemui penyebutan seperti di gambar berikut ini.

Gambar 6.

 


 

 

Rata-rata dan RMS dengan WolframAlpha

Pada post ini saya hanya akan menyampaikan beberapa screenshot yang menunjukkan bagaimana WolframAlpha dapat dipakai sebagai sarana belajar untuk memahami tentang average (rata-rata) dan RMS.

screenshot_20161002-013348.jpgGambar 1.

screenshot_20161002-014136.jpgGambar 2.

screenshot_20161002-013226.jpgGambar 3.

screenshot_20161001-000242.jpgGambar 4. Nilai average untuk setengah gelombang sinus (dari 0 sampai π).

screenshot_20160930-212738.jpgGambar 5. Nilai RMS untuk satu gelombang penuh sinus (dari 0 sampai 2π).

screenshot_20161002-013651.jpgGambar 6. Contoh konversi tegangan puncak ke RMS.

screenshot_20160930-210735.jpgGambar 7. Power RMS.

font cache: Ψ α β π θ μ Φ φ ω Ω ° ~ ± ≈ ≠ ≡ ≤ ≥ ∞ ∫ • ∆ 

 

Transformer tegangan bolak-balik satu fase dengan beban resistor

Pada artikel sebelumnya tentang gelombang sinus pada tegangan A.C., trafo tidak dibebani. Kali ini transformer dibebani dengan dua buah resistor 100 Ohm dengan kemampuan 5 Watt.

 

Gambar 1. Konfigurasi rangkaian percobaan

 

Gambar 2. Set-up uji dengan komponen.

 

Gambar 3. Bentuk gelombang sinus pada kedua kanal menunjukkan bentuk gelombang sinus yang tidak ideal.

 

Gambar 4. Hasil simulasi rangkaian pada LTspice.

Pada Gambar 4, dapat dilihat hasil simulasi dengan LTspice terhadap konfigurasi rangkaian yang diuji dengan oscilloscope. Pada gambar itu kurva gelombang berwarna merah menggambarkan gelombang tegangan pada node vout. Pada pengujian hardware node ini diukur menggunakan kanal satu (CH1) pada oscilloscope dengan hasil keluaran berupa kurva gelombang berwarna kuning. Sedangkan kurva gelombang berwarna biru menggambarkan gelombang tegangan pada node tengah. Pada pengujian hardware node ini diukur menggunakan kanal dua (CH2) pada oscilloscope dengan hasil keluaran berupa kurva gelombang berwarna cyan. Pada Gambar 4, terdapat kotak informasi yang memberikan keterangan tentang gelombang pada node tengah. Di sana terlihat nilai rms terhitung sebesar 6.2225 V.

 

Gambar 5. Tampilan DSO dengan parameter utama gelombang di CH1 dan CH2.

Pada Gambar 5, terlihat bahwa prinsip pembagi tegangan terbukti. Nilai pengukuran gampang untuk dikenali karena komponen resistor yang digunakan memiliki nilai nominal yang sama. Nilai tegangan di CH2 adalah separuh dari nilai tegangan di CH1. Pada Gambar 5 juga dapat dilihat bahwa nilai pengukuran Vrms untuk CH2 6.20V tidak jauh berbeda dengan hasil simulasi dengan LTspice yaitu 6.2225 V. Ini memberikan keyakinan pada kemampuan mesin SPICE seperti pada LTspice untuk melakukan simulasi rangkaian. Tergantung pada seberapa detail model yang kita pergunakan dalam melakukan simulasi.

 

Gambar 6. Hasil pengukuran pada kanal satu (CH1) DSO pada tegangan terminal (node Vout).

 

Gambar 7. Hasil pengukuran pada kanal dua (CH2) DSO pada tegangan node tengah.

 

Gambar 8. Panduan istilah untuk memahami parameter hasil pengukuran DSO.

 

Kita bisa melakukan perhitungan “di dalam kepala” (on the fly), di belakang amplop atau kertas lainnya, dengan kalkulator atau dengan aplikasi. Berikut contoh pemanfaatan aplikasi untuk pembuktian pengukuran dan simulasi kita.

Gambar 9. Contoh pemanfaatan aplikasi Android untuk penghitungan pembagi tegangan.

 

Gambar 10. Contoh penggunaan aplikasi untuk melihat hubungan berdasar hukum Ohm.

Pada Gambar 10, kita lihat perhitungan yang menghubungkan antara nilai tahanan, tegangan, dan arus listrik. Dengan cara ini kita bisa mengetahui besar arus yang melalui suatu path dengan mengukur tegangan listrik yang antara node-nodenya. Pada CH2 kita mengukur nilai tegangan sebesar 6.2 Volt, dengan pengetahuan bahwa nilai nominal komponen tahanan (resistor) adalah sebesar 100 Ohm maka kita bisa mengetahui bahwa nilai arus yang melalui kaki-kaki resistor itu sebesar 62 mA.

Dengan percobaan simulasi dan pengukuran ini kita juga bisa mengetahui bahwa bentuk gelombang arus (yang diwakili gelombang tegangan pada CH2) bentuknya sama dengan gelombang tegangan terminal masukan. Berbeda hanya pada besar nilainya saja. Dengan demikian pada rangkaian yang bersifat resistif, gelombang tegangan dan arus dikatakan sefase (berada pada fase yang sama).