Monday, April 12, 2010

Penggunaan Octave untuk penyelesaian fungsi alih

Contoh-contoh penggunaan Octave untuk penyelesaian partial-fraction expansion terhadap transfer function :




octave:1> num=[2 5 3 6];
octave:2> den=[1 6 11 6];
octave:3> [r,p,k]=residue(num,den)
r =

3.0000
-4.0000
-6.0000

p =

-1.00000
-2.00000
-3.00000

k = 2

Anehnya, hasil ini berbeda jika diselesaikan dengan MATLAB. Kira-kira, hasil dengan menggunakan MATLAB adalah :
r =
-6.0000
-4.0000
3.0000

p =
-3.00000
-2.00000
-1.00000

k = 2

Proses kebalikan dari partial-fraction expansion menjadi transfer function adalah :

octave:4> sys=tf(num,den);
octave:5> sysout(sys)
Input(s)
1: u_1

Output(s):
1: y_1

transfer function form:
2*s^3 + 5*s^2 + 3*s^1 + 6
--------------------------
1*s^3 + 6*s^2 + 11*s^1 + 6

Contoh lain penggunaan Octave adalah untuk membuat diagram Nyquist :

octave:7> T1=10;
octave:8> T2=5;
octave:9> num1=[T2 1];
octave:10> den1=[T1 1];
octave:11> G1=tf(num1,den1);
octave:12> nyquist(G1)
ans = [](0x0)
octave:13> num2=[T1 1];
octave:14> den2=[T2 1];
octave:15> G2=tf(num2,den2);
octave:16> nyquist(G2);

Yang diharapkan adalah, kedua grafik bisa ditayangkan dalam satu gambar. Namun entah kenapa belum bisa, meskipun sudah menggunakan perintah "hold on".

Menyimpan plot atau gambar

Agar gambar hasil plot bisa disimpan dalam sebuah file, gunakan perintah print.
octave:1> ezsurf('x*y*exp(-(x^2+y^2))')
octave:2> print("figure1.png")

octave:3> replot

Hasilnya akan disimpan di /home/user_ybs dengan nama file figure1.png. Atau disimpan di current directory.

Sebelum menggunakan perintah print, pernah dicoba untuk menyimpan hasil plot dengan menggunakan perintah :
> gset terminal png
> gset output "figure1.png"
Ternyata tidak berhasil menyimpan gambar ke dalam sebuah file. Mungkin perintah ini sudah tidak digunakan lagi. Sebelumnya lagi, untuk menyimpan gambar menggunakan tombol PrintScreen lalu di-paste ke GIMP lalu di-cut, dan kemudian disimpan. Ribet banget.

Unit-step response dari fungsi alih
octave:1> num=[0 0 25];
octave:2> den=[1 4 25];

octave:3> step(num,den)
error: step: sys must be a system data structure.
error: called from:
error: /usr/share/octave/packages/control-1.0.11/step.m at line 64, column 5
octave:3> sys=tf(num,den);

octave:4> step(sys);

arning: meaning may have changed due to change in precedence for && and || operators

octave:5> title('Unit Step Response of G(s)=25/(s^2+4s+25)')

octave:6> print("step1.png");

octave:7> replot octave:8>

Lihat juga :

http://edyjo.blog.unej.ac.id/category/octave/
http://matemania.wordpress.com/2009/01/15/
http://www.gnu.org/software/octave/doc/interpreter/

3 comments: