Saturday, April 03, 2010

Control System: Using Octave on Fedora 11

Octave adalah aplikasi semacam MATLAB, namun paket ini berbasis OSS. GNU Octave, version 3.2.3, dikembangkan oleh John W. Eaton dan kawan-kawannya. Untuk instalasi Octave, cukup jalankan perintah baris YUM, yaitu :

# yum install octave

Ada beberapa file yang ikut diinstalasi dengan total ukuran 19 MB. Untuk menjalankan aplikasi ini cukup dengan mengetikkan perintah baris :

$ octave

sampai muncul prompt octave seperti :

octave:1>

Sekarang Octave siap untuk digunakan. Misal, ingin menghitung operasi aritmetika dasar seperti (-1+2+3) x 5-2/3, maka perintah baris yang ditulis di Octave adalah sbb :

octave:1> (-1+2+3)*5-2/3
ans = 19.333

Hasilnya adalah 19.333. Jika ingin mengetahui hasil 2 pangkat 3, maka perintah baris yang ditulis adalah :

octave:2> 2^3
ans = 8

Atau jika ingin menghitung fungsi komposisi exp (sin (pi/2)), maka perintah baris yang ditulis adalah :

octave:3> exp(sin(pi/2))
ans = 2.7183

Namun ketika harus menghitung fungsi transfer untuk keperluan kontrol, seperti :

octave:4> num=[1,6,8];
octave:5> den=[1,0,-1,0];
octave:6> sys=tf(num,den)
error: `tf' undefined near line 6 column 5

muncul pesan kesalahan. Tampaknya paket GNU Octave, version 3.2.3 ini tidak dilengkapi dengan fungsi-fungsi untuk kontrol. Untuk itu tambahkan paket control ke dalam paket Octave dengan menjalankan YUM berikut ini :

# yum install octave-control

Perintah baris ini akan terinstall file-file dengan ukuran total 13 MB-an.

Sekarang coba jalankan lagi Octave dan hitung fungsi alih :

$ octave
octave:1> num=[1,6,8];
octave:2> den=[1,0,-1,0];
octave:3> sys=tf(num,den)
sys =
{
num =

1 6 8

den =

1 0 -1 0

sys =

0 1 0 0

tsam = 0
n = 3
nz = 0
yd = 0
inname =

{
[1,1] = u_1
}

outname =

{
[1,1] = y_1
}

stname =

{
[1,1] = x_1
[1,2] = x_2
[1,3] = x_3
}

}

octave:4>

Contoh lain :
octave:4> sys=tf2sys([2 1],[1 2 1],0.1);
warning: tf2sys is deprecated. Use tf instead.
octave:5> sys=tf([2 1],[1 2 1],0.1);
octave:6> sysout(sys)
Input(s)
1: u_1

Output(s):
1: y_1 (discrete)

Sampling interval: 0.1
transfer function form:
2*z^1 + 1
-----------------
1*z^2 + 2*z^1 + 1
octave:7>

Cara lain dalam menuliskan persamaan di atas :
octave:7> den=[1,0,-1,0];
octave:8> sys=tf(num,den);
octave:9> sysout(sys)
Input(s)
1: u_1

Output(s):
1: y_1

transfer function form:
1*s^2 + 6*s^1 + 8
-------------------------
1*s^3 + 0*s^2 - 1*s^1 + 0
octave:10>

octave:10> rlocus(sys)
warning: create_set is obsolete and will be removed from a future version of Octave, please use unique instead
ans = [](0x0)

octave:11> axis('equal')
octave:12> title('Root Locus Diagram for K (m=4)')


octave:13> grid
octave:14> grid
octave:15> [k,poles]=rlocfind(sys)
error: `rlocfind' undefined near line 10 column 11
octave:16>

Sumber :
Octave <-> Matlab Compatibility Summary di http://users.powernet.co.uk/kienzle/octave/matcompat/HTML/summary.html



No comments:

Post a Comment