Risanuri Hidayat

Teknik Elektro FT UGM

    • currently online
    • maximum concurrent
    • 1 total visitors

Memprogram S Function di Simulink

Posted by admin on May 19th, 2009

Mengembangkan Program (S-Function) di Simulink

Dalam contoh ini akan dibuat model simulink yang mengolah isyarat sinus. Masukan berupa isyarat sinus, di dalam block yang kita program isyarat tersebut diolah dengan persamaan sederhana,

y = 5*x+2;

y adalah keluaran
x adalah masukan (isyarat sinus)

Berikut langkah-langkahnya,

1. Click tombol simulink untuk mengeluarkan block-block diagram Simulink Library Browser di Matlab

fig10
Fig 1.

2. Untuk membuat model dengan Simulink, click File -> New -> Model, dari sini muncul jendela model
3. Dari Simulink Library Browser, click atau pilih User-Defined functions, kemudian pilih di system (S-Function). Caranya, click dan pegang block tersebut kemudian pindah dan letakkan di jendela model anda.

Fig 2.

5. Double click block ini. Akan muncul jendela baru. Isikan S-function name dengan nama block yang anda inginkan (misal dengan nama : “simulink_conto”). Click Apply dan kemudian OK. Nama block akan berganti menjadi “simulink_conto”.

Fig. 3

6. Lengkapi model anda. Dalam contoh ini ada masukan berupa input Sinus dan output Scope. Simpan sebagai: Simulink_model_conto.mdl

Fig. 4

7. Buka jendela editor Matlab. Dari jendela Matlab, File -> New -> M-File. Ketikkan program m-file untuk “simulink_conto”. Pastikan judul function-nya adalahsimulink_conto. Berikut contoh programnya. Dapat anda copy paste-kan ke editor Matlab anda.

function [sys,x0,str,ts] = simulink_conto(t,x,u,flag)
switch flag,
case 0
[sys,x0,str,ts] = mdlInitializeSizes; % Initialization
case 3
sys = testsinus(t,x,u); % Calculate outputs
case { 1, 2, 4, 9 }
sys = []; % Unused flags
otherwise
error(['Unhandled flag = ',num2str(flag)]); % Error handling
end;

function [sys,x0,str,ts] = mdlInitializeSizes
sizes = simsizes;
sizes.NumContStates= 0;
sizes.NumDiscStates= 0;
sizes.NumOutputs=    1;
sizes.NumInputs=     1;
sizes.DirFeedthrough=1;
sizes.NumSampleTimes=1;

sys = simsizes(sizes);
x0 = []; % No continuous states
str = []; % No state ordering
ts = [-1 0]; % Inherited sample time
end

function sys = testsinus(t,x,u)
sys = 5*u+2;
end

end

Setelah selesai, simpan sebagai “simulink_conto.m”.

8. Pastikan anda bekerja di folder yang sama, baik di jendela Matlab (Fig. 1), model (Simulink_model_conto.mdl, Fig. 4),  dan simulink_conto.m

9. Dari jendela model, jalankan model simulink ini. Simulation -> Start. Lihat Hasilnya di Scope (Double click Scope)

Fig. 4

.

Memanfaatkan S-Parameter

Masih dalam contoh yang sama, sekarang isyarat sinus diolah dengan menggunakan parameter-parameter masukan, sebagai berikut,

y = a*x+b;

Sebagai contoh a = 4, dan b = 2. Double click model simulink_conto, kemudian parameter a dan b dimasukkan dari sini,

fig10

Fig 5.

Kedua parameter tersebut dipisahkan dengan koma (” , “).

Dari m-file editor, tambahkan argument masukan, jumlah parameter, tambahkan source program untuk flag=1. Lengkapnya program  simulink_conto.m menjadi,

function [sys,x0,str,ts] = simulink_conto(t,x,u,flag, a, b)  % ada tambahan masukan yaitu :  a, b
switch flag,
:
case 1     % tambahkan case 1
sys = [0 0];
:
case { 2, 4, 9 } % <– case 1 hilang di sini, pindah ke atas
:
:
end;

function [sys,x0,str,ts] = mdlInitializeSizes(a, b)  % parameter a, b dimasukkan
:
sizes.NumContStates= 2;  % jumlah parameter ada 2
:
:
x0 = [a b];  % initial states-nya berupa vektor dengan panjang vektor 2
:

function sys = testsinus(t,x,u)
sys = a*u+b;   %  <<<———————persamaan-nya di sini
end

end

Jalankan, Simulation -> Start. Lihat Hasilnya di Scope (Double click Scope)

.

Ada 2 (dua) Keluaran

Sekarang keluaran terdiri atas dua vektor, atau matriks 2×1, yaitu

Dari m-file editor, tambahkan argument masukan, jumlah parameter, tambahkan source program untuk flag=1. Lengkapnya program  simulink_conto.m menjadi,

:

function [sys,x0,str,ts] = mdlInitializeSizes(a, b)  % parameter a, b dimasukkan
:
sizes.NumOutputs=    2;  % Jumlah output = 2
:
:

function sys = testsinus(t,x,u)
sys1 = a*u+b;
sys2 = -a*u+b;
sys = [sys1; sys2];
end

end

Hasil keluaran bisa dilihat dengan dua buah Scope dengan menggunakan Demux. Demux diperoleh dari Simulink Library Browser -> Simulink -> Commonly Used Block -> Demux. hasilnya,

Jalankan, Simulation -> Start. Lihat Hasilnya di Scope (Double click Scope)

.

Ada 2 (dua) Input

Jika input ada dua, atau lebih. Misal keluaran adalah fungsi dari dua buah masukan

Dari m-file editor, tambahkan argument masukan, jumlah parameter, tambahkan source program untuk flag=1. Lengkapnya program  simulink_conto.m menjadi,

:

function [sys,x0,str,ts] = mdlInitializeSizes(a, b)  % parameter a, b dimasukkan
:
sizes.NumOutputs=    1;
sizes.NumInputs=     2;
% Jumlah input = 2
:
:

function sys = testsinus(t,x,u)
sys = a*u(1)-b*u(2);
end

Masukan/input dihubungkan ke block dengan menggunakan Mux. Mux diperoleh dari Simulink Library Browser -> Simulink -> Commonly Used Block -> Mux. Berikut gambar diagramnya,

Jalankan, Simulation -> Start. Lihat Hasilnya di Scope (Double click Scope)

.

Semoga manfaat.

12 Responses to “Memprogram S Function di Simulink”

  1. เช่า Ts3 Says:

    เช่า Ts3…

    “[...]Risanuri Hidayat » Blog Archive » Memprogram S Function di Simulink[...]“…

  2. หนังx Says:

    หนังx…

    Risanuri Hidayat » Blog Archive » Memprogram S Function di Simulink…

  3. monster Legends Hack Says:

    monster Legends Hack…

    Risanuri Hidayat » Blog Archive » Memprogram S Function di Simulink…

  4. Hay Day Tips Says:

    Hay Day Tips…

    Risanuri Hidayat » Blog Archive » Memprogram S Function di Simulink…

  5. ดูหนังx Says:

    ดูหนังx…

    Risanuri Hidayat » Blog Archive » Memprogram S Function di Simulink…

  6. หนังโป๊ Says:

    หนังโป๊…

    Risanuri Hidayat » Blog Archive » Memprogram S Function di Simulink…

  7. relevant web page Says:

    relevant web page…

    Risanuri Hidayat » Blog Archive » Memprogram S Function di Simulink…

  8. kim Kardashian hollywood hack Says:

    kim Kardashian hollywood hack…

    Risanuri Hidayat » Blog Archive » Memprogram S Function di Simulink…

  9. Monster Legends Hack Tool Says:

    Monster Legends Hack Tool…

    Risanuri Hidayat » Blog Archive » Memprogram S Function di Simulink…

  10. Read the Full Document Says:

    Read the Full Document…

    Risanuri Hidayat » Blog Archive » Memprogram S Function di Simulink…

  11. hack swamp attack Says:

    hack swamp attack…

    Risanuri Hidayat » Blog Archive » Memprogram S Function di Simulink…

  12. hack real racing 3 Says:

    hack real racing 3…

    Risanuri Hidayat » Blog Archive » Memprogram S Function di Simulink…

Leave a Reply

You must be logged in to post a comment.