\documentclass[times, utf8, zavrsni, numeric]{fer}
\usepackage{booktabs}
\usepackage{gensymb}
\usepackage{float}
\usepackage[geometry]{ifsym}
\begin{document}

\hyphenation{roni-lice}
\hyphenation{vi-djeti}
\hyphenation{ide-ntifikacija}
\hyphenation{smje-ru}
\hyphenation{smje-stiti}
\hyphenation{objedinje-ni}
\hyphenation{pri-kladno}
\hyphenation{stu-pnja}
\hyphenation{koordi-natnom}
\hyphenation{pro-blem}
\hyphenation{auto-matsko}
\hyphenation{ra-stućih}
\hyphenation{uda-ljenost}
\hyphenation{Za-dnje}
\hyphenation{su-stavima}
\hyphenation{si-gurnost}
\hyphenation{pro-izlazi}
\hyphenation{ne-znatan}
\hyphenation{ko-načne}
\hyphenation{pozicionira-njem}
\hyphenation{Regu-lator}
\hyphenation{zani-mljivo}
\hyphenation{upra-vljački}
\hyphenation{zaro-njena}
\hyphenation{matema-tička}
\hyphenation{refe-rentne}
\hyphenation{mo-delskoj}
\hyphenation{napra-vljeno}
\hyphenation{se-gmenta}
\hyphenation{teme-ljen}
\hyphenation{re-gulatora}
\hyphenation{upra-vljanje}
% TODO: Navedite broj rada.
\thesisnumber{1133} 

% TODO: Navedite naslov rada.
\title{Vođenje platforme za dinamičko pozicioniranje po liniji}
 
% TODO: Navedite vaše ime i prezime.
\author{Zoran Triska}

\maketitle   

% Ispis stranice s napomenom o umetanju izvornika rada. Uklonite naredbu \izvornik ako želite izbaciti tu stranicu.
\izvornik

% Dodavanje zahvale ili prazne stranice. Ako ne želite dodati zahvalu, naredbu ostavite radi prazne stranice.
\zahvala{Posebna zahvala Nikoli na odličnom vođenju tokom rada na završnom radu
i korisnim savjetima i Đuli na pomoći pri programskoj implementaciji}

\tableofcontents

\chapter{Uvod}
Oko $70\degree$ površine Zemlje je prekriveno oceanima i predstavlja beskrajno
prostranstvo prirodnih resursa. Život je nastao u vodi, a neki znanstvenici
prognoziraju u dalekoj budućnosti život u dubini kao jedini mogući. Kako bi
optimalno iskoristili resurse koji su nam trenutno na raspolaganju nužno je
razvijati i koristiti, kako ronilice tako i
površinska plovila. Podvodna robotika, kao posebna grana robotike je područje
koje se neprestano razvija zahvaljujući napretku tehnologije. Primjenom znanja o kontroli i automatizaciji procesa, podvodna robotika s raznim 
objektima postaje zanimljivo područje za upravljanje i vođenje.
Tema ovog završnog rada je upravo iz tog područja i vezana je uz vođenje
platforme za dinamičko pozicioniranje po liniji. Kroz cijeli rad predstavljena je
laboratorijska platforma PlaDyPos, popularno zvana MC-4\footnote{MC-4
skraćenica od imena Mrcina koje je dobila zbog ogromnog testnog modela. 4 -
simbolizira četvero ljudi koji su radili na njezinoj izradi} na kojoj je implementirano
slijeđenje linije. U poglavlju 2 dan je njezin opis i okruženje u kojem se
upotrebljava. Opisane su najvažnije karakteristike i ključni dijelovi te je dana načelna shema strukture upravljanja. U sljedećem poglavlju riječ je o samom matematičkom modeliranju koje se sastoji od modela potisnika, alokacije aktuatora, dinamičkog i kinematičkog modela. Zatim,
 u poglavlju 4, opisan je problem praćenja linije te su dana neka upravljačka
 pravila.Također, opisan je mehanizam prebacivanja na slijeđenje slijedeće
 linije kad se platforma približi kraju linije koju slijedi. Poglavlje 5, uz
 prethodno poglavlje, najvažniji je dio rada. Sadrži sveukupni dizajn regulatora
 s opisanim dodatnim funkcijama. Na kraju rada, u poglavlju emph{Rezultati} mogu
 se vidjeti signali regulacijskog odstupanja, upravljačkog signala $X_d$ i brzine $u_d$ sa 
 pripadnim testnim putanjama koje su prikazane na slikama.

\chapter{PlaDyPos -  Platforma za dinamičko pozicioniranje i okruženje}
\section{Okruženje}
Završni rad je  razrađen na laboratorijskoj platformi nazvanoj PlaDyPos. Platforma 
je razvijena od grupe studenata uključujući i autora ovog rada za potrebe testiranja 
različitih algoritama upravljanja (\emph{dynamic positioning, line following, path following, 
point-to-point guidance}) u laboratorijskom bazenu. Kompletan sustav upravljanja i okruženje u 
kojem se ono ostvaruje prikazano je na slici \ref{fig:Final_2_21} 

\begin{figure}[htb]
\centering
\includegraphics[height=9.6cm, width=14cm, trim=2 0 2 3]{img/Final_2_21.png}
\caption{\emph{Laboratorijski bazen LAPOST-a}}
\label{fig:Final_2_21}
\end{figure}
Platormom se upravlja unutar bazena. Nadalje, ostvarena je bežična serijska
komunikacija s računalom uz bazen na kojem se nalaze algoritmi upravljanja. Bitno je napomenuti da se svi algoritmi izvode 
na računalu dok se na platformu šalju samo upravljački signali za svaki potisnik. Pri tome koristi 
se RS-232 standard, a komunikacija je realizirana korišteljenjem LabVIEW VI-a. Komunikacija je u 
jednom smjeru, od računala prema platformi. Radio predajnik prima podatke sa serijskog porta i šalje 
informacije o brzinama na platformu. Brzina prijenosa je 2400 baud/s, a prijenos se obavlja u pojasu 
od 433 MHz.  Iznad bazena nalazi se web-kamera koja je jedina povratna veza u sustavu. Iz nje se, 
obradom slike i prepoznavanjem markera na platformi određuju trenutne koordinate i orijentacija 
platforme. Obrada slike je također razvijena u LabVIEW-u. Ovaj segment sustava je jako bitan jer 
je cijela identifikacija napravljena na temelju mjernih jedinica koje su izražene ili imaju neke 
veze sa pixelima. Vidno polje kamere je predstavljeno dimenzijama 640 $\times$
 480 pixela što je otprilike $1.5m \times 1.5m$. 

\begin{figure}[H]
\centering
\includegraphics[height=6.3cm, width=14cm]{img/nacelna.png}  
\caption{\emph{Načelna shema upravljačke strukture}}
\label{fig:nacelna}
\end{figure}

\section{PlaDyPos}
PlaDyPos, kao što i samo ime sugerira, je platforma za dinamičko pozicioniranje. 
Pri dizajnu platforme uzeta je u obzir i njena namjena u bazenu. Zbog ograničenosti 
vidnog polja kamere nastojalo se učiniti platformu što manjom, a opet koliko toliko 
lako upravljivom. Vanjsko kućište je izgrađeno od slojeva stakloplastike s kojim je 
dobiven kompaktan izgled platforme. Naime, platforma je svojim većim djelom
zaronjena u vodu, dok je iznad vode samo povišena ravna ploha pogodna za smještanje markera za 
video - prepoznavanje. Potisnici su također, potpuno pod vodom i zaštićeni su
unutar plastičnih cijevi. Zbog okolnih cijevi potisnici ne odaju nikakvu informaciju o 
gibanju, što daje dojam samopokretne platforme. Izvana je obojana u crno sa crvenkastim 
tribal šarama. U njenoj unutrašnjosti ima dovoljno mjesta tek za smjestiti acid-olovnu 
bateriju koja osigurava 2 sata autonomije te elektroničku pločicu sa čipovima i 
pojačalima snage. Neke od vanjskih karakteristika platforme su vidljive u
tablici \ref{tbl:teh_karakteristike}. Platforma je simetrična s obzirom na glavne osi 
što je rezultiralo istim dimenzijama za širinu i dužinu. 

\begin{table}[htb] 
\caption{\emph{Neke tehničke karakterisitke}}
\label{tbl:teh_karakteristike}
\centering
\begin{tabular}{lr|lr} \hline
Dimenzije & Vrijednost & Dimenzije & Vrijednost\\ \hline
visina [m] & 0.18 & masa [kg] & 8.31 \\
širina [m] & 0.31  & volumen [$m^3$] & 0.25\\
dužina [m] & 0.31 & promjer cijevi [m] & 0.06 \\ \hline 

\end{tabular}
\end{table}

Srce platforme čine dva Atmel 8051 mikrokontrolera koji primaju signale preko radio veze 
te generiraju PWM signal koji se prosljeđuje na motore. Oni su izabrani zbog svoje jednostavnosti 
i široke zastupljenosti. Generirani PWM signal je programski emuliran unutar mikrokontrolera te 
doveden na tiristorski čoper koji je zaslužan za 16 diskretnih razina PWM signala u pozitivnom 
i negativnom smjeru.

\subsection{Sustav propulzije}
Sama platforma je pogonjena sa četiri kaljužne pumpe koje su pretvorene u potisnike. Pri 
dizajniranju platforme, kaljužne pumpe su izabrane zbog svoje niske cijene kao i
zbog mogućnosti lake nabavke. Na osovinu motora postavljeni su propeleri koji osiguravaju 
dovoljan potisak. Nalaze se 10 cm udaljeni od centra mase i postavljeni su pod kutem od 
45$^\circ$ u odnosu na koordinatni sustav platforme čineći tako standarnu
X-konfiguracija aktuatora. Time je osigurana sloboda gibanja u sva tri smjera slobode na horizontalnoj ravnini, 
odnosno u ovom slučaju, na površini vode. S četiri potisnika osigurana je
također aktuatorska redudancija u slučaju kvara na pojedinom potisniku. Također je bitno reći da uvijek rade sva 
četiri propulzora s većim ili manjem utjecajem na sveukupno gibanje. Rezultat toga je ravnomjerno 
raspoređena generirana sila ili moment platforme. Slika govori tisuću riječi, a sljedeća upravo 
ono opisano.

\begin{figure}[htb]
\centering
\includegraphics[height=8cm, width=14cm]{img/ptat_model.png}
\caption{\emph{Platforma i X-konfiguracija propuzora}}
\label{fig:ptat_model}
\end{figure}

\subsection{Napajanje}
Jedan od zahtjeva koje je platforma morala ispuniti pri konstrukciji je bio minimalno jedan 
sat autonomnog rada. To je osigurano baterijom FIAMM FG 20451 nazivnog napona 12 $V$. Prema 
tehničkim podacima, pri povučenoj struji od 0.81 $A$ osigurano je pet sati rada, dok pri 3.09 $A$ 
je jedan sat autonomije. Masa baterije je 1.58 kg te čini zajedno s kučištem
platforme centar mase. Smještena je na sredini dna platforme dajući joj potrebnu 
stabilnost pri plovidbi.

\subsection{Bežična komunikacija}
Bežična komunikacija se temelji na RF modulu koji je uklopljen kao podsustav na 
elektroničkoj pločici platforme. U uvodnom opisivanju platforme spomenuto je da 
platforma samo prima upravljačke signale za pojedine aktuatore. Signali su kodirani u kodne 
riječi po osam bitova što je bilo dostatno za informaciju o kojem aktuatoru se radi, 
kolikom brzinom se treba okretat i u kojem smjeru. Osim toga mikroprocesori na
platformi su 8-bitni pa je opisano kodiranje opravdano. Kodna riječ je koncipirana na 
sljedeći način. Redni brojevi bitova su rastući s desna na lijevo. Nultni bit je predviđen 
za informaciju o smjeru vrtnje motore (1 za naprijed, nula za nazad). Slijedeća četiri 
bita su informacija o apsolutnoj brzini vrtnje( raspon jačine 0 -15) i zadnja
tri bita sadrže adresu aktuatora kojem je ova informacija namijenjena. Osim za aktuatore šalju se 
i signali za statusnu RGB ledicu koja signalizira što se događa s platformom.
Npr. Kad platforma putuje prema zadanoj točki upaljena je jedna boja ledice, a kad 
se platforma pozicionira i održava poziciju i orijentaciju gori ledica druge boje. 
Prije svakog slanja korisnog bajta šalju se dva start byte-a koji
mikroprocesoru kažu da je sljedeći byte podatak te da ga treba pročitat i 
obradit. Start bajtovi su ovdje zbog frekvencijskih smetnji drugih
komunikacijskih kanala te osiguravaju da platforma prima samo one podatke koje i treba primit. 
Serijska komunikacija je razvijena korištenjem programskog paketa LabVIEW. Primjer 
jednog paketa koji obuhvaća kodne riječi za sve motore, statusnu RGB ledicu i start 
byte-ove ispred svakog podatka dan je u sljedećoj tablici.

\begin{table}[htb]
\caption{\emph{Kodne riječ}i}
\label{tbl:konstante}
\centering
\begin{tabular}{lr|l} \hline
namjena & kodna riječ & komentar\\ \hline
1. start byte & 01010011 & prvi start byte \\
2. start byte & 11000101 & drugi start byte\\
1. propulzor & 00110001 & osma brzina prema naprijed\\ \hline 
1. start byte & 01010011 & prvi start byte \\
2. start byte & 11000101 & drugi start byte\\
2. propulzor & 01001001 & četvrta brzina prema naprijed\\ \hline 
1. start byte & 01010011 & prvi start byte \\
2. start byte & 11000101 & drugi start byte\\
3. propulzor & 01111110 & petnaesta brzina prema nazad\\ \hline 
1. start byte & 01010011 & prvi start byte \\
2. start byte & 11000101 & drugi start byte\\
4. propulzor & 10010101 & deseta brzina prema naprijed\\ \hline 
1. start byte & 01010011 & prvi start byte \\
2. start byte & 11000101 & drugi start byte\\
ledice & 10101001 & upaljena ledica za dinamičko pozicioniranje\\ \hline 
\end{tabular}
\end{table}

\subsection{Korisničko sučelje i upravljanje}
Za potrebe upravljanja platformom razvijeno je sučelje u kojem je moguće 
na više načina upravljati platformom. Sve što se tiče programske implementacije
napravljeno je u LabVIEW-u pa tako i grafičko sučelje.  Razvijeno je 
upravljanje\emph{ ručnom palicom} kojom se direktno generiraju sile i 
momenti koje se zakodiraju i šalju na platformu. Zatim, sljedeći mod rada 
je \emph{dinamičko pozicioniranje}. Prebacivanjem sklopke 
na grafičkom sučelju odabere se ovaj način upravljanja te se zada željena 
pozicija platforme. Zadnji mod rada je \emph{slijeđenje linija} 
i u nastavku rada bit će detaljno razrađen. Dinamičko pozicioniranje i 
slijeđenje linija objedinjeni su u jednu cjelinu i to tako da kad platforma prijeđe 
put po linijama dinamički se pozicionira u zadnjoj točki.

\chapter{Matematičko modeliranje}
\section{Koordinatni sustavi}
Prilikom analiziranja gibanja platforme te izrade samog matematičkog modela prikladno je 
definirati dva koordinatna sustava kao na slici \ref{fig:koordinatnisustav}.
\begin{figure}[htb]
\centering
\includegraphics[height=9cm, width=13cm, trim=0 0 0
0]{img/koordinatnisustav.png}
\caption{\emph{Definirani koordinatni sustavi}}
\label{fig:koordinatnisustav}
\end{figure}

Gibajući koordinatni sustav smješten je uz platformu. Ishodište takvog sustava smješteno 
je u  centru mase platforme, a koordinatne osi podudaraju se s osima koordinatnog sustava 
vezanog uz zemlju, \cite{ref_2}. Definirane su kao
\begin{description}
\item $X$ - longitudinalna os (usmjerena od straga prema naprijed)
\item $Y$ - transverzalna os (usmjerena prema desnom boku)
\item $Z$ - normala (usmjerena od vrha prema dolje)
\end{description}
Orijentacije koordinatnih osi odabrane su prema pravilu desne ruke za oba koordinatna sustava.

\section{Matematički model platforme}
Osnovni matematički model platforme može se razložiti na nekoliko dijelova koji su prikazani
 slijedećom slikom, \cite{ref_7}. U narednim pododjeljcima opisan je svaki od
 blokova.

\begin{figure}[htb]
\centering
\includegraphics[height=6.3cm, width=14cm, trim=0 0 0 0]{img/platforma.png}
\caption{\emph{Matematički model platforme}}
\label{fig:platforma}
\end{figure}

\subsection{Model potisnika}
Sila koju razvija potisnik je u općenitom slučaju nelinearna funkcija koja ovisi o brzini vrtnje 
propelera. Prema \cite{ref_5}, radi jednostavnosti, nelinearni model je
zamijenjen afinim modelom. Zamjena je valjana budući da se platforma ne giba velikim brzinama. 
Potisak svakog motora je dan izrazom: \[\tau^i = K_Tu \tag{3.1} \] 
Ako kontrolnu varijablu $u$ zamijenimo s $ \left|n^i\right|n^i $, dobit ćemo
vezu između potiska motora i upravljačkog signala $n^i$

\[\tau^i = K_T \left|n^i\right|n^i \tag{3.2}\]

Da bi dobili linearno upravljanje generiranim potiscima unaprijed je napravljena 
kompenzacija kvadratne funkcije tako što je svaki potisak nakon inverzne alokacije 
korijenovan. Dobiveni signali $n^i$ su u rasponu od -15 do 15 i proporcionalni su 
voltaži na svakom motoru. Nakon kompenzacije signali se kodiraju i šalju bežičnom 
komunikacijom na platformu.
\begin{figure}[htb]
\centering
\includegraphics[height=5.8cm, width=15cm]{img/kompenzacija1.png}
\caption{\emph{Struktura laboratorijske platforme sa kompenzacijskim blokom}}
\label{fig:platforma}
\end{figure}  

\subsection{Alokacija aktuatora} 
U uvodnom opisivanju sustava propulzije spomenuta je \emph{X-konfiguracija} 
potisnika, \cite{ref_11}. Smješteni su na rubovima platforme, zaštićeni u
plastičnim cijevima zbog mogućih sudaranja. Svaki od propulzora smješten je pod kutem 
od $45\degree$ u odnosu na \emph{x-os} platforme. Sile i momenti koje proizvode
propulzori razlažu se na osnovne sile i momente $\tau^\# = [X^{\#}, Y^{\#},
N^{\#}]^T$. $X^{\#}$ je sila napredovanja (\emph{engl. surge force}), $Y^{\#}$je
sila zanošenja (\emph{sway force}) i $N^\#$ je moment zaošijanja (\emph{yaw moment}). Držeći se definiranog koordinatnog sustava uz platformu,
 očito je da je sila napredovanja usmjerena u smjeru longitudinalne osi, a sila zanošenja 
 u smjeru transverzalne osi. Moment zaošijanja definira se kao pozitivan u smjeru kazaljke 
 na satu. Sve osi, a samim time i sile drže se pravila desne ruke. Kad se palac
 usmjeri prema dolje, u smjeru \emph{z-osi}, smjer prstiju od \emph{x} prema
 \emph{y} je upravo i pozitivan smjer momenta zaošijanja. Vektor sila koje
 generira svaki propulzor predstavlja se s vektorom $\tau^{i\#} = [\tau^{1\#}, \tau^{2\#}, \tau^{3\#},
 \tau^{4\#}]^T$. Veza između potiska svakog motora i sila i momenata koji
 djeluju na platformu je dana s alokacijskom matricom:

\[\tau^{\#} = \begin{bmatrix}sin(45\degree) & sin(45)\degree & sin(45\degree) &
sin(45\degree) \\ sin(45\degree) & -sin(45\degree) & sin(45\degree) &
-sin(45\degree)\\d & -d & -d & d \end{bmatrix} \tau^{i\#} \tag{3.3} \] Sudeći po
alokacijskoj matrici platformom se može upravljati u tri stupnja slobode što je u primjenama
 gotovo redovito i slučaj.

\subsection{Dinamika}

Dinamički model platforme je izrazito spregnut i nelinearan. U općem slučaju tri 
stupnja slobode gibanja mogu se opisati s:
\[\alpha_u\dot{u} + \beta(u)u = \tau_{uE} + X \tag{3.4} \]
\[\alpha_u\dot{v} + \beta(v)v = \tau_{vE} + Y \tag{3.5} \] 
\[\alpha_r\dot{r} + \beta(r)r = \tau_{rE} + N \tag{3.6} \]
gdje je $[u, v, r]^T$ vektor brzine, a sa$[\tau_{uE}, \tau_{uE}, \tau_{rE}]^T$
je označen vektor smetnje i nemodelirane dinamike. Iznos hidrodinamičkog otpora 
strujanja $\beta$, kao i njegova karakteristika, određen je nizom eksperimenata
prilikom identifikacije. Manji hidrodinamički otpor upućuje na manji otpor prilikom kretanja. 
Konačne koeficijente hidrodinamičkog otpora, kao i ostale parametre može se
vidjeti u tablici \ref{tbl:parametri}. Drugi parametar kojeg je bilo potrebno odrediti prilikom
identifikacije je koeficijent inercije $\alpha$. Cjelokupna dinamika platforme opisana je 
sa gornje tri diferencijalne jednadžbe. Zbog fizičke konstrukcije i simetričnosti alociranih 
propulzora, prve dvije diferencijalne jednadžbe su gotovo jednake, sa istim dinamičkim parametrima. 
Ta pogodnost je iskorištena prilikom sinteze regulatora upravljanja.
\subsection{Kinematika}
 
Ljudi, iz svoje perspektive, definiraju svoju lokaciju ili lokaciju nekog objekta u odnosu na zemlju. 
Prema tome, lokacija svakog objekta se može opisati u odnosu na koordinatni
sustav vezan uz Zemlju. Koordinatni sustavi potrebni za matematičko modeliranje su opisani u odjeljku
3.1 , a ovdje će biti dana veza između njih preko kinematičkih veličina.
Kinematički model, kao što i samo ime sugerira, daje veze između brzina definiranih u koordinatnom sustavu vezanom za platformu
$[u, v ,r]^T$ i brzina u koordinatnom sustavu vezanom za Zemlju, \cite{ref_9}.
Ove zadnje brzine prikladno je promatrati kao derivacije vektora pozicije u zemaljskom koordinatnom 
sustavu. Budući da se platforma nalazi na površini vode, da bi se izrazile kinematičke veličine, 
potrebno je samo definirati rotacijsku matricu oko \emph{z-osi}. Smjer rotacije
je definiran suprotno kazaljki na satu, a kut za koji treba zarotirati sustav je označen sa $\psi$. $\psi$ je, međuostalim, 
orijentacija platforme.
  
\[\begin{bmatrix}\dot{x} \\\dot{y}\\\dot{\psi} \end{bmatrix} =
\begin{bmatrix}cos(\psi) & -sin(\psi) & 0 \\ sin(\psi) & cos(\psi) & 0\\0
& 0 & 1 \end{bmatrix} \begin{bmatrix}u\\v\\r \end{bmatrix} \tag{3.7} \]

\chapter{Definicija problema slijeđenja linija}
U ovom poglavlju dana su pravila upravljanja za slijeđenje linije te je formuliran problem slijeđenja linije u prvom odjeljku i opisan mehanizam automatskog prebacivanja na sljedeću definiranu liniju za praćenje u drugom. 

\section{Definiranje upravljačkih pravila}
Linija koju bi platforma trebala slijediti je određena sa dvije točke u 2D prostoru i njihovim 
koordinatama. Označimo početnu točku sa $T_1$ i krajnju sa $T_2$ te definirajmo orijentiranost 
linije od točke $T_1$ prema točki $T_2$. Označimo i trenutnu poziciju platforme sa 
$p(t) = [x(t), y(t)]^T$, a vektore koordinata pridružene točkama $T_1$ i $T_2$ sa
 $p_{T1}(t) = [x_{T1}(t), y_{T1}(t)]^T$ i $p_{T2}(t) = [x_{T2}(t),
 y_{T2}(t)]^T$. U skladu sa koordinatnim sustavima definiranim u prethodnom poglavlju, zamislimo da je 
koordinatni sustav vezan za liniju slijeđenja tako da se ishodište nalazi u točki 
$T_2$ te je rotiran oko \emph{z-osi}, odnosno \emph{x-os} je rotirana za
pozitivan kut $\Gamma = atan2(y_2 - y_1, x_2 - x_1)$ u odnosu na stacionarni položaj platforme koji se
 podudara sa globalnim koordinatnim sustavom.

\begin{figure}[htb]
\centering
\includegraphics[height=7cm, width=6cm]{img/line_following.jpg}
\caption{\emph{Koncept slijeđenja linije}}
\label{fig:platforma}
\end{figure}

Odatle, koordinate u koordinatnom sustavu vezanom za liniju se računaju prema:
\[ \varepsilon(t) = R(\Gamma)^T(p(t) - p_{T2}(t))\footnote{Transponirana
rotacijska matrica jednaka je rotacijskoj matrici u smjeru kazaljke
sata}\tag{4.1}\] 

gdje je:
\[R(\Gamma)] = \begin{bmatrix} cos(\Gamma) & -sin(\Gamma) \\ sin(\Gamma) &
cos(\Gamma) \end{bmatrix}\tag{4.2}\]

\[\varepsilon(t) = [s(t), e(t)]^T  \in R^2\tag{4.3}\] 
Vektor $\varepsilon(t)$ sastoji se od udaljenosti duž linije $s(t)$ i udaljenosti okomite 
na liniju $e(t)$. Bitno je uočiti da udaljenosti mogu poprimiti i negativne
vrijednosti. Glavna zadaća slijeđenja je osigurati da je :
\[\varepsilon(t) = -(x(t) - x_2(t))sin(\Gamma) + (y(t) - y_2(t))cos(\Gamma) =
0\tag{4.4}\] odnosno, mora vrijediti:
\[\displaystyle\lim_{t\to\infty}e(t) = 0 \tag{4.5}\]

Sad je poprilično jasno da se mora osigurati konvergencija okomite udaljenosti koju je sasvim razumno 
imenovat pogreškom, odnosno regulacijskim odstupanjem, \cite{ref_8},
\cite{ref_12}. Projektirani regulator opisan u sljedećem povlavlju imat će
upravo taj zadatak. Za razliku od $e(t)$, uzdužnom dužinom $s(t)$ se ne upravlja. 
Smanjuje se kako se približavamo drugoj točki, a u trenutku kad se dovoljno približimo za 
prebacivanje na drugu liniju koju treba pratiti skače na veliku vrijednost.
Potrebno je još definirati vezu između dinamičkih i kinematičkih veličina u koordinatnom sustavu 
vezanom za platformu i zemaljskog  koordinatnog sustava koji je definiran okvirom slike koju dobivamo 
iz kamere. Ukupna brzina platforme u zemaljskom koordinatnom sustavu se može razložiti na dva vektora 
brzine: vektor $u_r$ paralelan liniji je te vektor $u_d$ koji je na nju
okomit. Prema \cite{ref_13}, veza između tih brzina i brzina u koordinatnom
sustavu platforme je dana s \[\begin{bmatrix} u_r \\ u_d\end{bmatrix} =
\begin{bmatrix} cos(\gamma) & sin(\gamma) \\ -sin(\gamma) & cos(\gamma)
\end{bmatrix} \begin{bmatrix} u \\ v  \end{bmatrix} \tag{4.6}\]  gdje je
$\gamma = \Gamma - \psi$ kut za koji je platforma zakrenuta u odnosu na liniju. Na sličan način definira se relacija između sila koje djeluju na platformu (sila napredovanja i sila zanošenja)

\[\begin{bmatrix} X \\ Y\end{bmatrix} = \begin{bmatrix} cos(\gamma) &
-sin(\gamma) \\ sin(\gamma) & cos(\gamma) \end{bmatrix} \begin{bmatrix} X_r \\
X_d \tag{4.7} \end{bmatrix} \]

Prema (3.4) i činjenici da je platforma simetrična, diferencijalna jednadžbe za
X i Y\footnote{X - Surge Force, Y - Sway Force, N - Yaw Moment vidljivi na slici 4.2.} kojim 
je opisana dinamika sustava su praktično iste. Potpuni matematički model slijeđenja linije dan je 
sljedećim jednadžbama, \cite{ref_6}:
\[\alpha_u\dot{u_d} + \beta(u_d)u_d = X_d \tag{4.8}\] 
\[\dot{d} = u_d + \zeta \tag{4.9}\]
gdje su:
\begin{description}
\item $X_d$ - izlaz iz regulatora, odnosno proračunata sila u smjeru okomitom na liniju,
\item $u_d$ - brzina u smjeru okomitom na liniju,
\item $\dot{u_d}$ - akceleracija u smjeru okomitom na liniju,
\item $\alpha_u$ - inercijska konstanta procesa,
\item $\beta(u)$ - parametar otpora strujanju,
\item $d$ - udaljenost platforme od linije,
\item $\zeta$ - smetnje okomite na liniju,
\end{description}

\begin{figure}[htb]
\centering
\includegraphics[height=5.9cm, width=12.5cm]{img/surge_sway1.png}
\caption{\emph{Line following}}
\label{fig:surge_sway}
\end{figure}

\section{Konačni automat za prebacivanje na praćenje slijedeće linije}
Sad kad je definiran problem praćenja linije, sljedeći korak je bio implementirati automatsko 
prebacivanje na sljedeću liniju kad se platforma približi kraju linije koju prati. Dakle, 
kad je platforma u relativnoj blizini konačne točke, automatski se treba aktivirati zadatak 
praćenja slijedeće linije. Za rješenje ovog problema korištena je matematička
tvorevina konačnih automata. Konačni automat ili automat konačnih stanja
definira se kao diskretni matematički model koji se sastoji od konačnog broja stanja, prijelaza 
između stanja i akcija koje obavlja. Jednom kad korisnik odabere točke između
kojih se interpoliraju linije koje platforma treba pratiti pokreće se blok u 
kojem je programski implementiran konačni automat. Stanja su označena rednim brojevima 
koja odgovaraju označenim točkama na grafičkom sučelju, a počinju od broja 1.
Svako stanje ima drugačiju liniju za praćenje. Tako npr. stanje broj 1 ima pridruženu liniju koju 
definiraju točke $T_1$ i $T_2$, stanje broj 2 ima pridruženu liniju koju definiraju 
točke $T_2$ i $T_3$, stanje $k$ ima pridruženu liniju deja je definirana
točkama $T_k$ i $T_{k+1}$. Važno je uočiti da krajnja točka prethodnog stanja je
početna točka sljedećeg stanja. Prijelaz između stanja je jednoznačan, odnosno, moguće je samo u 
smjeru stanja rastućih indeksa. Nije moguće vratiti se po liniju koju je platforma upravo 
završila pratiti, već se mora prebaciti na sljedeću. Isto tako, nije moguće
preskočiti pojedinu točku prilikom praćenja linije. Uvjet koji je potrebno
ispuniti da se prebacimo iz trenutnog stanja u sljedeće je da trenutna udaljenost platforme od krajnje točke linije 
bude manja od $10\%$ sveukupne dužine linije. Sve dok je proračunata udaljenost
veća od definirane udaljenosti koja vodi u sljedeće stanje, ostajemo u istom stanju. 
To je pokazatelj da platforma još nije završila sa praćenjem trenutne linije te da treba 
pričekati da to napravi te joj onda proslijediti iduću liniju.

\begin{figure}[htb]
\centering
\includegraphics[height=6cm, width=14cm]{img/bazen_tocke.png}
\caption{\emph{Konačni automat i veza s linijama}}
\label{fig:bazen_tocke}
\end{figure}

Iako se za mjerenje udaljenosti od krajnje točke mogla koristiti udaljenost duž
linije uvedena u (4.3), ipak je odabrana udaljenost proračunata u koordinatnom
sustavu vezanom za zemlju, odnosu sliku iz kamere:
\[d_i = \sqrt{(x_{i+1}(t) - x(t))^2 + (y_{i+1}(t) - y(t))^2} \tag{4.10}\]
To je napravljeno iz činjenice da ako se zbog utjecaja raznih smetnji platforma ne nalazi na liniji,
 već s pogreškom $d$ lijevo ili desno od nje uzme upravo prava udaljenost od točke. Uzdužna udaljenost
bi mogla težiti k nuli, a platforma bi se mogla nalaziti poprilično daleko od
linije i točke. Naravno, ovaj slučaj je praktički nemoguć u prilikama kakve vladaju u 
laboratorijskom bazenu, no dodatno osiguranje nije na odmet. Ipak, ovaj dio je
jako bitan prilikom uključenja u rad ako se platforma nalazi jako daleko od definirane prve linije. Tada je potrebno 
isključiti željenu unaprijednu silu  $X_r$\footnote{Unaprijednom silom se ne upravlja već je konstantna duž cijelog putovanja}
i pričekati da se platforma nađe u razumnom području u kojem može izvršiti svoj zadatak. Uz
 isključeni $X_r$ platforma putuje iz svoje trenutne poziciju okomito prema
 liniji i kad se nađe u dopuštenom radijusu nastavlja sa normalnim radom. Zadnje stanje se bitno razlikuje od ostalih.
Ono je okarakterizirano točkom u kojoj se platforma dinamički pozicionira. Dinamičko pozicioniranje 
podrazumijeva održavanje željene pozicije i orijentacije. Ako platformu gurnemo rukom iz pozicije
koju je zauzela, ona mora biti sposobna vratiti se u istu poziciju s istom orijentacijom koju
je držala prije djelovanja poremećaja. Nadograđeni regulator za održavanje pozicije i 
orijentacije u zadnjoj točki putanje opisan je također u sljedećem poglavlju.
\begin{figure}[htb]
\centering
\includegraphics[height=4.5cm, width=13cm]{img/ss.png}
\caption{\emph{Kontrolirane sile pri dolasku u zadnju točku}} 
\label{fig:ss}
\end{figure} 


\chapter{Dizajn regulatora} 
U ovom poglavlju opisana je procedura projektiranja regulatora za praćenje
 linije na temelju željene modelske funkcije koji osigurava pogrešku u ustaljenom stanju jednaku 
nuli pod utjecajem vanjskih smetnji. 
\section{Odabir modelske funkcije}
Željena prijenosna funkcija zatvorene petlje je dana s:
\[G_m(s) = \frac{A(s)}{B(s)} = \frac{a_0 + a_1s + \ldots +
a_vs^v}{b_0 + b_1s + \ldots + b_us^u}     ,u > v \tag{5.1}\] gdje
su $\alpha(s)$ i $\beta(s)$ polinomi kompleksne varijable $s$, \cite{ref_14}. Pri sintezi regulatora metodom zatvorene prijenosne funkcije
postavljen je zahtjev da ne smije biti trajnog regulacijskog odsupanja, odnosno:
\[\displaystyle\lim_{t\to\infty}G_m(0) = 1 \tag{5.2} \]
Matematički model praćenja linije dan s (4.8) i (4.9) može također biti opisan
racionalnom prijenosnom funkcijom procesa.
\[G_s(s) = \frac{D(s)}{C(s)} = \frac{d_0 + d_1s + \ldots + d_ms^m}{c_0 + c_1s +
\ldots +c_ns^n}, n > m \tag{5.3}\] Nakon Laplaceove transformacije diferencijalnih
jednadžbi, prijenosna funkcija je sljedećeg oblika: \[G_s(s) =
\frac{1}{s(\alpha_us + \beta_u)}\tag{5.4} \] s parametrima identifikacije
$\alpha_u$ i $\beta_u$ prikazanim u tablici \ref{tbl:parametri}. Prijenosna funkcija regulatora
kojeg treba projektirati je pretpostavljenog oblika:
\[G_R(s) = \frac{B(s)}{A(s)} = K_R + \frac{K_I}{s} + K_Ds \tag{5.5}\]
S obzirom na okruženje u kojem se platforma nalazi i moguća sudaranja s stijenkama bazena, 
izabrana je\emph{ binomnu modelsku funkciju} zbog njenom aperiodskog odziva.
Osim toga, binomna funkcija daje najbrži aperiodski odziv zbog svojih
višestrukih polova  koji se nalaze na realnoj osi. Nadalje, odabrana je i zbog
samog afiniteta autora prema asimptotskom približavanju liniji kojeg osigurava
upravo  ova modelska funkcija.  \[G_m(s) = \frac{1}{\frac{1}{\omega_n^3}s^s +
\frac{3}{\omega_n^2}s^2 + \frac{3}{\omega_n}s + 1} \tag{5.6} \]

\section{Sinteza regulatora u kontinuiranoj domeni}
Projektiranju regulatora se pristupilo u s-domeni što je i bilo najlogičnije.
Struktura regulatora dana s (5.5) proširena je na poseban oblik, tj. I-PD
regulator. Strukturu opisanu u prethodnom poglavlju možemo slobodno zadržati budući da je referentna 
vrijednost na ulazu u regulator $d_{ref}$ = 0 što je  uvjet za praćenje linije
prema \cite{ref_1} i \cite{ref_3}. S $d_{ref}$ = 0, I-PD regulator svodi se na
klasičan PID regulator. Kakogod, I-PD struktura regulatora je prihvaćena u podvodnoj robotici 
zbog toga što nagle promjene referentne veličine ne izazivaju nagle promjene upravljačke veličine 
što je jako poželjno u sustavima upravljanjima plovilima. Izlaz iz regulatora je generirana sila 
$X_d$ koja je dana sa sljedećom integro-diferencijalnom jednadžbom. 
\[ X_d = K_I\int_0^t (d_{ref} - d)\,dt - K_Rd - \frac{d}{dt}d \tag{5.7} \]

\begin{figure}[htb] 
\centering
\includegraphics[height=5.8cm, width=14cm]{img/regulator1.png}
\caption{\emph{Zatvorena petlja za slijeđenje linije}}
\label{fig:regulator1}
\end{figure}

Jedini dinamički parametar prema kojem je određena $\omega_n$ regulatora je ulazno vrijeme 
prijelazne funkcije\footnote{Ulazno vrijeme definira se kao ono vrijeme koje je potrebno prijelaznoj 
funkciji da dođe prvi put do ustaljenog stanja}. Pritom, vodilo se zahtjevom da
se u realnim uvjetima dobije stabilan, dinamički što brži sustav. Zbog kompleksnosti matematičkog 
modela ulazno vrijeme $t_u$, odnosno $\omega_n$ regulatora određeni su metodom pokušaja i promašaja. 
Iz normirane prijelazne funkcije $h_x(\omega_nt)$ za binomni oblik trećeg reda očitano je:
\[\omega_nt = 10 \tag{5.8}\]
Postupno povećavajući ulazno vrijeme i pri tome smanjujući $\omega_n$ promatran
je simulacijski odziv sustava. Postupak je zaustavljen kad se dobio
stabilan odziv sustava i za sigurnost uzeto je još malo. Ulazno vrijeme $t_u$ je
na kraju zadržano na $20$ sekundi što se može činiti dosta velikim, no s obzirom na
poveću masu platforme i inertnost sasvim je opravdano.

\begin{figure}[htb]
\centering
\includegraphics[height=9cm, width=14cm]{img/normirane.png}
\caption{\emph{Normirane prijelazne funkcije za binomne oblike}}
\label{fig:normirane}
\end{figure}

Uz određenu $\omega_n$ jedini preostali zadatak je odrediti parametre
regulatora. Budući da sam ranije definirao binomnu modelsku funkciju trećeg reda kao željeno
ponašanje  sustava prema relaciji koja povezuje otvoreni i zatvoreni krug 
\[G_m(s) = \frac{G_R(s)G_S(s)}{1 + G_R(s)G_S(s)} \tag{5.9} \] te uvrštavanjem 
prijelaznih  funkcija regulatora i procesa i uz zanemarenje nula koje su se
pojavile u brojniku ukupna zatvorena petlja za praćenje linije može se prikazati u sljedećoj formi: 
\[\frac{d}{d_{ref}} = \frac{1}{\frac{\alpha_u}{K_I}s^3 + \frac{(\beta_u +
K_D)}{K_I}s^2 + \frac{K_R}{K_I}s + 1} \tag{5.10} \] Izjednačavanjem
koeficijenata željene modelske funkcije i koefitijenata u (5.10) možemo odrediti
parametre regulatora slijedećim redoslijedom:

\begin{description}
\item $K_I = \frac{\alpha_u}{b_3}$,
\item $K_R = K_Ib_1$,
\item $K_D = b_2K_I - \beta_u$,
\end{description}
Svi parametri i svi podaci dani su u tablici radi preglednosti.

\begin{table}[htb]
\caption{\emph{Parametri}}
\label{tbl:parametri}
\centering
\begin{tabular}{lr|l} \hline
Parametar & Vrijednost & Opis\\ \hline
$b_1$ & 6 & koeficijent uz $s$ u željenoj binomnoj funkciji \\
$b_2$ & 12 & koeficijent uz $s^2$ u željenoj binomnoj funkciji\\
$b_3$ & 8 & koeficijent uz $s^3$ u željenoj binomnoj funkciji \\ \hline
$K_R$ & 6.189 & proporcionalna konstanta\\
$K_I$ & 1.0315 & integracijska konstanta\\
$K_D$ & 12.378 & derivacijska konstanta\\ \hline
$\alpha_u$ & 8.252 $\frac{s^2}{pix}$ & inercijski koeficijent procesa\\
$\beta_u$ &  0.0378 $\frac{s^2}{pix^2}$ & koeficijent otpora strujanja\\
\hline $\omega_n$ & 0.5 $s^-1$ & kružna frekvencija regulatora\\
$t_u$ & 20 s & ulazno vrijeme\\ \hline
\end{tabular}
\end{table}
Idealan derivacijski kanal pri samoj implementaciji zamijenjen je realnim dodajući mu u seriju
$ PT_1$ član te je konačan oblik derivacijskog člana:
\[G_D(s) = \frac{K_Ds}{\frac{K_D}{10}s + 1} \tag{5.11} \]

\section{Analiza točnosti u ustaljenom režimu rada}
Pod ustaljenim režimom rada u našem slučaju podrazumijeva se da nakon eventualnog prebacivanja
 na praćenje slijedeće linije i prijelaznih pojava koje se događaju pritom platforma slijedi zadanu
  liniju. Analiza točnosti provedena u ovom odjeljku pokazat će s kolikom točnošću ona to radi, 
odnosno koliko je statičko regulacijsko odstupanje koje osigurava projektirani regulator. Budući 
da je ulaz (referentna veličina) regulatora postavljena na nulu što je zahtjev slijeđenja linije, 
za potrebe ovog razmatranja, zamislimo da je ulaz skokovita (konstantna) pobuda veličine $A$. To bi 
odgovaralo slijeđenju linije sa razmakom $A$ od nje.
Statičko regulacijsko odstupanje definira se kao odstupanje sustava u ustaljenom
stanju, nakon istitravanja prijelaznog procesa, uslijed djelovanja konstantne (skokovite) postavne veličine. 
Za naš sustav slijedi:
\[E(s) = \frac{1}{1 + G_R(s)G_S(s)}R(s) = \frac{s(\alpha_us +
\beta_u)A}{\alpha_us^3 + (K_D + \beta_u)s^2 + K_Rs + K_I} \tag{5.12} \]
Koristeći teorem o konačnoj vrijednosti prema \cite{ref_4}, u Laplaceovom području proizlazi: \[\displaystyle\lim_{t\to\infty}e(t) = \lim_{s\to 0}sE(s) =
0 \tag{5.13} \] čime je pokazano da statičke pogreške u sustavu nema te da u
ustaljenom stanju platforma slijedi liniju bez pogreške.

\section{Efekt namatanja integratora}
Pri projektiranju regulatora posebna pažnja se mora posvetiti ograničenjima izvršnih elemenata 
kojima regulator prosljeđuje upravljački signal. U realnim uvjetima, prema
\cite{ref_10}, modelira se element zasićenja između regulatora i procesa koji
ograničava kontrolnu akciju bez obzira na izlaz iz regulatora. Ponašanje elementa za zasićenje 
je vrlo jednostavno.

\[ u(t) = \left\{ \begin{array}{ll}
          U_{max} & \mbox{ako $u(t)\geq U_{max}$};\\
        u(t) & \mbox{ako $U_{min} < u(t) < U_{max}$};\\
       U_{min} & \mbox{ako $u(t) \leq U_{min}$}
        .\end{array} \right. \tag{5.14}\] Ulaskom upravljačkog signala u
        zasićenje prekida se povratna veza i sustav radi u otvorenoj petlji, budući da izvršni elementi ostaju u graničnom položaju neovisno o izlaznom signalu regulatora.
Izvršni elementi, u ovom slučaju potisnici ne mogu dati veći potisak od
maksimalnog\footnote{Maksimalan izmjereni potisak platforme je oko 1.5 N}, a
algoritam regulatora to od njih zahtijeva u nekim slučajevima. I-PD regulator, kao i svaki regulator koji sadrže
integracijsku komponentu nastavit će integrirati regulacijsko odstupanje i time upravljački signal
može poprimiti vrlo velike iznose. Pri smanjenju regulacijskog odstupanja regulator vrlo sporo 
izlazi iz zasićenja. To treba spriječiti i zato je kod regulatora slijeđenja linije implementirano 
spriječavanje efekta zaleta uvjetnim integriranjem, \cite{ref_15}. Integracijski
član I-PD regulatora će integrirati ako su ispunjeni određeni uvjeti, odnosno neće integrirati 
ako nisu. Ako je ispunjen jedan od ova dva uvjeta: \[(u(t) > U_{max} \land 
e(t) > 0) \vee (u(t) < U_{min} \land  e(t) < 0) \tag{5.15}\] onda se
zastavica S postavlja u nula \[S = 0\tag{5.16}\]
a ako nijedan nije ispunjen tada \emph{S} poprima vrijednost jedan. \emph{S}
simbolizira prekivač sa dva moguća toka signala. Na indeksu $0$ nalazi se nula koju se vodi integratoru kad dolazi
do zasićenja te se zaustavlja rad integratora na taj način. Jedinica spaja signal regulacijskog 
odstupanja s ulazom u integrator. Ovo je slučaj kad regulator normalno radi i ne dolazi do namatanja 
integratora. Cjelokupna struktura konačnog regulatora prikazana je sljedećom slikom

\begin{figure}[htb]
\centering
\includegraphics[height=8cm, width=13cm]{img/struktura.png}
\caption{\emph{Struktura I-PD regulatora}}
\label{fig:struktura}
\end{figure}

\section{Diskretizacija regulatora i konačne rekurzivne jednadžbe}
Kako bi mogli ostvariti računalom upravljani sustav, projektirani kontinuirani regulator 
potrebno je prije svega diskretizirati. Prije nego se posvetimo samom postupku
diskretizacije, bitno je napomenuti da je kontinuiran regulator projektiran uz 
zanemaren utjecaj diskretizacije prema EMUL1 metodi. Vrijeme uzorkovanja je izabrano na 
standarnih 0.1 sekundi te se čitav program realiziran u LabVIEW-u vrti u petlji s tim 
vremenom. Osim toga, malo vrijeme uzorkovanja ima za posljedicu da ZOH element
koji je zanemaren nema gotovo nikakvog utjecaja na amplitudnu i faznu karakteristiku 
otvorenog kruga. Kružna frekvencija $\omega_c$ može se približno odrediti prema izrazu: 
\[\omega_c = \frac{1.5}{t_{a50}} = 0.215 \frac{rad}{s}\tag{5.17}\] 
gdje je $t_{a50}$ procijenjen na oko $7$ sekundi. 
Ako ZOH aproksimiramo PT1 članom izraza 
\[\frac{1}{1 + \frac{T}{2}s} = \frac{1}{1 + 0.05s} \tag{5.18}\]
njegov utjecaj na presječnu frekvenciju i pojačanje na niskim frekvencijama je neznatan.
\[\left|{\frac{1}{1 + 0.05j\omega_c}}\right| = \frac{1}{\sqrt{1 +
0.05^2\omega_c^2}} = 0.999 \tag{5.19} \] Utjecaj na faznu karakteristiku također
zanemariv. \[\varphi = -\arctan0.05\omega_c = 0.615\degree \tag{5.20}\] Sama
diskretizacija provedena je Eulerovom metodom unazadne diferencije i konačne prijenosne funkcije pojedinih regulacijskih kanala su dane s:
\[G_P(z) = 6.189 \tag{5.21}\]
\[G_I(z) = \frac{0.175355z}{z-1} \tag{5.22}\]
\[G_D(z) = \frac{9.2525z - 9.2525}{z - 0.925} \tag{5.23}\] Konačna paralelna
implementacija digitalnog regulatora napravljena je sa rekurzivnim jednadžbama za svaki član posebno.

\[u_P[k] = 6.189 \tag{5.24}\]
\[u_I[k] = u_I[k-1] + 0.175355 e[k] \tag{5.25}\]
\[u_D[k] = 0.92525u[k-1] + 9.2525 d[k] - 9.2525 d[k-1] \tag{5.26}\] 

\section{Dinamičko pozicioniranje}
Cjelokupan sustav regulacije nadograđen je za upravljanje dinamičkim pozicioniranjem. 
Radi je zapravo o kontroliranju unaprijedne sile koja je kod slijeđenja linije kontrolirana 
u otvorenoj petlji, odnosno bila je konstantna cijelo vrijeme putovanja. Prema
izrazu (4.1), ukupna udaljenost je razložena na udaljenost okomitu na liniju
$e(t)$ i na udaljenost uzduž linije $s(t)$. Iz (4.2) slijedi potpuni izraz prema
kojem se računa duljina uzduž linije.

\[s(t) = cos(\Gamma)(x(t) - x_{T2}) + sin(\Gamma)(y(t) - y_{T2}) \tag{5.27} \]
Prilikom definiranja pravila upravljanja za slijeđenje linije rečeno je da se unaprijednom silom 
ne upravlja. Nadogradnja opisana u ovom odjeljku zasniva se upravo na uvođenju kontrole za tu silu 
uz već postojeći regulator slijeđenja linije. Treba napomenuti da je dinamičko pozicioniranje 
aktivno samo pri slijeđenju zadnjeg segmenta zadnje linije te se može promatrati kao stabilizacija 
platforme u ishodištu odabranog sustava vezanog uz drugu točku linije.
Pri dizajniranju regulatora iskorištena je pogodnost simetrije platforme. Parametri identificirani 
za gibanje unaprijed isti su kao i parametri za gibanje u smjeru okomitom na
liniju. Upravo zbog toga regulator stupnja slobode prema naprijed je isti kao i opisan I-PD regulator slijeđenja linije. 
Razlikuje ih samo ulaz, koji u slučaju novog regulatora više nije udaljenost okomita na liniju već 
udaljenost uzduž linije do druge njezine točke. Svi postupci pri dizajniranju regulatora slijeđenja 
linije vrijede i za ovaj regulator. 
Jedna misija koju bi platforma obavljala sastojala bi se dakle od slijeđenja $n$ linija pri čemu se 
kod zadnje linije upravlja i gibanjem prema naprijed s ciljem da se platforma zaustavi u željenoj 
poziciji držeći željenu orijentaciju koju je držala cijelim putovanjem. Dakako, upravljanje njezinom 
orijentacijom je neovisno o ostalim upravljanjem pa je moguće i mijenjati orijentaciju.

\section{Regulator orijentacije}

Treći stupanj slobode gibanja odnosi se na orijentaciju platforme. Ona se upravlja željenim momentom 
zaošijanja emph{N}. U skladu sa koordinatnim sustavima N se definira kao
pozitivan u smjeru kazaljke sata i stoga je i pozitivni smjer orijentacije platforme definiran upravo tim smjerom. Regulatorom trećeg 
stupnja slobode željelo se postići održavanje željene orijentacije tokom cijelog putovanje. Odnosno, 
slijeđenje referentne veličine na ulazu regulacijskog kruga. Sam postupak sinteze regulatora 
temeljen je na Truxal - Guilleminovom postupku. Kao i u slučaju regulatora
slijeđenja linije, opet se razmatraju prijenosne funkcije procesa i regulatora definirane s (5.4),
(5.5). Regulator je projektiran tako da prijenosna funkcija zatvorenog sustava
odgovara modelskoj funkciji $G_m(s)$. Iskorištena je binomna modelska funkcija trećeg reda, kao i za regulator slijeđenja linije s time 
da regulator više nije pretpostavljenog oblika već sadrži u sebi inverznu prijenosnu funkciju procesa.
Prema vezi otvorenog i zatvorenog regulacijskog regulacijskog kruga koja je dana
u (5.9), slijedi prijenosna funkcija regulatora.
\[G_R(s) = \frac{1}{G_S(s)}\frac{G_m(s)}{1 - G_m(s)} \tag{5.28} \] Regulatorom
bi se moglo potpuno kompenzirati dinamičko vladanje procesa i stoga se regulator projektiran TG postupkom naziva i kompenzacijskim regulatorom. Struktura 
zatvorenog kruga sa opisanim regulatorom može se prikazati slikom \ref{fig:tg}
 
\begin{figure}[htb]
\centering
\includegraphics[height=4cm, width=14cm]{img/tg.png}
\caption{\emph{zatvoreni regulacijski krug}}
\label{fig:tg}
\end{figure}

Referentna veličina koja se zadaje na ulazu je željena orijentacija u
stupnjevima, dok je signal povratne veze trenutna orijentacija platforme, 
također u stupnjevima. Regulacijsko odstupanje računano je na temelju ovih
 dviju veličina i programski je prilagođeno tako da je ono pozitivno u smjeru
 kazaljke na satu. Implementirano je također računanje regulacijskog odstupanja 
 tako da ono bude minimalno. Ako se npr. platforma nalazi $30\degree$ u odnosu
 na referentni zemaljski sustav, a mi želimo da zauzme orijentaciju od
 $330\degree$. Odstupanje će biti izračunato kao $-60\degree$, što govori o tome
 da platforma prilikom kontrole orijentacije vrši najmanji mogući put prema željenoj 
 orijentaciji. Odabrano ulazno vrijeme zatvorenog kruga je $4 s$, a iz normirane prijelazne 
 funkcije za binomno oblik trećeg reda dobije se $\omega_nt = 10$. Iz toga je izračunata 
 $\omega_n$ iznosa $2 s^{-1}$. Konačna rekurzivna jednadžba digitalnog
 regulatora implementirana u programu upravljanja je \[ u[k] = 1.541 u[k-1] -
 0.606 u[k-2] + 16.42 e[k] + 0.8894 e[k-1] - 15.53 e[k-2] \tag{5.29}\]
 

\chapter{Rezultati}
U zadnjem poglavlju dani su rezultati za neke promatrane signale. Napravljeno je
više testnih misija od kojih je svaka prikazana sa slikom. Isto tako, zadane
točke, između kojih su se interpolirale linije, zadane su u pripadnim tablicama.
Promatrani su odzivi upravljačkog signala regulatora, zatim regulacijsko
odstupanje sustava te na kraju kao rezultat upravljanja brzina u smjeru okomitom
na liniju i kurs koji platforma pritom zauzima. 
\section{Test 1} 

\begin{figure}[H]
\centering
\includegraphics[height=11cm, width=13cm]{img/slika1.png}
\caption{\emph{Testne linije 1}}
\label{fig:slika1}
\end{figure} 

Prva putanja koja je ovdje zadana prikazana je na slici \ref{fig:slika1}. 
Sastoji se od 5 točaka koje su sadržane u tablici \ref{tbl:tocke1}. 

\begin{table}[H]
\caption{\emph{Točke interpoliranih linija}}
\label{tbl:tocke1}
\centering
\begin{tabular}{|l|r|r|r|} \hline
Točka & x & y & opis\\ \hline
$T_1$ & 440 & 120 & prva točka  \\
$T_2$ & 80 & 120 & druga točka  \\
$T_3$ & 80 & 550 & treća točka \\ 
$T_4$ & 400 & 550 & četvrta točka\\
$T_5$ & 400 & 100 & peta točka\\ \hline 
\end{tabular}
\end{table}

\begin{figure}[H]
\centering
\includegraphics[height=8cm, width=14cm]{img/test14_upravljacki.png} 
\caption{\emph{Upravljački signal Xd}}
\label{fig:test14_upravljacki}  
\end{figure}

\begin{figure}[H]
\centering
\includegraphics[height=8cm, width=14cm]{img/test14_odstupanje.png} 
\caption{\emph{Regulacijsko odstupanje}}
\label{fig:test14_odstupanje}   
\end{figure} 
 
\begin{figure}[H]
\centering
\includegraphics[height=8cm, width=14cm]{img/test14_brzina.png} 
\caption{\emph{Brzina $u_d$}}
\label{fig:test14_brzina}
\end{figure} 

\begin{figure}[H]
\centering
\includegraphics[height=8cm, width=14cm]{img/kurs1.png} 
\caption{\emph{Kurs}}
\label{fig:kurs1}
\end{figure} 


\section{Test 2}

\begin{figure}[H]
\centering
\includegraphics[height=11cm, width=13cm]{img/slika2.png} 
\caption{\emph{Testne linije 2}}
\label{fig:slika2}
\end{figure}

\begin{table}[H]
\caption{\emph{Točke interpoliranih linija}}
\label{tbl:tocke1}
\centering
\begin{tabular}{|l|r|r|r|} \hline
Točka & x & y & opis\\ \hline
$T_1$ & 430 & 50 & prva točka  \\
$T_2$ & 80 & 550 & druga točka  \\
$T_3$ & 380 & 550 & treća točka \\ 
$T_4$ & 80 & 50 & četvrta točka\\\hline
\end{tabular}
\end{table}

\begin{figure}[H]
\centering
\includegraphics[height=8cm, width=14cm]{img/test15_upravljacki.png}  
\caption{\emph{Upravljački signal $X_d$}}
\label{fig:test15_upravljacki}
\end{figure} 

\begin{figure}[H]
\centering
\includegraphics[height=8cm, width=14cm]{img/test15_odstupanje.png}  
\caption{\emph{Regulacijsko odstupanje}}
\label{fig:test15_odstupanje}
\end{figure} 

\begin{figure}[H]
\centering
\includegraphics[height=8cm, width=14cm]{img/test15_brzina.png}  
\caption{\emph{brzina $u_d$}}
\label{fig:test15_brzina}
\end{figure} 

\begin{figure}[H]
\centering
\includegraphics[height=8cm, width=14cm]{img/kurs2.png}  
\caption{\emph{Kurs}}
\label{fig:kurs2}
\end{figure}

\section{Test 3}
\begin{figure}[H]
\centering
\includegraphics[height=11cm, width=13cm]{img/slika3.png} 
\caption{\emph{Testne linije 3}}
\label{fig:slika3}
\end{figure}

\begin{table}[H]
\caption{\emph{Točke interpoliranih linija}}
\label{tbl:tocke1}
\centering
\begin{tabular}{|l|r|r|r|} \hline
Točka & x & y & opis\\ \hline
$T_1$ & 250 & 80 & prva točka  \\
$T_2$ & 250 & 580 & druga točka  \\
$T_3$ & 250 & 100 & treća točka \\\hline 
\end{tabular}
\end{table}

\begin{figure}[H]
\centering
\includegraphics[height=8cm, width=14cm]{img/test16_upravljacki.png}  
\caption{\emph{Upravljački signal $X_d$}}
\label{fig:test16_upravljacki}
\end{figure} 

\begin{figure}[H]
\centering
\includegraphics[height=8cm, width=14cm]{img/test16_odstupanje.png}  
\caption{\emph{Regulacijsko odstupanje}}
\label{fig:test16_odstupanje}
\end{figure} 

\begin{figure}[H]
\centering
\includegraphics[height=8cm, width=14cm]{img/test16_brzina.png}  
\caption{\emph{Brzina $u_d$}}
\label{fig:test16_brzina} 
\end{figure} 

\begin{figure}[H]
\centering
\includegraphics[height=8cm, width=14cm]{img/kurs3.png}  
\caption{\emph{kurs}}
\label{fig:kurs3}
\end{figure}

\chapter{Zaključak}
U ovom radu predstavljeno je vođenje laboratorijske platforme po liniji.
Razrađeni algoritam upravljanja uspješno je implementiran na realni sustav, tj.
na laboratorijsku platformu PlaDyPos. Opisana pravila upravljanja pokazala su se
učinkovita što pokazuje i regulacijsko odstupanje u ustaljenom stanju vidljivo
na slikama:
\ref{fig:test14_odstupanje}, \ref{fig:test15_odstupanje},
\ref{fig:test16_odstupanje}. Jedna od glavnih zadaća je upravo bila osigurati
pogrešku u  ustaljenom stanju jednaku nuli. Dan je matematički model platforme
na kojeg  se nadovezuje projektirani I-PD regulator koji je detaljno opisan.
Uočena se odstupanja od simulacijskog odziva prema željenom dinamičkom ponašanju sustava mogu pripisati
realnim uvjetima na platformi. Sustav s 16 kvantizacijskih brzina vrtnji
propulzora pokazao se kao dovoljan za zadovoljavajuće upravljanje. Ovdje postoji
mogućnost implementacije finije podjele s ciljem što boljeg oponašanja
kontinuiranog odziva. Programska realizacija razvijena je u LabVIEW-u koji se
još jednom pokazao pogodan za kontrolu procesa i komunikaciju s vanjskim
uređajima. Program je napravljen u neovisnim programskim blokovima koji su
uklopljeni u cjelinu. Time je osigurana modularnost i mogućnost dodatnog
poboljšavanja upravljanja i nadogradnje na postojeći sustav.

\bibliography{literatura}
\bibliographystyle{fer}
 

\begin{sazetak} 
U ovom radu obrađena je tema upravljanja i vođenja laboratorijske platforme po
liniji. Rad je postupno opisan od opisivanja i definiranja problematike do
predloženog rješenja. Dan je matematički model koji
sadržava opise dinamičkog i kinematičkog vladanja te alokacija propulzora.
Za upravljanje je korišten I-PD regulator na temelju modelske binomne
funkcije. Prikazan je postupak sinteze u kontinuiranoj domeni i transformacija u
diskretnu te su dane konačne upravljačke rekurzivne jednadžbe. Opisan je
postupak automatskog prebacivanja na sljedeću liniju kad platforma završi sa slijeđenjem trenutne.



\kljucnerijeci{vođenje platforme, I-PD regulator, upravljanje, površinska
vozila, X-konfiracija, namatanje integratora,}
\end{sazetak}


% TODO: Navedite naslovn na engleskom jeziku.
\engtitle{Line following of Platform for Dynamic Positioning}
\begin{abstract}  
In this paper the topic of guidance and line following of laboratory platform
is presented. The work is gradually describing and defining the path from the
issues to proposed solutions. First, a mathematical model is given that
contains descriptions of the dynamic and kinematic behavior and actuator
allocation. For control purpose, an I-PD controller based on the
binomial model transfer function is proposed. The paper describes the procedure
of synthesis in the continuous domain and transformation into discrete and at
finally the control algorithm is presented. Procedure of automatically
switching to the next line when the platform reaches the end of the previous
line.

\keywords{line following, I-PD controller, marine vehicle, guidance, control
X-configuration, integrator windup.}
\end{abstract}

\end{document}
