365 lines
20 KiB
TeX
365 lines
20 KiB
TeX
\chapter{\babDua}\label{bab:dua}
|
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
|
|
\section{Pemodelan Robot}
|
|
Robot menggunakan 3 aktuator penggerak dengan roda \textit{omniwheel}, sehingga robot dapat bergerak kesegala arah.
|
|
Pemasangan roda \textit{omniwheel} memiliki sudut $120^\circ$ terhadap roda lainnya.
|
|
Sehingga setiap roda memilki gaya dengan arah $90^\circ$ dari sudut pemasangannya.
|
|
Agar robot bergerak kesegala arah, ketiga aktuator harus dikendalikan untuk menghasilkan resultan gaya dengan arah yang diinginkan.
|
|
\begin{figure}
|
|
\centering
|
|
\begin{subfigure}[t]{.4\textwidth}
|
|
%[hbt!]
|
|
\centering
|
|
\includegraphics[scale=.4]{BAB2/img/MDC_fig1.png}
|
|
%% \caption{Geometri Robot (\kutip{CORREIA20127})}
|
|
\caption{}
|
|
% \label{fig:1}
|
|
\end{subfigure}
|
|
\begin{subfigure}[t]{.4\textwidth}
|
|
\centering
|
|
\includegraphics[scale=.5]{BAB2/img/ADNR_fig1.png}
|
|
%% \caption{Grafik Gaya Robot}
|
|
\caption{}
|
|
% \label{fig:adnr1}
|
|
\end{subfigure}
|
|
\caption{(a) Geometri Robot (\kutip{CORREIA20127}) (b) Grafik Gaya Robot}
|
|
\end{figure}
|
|
|
|
Kinematika robot dapat dirumuskan menjadi
|
|
\begin{align}
|
|
\dot{\textbf{x}}_p & = R^T(\theta)\dot{\textbf{x}}_r \label{eq:kinematika_robot}
|
|
\end{align}
|
|
dimana $R(\theta)$ adalah matrik rotasi ortogonal
|
|
\begin{align*}
|
|
R(\theta) =
|
|
\begin{bmatrix}
|
|
\cos(\theta) & \sin(\theta) & 0 \\
|
|
-\sin(\theta) & \cos(\theta) & 0 \\
|
|
0 & 0 & 1 \\
|
|
\end{bmatrix}
|
|
\end{align*}
|
|
Koordinat robot dideskripsikan menggunakan vector $\textbf{x}_p = \begin{bmatrix} x_p & y_p & \theta \end{bmatrix}^T$,
|
|
dimana $x_p$ dan $y_p$ adalah titik pusat, $P$, pada frame robot dan $\theta_p$ adalah selisih sudut antara \textit{angular} frame global dengan robot.
|
|
Vector $\dot{\textbf{x}}_r = \begin{bmatrix} \dot{x}_r & \dot{y}_r & \dot{\theta}_r \end{bmatrix}^T$ mendeskripsikan variable kecepatan terhadap titik pusat, $P$,dimana $w$ sebagai kecepatan angular robot terhadap frame global.
|
|
Karena robot memiliki aktuator, maka kecepatan roda memiliki hubungan terhadap kecepatan robot, dengan kata lain
|
|
kecepatan pada titik pusat adalah sebuah fungsi dengan kecepatan roda sebagai parameternya.
|
|
Untuk mendapatkan persamaan tersebut, maka dapat dianalisis dengan hukum \textit{Power}.
|
|
Apabila didefinisi hubungan antara gaya resultan robot dengan gaya yang dihasilkan roda
|
|
\begin{align*}
|
|
F_{\dot{x}_r} & = F_{w1}(t)\cos({90^\circ})+ F_{w2}(t) \cos({30^\circ})+ -F_{w3}(t) \cos({30^\circ}) \\
|
|
F_{\dot{y}_r} & = -F_{w1}(t) + F_{w2}(t) \cos({60^\circ})+ F_{w3}(t) \cos({60^{\circ}}) \\
|
|
\Gamma & = d.F_{w1}(t) + d.F_{w2}(t) + d.F_{w3}(t)
|
|
\end{align*}
|
|
dimana $d$ adalah jarak dari titik $P$ ke lokasi roda, maka akan didapat matriks geometri
|
|
antara $F_R = \begin{bmatrix} F_{\dot{x}_r} & F_{\dot{y}_r} & \Gamma \end{bmatrix}^T$ dengan
|
|
$F_w = \begin{bmatrix} F_{w1} & F_{w2} & F_{w3} \end{bmatrix}^T$
|
|
\begin{align}
|
|
F_R & = \begin{bmatrix}
|
|
0 & \frac{\sqrt{3}}{2} & -\frac{\sqrt{3}}{2} \\
|
|
-1 & \frac{1}{2} & \frac{1}{2} \\
|
|
l & l & l
|
|
\end{bmatrix}F_W \nonumber \\
|
|
F_R & = AF_w \label{eq:gaya_robot}
|
|
\end{align}
|
|
Dalam kasus robot, \textit{power} yang dihasilkan oleh setiap roda sama dengan \textit{power} dari robot itu sendiri
|
|
(\kutip{Hacene2019}).
|
|
Dengan menggunakan persamaan~\eqref{eq:gaya_robot} akan menghasilkan persamaan kinematika robot menggunakan 3 roda
|
|
\textit{omniwheel} \begin{align}
|
|
P_{w} & = P_{R} \nonumber \\
|
|
F_w^T\dot{x}_w & = F_R^T\dot{\textbf{x}}_r \nonumber \\
|
|
F_w^T\dot{x}_w & = {(A.F_w)}^T\dot{\textbf{x}}_r \nonumber \\
|
|
\dot{x}_w & = A^T\dot{\textbf{x}}_r \nonumber \\
|
|
\dot{\textbf{x}}_r & = {(A^T)}^{-1}\dot{x}_w\label{eq:kecepatan_robot}
|
|
\end{align}
|
|
dengan mensubtitusi persamaan~\eqref{eq:kecepatan_robot} pada~\eqref{eq:kinematika_robot}
|
|
\begin{align}
|
|
\dot{\textbf{x}}_p & = R^T{(\theta)}{(A^T)}^{-1}\dot{x}_w
|
|
\end{align}
|
|
|
|
Pergerakan robot juga dideskripsikan secara dinamika menggunakan hukum pergerakan dari \textit{Newton}.
|
|
\begin{align}
|
|
F_{\dot{x}_r}(t) - B_{\dot{x}_r}\dot{x}_r(t) - C_{\dot{x}_r}sgn(\dot{x}_r(t)) & = M\ddot{x}_r(t) \\
|
|
F_{\dot{y}_r}(t) - B_{\dot{y}_r}\dot{y}_r(t) - C_{\dot{y}_r}sgn(\dot{y}_r(t)) & = M\ddot{y}_r(t) \\
|
|
\Gamma(t) - B_{\dot{\theta}}\dot{\theta}(t) - C_{\dot{\theta} }sgn(\dot{\theta}(t) ) & = I\ddot{\theta}(t)
|
|
\end{align}
|
|
Dimana $B_i$ adalah \textit{viscous firctions} yang mempresentasikan perbandingan terbalik dari gaya yang
|
|
bersifat linier terhadap gaya dorong dan kecepatan robot. $C_i.sgn(\dot{i})$ adalah \textit{coulumb frictions}
|
|
yang mempresentasikan perbandingan terbalik terhadap perubahan kecepatan, dimana tanda bilangan berubah kebalikan
|
|
dari kecepatannya.
|
|
\begin{align*}
|
|
sgn(\alpha) = \begin{cases}
|
|
1, & \alpha >0 \\
|
|
0, & \alpha = 0 \\
|
|
-1, & \alpha < 0
|
|
\end{cases}
|
|
\end{align*}
|
|
seperti pada persamaan~\eqref{eq:gaya_robot}, resultan gaya robot berhubungan dengan gaya roda.
|
|
Maka gaya roda dapat dideskripsikan dengan menghubungkan antara gaya yang dihasilkan oleh motor
|
|
\begin{align}
|
|
F_{wi} & = \frac{\tau_i(t)}{r_i}
|
|
\end{align}
|
|
dimana $\tau_i(t)$ adalah torsi dari motor
|
|
\begin{align}
|
|
\tau_i(t) = l_i K_{ti} i_{ai}(t)
|
|
\end{align}
|
|
Untuk mendapatkan persamaan $i_{ai}(t)$, dapat digunakan deskripsi persamaan dinamika motor
|
|
\begin{align}
|
|
u_i(t) = L_{ai}\frac{di_{ai}(t)}{dt} + R_{ai}i_{ai}(t) + K_{vi}w_{mi} \label{eq:dyn_motor}
|
|
\end{align}
|
|
dimana $L_{ai}$ dan $R_{ai}$ adalah Induktasi dan resistansi armature motornya.
|
|
$K_{vi}$ adalah konstanta torsi motor dimana dalam satuan SI yang sama dengan $K_v$.
|
|
Dalam praktiknya apabila motor dalam kecepatan \textit{stady state} maka $\frac{di_{ai}}{dt}$
|
|
bernilai kecil, dan dalam persamaan~\eqref{eq:dyn_motor} nilai induktansi dapat diabaikan.
|
|
|
|
Penjabaran dinamika robot bisa diubah dalam bentuk \textit{state-space}
|
|
\begin{align}
|
|
\dot{x}(t) & = A_r x(t) + B_r u(t) + ksgn(x(t)) \label{eq:ss1} \\
|
|
y(t) & = Cx(t) \label{eq:ss2}
|
|
\end{align}
|
|
dimana vektor \textit{state} adalah $x(t) = \begin{bmatrix} x_p & y_p & \theta & \dot{x}_r & \dot{y}_r & \dot{\theta}_r \end{bmatrix}^T$, dan
|
|
vektor output $y(t) = \begin{bmatrix} x_p & y_p & \theta \end{bmatrix}^T$.
|
|
Dimana $l = l_{1 \dots 3}, r = r_{1 \dots 3} R_a = R_{a1 \dots 3}$ and $K_t = K_{t1 \dots 3}$, maka didapat matriks yang dapat mendeskripsikan
|
|
sistem robot
|
|
\begin{align*}
|
|
A_r & = \begin{bmatrix}
|
|
0 & 0 & 0 & 1 & 0 & 0 \\
|
|
0 & 0 & 0 & 0 & 1 & 0 \\
|
|
0 & 0 & 0 & 0 & 0 & 1 \\
|
|
0 & 0 & 0 & -\frac{3.l^2.K_t^2}{2.M.R_a.r^2}-\frac{B_{\dot{x}_r}}{M} & 0 & 0 \\
|
|
0 & 0 & 0 & 0 & -\frac{3.l^2.K_t^2}{2.M.R_a.r^2}-\frac{B_{\dot{y}_r}}{M} & 0 \\
|
|
0 & 0 & 0 & 0 & 0 & -\frac{3.l^2.K_t^2}{2.I.R_a.r^2}-\frac{B_{\dot{\theta}_r}}{I} \\
|
|
\end{bmatrix}, \\
|
|
B_r & = \begin{bmatrix}
|
|
0 & 0 & 0 & \\
|
|
0 & 0 & 0 & \\
|
|
0 & 0 & 0 & \\
|
|
0 & \frac{l.K_t}{R_a.r}. \frac{\cos(30^\circ)}{M} & -\frac{l.K_t}{R_a.r}.\frac{\cos(30^\circ)}{M} \\
|
|
\frac{l.K_t}{R_a.r}.\frac{-1}{M} & \frac{l.K_t}{R_a.r}.\frac{\cos(60^\circ)}{M} & \frac{l.K_t}{R_a.r}.\frac{\cos(60^\circ)}{M} \\
|
|
\frac{l.K_t}{R_a.r}.\frac{b}{I} & \frac{l.K_t}{R_a.r}.\frac{b}{I} & \frac{l.K_t}{R_a.r}.\frac{b}{I} \\
|
|
\end{bmatrix},
|
|
k = \begin{bmatrix}
|
|
0 & 0 & 0 & 0 & 0 & 0 & \\
|
|
0 & 0 & 0 & 0 & 0 & 0 & \\
|
|
0 & 0 & 0 & 0 & 0 & 0 & \\
|
|
0 & 0 & 0 & -\frac{C_{\dot{x}_r}}{M} & 0 & 0 \\
|
|
0 & 0 & 0 & 0 & -\frac{C_{\dot{x}_r}}{M} & 0 \\
|
|
0 & 0 & 0 & 0 & 0 & -\frac{C_{\dot{x}_r}}{M} \\
|
|
\end{bmatrix}, \\
|
|
C & = \begin{bmatrix}
|
|
1 & 0 & 0 & 0 & 0 & 0 & \\
|
|
0 & 1 & 0 & 0 & 0 & 0 & \\
|
|
0 & 0 & 1 & 0 & 0 & 0 & \\
|
|
0 & 0 & 0 & 1 & 0 & 0 & \\
|
|
0 & 0 & 0 & 0 & 1 & 0 & \\
|
|
0 & 0 & 0 & 0 & 0 & 1 & \\
|
|
\end{bmatrix}
|
|
\end{align*}
|
|
|
|
\section{Formasi Multi Robot}
|
|
Pembahasan kendali formasi mutli-robot dikutip dari paper oleh \kutip{Rozenheck2015}.
|
|
Dimana peneliti membahas mengenai kendali formasi robot berdasarkan jaraknya lalu dikendalikan dengan kendali PI\@.
|
|
Dari subbab ini akan dirangkum dari paper tersebut, yaitu mulai dari pendahuluan sampai kendalinya.
|
|
|
|
|
|
\subsection{Pendahuluan Formasi Multi Robot}
|
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
|
|
\subsubsection{Teori Graf}
|
|
Suatu graf $\graf$, dinotasikan sebagai $\graf=(\simpul, \sisi)$, merupakan pasangan $\simpul$ dan $\sisi$,
|
|
di mana $\simpul$ merupakan himpunan tak kosong berisikan simpul pada graf tersebut dan $\sisi$
|
|
merupakan himpunan sisi pada graf tersebut. Secara formal,
|
|
himpunan $\sisi$ dapat dinyatakan sebagai suatu koleksi subhimpunan berkardinalitas dua dari himpunan $\simpul$,
|
|
atau dalam notasi matematika $\sisi \subseteq \simpul \times \simpul $.
|
|
Sebuah $\graf$ diakatakan tak berarah (\textit{undirected graph}),
|
|
dimana himpunan sisi terdiri dari pasangan node $(i,j)$,
|
|
maka sisi tersebut tidak memiliki urutan arah antara node $i$ dengan $j$. Dinotasikan
|
|
$n \triangleq | \simpul |$ sebagai jumlah dari node dan $m \triangleq | \sisi |$ sebagai jumlah dari sisinya.
|
|
Apabila $(i,j) \in \sisi$ maka dapat disebut node $i$ dan $j$ berdekatan(\textit{adjecent}).
|
|
Himpunan dari node yang terhubung dari setiap simpul $i$ dinotasikan dengan $\tetangga_i \triangleq \{ j \in \simpul: (i,j) \in \sisi \}$, dan juga $i \sim j$.
|
|
Matiks insidensi (\textit{incidence}), $E \in \mathbb{R}^{n\times m}$, adalah matrik $\{0,\pm 1\}$ dimana
|
|
baris matrik mengindikasikan simpulnya dan kolomnya sebagai sisinya.
|
|
Matriks \textit{laplacian} didefinisikan dengan $L(\simpul)=EE^T$
|
|
|
|
\subsubsection{Teori Kekakuan Graf}
|
|
Koordinat multi dimensi adalah konfigurasi matrik vector yang terdisi dari beberapa koordinat node,
|
|
$x = \begin{bmatrix} x_1^T & \dots & x_n^T \end{bmatrix}^T \mathbb{R}^{2n}$, dimana
|
|
$x_i \in \mathbb{R}^2$ dan $x_i \neq x_j$ untuk semua $i \neq j$.
|
|
Difinisi sebuah kerangka (\textit{framework}), dinotasikan dengan $\graf(x)$,
|
|
adalah graf tak berarah $\graf$ dengan konfigurasi $x$, dimana simpul $i$ pada graf dipetakan
|
|
kedalam koordinat $x_i$. Misalkan $(i,j)\in \sisi$ sama dengan sisi ke $k$ dari graf langsung
|
|
dan mendefinisikan vektor sisi dari kerangka, atau dapat disebut sebagai vektor posisi relatif,
|
|
dengan $ e_k \triangleq x_j - x_i$. Untuk semua vektor sisi dapat dinotasikan dengan
|
|
$e=\begin{bmatrix}e_1^t & \dots & e_m^T\end{bmatrix} \in \mathbb{R}^{2m}$.
|
|
|
|
Apabila kerangka $\simpul(x)$ dengan vektor sisi $\{e_k\}_{k=1}^m$, maka didefinisisi fungsi sisi (\textit{edge function}), $F:\mathbb{R}^{2n} \times \simpul \rightarrow \mathbb{R}^m$
|
|
dengan
|
|
\begin{align}
|
|
F(x,\sisi) & \triangleq
|
|
\begin{bmatrix}
|
|
||e_1||^2 & \dots & ||e_m||^2
|
|
\end{bmatrix}^T
|
|
\end{align}
|
|
Matrik kekakuan $R(x)$ yang berhubungan erat dengan kerangka $\graf(x)$ dapat didefinisikan
|
|
dengan \textit{Jacobian} dari fungsi sisi (\kutip{Rozenheck2015}),
|
|
\begin{align}
|
|
R(x) & \triangleq \frac{\partial F(x,\graf)}{\partial x} \in \mathbb{R}^{m\times 2n} \nonumber \\
|
|
& \triangleq diag(e_i^T)(E^T \otimes I_2)
|
|
\end{align}
|
|
|
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
|
|
\subsection{Kendali Formasi Multi-Robot}
|
|
\label{subbab:KendaliFormasi}
|
|
Pembahasan kendali dari formasi multi robot menggunakan gradient control.
|
|
Apabila $n(n\geq 2)$ dimodelkan sebagai titik yang memiliki masa jenis bergerak diatas
|
|
dimensi 2(\textit{Euclidean Space}), maka pergerakan dimodelkan dengan
|
|
\begin{align}
|
|
\begin{cases}
|
|
\dot{x}_i(t) = & v_i(t) \quad i = 1, \dots, n. \\
|
|
\dot{v}_i(t) = & u_i(t)
|
|
\end{cases}
|
|
\label{eq:modelorde2}
|
|
\end{align}
|
|
dimana $v_i(t) \in \mathbb{R}^2$ dan $u_i(t)\in \mathbb{R}^2$adalah kecepatan dan input dari robot-$i$. Dinotasikan $d \in \mathbb{R}^m$ adalah vector jarak dimana isi
|
|
dari matrik tersebut adalah $d_k^2$ yang mempresentasikan jarak yang dinginkan antara
|
|
setiap robot $i$ dan $j$ untuk sisi $(i,j)\in \sisi$.
|
|
Lalu didefinisi persamaan potensial yang memiliki hubungan antara jarak robot yang diinginkan
|
|
dengan jarak yang sekarang
|
|
\begin{align}
|
|
\Phi(e) & = \frac{1}{2} \sum_{i \in \simpul }||v_i||^2 + \frac{1}{2} \sum_{k=1}^{m} \big( ||e_k||^2 - d_k^2 \big)^2
|
|
\end{align}
|
|
Pengamatan dilakukan agar $\Phi(e) =0$ jika dan hanya jika $||e_k||^2 = d_k^2,$ $\forall k = 1, \dots, m$.
|
|
Kendali dari setiap robot menggunakan gradien negatif dari fungsi potensial
|
|
\begin{align}
|
|
\begin{cases}
|
|
\dot{x} & = \frac{\partial \Phi(e)}{\partial v} + Bv_{ref} \\
|
|
& = v(t) + Bv_{ref} \\
|
|
\dot{v} & = -C \Big( \frac{\partial \Phi(e)}{\partial v} + \frac{\partial \Phi(e)}{\partial x} \Big) \\
|
|
& = -C(v(t) + R(x)^T(R(x)x(t) - d )) \\
|
|
& = u(t)
|
|
\end{cases}
|
|
\label{eq:dynmState}
|
|
\end{align}
|
|
Dimana $v \in \mathbb{R}^{2n}$ adalah vector kecepatan dari seluruh node. Penambahan refrensi kecepatan pada salah satu robot dapat menjadikan formasi bermanuver.
|
|
Dimana $B \in \mathbb{R}^{2n \times 2}$ digunakan untuk indikasi robot ke $i$ sebagai leader atau penerima kecepatan referensinya, $v_{ref} \in \mathbb{R}^2$ sebagai kecepatan referensi,
|
|
dan $C$ adalah konstanta pengendali yang akan digantikan dengan algoritma kendali.
|
|
Dengan menerapkan kendali Proportional-Integral, konstanta $C$ pada persamaan~\eqref{eq:kontrolinput}
|
|
dapat diubah dengan
|
|
|
|
\begin{align}
|
|
\begin{cases}
|
|
u_i(t) & = u_{k_{p1}}(t) + u_{k_{i1}}(t) + u_{k_{p1}}(t) + u_{k_{i1}}(t) \\
|
|
u_{k_{p1}}(t) & = -k_{p1}v_i(t) \\
|
|
u_{k_{p2}}(t) & = -R(x_1)^T k_{p2}(R(x_1)x_1(t) - d )) \\
|
|
u_{k_{i1}}(t) & = -k_{i1} \int_0^\tau x_2(\tau) d\tau \\
|
|
u_{k_{i2}}(t) & = -R(x_1)^T k_{i2} \int_0^{\tau} (R(x_1)x_1(\tau) - d )) d\tau
|
|
\end{cases}
|
|
\label{eq:kontrolinput}
|
|
\end{align}
|
|
Lalu pada bagian integrator( $k_i$ ), menghasilkan \textit{state} baru
|
|
\begin{align}
|
|
\begin{cases}
|
|
\dot{\xi}_1 =& -k_{i1} v(t)\\
|
|
\dot{\xi}_2 =& -k_{i2} (R(x_1)x(t) - d
|
|
\end{cases}
|
|
\end{align}
|
|
Dengan itu dapat digabungkan menjadi persamaan \textit{state-space} menggunakan persamaan~\eqref{eq:dynmState}
|
|
|
|
\begin{align*}
|
|
\begin{bmatrix}
|
|
\dot{x} \\ \dot{v} \\ \dot{\xi}_1 \\ \dot{\xi}_2
|
|
\end{bmatrix} &=
|
|
\begin{bmatrix}
|
|
0 & 1 & 0 & 0\\
|
|
-k_{p2}R(x)^T R(x) & -k_{p1} & -1 & -R(x)^T \\
|
|
0 & k_{i1} & 0 & 0 \\
|
|
k_{i2}R(x) & 0 & 0 & 0 \\
|
|
\end{bmatrix}
|
|
\begin{bmatrix}
|
|
x \\ v \\ \xi_1 \\ \xi_2
|
|
\end{bmatrix} +
|
|
\begin{bmatrix}
|
|
0 \\ k_{p2}R(x)^T \\ 0 \\ -k_{i2}
|
|
\end{bmatrix} d+Bv_{ref} \nonumber \\
|
|
\end{align*}
|
|
\begin{align}
|
|
\dot{x}_f(t) &= A_f(x)x_f(t)+B_f(x)d+Bv_{ref}
|
|
\label{eq:ss-formasi}
|
|
\end{align}
|
|
|
|
\begin{figure}
|
|
\centering
|
|
\includegraphics[scale=.35]{BAB2/img/plotMotion3Robot.png}
|
|
\caption{Plot motion 3 robot dengan nilai kp=80 dan ki=1}
|
|
\end{figure}
|
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
|
|
\section{Solusi Persamaan Differensial Secara Numerik}
|
|
\label{bab:dua:solusi_ODE}
|
|
|
|
Persamaan \eqref{eq:ss1} dan \eqref{eq:ss2} adalah persamaan differensial kontinu orde satu.
|
|
Dalam memecahkan persamaan differensial dapat dilakukan dalam bentuk kontinyu atau numerik.
|
|
Dalam kasus kendali, persamaan differensial dikalkulasi menggunakan komputer, sehingga persamaan tersebut
|
|
dapat dicari solusi pendekatannya menggunakan cara numerik. Persamaan orde satu dapat direpresentasikan
|
|
dengan persamaan
|
|
\begin{align}
|
|
\dot{x}(t) & = f(x,t), t_0 \leq t \leq t_f \label{eq:ode1.a} \\
|
|
y(t_0) & = x(t_0)\label{eq:ode1.b}
|
|
\end{align}
|
|
Dimana $x(t) \in \mathbb{R}^n$, adalah vector yang setiap iterasi waktu berubah, $f(x,t)\in \mathbb{R}^n$
|
|
adalah fungsi sistem, $t_0$ dan $t_f$ adalah waktu inisial dan waktu akhir.
|
|
Pada persamaan~\eqref{eq:ode1.a} dan~\eqref{eq:ode1.b} adalah persamaan dengan permasalahan nilai inisial~\kutip{Fabien2009}.
|
|
|
|
Apablia $t(0) = t(t_i)$ maka $t(1) = t(0)+ h$, dimana $h$ adalah perubahan kecil yang memiliki hubungan terhadap waktu.
|
|
Didalam metode algoritma yang akan dibahas, $h$ juga dapat disebut sebagai \textit{step size}, dan juga
|
|
$t[k] = t[k-1] + h$ adalah bentuk diskretnya untuk $k = 0,1,2,3\dots$.
|
|
|
|
Apabila $y(t[k])$ adalah nilai inisial ketika waktu $t[k]$, maka menggunakan deret \textit{taylor} akan didapat
|
|
pendekatan solusi untuk $y(t[k+1])$. Menggunakan orde pertama deret \textit{taylor} saja maka didapat
|
|
persamaan diskret solusi pendekatan $y(t[k])~\approx y[k]$
|
|
\begin{align}
|
|
y[k+1] = y[k]+f(y[k])h \label{eq:desode1}
|
|
\end{align}
|
|
|
|
Pendekatan lain dari persamaan~\eqref{eq:desode1} dengan mendefinisikan turunan $y(t[k])$ sebagai
|
|
\begin{align}
|
|
\dot{y}(t[k]) & = \frac{y[k+1] - y[k]}{h} \label{eq:desdotode1}
|
|
\end{align}
|
|
Persamaan~\eqref{eq:desode1} dan~\eqref{eq:desdotode1} dinamakan dengan persamaan \textit{explicite Euler method} dan \textit{forward Euler formula}.
|
|
Apabila persamaan~\eqref{eq:desdotode1} disubtitusikan pada~\eqref{eq:ode1.a}
|
|
dan~\eqref{eq:ode1.b} maka didapat persamaan~\eqref{eq:desode1}.
|
|
Untuk diterapkan dalam komputer, dapat mengikuti algoritme~\ref{algo:eEuler}.
|
|
|
|
\begin{algorithm}
|
|
\DontPrintSemicolon
|
|
\KwInput{Integer $N > 0$, $h=(t_f-t_i)/N$, $t[0]=t_i$, $y[0]=y[t_i]=y_i$).}
|
|
\KwOutput{$y[k]$, $k=1,2,\dots,N$.}
|
|
\For{$k=0,1,\dots,N-1$}
|
|
{$y[k+1] = y[k]+hf(y[k])$\;
|
|
$t[k+1] = t[k] + h$
|
|
}
|
|
\caption{\textit{Explicite Euler Method}}
|
|
\label{algo:eEuler}
|
|
\end{algorithm}
|
|
|
|
\subsection{Stabilitas Metode Euler}
|
|
\begin{figure}
|
|
\centering
|
|
\includegraphics[scale=.5]{BAB2/img/equler_explicit.png}
|
|
\caption[]{Area stabilitas metode explicit euler(\kutip{Fabien2009}).}
|
|
\label{fig:explicit_euler}
|
|
\end{figure}
|
|
Properti dari stabilitas metode Euler dapat diperoleh dengan mendefinisikan persamaan differensial secara general $\dot{x}=\alpha x$,dimana $\alpha$ adalah bilangan complex
|
|
dari parameter sistem.
|
|
Dengan menggunakan pendekatan sebelumnya maka persamaan masalah dapat didefinisikan
|
|
\begin{align}
|
|
y[k+1] = (1+h\lambda)y[k] = (1 + z)y[k]= R(z)y[k] \label{eq:disstab}
|
|
\end{align}
|
|
Dari persamaan~\eqref{eq:disstab}, sistem akan stabil apabila $|R(z)|\leq 1$.
|
|
Jika digambarkan dalam grafik complex stabilitas maka dapat dilihat pada gambar~\ref{fig:explicit_euler}
|