|
Runge-Kutta Integration
Method for Dynamic System Simulation
Seperti pada metode backward difference, untuk mensimulasikan sistem dinamik menggunakan metode
integrasi runge-kutta, maka langkah-langkah yang dilakukan adalah:
1. Misalkan sistem yang akan disimulasikan adalah seperti gambar sebagai
berikut.

2. Mengubah persamaan fungsi alih dengan persamaan state space.
3. Menerapkan metode integrasi runge-kutta ke tiap persamaan statusnya.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%
mensimulasikan
%%
%%
sistem dinamik
%%
%%
y/u=1/(s^2+5)
%%
%%
dengan menggunakan metode integrasi euler
%%
%%
dengan mengubah ke persamaan
%%
%%
state spacenya menjadi
%%
%%
dx1/dt=x2
%%
%%
dx2/dt=-5x1+u
%%
%%
y=x1
%%
%%
maka dengan menerapkan metode Runge-Kutta 4
%%
%%
persamaan menjadi
%%
%%
a1=dt*x2
%%
%%
b1=dt*(-5(x1+a1/2)+u)
%%
%%
a2=dt*(x2+b1/2)
%%
%%
b2=dt*(-5(x1+a2/2)+u)
%%
%%
a3=dt*(x2+b2/2)
%%
%%
b3=dt*(-5(x1+a3/2)+u)
%%
%%
a4=dt*(x2+b3)
%%
%%
b4=dt*(-5(x1+a4/2)+u)
%%
%%
x1(k)=x1(k-1)+(1/6)*(a1+2*a2+2*a3+a4)
%%
%%
x2(k)=x2(k-1)+(1/6)*(b1+2*b2+2*b3+b4)
%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
clear;
x=linspace(0,10,1000);
x1(1)=0; %nilai awal=0
x2(1)=0; %
u(1)=0;
dt=0.01;
for i=2:1000
u(i)=1; %input step satuan
a1=dt*x2(i-1);
b1=dt*(-5*(x1(i-1)+a1/2)+u(i-1));
a2=dt*(x2(i-1)+b1/2);
b2=dt*(-5*(x1(i-1)+a2/2)+u(i-1));
a3=dt*(x2(i-1)+b2/2);
b3=dt*(-5*(x1(i-1)+a3/2)+u(i-1));
a4=dt*(x2(i-1)+b3);
b4=dt*(-5*(x1(i-1)+a4/2)+u(i-1));
x1(i)=x1(i-1)+(1/6)*(a1+2*a2+2*a3+a4);
x2(i)=x2(i-1)+(1/6)*(b1+2*b2+2*b3+b4);
end
plot(x,x1);
title('Simulasi Sistem Dinamik Menggunakan Runge-Kutta 4');
xlabel('Detik');
ylabel('Magnitude')
Hasil
simulasinya adalah sebagai berikut

|