From ed8c978947643cfcb80e0427a4e7850485a50d90 Mon Sep 17 00:00:00 2001 From: a2nr Date: Wed, 20 Nov 2019 20:01:02 +0700 Subject: [PATCH] BESOK BIMBINGAN !!! --- BAB1/bab1.tex | 17 +- BAB2/bab2.tex | 74 +++---- BAB3/bab3.tex | 19 +- BAB3/img/Structur_pen.dia | Bin 0 -> 1539 bytes BAB3/img/kerangka_pen.png | Bin 45129 -> 0 bytes BAB3/img/structur.tex | 201 +++++++++++++++++ BAB4/bab4.tex | 19 +- BAB4/img/statefeedback.dia | Bin 0 -> 2816 bytes BAB4/img/statefeedback.tex | 428 +++++++++++++++++++++++++++++++++++++ 9 files changed, 699 insertions(+), 59 deletions(-) create mode 100644 BAB3/img/Structur_pen.dia delete mode 100644 BAB3/img/kerangka_pen.png create mode 100644 BAB3/img/structur.tex create mode 100644 BAB4/img/statefeedback.dia create mode 100644 BAB4/img/statefeedback.tex diff --git a/BAB1/bab1.tex b/BAB1/bab1.tex index 148d9f6..3a7e72f 100644 --- a/BAB1/bab1.tex +++ b/BAB1/bab1.tex @@ -29,7 +29,7 @@ kendali formasi ditujukan pada pengembangan arsitektur. Pengembangan dilakukan karena untuk memecahkan permasalahan dalam hal mendistribusikan tugas pada setiap robot yang terbatas dan juga berdasarkan keterbatasannya pada robot itu sendiri. Selain itu juga dilakukan pengembangan dalam algoritma strategi, contoh strategi tersebut adalah \textit{leader-follower}, struktur virtual, -berdasarkan tingkahlaku, menggunkana teori graph, dan memanfaatkan medan potensial buatan. +berdasarkan tingkahlaku, menggunakan teori graph, dan memanfaatkan medan potensial buatan. Dalam literatur oleh \kutip{OH2015424}, kendali formasi dikategorikan menjadi 3 bagian, yaitu berdasarkan posisi, perpindahan, dan jarak. @@ -37,8 +37,9 @@ Ketiga bagian tersebut tertuju pada jawaban dari pertanyaan, "variable apa yang sebagai sensor" dan "variable apa yang aktif dikendalikan oleh sistem multi-agent untuk mencapai formasi yang diinginkan". Untuk menetapkan variable sebagai sensor dapat dilakukan berdasarkan ketentuan kemampuan -individu agent. Berikut adalah penjelasan singkat dari ketiga bagian tersebut: -Pada formasi berdasarkan posisi, +individu agent. + +Pada formasi berdasarkan posisi, dimana agent diharuskan memiliki kemampuan untuk mengetahui koordinatnya sendiri berdasarkan koordinat global. Sehingga, koordinat tujuan didistribusikan kepada setiap agent dan agent bekerja untuk mencapai koordinat tersebut. Karena itu, kebutuhan individu untuk berinteraksi dengan individu lain sangat kecil. @@ -46,6 +47,7 @@ Metode formasi ini pada praktiknya, interaksi antar individu dilakukan untuk men saturasi akselerasi, dan lain-lain. Karena metode ini membutuhkan kemampuan untuk mengetahui koordinat global, dibutuhkan biaya yang lebih dibanding metode lain dalam perangkat sensor yang \textit{advance}, seperti sensor GPS; + Pada formasi kendali berdasarkan perpindahan, secara individu agent tidak mengetahui koordinatnya berdasarkan koordinat global. Akan tetapi, individu agent memiliki koordinatnya sendiri terhadap individu agent tetangganya dan harus dilakukan penyearahan terhadap koordinat setiap robot dengan koordinat global. @@ -56,6 +58,7 @@ dan semua agent harus menyearahkan koordinatnya berdasarkan koordinat global, serta dibutuhkan interaksi antara individu lain untuk mencapai formasi yang dinginkan. Permasalahan pada metode ini ditujukan pada kendali formasi pada agent yang bersifat heterogent, pemeliharaan dalam komunikasi, dan kemampuan dalam menghindari rintangan; + Pada formasi berdasarkan jarak, dimana setiap individu agent memiliki koordinatnya masing-masing dan tidak perlu disearahkan dengan koordinat global. Variable yang dikendalikan pada meteode ini adalah variabel jarak antar agent yang terhubung, @@ -73,7 +76,7 @@ Dengan harapan penerapan real model tersebut dapat bermanfaat terhadap masyaraka %% Penelitian oleh \kutip{Khaledyan2018} juga memaparkan formasi berdasarkan jarak, tapi %% ditujukan penerapan terhadap mobile-robot nonholonomic dengan memberikan kecepatan -%% refrensi nya terhadap semua robot. +%% referensi nya terhadap semua robot. %-----------------------------------------------------------------------------% @@ -81,9 +84,9 @@ Dengan harapan penerapan real model tersebut dapat bermanfaat terhadap masyaraka %-----------------------------------------------------------------------------% Tiga kategori metode formasi yaitu berdasarkan posisi, perpindahan, dan jarak hampir diperlukan analisa terhadap model yang nyata. Pada penelitian oleh \kutip{Rozenheck2015}, yang memaparkan permasalahan kendali formasi berdasarkan jarak menggunakan kendali \textit{Proportional-Integral}(PI). -Peneliti memberikan kecepatan refrensi secara konstan terhadap salah satu dari agent. +Peneliti memberikan kecepatan referensi secara konstan terhadap salah satu dari agent. Lalu agent lainya memberikan respon untuk tetap menjaga formasi yang diinginkan. -Tidak dejalaskan alasan oleh peneliti kenapa salah satu agent diberi kecepatan refrensi, +Tidak dejalaskan alasan oleh peneliti kenapa salah satu agent diberi kecepatan referensi, akan tetapi metode tersebut hampir sama dengan strategi \textit{leader-follower}. \textit{Leader-follower} mengharuskan agent tetangga untuk beradaptasi terhadap perubahan tetangga lainnya secara spesifik. Akan tetapi ada perbedaan antara \textit{leader-follower} dengan metode berdasarkan jarak, @@ -127,6 +130,6 @@ Tujuan dari penelitian ini adalah Manfaat dari penelitian ini adalah \begin{enumerate} -\item Memberikan refrensi untuk permasalahan kendali multi-robot, kususnya pada permasalhaan kendali formasi, terhadap model yang lebih nyata. +\item Memberikan referensi untuk permasalahan kendali multi-robot, kususnya pada permasalhaan kendali formasi, terhadap model yang lebih nyata. \item Membuka peluang penelitian dibidang kendali mengenai kendali formasi pada kendali multi-robot dilingkungan Fakultas Teknik Elektro, Universitas Brawijaya. \end{enumerate} diff --git a/BAB2/bab2.tex b/BAB2/bab2.tex index 88d3b6c..3f37b12 100644 --- a/BAB2/bab2.tex +++ b/BAB2/bab2.tex @@ -30,7 +30,7 @@ Agar robot bergerak kesegala arah, ketiga aktuator harus dikendalikan untuk meng Kinematika robot dapat dirumuskan menjadi \begin{align} - \dot{\textbf{x}}_p & = R^T(\theta).\dot{\textbf{x}}_r, \label{eq:kinematika_robot} + \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*} @@ -39,7 +39,7 @@ dimana $R(\theta)$ adalah matrik rotasi ortogonal \cos(\theta) & \sin(\theta) & 0 \\ -\sin(\theta) & \cos(\theta) & 0 \\ 0 & 0 & 1 \\ - \end{bmatrix}. + \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. @@ -49,8 +49,8 @@ kecepatan pada titik pusat adalah sebuah fungsi dengan kecepatan roda sebagai pa 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} & = \cos{90^\circ}.F_{w1}(t) + \cos{30^\circ}.F_{w2}(t) + (-\cos{30^\circ}).F_{w3}(t) \\ - F_{\dot{y}_r} & = (-1).F_{w1}(t) + \cos{60^\circ}.F_{w2}(t) + \cos{60^{\circ}}.F_{w3}(t) \\ + 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 @@ -61,29 +61,29 @@ $F_w = \begin{bmatrix} F_{w1} & F_{w2} & F_{w3} \end{bmatrix}^T$ 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 & = A.F_w. \label{eq:gaya_robot} + \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} + 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 + \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) + 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} @@ -91,9 +91,9 @@ yang mempresentasikan perbandingan terbalik terhadap perubahan kecepatan, dimana dari kecepatannya. \begin{align*} sgn(\alpha) = \begin{cases} - 1, & \alpha >0 \\ - 0, & \alpha = 0 \\ - -1, & \alpha < 0. + 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. @@ -103,11 +103,11 @@ Maka gaya roda dapat dideskripsikan dengan menghubungkan antara gaya yang dihasi \end{align} dimana $\tau_i(t)$ adalah torsi dari motor \begin{align} - \tau_i(t) = l_i.K_{ti}.i_{ai}(t). + \tau_i(t) = l_iK_{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} + 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$. @@ -116,8 +116,8 @@ bernilai kecil, dan dalam persamaan~\eqref{eq:dyn_motor} nilai induktansi dapat Penjabaran dinamika robot bisa diubah dalam bentuk \textit{state-space} \begin{align} - \dot{x}(t) & = A_r.x(t) + B_r.u(t) + K.sgn(x(t)) \label{eq:ss1} \\ - y(t) & = C.x(t) \label{eq:ss2} + \dot{x}(t) & = A_rx(t) + B_ru(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$ . @@ -230,12 +230,12 @@ 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_{k=1}^{m} \big( ||e_k||^2 - d_k^2 \big)^2. + \Phi(e) & = \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} - u_i(t) & = - \Big( \frac{\partial \Phi(e)}{\partial x_i} \Big)= -\sum_{j \sim i} \Big( ||e_k||^2 - d_k^2 \Big).e_k. + u_i(t) & = - \Big( \frac{\partial \Phi(e)}{\partial x_i} \Big)= -\sum_{j \sim i} \Big( ||e_k||^2 - d_k^2 \Big)e_k \end{align} Dengan itu, dapat disubtitusi kedalam persamaan dinamika pada persamaan~\eqref{eq:modelorde1} \begin{align} @@ -244,22 +244,22 @@ Dengan itu, dapat disubtitusi kedalam persamaan dinamika pada persamaan~\eqref{e Penambahan refresni kecepatan pada salah satu robot dapat menjadikan formasi bermanuver. Skema kendali secara general dapat didefinisi dengan \begin{align} - \dot{x}(t) & = u(t) + B.v_{ref} \\ + \dot{x}(t) & = u(t) + Bv_{ref} \\ u(t) & = -R(x)^TC\Big(R(x)x(t)- d\Big) \label{eq:kontrolinput} \end{align} -dimana $B \in \mathbb{R}^{2n \times 2}$ digunakan untuk indikasi robot ke $i$ sebagai leader atau penerima kecepatan refrensinya -, $v_{ref} \in \mathbb{R}^2$ sebagai kecepatan refrensi, +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} - u(t) & = u_{k_p}(t) + u_{k_i}(t) \\ - u_{k_p}(t) & = -R(x)^Tk_p\Big(R(x)x(t)- d\Big) \\ - u_{k_i}(t) & = -R(x)^Tk_i\int_0^T\Big(R(x)x(\tau)- d\Big)d\tau. + u(t) & = u_{k_p}(t) + u_{k_i}(t) \\ + u_{k_p}(t) & = -R(x)^Tk_p\Big(R(x)x(t)- d\Big) \\ + u_{k_i}(t) & = -R(x)^Tk_i\int_0^T\Big(R(x)x(\tau)- d\Big)d\tau \end{align} Lalu pada bagian integrator( $k_i$ ), menghasilkan \textit{state} baru \begin{align} - \dot{\xi}(t) & = k_i\Big(R(x)x(t)- d\Big). + \dot{\xi}(t) & = k_i\Big(R(x)x(t)- d\Big) \end{align} Dengan itu dapat digabungkan menjadi persamaan \textit{state-space} menggunakan persamaan~\eqref{eq:dynmState} \begin{align} @@ -294,7 +294,7 @@ dapat dicari solusi pendekatannya menggunakan cara numerik. Persamaan orde satu 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} + 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. @@ -308,12 +308,12 @@ Apabila $y(t[k])$ adalah nilai inisial ketika waktu $t[k]$, maka menggunakan der 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} + 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} + \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} @@ -326,7 +326,7 @@ Untuk diterapkan dalam komputer, dapat mengikuti algoritme~\ref{algo:eEuler}. \KwOutput{$y[k]$, $k=1,2,\dots,N$.} \For{ $k=0,1,\dots,N-1$} { - $y[k+1] = y[k]+h.f(y[k])$\; + $y[k+1] = y[k]+hf(y[k])$\; $t[k+1] = t[k] + h$ } \caption{\textit{Explicite Euler Method}} @@ -337,14 +337,14 @@ Untuk diterapkan dalam komputer, dapat mengikuti algoritme~\ref{algo:eEuler}. \begin{figure} \centering \includegraphics[scale=.5]{BAB2/img/equler_explicit.png} - \caption[]{Area stabilitas metode explicit euler. (\kutip{Fabien2009})} + \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} + 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} diff --git a/BAB3/bab3.tex b/BAB3/bab3.tex index f86d139..ac985a4 100644 --- a/BAB3/bab3.tex +++ b/BAB3/bab3.tex @@ -7,7 +7,8 @@ bidan kendali multi-robot, khususnya dalam kendali formasi. \begin{figure} \centering - \includegraphics[scale=.8]{BAB3/img/kerangka_pen.png} + % \includegraphics[scale=.8]{BAB3/img/kerangka_pen.png} + \input{BAB3/img/structur.tex} \caption{Kerangka Penelitian} \label{fig:krangka_pen} \end{figure} @@ -17,19 +18,21 @@ bidan kendali multi-robot, khususnya dalam kendali formasi. Kendali formasi adalah kendali multi-agent untuk mencapai suatu formasi yang diinginkan. Banyak metode yang telah digunakan berdasarkan berbagai macam kategori. Dapat diperhatikan dalam gambar~\ref{fig:krangka_pen}, dari berbagai metode teresebut -dapat disimpulkan dalam 3 kategori secara general. +dapat disimpulkan dalam 3 kategori secara general. Yaitu berbasis posisi, pergerakan, dan jarak. Pembagian kategori tersebut berdasarkan kemampuan sensor yang digunakan dan -penggunaan komunikasi dalam metodenya. +penggunaan komunikasi dalam metodenya. Dari ketiga kategori tersebut, kendali formati berbasis jarak sangat dibutuhkan pembahasan mengenai penerapan metode tersebut pada agent yang nyata. -Pada penelitian oleh \kutip{Rozenheck2015}, kendali formasi berdasarkan jarak menggunakan -kendali PI untuk mengendalikan multi-robot dan menghasilkan pergerakan yang baik. -Maka dari itu sebagai langkah awal, kerangka kendali-PI dapat terapkan menggunakan agent nyata. +Pada penelitian oleh \kutip{Rozenheck2015}, kendali formasi berdasarkan jarak dikendalikan +menggunakan kendali PI dan menghasilkan pergerakan yang baik. +Dalam penelitian ini akan difokuskan pada kendali formasi berbasis jarak +dengan mengembangkan kendali PI yang telah dilakukan sebelumnya beserta menggunakan +model nyata. \section{Permasalah dan Solusi} -Pada krangka kendali-PI pada persamaan~\eqref{eq:ss-formasi}, state yang digunakan membutuhkan +Pada krangka kendali-PI pada persamaan~\eqref{eq:ss-formasi}, state yang digunakan membutuhkan koordinat relatif dari tetangganya. Akan tetapi pada batasan penelitian ini, sensor yang digunakan hanya memberikan jarak terhadap tetangganya. Secara pendekatan, digunakan koordinat polar dan diubah ke koordinat kartesian. Akan tetapi koordinat polar membutuhkan sudut antara agent dan tetangganya. @@ -39,6 +42,6 @@ untuk menentukan sudutnya. Algoritma \textit{cosinus} tersebut hanya berlaku apabila tetangga tidak melakukan pergerakan dan akan dijalankan algoritma tersebut ketika inisialisasi. Ketika tetangga melakukan pergerakan, tetangga mengirimkan informasi percepatan koordinatnya pada agent. -Kegunaannya adalah sebagai refrensi perubahan koordinat terhadap tetangga. +Kegunaannya adalah sebagai referensi perubahan koordinat terhadap tetangga. Sehingga harapanya adalah kerangka kendali-PI dapat digunakan menggunakan sensor yang hanya mendeteksi jarak saja. diff --git a/BAB3/img/Structur_pen.dia b/BAB3/img/Structur_pen.dia new file mode 100644 index 0000000000000000000000000000000000000000..8dbc126a11954fe9734918cc3f65652e245a485c GIT binary patch literal 1539 zcmV+e2K@OSiwFP!000021MOT%bK5o)zWY~j=&M5!+!;sCH0k7&PCHF|$wdQ^FolL9 zG$3SIm;CmEi%N0R!cF52IAbTGAK!-u;(Z^MXMgzkx(=lmL}N^%xeOFlmQdsoA4kDl z{`;>l?;QE#)7=Lj!}t6vpl~hmC!#p{G?!P5ZQjpjyWLI+_c3IIDk0t~F`E5^VF+j3 zXeK}1Nz$vzL={l}z8#Xxf$@Or{Y2m_Y;pnt*I9_ZB zWfWpohg=d8A{b?;jBZhPoY;dQA7ZD%>Jh~=W{jL^|1%8ZO9IGl|CepoW^O>Se>!nX z7A;qy;|dEbxZ{RPK(8KS1vf1@#yLi0kXvn;^%7gD96Pee` zL$Jj@iq8zQvQ3MpRcg-EHS9@l|J zOvN(Xqsy^+V66}iR;(QiD6X1az;IOnEUg>Zl29MfbD^mUD5HUnaPf-l77g>%^CEl= z$_Dy=S%7QtbQ}i^z1Chzm5eGjZ9S1rLrZp*8SAe&<{9ImmU-(5vTvI?kcc$_CikUh zxW?grE`Nm#N78SEj|%<|8t&Mujs&tyw6qQ^XXePe0^yzwCFp)lUNueYZ z(lxDg+1i6Eglj_K(s~OQ7=5Ls7Aq}aO|sGgVx=Wy>kY})ABj_**Fvr)lq!%eNVqH!o*gA2EeaPeRb1V4~`pvYf9O3AK0E=}v{dJ&>1 zI4!wmUx>4!ej$QKqKGE|&(pXjeTSb&E1uuELNJo<_DjW2=dxWJ2o2AI{8_F1EU@aQ z^pzG3NkL}s*|V;=#@HOhK^!+_Ak9&LV>wfBP*Y^B`gx(5AR$3Q6OoW}4GHOElTd|z z4vTlIH~pkX1j)hWnDoQltB#$(=!T;|YCr)xa8nX;45u4%(xVGLbk6foLx{~*E-+Gt zu{-i2Pd0B;ZAnvEp2+Rn=Jv7holkCcl;l3YGiMKRlw^;8kYw@i`9YGSxT7B=*~z2V7{Y>tV_hg%#aIf^QFoWw(Q;S;)B#Q_()X5>|Ec=OCl*Q3MuMcO*@;DZ zY-;ln1I+PHEE>aXx8&MtxVAX8_; zw?d*N#CA(lu`emry3j0TjWLTUz=>iCQD`A(tplyux1}}h&Cps>&|sSdt2xIrn72i1 phw1u-W`foPt-Uo`b9>WT_Bs8tQcriKzdQAG_b*;*=*z5 literal 0 HcmV?d00001 diff --git a/BAB3/img/kerangka_pen.png b/BAB3/img/kerangka_pen.png deleted file mode 100644 index 34557d2183ddc41a0d4b9455ccfb476719b358c6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 45129 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 S@^Ja(!~X$#QZVnxr2qg@Jb0x5 literal 0 HcmV?d00001 diff --git a/BAB4/img/statefeedback.tex b/BAB4/img/statefeedback.tex new file mode 100644 index 0000000..19aaae8 --- /dev/null +++ b/BAB4/img/statefeedback.tex @@ -0,0 +1,428 @@ +% Graphic for TeX using PGF +% Title: /home/adnr/Disk/Opo/PASCASARJANA/RESEARCH/[T01][FormationControl]/[DOC]/-p-formation-control/BAB4/img/statefeedback.dia +% Creator: Dia v0.97.3 +% CreationDate: Wed Nov 20 19:18:20 2019 +% For: adnr +% \usepackage{tikz} +% The following commands are not supported in PSTricks at present +% We define them conditionally, so when they are implemented, +% this pgf file will use them. +\ifx\du\undefined + \newlength{\du} +\fi +\setlength{\du}{15\unitlength} +\begin{tikzpicture} +\pgftransformxscale{1.000000} +\pgftransformyscale{-1.000000} +\definecolor{dialinecolor}{rgb}{0.000000, 0.000000, 0.000000} +\pgfsetstrokecolor{dialinecolor} +\definecolor{dialinecolor}{rgb}{1.000000, 1.000000, 1.000000} +\pgfsetfillcolor{dialinecolor} +\definecolor{dialinecolor}{rgb}{1.000000, 1.000000, 1.000000} +\pgfsetfillcolor{dialinecolor} +\fill (25.933938\du,13.079601\du)--(25.933938\du,14.979601\du)--(27.933938\du,14.979601\du)--(27.933938\du,13.079601\du)--cycle; +\pgfsetlinewidth{0.100000\du} +\pgfsetdash{}{0pt} +\pgfsetdash{}{0pt} +\pgfsetmiterjoin +\definecolor{dialinecolor}{rgb}{0.000000, 0.000000, 0.000000} +\pgfsetstrokecolor{dialinecolor} +\draw (25.933938\du,13.079601\du)--(25.933938\du,14.979601\du)--(27.933938\du,14.979601\du)--(27.933938\du,13.079601\du)--cycle; +% setfont left to latex +\definecolor{dialinecolor}{rgb}{0.000000, 0.000000, 0.000000} +\pgfsetstrokecolor{dialinecolor} +\node at (26.933938\du,14.147101\du){B}; +\definecolor{dialinecolor}{rgb}{1.000000, 1.000000, 1.000000} +\pgfsetfillcolor{dialinecolor} +\fill (32.307505\du,15.980854\du)--(32.307505\du,17.880854\du)--(34.307505\du,17.880854\du)--(34.307505\du,15.980854\du)--cycle; +\pgfsetlinewidth{0.100000\du} +\pgfsetdash{}{0pt} +\pgfsetdash{}{0pt} +\pgfsetmiterjoin +\definecolor{dialinecolor}{rgb}{0.000000, 0.000000, 0.000000} +\pgfsetstrokecolor{dialinecolor} +\draw (32.307505\du,15.980854\du)--(32.307505\du,17.880854\du)--(34.307505\du,17.880854\du)--(34.307505\du,15.980854\du)--cycle; +% setfont left to latex +\definecolor{dialinecolor}{rgb}{0.000000, 0.000000, 0.000000} +\pgfsetstrokecolor{dialinecolor} +\node at (33.307505\du,17.048354\du){A}; +% setfont left to latex +\definecolor{dialinecolor}{rgb}{0.000000, 0.000000, 0.000000} +\pgfsetstrokecolor{dialinecolor} +\node[anchor=west] at (33.684415\du,14.049135\du){}; +% setfont left to latex +\definecolor{dialinecolor}{rgb}{0.000000, 0.000000, 0.000000} +\pgfsetstrokecolor{dialinecolor} +\node[anchor=west] at (33.684415\du,14.049135\du){}; +\definecolor{dialinecolor}{rgb}{1.000000, 1.000000, 1.000000} +\pgfsetfillcolor{dialinecolor} +\fill (25.861280\du,18.033522\du)--(25.861280\du,19.933522\du)--(28.136280\du,19.933522\du)--(28.136280\du,18.033522\du)--cycle; +\pgfsetlinewidth{0.100000\du} +\pgfsetdash{}{0pt} +\pgfsetdash{}{0pt} +\pgfsetmiterjoin +\definecolor{dialinecolor}{rgb}{0.000000, 0.000000, 0.000000} +\pgfsetstrokecolor{dialinecolor} +\draw (25.861280\du,18.033522\du)--(25.861280\du,19.933522\du)--(28.136280\du,19.933522\du)--(28.136280\du,18.033522\du)--cycle; +% setfont left to latex +\definecolor{dialinecolor}{rgb}{0.000000, 0.000000, 0.000000} +\pgfsetstrokecolor{dialinecolor} +\node at (26.998780\du,19.101022\du){$-K_s$}; +\definecolor{dialinecolor}{rgb}{1.000000, 1.000000, 1.000000} +\pgfsetfillcolor{dialinecolor} +\fill (19.855010\du,13.092569\du)--(19.855010\du,14.992569\du)--(21.855010\du,14.992569\du)--(21.855010\du,13.092569\du)--cycle; +\pgfsetlinewidth{0.100000\du} +\pgfsetdash{}{0pt} +\pgfsetdash{}{0pt} +\pgfsetmiterjoin +\definecolor{dialinecolor}{rgb}{0.000000, 0.000000, 0.000000} +\pgfsetstrokecolor{dialinecolor} +\draw (19.855010\du,13.092569\du)--(19.855010\du,14.992569\du)--(21.855010\du,14.992569\du)--(21.855010\du,13.092569\du)--cycle; +% setfont left to latex +\definecolor{dialinecolor}{rgb}{0.000000, 0.000000, 0.000000} +\pgfsetstrokecolor{dialinecolor} +\node at (20.855010\du,14.160069\du){N}; +\definecolor{dialinecolor}{rgb}{1.000000, 1.000000, 1.000000} +\pgfsetfillcolor{dialinecolor} +\fill (39.243408\du,13.117161\du)--(39.243408\du,15.017161\du)--(41.243408\du,15.017161\du)--(41.243408\du,13.117161\du)--cycle; +\pgfsetlinewidth{0.100000\du} +\pgfsetdash{}{0pt} +\pgfsetdash{}{0pt} +\pgfsetmiterjoin +\definecolor{dialinecolor}{rgb}{0.000000, 0.000000, 0.000000} +\pgfsetstrokecolor{dialinecolor} +\draw (39.243408\du,13.117161\du)--(39.243408\du,15.017161\du)--(41.243408\du,15.017161\du)--(41.243408\du,13.117161\du)--cycle; +% setfont left to latex +\definecolor{dialinecolor}{rgb}{0.000000, 0.000000, 0.000000} +\pgfsetstrokecolor{dialinecolor} +\node at (40.243408\du,14.184661\du){C}; +\pgfsetlinewidth{0.100000\du} +\pgfsetdash{}{0pt} +\pgfsetdash{}{0pt} +\pgfsetbuttcap +{ +\definecolor{dialinecolor}{rgb}{0.000000, 0.000000, 0.000000} +\pgfsetfillcolor{dialinecolor} +% was here!!! +\pgfsetarrowsend{stealth} +\definecolor{dialinecolor}{rgb}{0.000000, 0.000000, 0.000000} +\pgfsetstrokecolor{dialinecolor} +\draw (36.095981\du,14.035578\du)--(39.195771\du,14.059183\du); +} +\pgfsetlinewidth{0.100000\du} +\pgfsetdash{}{0pt} +\pgfsetdash{}{0pt} +\pgfsetbuttcap +\pgfsetmiterjoin +\pgfsetlinewidth{0.100000\du} +\pgfsetbuttcap +\pgfsetmiterjoin +\pgfsetdash{}{0pt} +\definecolor{dialinecolor}{rgb}{1.000000, 1.000000, 1.000000} +\pgfsetfillcolor{dialinecolor} +\pgfpathellipse{\pgfpoint{30.746893\du}{14.018707\du}}{\pgfpoint{0.481715\du}{0\du}}{\pgfpoint{0\du}{0.481715\du}} +\pgfusepath{fill} +\definecolor{dialinecolor}{rgb}{0.000000, 0.000000, 0.000000} +\pgfsetstrokecolor{dialinecolor} +\pgfpathellipse{\pgfpoint{30.746893\du}{14.018707\du}}{\pgfpoint{0.481715\du}{0\du}}{\pgfpoint{0\du}{0.481715\du}} +\pgfusepath{stroke} +\pgfsetbuttcap +\pgfsetmiterjoin +\pgfsetdash{}{0pt} +\definecolor{dialinecolor}{rgb}{0.000000, 0.000000, 0.000000} +\pgfsetstrokecolor{dialinecolor} +\draw (30.406269\du,13.678083\du)--(30.746893\du,14.018707\du)--(30.406269\du,14.359333\du); +\pgfsetlinewidth{0.000100\du} +\pgfsetbuttcap +\pgfsetmiterjoin +\pgfsetdash{}{0pt} +\definecolor{dialinecolor}{rgb}{0.000000, 0.000000, 0.000000} +\pgfsetfillcolor{dialinecolor} +\pgfpathmoveto{\pgfpoint{31.087519\du}{13.678083\du}} +\pgfpathcurveto{\pgfpoint{31.087519\du}{13.678083\du}}{\pgfpoint{31.228608\du}{13.802888\du}}{\pgfpoint{31.228608\du}{14.018707\du}} +\pgfpathcurveto{\pgfpoint{31.228608\du}{14.234525\du}}{\pgfpoint{31.087519\du}{14.359333\du}}{\pgfpoint{31.087519\du}{14.359333\du}} +\pgfpathlineto{\pgfpoint{30.746893\du}{14.018707\du}} +\pgfpathlineto{\pgfpoint{31.087519\du}{13.678083\du}} +\pgfusepath{fill} +\definecolor{dialinecolor}{rgb}{0.000000, 0.000000, 0.000000} +\pgfsetstrokecolor{dialinecolor} +\pgfpathmoveto{\pgfpoint{31.087519\du}{13.678083\du}} +\pgfpathcurveto{\pgfpoint{31.087519\du}{13.678083\du}}{\pgfpoint{31.228608\du}{13.802888\du}}{\pgfpoint{31.228608\du}{14.018707\du}} +\pgfpathcurveto{\pgfpoint{31.228608\du}{14.234525\du}}{\pgfpoint{31.087519\du}{14.359333\du}}{\pgfpoint{31.087519\du}{14.359333\du}} +\pgfpathlineto{\pgfpoint{30.746893\du}{14.018707\du}} +\pgfpathlineto{\pgfpoint{31.087519\du}{13.678083\du}} +\pgfusepath{stroke} +\pgfsetlinewidth{0.100000\du} +\pgfsetdash{}{0pt} +\pgfsetdash{}{0pt} +\pgfsetmiterjoin +\pgfsetbuttcap +{ +\definecolor{dialinecolor}{rgb}{0.000000, 0.000000, 0.000000} +\pgfsetfillcolor{dialinecolor} +% was here!!! +\pgfsetarrowsend{stealth} +{\pgfsetcornersarced{\pgfpoint{0.000000\du}{0.000000\du}}\definecolor{dialinecolor}{rgb}{0.000000, 0.000000, 0.000000} +\pgfsetstrokecolor{dialinecolor} +\draw (32.257320\du,16.930952\du)--(30.742474\du,16.931095\du)--(30.746088\du,14.549137\du); +}} +\pgfsetlinewidth{0.100000\du} +\pgfsetdash{}{0pt} +\pgfsetdash{}{0pt} +\pgfsetbuttcap +{ +\definecolor{dialinecolor}{rgb}{0.000000, 0.000000, 0.000000} +\pgfsetfillcolor{dialinecolor} +% was here!!! +\pgfsetarrowsend{stealth} +\definecolor{dialinecolor}{rgb}{0.000000, 0.000000, 0.000000} +\pgfsetstrokecolor{dialinecolor} +\draw (27.980266\du,14.026612\du)--(30.216282\du,14.020223\du); +} +\pgfsetlinewidth{0.100000\du} +\pgfsetdash{}{0pt} +\pgfsetdash{}{0pt} +\pgfsetbuttcap +{ +\definecolor{dialinecolor}{rgb}{0.000000, 0.000000, 0.000000} +\pgfsetfillcolor{dialinecolor} +% was here!!! +\pgfsetarrowsend{stealth} +\definecolor{dialinecolor}{rgb}{0.000000, 0.000000, 0.000000} +\pgfsetstrokecolor{dialinecolor} +\draw (30.789204\du,11.923480\du)--(30.757143\du,13.511139\du); +} +\pgfsetlinewidth{0.100000\du} +\pgfsetdash{}{0pt} +\pgfsetdash{}{0pt} +\pgfsetbuttcap +{ +\definecolor{dialinecolor}{rgb}{0.000000, 0.000000, 0.000000} +\pgfsetfillcolor{dialinecolor} +% was here!!! +\pgfsetarrowsend{stealth} +\definecolor{dialinecolor}{rgb}{0.000000, 0.000000, 0.000000} +\pgfsetstrokecolor{dialinecolor} +\draw (31.278799\du,14.019807\du)--(34.002385\du,14.025438\du); +} +\definecolor{dialinecolor}{rgb}{1.000000, 1.000000, 1.000000} +\pgfsetfillcolor{dialinecolor} +\fill (35.530923\du,9.989037\du)--(35.530923\du,11.889037\du)--(38.145923\du,11.889037\du)--(38.145923\du,9.989037\du)--cycle; +\pgfsetlinewidth{0.100000\du} +\pgfsetdash{}{0pt} +\pgfsetdash{}{0pt} +\pgfsetmiterjoin +\definecolor{dialinecolor}{rgb}{0.000000, 0.000000, 0.000000} +\pgfsetstrokecolor{dialinecolor} +\draw (35.530923\du,9.989037\du)--(35.530923\du,11.889037\du)--(38.145923\du,11.889037\du)--(38.145923\du,9.989037\du)--cycle; +% setfont left to latex +\definecolor{dialinecolor}{rgb}{0.000000, 0.000000, 0.000000} +\pgfsetstrokecolor{dialinecolor} +\node at (36.838423\du,11.056537\du){sgn}; +\pgfsetlinewidth{0.100000\du} +\pgfsetdash{}{0pt} +\pgfsetdash{}{0pt} +\pgfsetmiterjoin +\pgfsetbuttcap +{ +\definecolor{dialinecolor}{rgb}{0.000000, 0.000000, 0.000000} +\pgfsetfillcolor{dialinecolor} +% was here!!! +\pgfsetarrowsend{stealth} +{\pgfsetcornersarced{\pgfpoint{0.000000\du}{0.000000\du}}\definecolor{dialinecolor}{rgb}{0.000000, 0.000000, 0.000000} +\pgfsetstrokecolor{dialinecolor} +\draw (37.129244\du,14.043446\du)--(37.124094\du,16.913417\du)--(34.357160\du,16.926058\du); +}} +\pgfsetlinewidth{0.100000\du} +\pgfsetdash{}{0pt} +\pgfsetdash{}{0pt} +\pgfsetbuttcap +\pgfsetmiterjoin +\pgfsetlinewidth{0.100000\du} +\pgfsetbuttcap +\pgfsetmiterjoin +\pgfsetdash{}{0pt} +\definecolor{dialinecolor}{rgb}{1.000000, 1.000000, 1.000000} +\pgfsetfillcolor{dialinecolor} +\pgfpathellipse{\pgfpoint{23.937528\du}{14.059213\du}}{\pgfpoint{0.481715\du}{0\du}}{\pgfpoint{0\du}{0.481715\du}} +\pgfusepath{fill} +\definecolor{dialinecolor}{rgb}{0.000000, 0.000000, 0.000000} +\pgfsetstrokecolor{dialinecolor} +\pgfpathellipse{\pgfpoint{23.937528\du}{14.059213\du}}{\pgfpoint{0.481715\du}{0\du}}{\pgfpoint{0\du}{0.481715\du}} +\pgfusepath{stroke} +\pgfsetbuttcap +\pgfsetmiterjoin +\pgfsetdash{}{0pt} +\definecolor{dialinecolor}{rgb}{0.000000, 0.000000, 0.000000} +\pgfsetstrokecolor{dialinecolor} +\draw (23.596904\du,13.718589\du)--(23.937528\du,14.059213\du)--(23.596904\du,14.399839\du); +\pgfsetlinewidth{0.000100\du} +\pgfsetbuttcap +\pgfsetmiterjoin +\pgfsetdash{}{0pt} +\definecolor{dialinecolor}{rgb}{0.000000, 0.000000, 0.000000} +\pgfsetfillcolor{dialinecolor} +\pgfpathmoveto{\pgfpoint{24.278153\du}{13.718589\du}} +\pgfpathcurveto{\pgfpoint{24.278153\du}{13.718589\du}}{\pgfpoint{24.419243\du}{13.843394\du}}{\pgfpoint{24.419243\du}{14.059213\du}} +\pgfpathcurveto{\pgfpoint{24.419243\du}{14.275031\du}}{\pgfpoint{24.278153\du}{14.399839\du}}{\pgfpoint{24.278153\du}{14.399839\du}} +\pgfpathlineto{\pgfpoint{23.937528\du}{14.059213\du}} +\pgfpathlineto{\pgfpoint{24.278153\du}{13.718589\du}} +\pgfusepath{fill} +\definecolor{dialinecolor}{rgb}{0.000000, 0.000000, 0.000000} +\pgfsetstrokecolor{dialinecolor} +\pgfpathmoveto{\pgfpoint{24.278153\du}{13.718589\du}} +\pgfpathcurveto{\pgfpoint{24.278153\du}{13.718589\du}}{\pgfpoint{24.419243\du}{13.843394\du}}{\pgfpoint{24.419243\du}{14.059213\du}} +\pgfpathcurveto{\pgfpoint{24.419243\du}{14.275031\du}}{\pgfpoint{24.278153\du}{14.399839\du}}{\pgfpoint{24.278153\du}{14.399839\du}} +\pgfpathlineto{\pgfpoint{23.937528\du}{14.059213\du}} +\pgfpathlineto{\pgfpoint{24.278153\du}{13.718589\du}} +\pgfusepath{stroke} +\pgfsetlinewidth{0.100000\du} +\pgfsetdash{}{0pt} +\pgfsetdash{}{0pt} +\pgfsetbuttcap +{ +\definecolor{dialinecolor}{rgb}{0.000000, 0.000000, 0.000000} +\pgfsetfillcolor{dialinecolor} +% was here!!! +\pgfsetarrowsend{stealth} +\definecolor{dialinecolor}{rgb}{0.000000, 0.000000, 0.000000} +\pgfsetstrokecolor{dialinecolor} +\draw (24.419243\du,14.059213\du)--(25.883795\du,14.041967\du); +} +\pgfsetlinewidth{0.100000\du} +\pgfsetdash{}{0pt} +\pgfsetdash{}{0pt} +\pgfsetbuttcap +{ +\definecolor{dialinecolor}{rgb}{0.000000, 0.000000, 0.000000} +\pgfsetfillcolor{dialinecolor} +% was here!!! +\pgfsetarrowsend{stealth} +\definecolor{dialinecolor}{rgb}{0.000000, 0.000000, 0.000000} +\pgfsetstrokecolor{dialinecolor} +\draw (21.904601\du,14.049286\du)--(23.455813\du,14.059213\du); +} +\pgfsetlinewidth{0.100000\du} +\pgfsetdash{}{0pt} +\pgfsetdash{}{0pt} +\pgfsetmiterjoin +\pgfsetbuttcap +{ +\definecolor{dialinecolor}{rgb}{0.000000, 0.000000, 0.000000} +\pgfsetfillcolor{dialinecolor} +% was here!!! +\pgfsetarrowsend{stealth} +{\pgfsetcornersarced{\pgfpoint{0.000000\du}{0.000000\du}}\definecolor{dialinecolor}{rgb}{0.000000, 0.000000, 0.000000} +\pgfsetstrokecolor{dialinecolor} +\draw (25.811887\du,18.975969\du)--(23.916019\du,18.963903\du)--(23.935195\du,14.591173\du); +}} +\pgfsetlinewidth{0.100000\du} +\pgfsetdash{}{0pt} +\pgfsetdash{}{0pt} +\pgfsetmiterjoin +\pgfsetbuttcap +{ +\definecolor{dialinecolor}{rgb}{0.000000, 0.000000, 0.000000} +\pgfsetfillcolor{dialinecolor} +% was here!!! +\pgfsetarrowsend{stealth} +{\pgfsetcornersarced{\pgfpoint{0.000000\du}{0.000000\du}}\definecolor{dialinecolor}{rgb}{0.000000, 0.000000, 0.000000} +\pgfsetstrokecolor{dialinecolor} +\draw (37.129244\du,14.043446\du)--(37.128188\du,18.934303\du)--(28.186438\du,18.977751\du); +}} +\definecolor{dialinecolor}{rgb}{1.000000, 1.000000, 1.000000} +\pgfsetfillcolor{dialinecolor} +\fill (29.809367\du,9.974961\du)--(29.809367\du,11.874961\du)--(31.809367\du,11.874961\du)--(31.809367\du,9.974961\du)--cycle; +\pgfsetlinewidth{0.100000\du} +\pgfsetdash{}{0pt} +\pgfsetdash{}{0pt} +\pgfsetmiterjoin +\definecolor{dialinecolor}{rgb}{0.000000, 0.000000, 0.000000} +\pgfsetstrokecolor{dialinecolor} +\draw (29.809367\du,9.974961\du)--(29.809367\du,11.874961\du)--(31.809367\du,11.874961\du)--(31.809367\du,9.974961\du)--cycle; +% setfont left to latex +\definecolor{dialinecolor}{rgb}{0.000000, 0.000000, 0.000000} +\pgfsetstrokecolor{dialinecolor} +\node at (30.809367\du,11.042461\du){K}; +\pgfsetlinewidth{0.100000\du} +\pgfsetdash{}{0pt} +\pgfsetdash{}{0pt} +\pgfsetbuttcap +{ +\definecolor{dialinecolor}{rgb}{0.000000, 0.000000, 0.000000} +\pgfsetfillcolor{dialinecolor} +% was here!!! +\pgfsetarrowsend{stealth} +\definecolor{dialinecolor}{rgb}{0.000000, 0.000000, 0.000000} +\pgfsetstrokecolor{dialinecolor} +\draw (35.480929\du,10.935868\du)--(31.858859\du,10.927412\du); +} +\pgfsetlinewidth{0.100000\du} +\pgfsetdash{}{0pt} +\pgfsetdash{}{0pt} +\pgfsetbuttcap +{ +\definecolor{dialinecolor}{rgb}{0.000000, 0.000000, 0.000000} +\pgfsetfillcolor{dialinecolor} +% was here!!! +\pgfsetarrowsend{stealth} +\definecolor{dialinecolor}{rgb}{0.000000, 0.000000, 0.000000} +\pgfsetstrokecolor{dialinecolor} +\draw (18.222764\du,13.998829\du)--(19.805582\du,14.025131\du); +} +% setfont left to latex +\definecolor{dialinecolor}{rgb}{0.000000, 0.000000, 0.000000} +\pgfsetstrokecolor{dialinecolor} +\node[anchor=west] at (17.372771\du,13.998829\du){r}; +% setfont left to latex +\definecolor{dialinecolor}{rgb}{0.000000, 0.000000, 0.000000} +\pgfsetstrokecolor{dialinecolor} +\node[anchor=west] at (24.698449\du,13.515596\du){u}; +% setfont left to latex +\definecolor{dialinecolor}{rgb}{0.000000, 0.000000, 0.000000} +\pgfsetstrokecolor{dialinecolor} +\node[anchor=west] at (29.042810\du,13.272441\du){}; +% setfont left to latex +\definecolor{dialinecolor}{rgb}{0.000000, 0.000000, 0.000000} +\pgfsetstrokecolor{dialinecolor} +\node[anchor=west] at (25.646752\du,13.975968\du){}; +% setfont left to latex +\definecolor{dialinecolor}{rgb}{0.000000, 0.000000, 0.000000} +\pgfsetstrokecolor{dialinecolor} +\node[anchor=west] at (36.896701\du,13.603131\du){x}; +\pgfsetlinewidth{0.100000\du} +\pgfsetdash{}{0pt} +\pgfsetdash{}{0pt} +\pgfsetbuttcap +{ +\definecolor{dialinecolor}{rgb}{0.000000, 0.000000, 0.000000} +\pgfsetfillcolor{dialinecolor} +% was here!!! +\pgfsetarrowsend{stealth} +\definecolor{dialinecolor}{rgb}{0.000000, 0.000000, 0.000000} +\pgfsetstrokecolor{dialinecolor} +\draw (41.281747\du,14.049635\du)--(43.230090\du,14.016749\du); +} +% setfont left to latex +\definecolor{dialinecolor}{rgb}{0.000000, 0.000000, 0.000000} +\pgfsetstrokecolor{dialinecolor} +\node[anchor=west] at (43.530186\du,14.041749\du){y}; +\definecolor{dialinecolor}{rgb}{1.000000, 1.000000, 1.000000} +\pgfsetfillcolor{dialinecolor} +\fill (34.048344\du,13.077600\du)--(34.048344\du,14.977600\du)--(36.048344\du,14.977600\du)--(36.048344\du,13.077600\du)--cycle; +\pgfsetlinewidth{0.100000\du} +\pgfsetdash{}{0pt} +\pgfsetdash{}{0pt} +\pgfsetmiterjoin +\definecolor{dialinecolor}{rgb}{0.000000, 0.000000, 0.000000} +\pgfsetstrokecolor{dialinecolor} +\draw (34.048344\du,13.077600\du)--(34.048344\du,14.977600\du)--(36.048344\du,14.977600\du)--(36.048344\du,13.077600\du)--cycle; +% setfont left to latex +\definecolor{dialinecolor}{rgb}{0.000000, 0.000000, 0.000000} +\pgfsetstrokecolor{dialinecolor} +\node at (35.048344\du,14.145100\du){$\int$}; +% setfont left to latex +\definecolor{dialinecolor}{rgb}{0.000000, 0.000000, 0.000000} +\pgfsetstrokecolor{dialinecolor} +\node[anchor=west] at (31.923591\du,13.615528\du){$\dot{x}$}; +\end{tikzpicture}