%%This is a very basic article template.
%%There is just one section and two subsections.
\documentclass[times, utf8, seminar, numeric, table]{fer}
\usepackage{booktabs}
\usepackage{gensymb}
\usepackage{float}
\usepackage[geometry]{ifsym}
\usepackage{amsmath}
\usepackage{mathtools}
\usepackage{mcode}
\usepackage{listings}
\lstset{language=C}

\begin{document}

\title{Upravljanje modelom broda}
\author{Viktor Vladić}
\voditelj{Prof.dr.sc.Zoran Vukić}

\maketitle
\tableofcontents 

\chapter{Uvod}

More. Od najdavnijih vremena, čovjek ima potrebu za kretanjem i istraživanjem
tog beskrajnog plavog prostranstva. S ciljem sigurnijeg i udobnijeg putovanja,
te povećanjem duljine puta, čovjek je izumio splav. Splav je zamijenio čamcem.
Razvojem trgovine i prijevoza putnika, čamac je zamijenio brodom. U vojne svrhe
razvijen je ratni brod. S ciljem povećanja efikasnosti trgovine, razvijani su
sve veći i veći trgovački brodovi. Uz povećanje nosivosti tereta, rasla je i
duljina rute. Razvojem tehnologije, za izgradnju brodova su primjenjivani razni
materijali, od drva preko željeza pa do plastike i modernih legura. Također,
brodski pogon je usavršavan kroz povijest, od vesla, jedra, preko lopatica
parobroda, do današnjih modernih sustava propulzije. Dakle, usporedo razvitkom
znanosti i potražnje, postoji put od primitivne splavi do modernih supertankera.

\section{Osnovna problematika upravljanja brodom}
Osnovni problemi kod upravljanja brodom mogu se podijeliti na nekoliko
kategorija. Prvi problem koji se susreće je \ldots

\chapter{Laboratorijski model broda}

Motivacija za izradu fizikalnog laboratorijskog modela broda proizlazi
iz želje za stjecanjem praktičnog znanja i za upoznavanjem sa stvarnim problemima koji se
javljaju kod automatskog upravljanja plovila. Ovakav pristup problemu
upravljanja puno je veći izazov jer sadrži puno problema koji ne postoje kod
simulacije na računalu npr. povećanje smetnje senzora pri radu aktuatora ili
brtvljenje osovine broda. Model tankera odabran je iz više razloga. Tanker
predstavlja tipični teretni brod, često je korišten i stabilan je što se tiće
valjanja. Model je rađen po uzoru na 3D skicu tankera klase \emph{Panamax} na
slici \ref{fig:Slika1}.

\begin{figure}[htp]
\begin{center}
  \includegraphics[width=12cm]{img/panamax.png}
  \caption[labelInTOC]{Skica modela tankera klase Panamax}
  \label{fig:Slika1}
\end{center}
\end{figure}

Zbog iznimno velikog opsega područja koji pokriva ovaj rad, poglavlje o izradi
laboratorijskog fizikalnog modela je sažeto u ono najosnovnije.

\newpage
\section{Trup broda}
Trup broda izrađen je od poliesterske smole impregnirane staklenim vlaknima.
Najprije je obrađen sirovi komad poliuretanske pjene na način da poprimi što
sličniji oblik trupa broda prikazanog na skici sa slike \ref{fig:Slika1}. Zatim
je laminiranjem naneseno nekoliko slojeva poliesterske smole zajedno sa platnima
od staklenih vlakana. Nakon laminiranja izvađen je komad poliuretanske pjene
koji se koristio kao kalup. Površina je zatim obrađena i zaglađena masom za
popunjavanje neravnina od poliestera. U trup broda ugrađeni su tuneli za bočne
propulzore, nosači za aktuatore, kormilo i elektroniku. Na slici
\ref{fig:Slika2} može se vidjeti kako stvarno izgleda trup broda.

Dimenzije broda su sljedeće:

\begin{itemize}
  \item Dužina: $120$ cm
  \item Širina: $27$ cm
  \item Visina: $17$ cm (sa kabinom xx cm)
\end{itemize}

%\usepackage{graphics} is needed for \includegraphics
\begin{figure}[htp]
\begin{center}
  \includegraphics[width=14cm]{img/brodJezero.jpg}
  \caption[labelInTOC]{Brod na jezeru}
  \label{fig:Slika2}
\end{center}
\end{figure}

\section{Aktuatori}

Brod pokreću četiri električna aktuatora. Osovinu glavnog propelera pokreće
istosmjerni motor nazivnog napona $24$ V i nazivne struje $250$ mA. Osovina
motora i osovina propelera spojene su zupčastim remenom. Osovina se brtvi pomoću
posebno dizajnirane i izrađene brtve od nehrđajućeg čelika i teflonskih
prstenova. Teflonska brtva je korištena da se omogući vrtnja osovine
broda \emph{na suho} i da trenje bude minimalno. Brod posjeduje i sustav bočne
propulzije koji se sastoji od prednjeg i stražnjeg bočnog propulzor, eng.
\emph{Bow thruster} i \emph{Stern thruster}. Bočne propulzore pokreću također
istosmjerni motori nazivnog napona $24$ V i nazivne struje $100$ mA.

Kormilo je realizirano pomoću koračnog motora a radi na sljedeći način. Osovina
koračnog motora preko sustava zupčanika pokreće osovinu kormila i osovinu
potenciometra. Otpor potenciometra ovisi o zakretu njegove osovine. Na temelju
otpora potenciometra može se prezizno odrediti zakret kormila u svakom trenutku.
Sustav kormila prikazan je na slici \ref{fig:Slika3}

Istosmjerne motore pokreću četverokvadratni čoperi napona poznatiji kao
H-mostovi, dok koračni motor pokreće tranzistorsko pojačalo sa četiri faze.
\newline

%\usepackage{graphics} is needed for \includegraphics
\begin{figure}[htp]
\begin{center}
  \includegraphics[width=10cm]{img/kormilo.jpg}
  \caption[labelInTOC]{Sustav kormila}
  \label{fig:Slika3}
\end{center}
\end{figure}

\newpage
\section{Elektronika}

Elektronika broda je složeni sustav koji obavlja razne funkcije na brodu.
Elektronika broda osmišljena je i izrađena tako da bude maksimalno mogularna. Na
taj način moguće je vrlo jednostavno zamijeniti pojedine dijelove elektronike i
omogućena je eventualna nadogradnja sustava. Na slici \ref{fig:Slika4} može se
vidjeti na koji je način strukturirana elektronika. Plavom bojom označeni su
mikrokontroleri, narančastom bojom označena su pojačala, zelenom bojom označeni
su senzori, ljubičastom bojom označeni su komunikacijski moduli a crvenom bojom
označeni su elementi napajanja.

Glavna zadaća mikrokontrolera je razmjena podataka i upravljanje sa ostalim
komponentama. Zbog računske složenosti i izbjegavanja konflikata postoje tri
mikrokontrolera. Glavni mikrokontroler obavlja komunikaciju sa računalom,
upravljanje $I^2C$ sabirnicom, dobavljanje i kontrolu svih stanja broda i razne
upravljačke algoritme vezane za navigaciju. On sadrži podatke o:
\begin{itemize}
  \item Naponu napajanja, strujama pojedinih motora
  \item Zakretu kormila, orijentaciji
  \item GPS koordinatama, brzini kretanja
  \item Vremenu i datumu itd. \ldots
\end{itemize}

\vspace{12mm}

%\usepackage{graphics} is needed for \includegraphics
\begin{figure}[htp]
\begin{center}
  \includegraphics[width=14cm]{img/elektronikaSch.png}
  \caption[labelInTOC]{Načelna struktura elektronike}
  \label{fig:Slika4}
\end{center}
\end{figure}
\newpage

\noindent
Dio sustava prikazan je na slici \ref{fig:Slika5}. Na lijevoj strani nalazi se
mikrokontroler za upravljanje aktuatorima, u sredini je jedinica
napajanja sa relejom, dok se na desnoj strani nalazi glavni mikrokontroler. Na
dnu slike je pojačalo za koračni motor. \begin{figure}[htp]
\begin{center}
  \includegraphics[width=14cm]{img/elektronika.jpg}
  \caption[labelInTOC]{Elektronika broda}
  \label{fig:Slika5}
\end{center}
\end{figure}

Najbitnije komponente su sljedeće:
\begin{itemize}
  \item MCU - $2$ x ATmega$16$ i ATmega$8$ takta $8$MHz
  \item Compass - HMC$6352$
  \item GPS - LS$20031$
  \item H-bridge MOSFET driver - HIP$4082$   
\end{itemize}

%\usepackage{graphics} is needed for \includegraphics
\begin{figure}[htp]
\begin{center}$
\begin{array}{ccc}
  \includegraphics[width=4cm]{img/GPS.png}&
  \includegraphics[width=5cm]{img/HMC6352.png}&
  \includegraphics[width=4cm]{img/hip4082.jpg}
  \end{array}$
  \caption[labelInTOC]{GPS LS20031, Compass HMC6352, HIP4082 Driver}
  \label{fig:Slika6}
\end{center}
\end{figure}

\newpage
\section{Komunikacija}
Na brodu postoji više vrsta i razina komunikacija. Brod komunicira sa računalom
bežično koristeći serijsku komunikaciju. Mikroprocesori također međusobno
komuniciraju, i ta se komunikacija odvija preko $I^2C$ protokola. GPS i
odgovarajući mikroprocesor, prevoditelj NMEA poruka, koriste se serijskom
komunikacijom.

$I^2C$ odnosno \emph{Inter Integrated Circuit} protokol je oblik komunikacije 
koji je namijenjen povezivanju integriranih krugova i razne periferije sa 
računalom, a izumila ga je tvrtka ``Philips''. Veoma je raširen i često se
koristi u sustavima automatskog upravljanja. Glavne prednosti su da za
komunikaciju koristi samo dvije žice, postiže brzine do $1Mbit/s$ i na sabirnicu
istovremeno može biti spojeno do $127$ uređaja, što uvelike povećava
fleksibilnost i mogućnost nadogradnje. Isti protokol se koristi i pod imenom
\emph{TWI}, odnosno \emph{Two Wire Interface}.

Komunikacija broda i računala se odvija na principu \emph{Zahtjev/Odgovor}.
Ideja je da računalo brodu pošalje komandu ili zahtjev za nekim podatkom, na što
brod odgovara da je primio i izvršio komandu ili šalje zahtjevane podatke. Neke
važnije komande za komunikaciju s brodom se nalaze u tablici
\ref{table:Tablica1}. 

%\usepackage{graphics} is needed for \includegraphics
\begin{figure}[htp]
\begin{center}
  \includegraphics[width=6cm]{img/xbeepro.png}
  \caption[labelInTOC]{XbeePro komunikacijski modul}
  \label{fig:Slika7}
\end{center}
\end{figure}

Parametri serijskog porta za komunikaciju s brodom su prema tablici \ref{table:Tablica2}

\begin{table}[H]
\centering
\begin{tabular}{ccccc}
\hline \hline Baud Rate & Data bits & Stop bits & Parity & Flow control \\
\hline $19200$ & $8$ & $1$ & None & None \\ \hline \hline
\end{tabular}
\caption{Parametri serijskog porta broda}
\label{table:Tablica2}
\end{table}

\newpage

 \begin{table}[H] 
	\caption{Komunikacija broda i računala}
	\centering
	\begin{tabular}{c c c c}
	\hline \hline Broj & Zahtjev prema brodu & Odgovor od broda & Opis
	\\ \hline 1. & 'R','0' ili '1' & 'O','K' & Relay ON/OFF
	\\ 2. & 'G','R' & 'R', 1 ili 0 & Stanje releja
	\\ 3. & 'M','0' ... '8' & 'O','K' & Mod rada = 0 ... 8
	\\ 4. & 'G','M' & 'M', 0 ... 8 & Trenutni mod rada
	\\ 5. & 'H',$yaw_H$, $yaw_L$ & 'O','K' & Referentni heading
	\\ 6. & 'G','H' & 'H',$yaw_H$, $yaw_L$ & Trenutni heading
	\\ 7. & 'S','0' ili '1' & 'O','K' & Start/Stop
	\\ 8. & 'G','S' & 'S', 0 ili 1 & Stanje Start/Stop
	\\ 9. & 'K', $\delta_r$ & 'O','K' & Ref. stanje kormila
	\\ 10. & 'G','K' & 'K', $\delta$ & Tren. stanje kormila
	\\ 11. & 'A', $M_A$ & 'O','K' & Ref. stanje Motora A
	\\ 12. & 'B', $M_B$ & 'O','K' & Ref. stanje Motora B
	\\ 13. & 'C', $M_C$ & 'O','K' & Ref. stanje Motora C
	\\ 14. & 'G','A' & 'A', $M_A$ & Stanje Motora A
	\\ 15. & 'G','B' & 'B', $M_B$ & Stanje Motora B
	\\ 16. & 'G','C' & 'C', $M_C$ & Stanje Motora C
	\\ 17. & 'P',$la_H$,$la_L$,$lo_H$,$lo_L$ & 'O','K' & Ref. pozicija GPS
	\\ 18. & 'G','P' & 'P',$la_H$,$la_L$,$lo_H$,$lo_L$ & Tren. poziciju GPS
	\\ 19. & 'G','V' & 'V', $volt_H$, $volt_L$ & Napon baterije
	\\ 20. & 'G','E' & 'E', $error$ & Kod greske
	\\ 21. & 'G','W' & 'W', $warning$ & Kod upozorenja
	\\ 22. & 'r','s','t' & 'O','K' & Hard Reset
	\\ \hline
	\end{tabular}
    \label{table:Tablica1}
\end{table} 
 
 
\chapter{Matematički model broda}
Nakon što je izrađen funkcionalni fizički model broda, potrebno ga je
matematički modelirati. Cilj matematičkog modela je što vjernije opisati
kinematičko ponašanje procesa u prostoru i dinamičko ponašanje procesa u
vremenu. Matematički model potreban je iz više razloga. Dobrim matematičkim
modelom može se predvidjeti ponašanje broda, te se na taj način mogu spriječiti
razne neželjene situacije. Također matematičkim modelom mogu se simulirati
razni algoritmi upravljanja brodom i na taj način vršiti razni eksperimenti bez
mnogo utrošenog vremena, goriva a time i novaca.

Brod predstavlja iznimno složen i nelinearan proces. Egzaktno modeliranje
složenih procesa ponekad nije moguće, pa se zato pristupa pojednostavljenju procesa.
Kako ovakav sustav (slika \ref{fig:Slika4}) prikazati skupom diferencijalnih
jednadžbi?

\newpage
\section{Kinematika}
Općenito je pozicija i orijentacija nekog tijela u prostoru u odnosu na neki
referentni koordinatni sustav opisana sa $6$ stupnjeva slobode. Radi se o
koordinatama (x,y,z) koje opisuju poziciju i tzv. \emph{Eulerovim Kutovima}
($\phi$,$\theta$,$\psi$) koji opisuju orijentaciju o odnosu na neki referentni
koordinatni sustav. Ovisno o kakvom se referentnom koordinatnom sustavu radi, postoji nekoliko načina za
opis problema kinematike. Problem kinematike površinskih plovila znatno je
pojednostavljen zbog pretpostavke da se plovila ne mogu gibati vertikalno u
odnosu na površinu vode. Prirodno je da brod ne može uzletjeti sa površine vode.
Nadalje, pretpostavlja se da se plovilo ne zakreće oko x i y osi, odnosno da je
dno broda uvijek paralelno sa horizontalnom ravninom. 
Brod također posjeduje vlastiti koordinatni sustav koji je smješten u sredinu
broda, koji se kreće i rotira zajedno sa brodom. 
S obzirom da se vlastiti koordinatni sustav broda kreće zajedno s brodom, nema
smisla pričati o poziciji broda u odnosu na taj sustav, već samo o brzini kojom
se gibaju brod i njegov koordinatni sustav u odnosu na neki fiksni vanjski
koordinatni sustav. To se može lako uočiti na slici \ref{fig:Slika8}.

\begin{figure}[H]
	\centering
	\includegraphics[height=6.5cm, width=8cm]{img/kinematics.png} 
	\caption{Koordinatni sustav broda} 
	\label{fig:Slika8}   
\end{figure}

 S obzirom na ranije navedene pretpostavke, ostaje sustav
opisan sa tri stupnja slobode. U matričnom zapisu, veza između referentnog koordinatnog sustava i
pomičnog koordinatnog sustava broda može se izraziti sljedećom relacijom:

\begin{equation}
\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}
\end{equation}
\newpage

Matrica koja povezuje orijentaciju navedena dva koordinatna sustava naziva se
\emph{Rotacijska matrica} i označava se sa $R_{z,\psi}$.
Kada se matrični zapis raspiše dobije se:

\begin{equation}
\dot{x} = u\>cos\psi-v\>sin\psi
\end{equation}
\begin{equation}
\dot{y} = u\>sin\psi + v\>cos\psi
\end{equation}
\begin{equation}
\dot{\psi} = r
\end{equation}

Ako se pretpostavi da se brod giba nekom konstantnom unaprijednom brzinom, te da
na njega bočno ne djeluju morske struje i valovi u velikoj mjeri, može se pretpostaviti
da je bočna brzina jednaka nuli, odnosno da je

\begin{equation}U = \sqrt{u^2 + v^2} \approx u \end{equation}.

Na taj način mogu uvesti dodatna pojednostavljenja:

\begin{equation}\dot{x} = u\>cos\psi \end{equation}
\begin{equation}\dot{y} = u\>sin\psi \end{equation}.

\newpage
\section{Dinamika}
Kinematički opis sustava općenito ne govori o silama koje djeluju na brod. Sile
koje djeluju na neko tijelo koje se nalazi u prostoru opisuju jednadžbe
dinamičke ravnoteže, i nazivaju se dinamikom tijela odnosno sustava.
Kao i kinematika, dinamika se općenito opisuje sa $6$ stupnjeva slobode.
Na neko tijelo mogu djelovati $3$ sile, po jedna u smjeru x, y i z osi i $3$
momenta, moment u smjeru zakretanja oko x, y i z osi.
Najopćenitiji zapis dinamike gibanja nekog tijela dan je jednadžbom $3.8$, gdje
je $\nu = \left[u\> v\> w\> p\> q\> r\right]^T$, a 
$\tau = \left[X\> Y\> Z\> K\> M\> N\right]^T$.

\begin{equation} M\dot{\nu}+C(\nu)\nu + D(\nu)\nu + g(\eta)=g_0 + w + \tau \end{equation}

Matrica M naziva se inercijska matrica i sadrži informacije o silama i momentima
inercije sustava. C predstavlja Coriolis-Centripetalnu matricu koja sadrži
informacije centripetalnim i Coriolisovim silama koje djeluju na sustav zbog
brzine gibanja. U D matrici sadržan je opis djelovanja hidrodinamičkih
prigušenja, a u $g\left(\nu\right)$ utjecaj gravitacije. Sa desne strane
jednadžbe nalaze se momenti kojima se može upravljati sustavom. Vektor $\tau$
sadrži sile djelovanja aktuatora, $g_0 + w$ djelovanje balasta.

Pojednostavljenja navedena u opisu kinematičkog modela, odnosno svođenje
problema samo na horizontalnu ravninu može se opravdano primijeniti i kod opisa
dinamike broda. Ako se pretpostavi da su novi vektori 
$\nu = \left[u\> v\> r\right]^T$
$\tau = \left[X\> Y\> N\right]^T$
i zanemari utjecaj balasta i gravitacije koja djeluje okomito na horizontalnu
ravninu vrijedi sljedeća jednadžba

\begin{equation} M\dot{\nu}+C(\nu)\nu + D(\nu)\nu = \tau \end{equation}

Ovisno o primjeni, moguće je uvesti dodatne pretpostavke i još više
pojednostaviti problem dinamike.

\section{Odabir modela broda}
Ovisno o namjeni, moguće je izvesti velik broj modela kojima se može opisati
gibanje broda. Model je poželjno odabrati da bude što jednostavniji, odnosno što
manjeg reda i ako je ikako moguće linearan. Ovdje će biti spomenuta dva najčešće
korištena modela, model za manevriranje eng. \emph{Maneuvering model} i model za dinamičko pozicioniranje eng. \emph{Dynamic Positioning model}.
\newpage
\textbf{Model za dinamičko pozicioniranje}
\newline
Kod modela za dinamičko pozicioniranje, polazi se od pretpostavke da je brzina
gibanja broda vrlo mala, da je brod simetričan na vertikalnu x-z ravninu i da mu
je masa raspoređena homogeno.
Matrica C sustava glasi

\begin{equation}
C(\nu) =
\begin{bmatrix} 0 & 0 & -(m - Y_{\dot{v}})v - (mx_g - Y_{\dot{r}})r \\
				0 & 0 & (m - X_{\dot{u}})u \\
				(m - Y_{\dot{v}})v + (mx_g - Y_{\dot{r}})r & -(m - X_{\dot{u}})u & 0
\end{bmatrix}
\end{equation}

Zbog male brzine gibanja broda može se pretpostaviti da je matrica $C \approx
0$. Na taj način dolazi se do jednostavnijeg opisa sustava prikazanog
jednadžbama $3.11$:

\begin{equation}
\begin{array}{c}
	\dot{\eta} = R(\psi)\nu \\
 	M\dot{\nu} + D\nu = \tau \\
 	\tau = Bu
\end{array}
\end{equation}
 	
Matrica B predstavlja konfiguraciju aktuatora za dinamičko pozicioniranje.

\vspace{1cm}
\textbf{Model za manevriranje}
\newline
Temeljne pretpostavke modela za manevriranje su kretanje broda konstantnom
unaprijednom brzinom i upravljanje isključivo pomoću kormila i unaprijedne
propulzije. Na taj način mogu se raspregnuti model unaprijedne brzine i model
kutne i bočne brzine. Za unaprijednu brzinu približno vrijedi relacija:

\begin{equation}
(m-X_{\dot{u}})\dot{u} - X_uu - X_{\left|u\right|u}\left|u\right|u = \tau_1
\end{equation}

Kod modela kutne i bočne brzine može se pokazati da vrijedi:

\begin{equation}
M\dot{\nu} + N(u_o)\nu = b\delta
\end{equation}

gdje su $\nu = \left[v\> r\right]^T$, $\delta$ defleksija kormila i 
$b = \left[-Y_\delta\>-N_\delta\right]^T$ vektor koji povezuje defleksiju
kormila sa silom u smjeru y-osi i momentom zakreta oko z-osi. Sila u smjeru
y-osi koju stvara defleksija kormila u pravilu je malog iznosa i zbog toga se
može zanemariti njen utjecaj čime se dodatno pojednostavljuje sustav. Iz
jednadžbe $3.13$ može se izvesti prijenosna funkcija koja povezuje brzinu
zaošijanja broda sa defleksijom kormila:

\begin{equation}
\frac{r}{\delta}(s)=\frac{K(1+T_3s)}{(1+T_1s)(1+T_2s)}
\end{equation}

Jednadžba $3.14$ naziva se Nomotov model drugog reda. Nomotov model drugog reda
moguće je pojednostaviti tako da se definira jedinstvena vremenska konstanta
$T = T_1 + T_2 - T_3$ te iz toga slijedi:

\begin{equation}
\frac{r}{\delta}(s)=\frac{K}{(1+Ts)}
\end{equation}

Kako je $\dot{\psi} = r$, vrijedi:

\begin{equation}
\frac{\psi}{\delta}(s)=\frac{K}{s(1+Ts)}
\end{equation}

Jednadžbe $3.16$ i $3.12$ korištene su u velikom broju komercijalnih autopilota.
Konačne jednadžbe odabranog modela za manevriranje mogu se zapisati prema
$3.17$:

\begin{equation}
\begin{array}{c}
	\alpha_u\dot{u} - \beta_u u - \beta_{uu} \left|u\right|u = X \\
	\alpha_r\dot{r} - \beta_r r - \beta_{rr} \left|r\right|r = K\delta
\end{array}
\end{equation}

\vspace{1cm}
\section{Identifikacija modela broda}
Nakon što je odabran željeni matematički model broda, potrebno je pronaći
parametre koji ga opisuju. Postoji nekoliko načina kojima se mogu identificirati
parametri modela. Moguće je koristiti Zig-Zag manevar opisan u \cite{fossen},
mjeriti odziv kutne brzine za step pobudu defleksije kormila, korelacijskom
analizom, itd.

Za identifikaciju parametara modela broda odabrana je
metoda vlastitih oscilacija opisana u \cite{miskovic}. Relejnim upravljanjem
prema slici \ref{fig:Slika9} brod se dovodi u vlastite oscilacije po kursu.
Analizom vlastitih oscilacija moguće je doći do koeficijenata $\alpha$ i $\beta$
pretpostavljenih diferencijalnih jednadžbi sa $3.17$.

\begin{figure}[H]
	\centering
	\includegraphics{img/vlastiteOsc.png} 
	\caption{Relejno upravljanje brodom} 
	\label{fig:Slika9}   
\end{figure}

\newpage
Formule koje se koriste za izračun nepoznatih parametara korištenjem vlastitih
oscilacija su:

\begin{equation}
\alpha_{\nu} = \frac{2C}{\pi}\frac{1}{\omega^2X_m} \left[\sqrt{1 -
\left(\frac{x_a - x_0}{X_m}\right)^2} + \sqrt{1 - \left(\frac{x_a 
x_0}{X_m}\right)^2}\right]
\end{equation}

\begin{equation}
\beta_\nu = \frac{4Cx_a}{\pi}\frac{1}{\omega X_m^2}
\end{equation}

\begin{equation}
\beta_{\nu\nu} = \frac{3Cx_a}{2}\frac{1}{\omega^2 X_m^3}
\end{equation}

Za identifikaciju parametara, kontrolu i komunikaciju s brodom korišten je
program napravljen u razvojnom alatu LabVIEW. Više rijeći o programu biti će
kasnije.
Algoritam za proračun parametara uzima u obzir $n$ uzastopnih
ispravnih oscilacija. Posljednjih $n$ oscilacija se smatra ispravnim ako je
amplituda svake od njih unutar $10\%$ vrijednosti standardne devijacije
$\sigma_n$.

Pokusi su provedeni na temelju tri uzastopne ispravne oscilacije, za $\Delta\psi
= 10$ i za različite vrijednosti unaprijedne brzine $u$ i defleksije kormila
$\delta$. Provedena su dva testiranja, prvo u Brodarskom Institutu u laboratorijskim uvijetima, a zatim
na Jarunskom jezeru, uz utjecaj vjetra i valova.

\begin{figure}[H]
	\includegraphics[height=8cm, width=14cm]{img/VOmjerenje.png} 
	\caption{Primjer mjerenja vlastitih oscilacija} 
	\label{fig:Slika10}   
\end{figure}

\newpage
\begin{table}[H]
\centering
\begin{tabular}{c c c c}
\hline \hline $\delta / n \left[\%\right] $ & $60$ & $75$ & $90$ \\ \hline
\hline $15$ & 
$\begin{array}{c} \alpha_\nu = 22.6756 \\ \beta_\nu = 1.32307
\\ \beta_{\nu\nu} = 0.316941\end{array}$ & 
$\begin{array}{c} \alpha_\nu = 15.3351 \\ \beta_\nu = 1.01845
\\ \beta_{\nu\nu} = 0.19519\end{array}$ & 
$\begin{array}{c} \alpha_\nu = 10.7561 \\ \beta_\nu = 0.762229
\\ \beta_{\nu\nu} = 0.116981\end{array}$ \\ \hline
$20$ & 
$\begin{array}{c} \alpha_\nu = 23.3144 \\ \beta_\nu = 1.76853
\\ \beta_{\nu\nu} = 0.385646\end{array}$ & 
$\begin{array}{c} \alpha_\nu = 15.5159 \\ \beta_\nu = 1.45363
\\ \beta_{\nu\nu} = 0.256379\end{array}$ & 
$\begin{array}{c} \alpha_\nu = 11.0802 \\ \beta_\nu = 0.810496
\\ \beta_{\nu\nu} = 0.103078\end{array}$ \\ \hline
$25$ & 
$\begin{array}{c} \alpha_\nu = 25.8722 \\ \beta_\nu = 1.88889
\\ \beta_{\nu\nu} = 0.3687\end{array}$ & 
$\begin{array}{c} \alpha_\nu = 15.843 \\ \beta_\nu = 1.38828
\\ \beta_{\nu\nu} = 0.204333\end{array}$ & 
$\begin{array}{c} \alpha_\nu = 10.5661 \\ \beta_\nu = 0.865404
\\ \beta_{\nu\nu} = 0.0956444\end{array}$ \\ \hline
$30$ & 
$\begin{array}{c} \alpha_\nu = 27.1788 \\ \beta_\nu = 2.06121
\\ \beta_{\nu\nu} = 0.386062\end{array}$ & 
$\begin{array}{c} \alpha_\nu = 15.1589 \\ \beta_\nu = 1.27583
\\ \beta_{\nu\nu} = 0.16246\end{array}$ & 
$\begin{array}{c} \alpha_\nu = 10.6117 \\ \beta_\nu = 0.912358
\\ \beta_{\nu\nu} = 0.0892697\end{array}$ \\ \hline
$35$ & 
$\begin{array}{c} \alpha_\nu = 25.9649 \\ \beta_\nu = 2.13616
\\ \beta_{\nu\nu} = 0.34504\end{array}$ & 
$\begin{array}{c} \alpha_\nu = 16.0364 \\ \beta_\nu = 1.31714
\\ \beta_{\nu\nu} = 0.153245\end{array}$ & 
$\begin{array}{c} \alpha_\nu = 11.5163 \\ \beta_\nu = 0.91495
\\ \beta_{\nu\nu} = 0.0835362\end{array}$ \\ \hline
$40$ & 
$\begin{array}{c} \alpha_\nu = 24.2857 \\ \beta_\nu = 1.8148
\\ \beta_{\nu\nu} = 0.252084 \end{array}$ & 
$\begin{array}{c} \alpha_\nu = 16.46 \\ \beta_\nu = 1.3446
\\ \beta_{\nu\nu} = 0.146221 \end{array}$ & 
$\begin{array}{c} \alpha_\nu = 14.0555 \\ \beta_\nu = 1.03646
\\ \beta_{\nu\nu} = 0.0949693 \end{array}$ \\ \hline
$45$ & 
$\begin{array}{c} \alpha_\nu = 28.1153 \\ \beta_\nu = 1.98819
\\ \beta_{\nu\nu} = 0.277984 \end{array}$ & 
$\begin{array}{c} \alpha_\nu = 19.9912 \\ \beta_\nu = 1.23659
\\ \beta_{\nu\nu} = 0.127236 \end{array}$ & 
$\begin{array}{c} \alpha_\nu = 13.5499 \\ \beta_\nu = 1.05354
\\ \beta_{\nu\nu} = 0.0883654 \end{array}$ \\ \hline
$50$ & 
$\begin{array}{c} \alpha_\nu = 31.4674 \\ \beta_\nu = 2.05403
\\ \beta_{\nu\nu} = 0.282027 \end{array}$ & 
$\begin{array}{c} \alpha_\nu = 19.8112 \\ \beta_\nu = 1.36902
\\ \beta_{\nu\nu} = 0.135198 \end{array}$ & 
$\begin{array}{c} \alpha_\nu = 17.3213 \\ \beta_\nu = 1.07868
\\ \beta_{\nu\nu} = 0.0920468 \end{array}$ \\ \hline
\end{tabular}
\caption{IS-O eksperiment - Jarun}
\label{table:Tablica3}
\end{table}

\newpage
\begin{table}[H]
\centering
\begin{tabular}{c c c c}
\hline \hline $\delta / n \left[\%\right] $ & $50$ & $75$ & $90$ \\ \hline
\hline $15$ & 
$\begin{array}{c} \alpha_\nu = 16.4334 \\ \beta_\nu = 1.43106
\\ \beta_{\nu\nu} = 0.315533 \end{array}$ & 
$\begin{array}{c} \alpha_\nu = 16.2669 \\ \beta_\nu = 1.45682
\\ \beta_{\nu\nu} = 0.309076 \end{array}$ & 
$\begin{array}{c} \alpha_\nu = \ldots \\ \beta_\nu = \ldots
\\ \beta_{\nu\nu} = \ldots \end{array}$ \\ \hline
$20$ & 
$\begin{array}{c} \alpha_\nu = 16.6512 \\ \beta_\nu = 1.47342
\\ \beta_{\nu\nu} = 0.272069 \end{array}$ & 
$\begin{array}{c} \alpha_\nu = 12.8811 \\ \beta_\nu = 1.09564
\\ \beta_{\nu\nu} = 0.166355 \end{array}$ & 
$\begin{array}{c} \alpha_\nu = \ldots \\ \beta_\nu = \ldots
\\ \beta_{\nu\nu} = \ldots \end{array}$ \\ \hline
$25$ & 
$\begin{array}{c} \alpha_\nu = 17.448 \\ \beta_\nu = 1.37377
\\ \beta_{\nu\nu} = 0.218176 \end{array}$ & 
$\begin{array}{c} \alpha_\nu = 13.2997 \\ \beta_\nu = 1.10632
\\ \beta_{\nu\nu} = 0.146501 \end{array}$ & 
$\begin{array}{c} \alpha_\nu = \ldots \\ \beta_\nu = \ldots
\\ \beta_{\nu\nu} = \ldots \end{array}$ \\ \hline
$30$ & 
$\begin{array}{c} \alpha_\nu = 19.6332 \\ \beta_\nu = 1.47305
\\ \beta_{\nu\nu} = 0.214009 \end{array}$ & 
$\begin{array}{c} \alpha_\nu = 18.3092 \\ \beta_\nu = 1.62588
\\ \beta_{\nu\nu} = 0.243068 \end{array}$ & 
$\begin{array}{c} \alpha_\nu = \ldots \\ \beta_\nu = \ldots
\\ \beta_{\nu\nu} = \ldots \end{array}$ \\ \hline
$40$ & 
$\begin{array}{c} \alpha_\nu = 22.069 \\ \beta_\nu = 1.81729
\\ \beta_{\nu\nu} = 0.241599 \end{array}$ & 
$\begin{array}{c} \alpha_\nu = 15.6035 \\ \beta_\nu = 1.22768
\\ \beta_{\nu\nu} = 0.125424 \end{array}$ & 
$\begin{array}{c} \alpha_\nu = \ldots \\ \beta_\nu = \ldots
\\ \beta_{\nu\nu} = \ldots \end{array}$ \\ \hline
\end{tabular}
\caption{IS-O eksperiment - Brodarski Institut}
\label{table:Tablica4}
\end{table}

Analizom podataka iz tablica mjerenja, može se zaključiti da $\alpha$ i $\beta$
padaju s porastom brzine okretaja propulzora $n$, dok rastu s porastom
defleksije kormila $\delta$, što je i očekivano s obzirom da veća brzina
propulzora daje veći moment i time djeluje jače od prigušenja, dok je za veću
defleksiju kormila hidrodinamički otpor kormila mnogo veći. Također, može se
primjetiti da je koeficijent $\beta_{\nu\nu}$ uz nelinearni član u jednadžbi za
red veličine manji od prvog linearnog. Taj podatak potvrđuje opravdanost
korištenja linearnog modela:

\begin{equation}
\frac{\psi}{\delta}(s)=\frac{K}{s(1+Ts)}
\end{equation}

\noindent gdje su $K = 1 / \beta_\nu$ i $T = \alpha_\nu / \beta_\nu$.
\vspace{1cm}
\newline
\emph{Model unaprijedne brzine nije identificiran zbog toga što na
brodu ne postoji senzor za mjerenje unaprijedne brzine}

\newpage
\chapter{Upravljanje modelom broda}
U ovom poglavlju govorit će se o tome na koji način se može upravljati
identificiranim modelom broda.

\textbf{Guidance, Navigation and Control}
\newline
Većina današnjih plovila, letjelica i ostalih objekata automatskog upravljanja
koristi princip Navođenja, Navigacije i Regulacije. Struktura upravljanja
prikazana je na slici \ref{fig:Slika11}

\begin{figure}[H]
	\includegraphics[height=7cm, width=16cm]{img/GNC.png} 
	\caption{Guidance, Navigation and Control} 
	\label{fig:Slika11}   
\end{figure}

Sustav za navođenje generira trajektoriju, pravac, kurs, ili neku drugu željenu
referentnu veličinu. Regulator, sustav regulatora, neuronska mreža ili neka
druga upravljačka struktura zatim generiraju upravljačke signale koji upravljaju
brodom na način da on što bolje slijedi referentnu veličinu. Sustav za
navigaciju sastoji se od niza senzora i estimatora koji mjere ili estimiraju
stanja broda potrebna za planiranje reference i kao povratne veze za regulaciju.

\newpage
U ovoj fazi izrade, referenca i regulacija su realizirane na udaljenom računalu
koje komunicira s brodom bežično, dok je izvorni plan realizirati autonomno
površinsko plovilo sa vlastitom regulacijom i referenciranjem.
Navigacijski sustav broda trenutno se sastoji od GPS-a, kompasa i Diskretnog
Kalmanovog Filtra (DKF) koji estimira vrijednosti $\psi$ i $r$ na temelju
mjerenja i identificiranog modela broda. Algoritam kalmanovog filtra se izvršava u
upravljačkom mikroprocesoru broda. Jednadžba diferencija glasi:

\begin{equation}
\alpha \dot{r} + \beta r = \delta
\end{equation}

Ako se varijable stanja odrede kao $x = \left[ r \psi\right]^T $ matrice
sustava u prostoru stanja glase:

\begin{equation}
\begin{array}{ccc}
\Phi = \begin{bmatrix} 1 + \frac{\beta T}{\alpha} & 0 \\ T & 1 \end{bmatrix} &
\Gamma = \begin{bmatrix} \frac{T}{\alpha} \\ 1 \end{bmatrix} &
H = \begin{bmatrix} 0 & 1 \end{bmatrix}
\end{array}
\end{equation}

Dio koda u mikroprocesoru koji se tiče Kalmanovog Filtra je:
\begin{lstlisting}

void DKF(void) //Inicijalizacija matrice kovar. P u init();
{
	d = (float) kormilo - 60; // Delta
	psi = (float) heading / 10;	// Psi
	p_11 = (1+beta*Ts/alfa)*p11*(1+beta*Ts/alfa)+Q11; //Predikcija
	p_12 = (1+beta*Ts/alfa)*p11*Ts+(1+beta*Ts/alfa)*p12;
	p_21 = (Ts*p11+p21)*(1+beta*Ts/alfa);
	p_22 = (Ts*p11+p21)*Ts+Ts*p12+p22+Q22;
	K1 = 1/(p_22+R)*p_12; // Kalmanovo pojacanje
	K2 = 1/(p_22+R)*p_22;
	x_1 = (1+beta*Ts/alfa)*x1+delta*Ts/alfa; // Predikcija
	x_2 = Ts*x1+x2;
	x1 = x_1+(psi-x_2)*K1; // Korekcija
	x2 = x_2+(psi-x_2)*K2;
	p11 = p_11-K1*p_21-(p_12-K1*p_22)*K1+R*K1*K1; // Korekcija
	p12 = (p_12-K1*p_22)*(1-K2)+R*K1*K2;
	p21 = (1-K2)*p_21-(1-K2)*p_22*K1+R*K2*K1;
	p22 = (1-K2)*p_22*(1-K2)+R*K2*K2;	
	headingEstimate = (int) (x2 * 10); // Izlaz
	headingRateEstimate = (int) (x1);
}
\end{lstlisting}

\newpage
\section{Regulator kursa}
Jedna od referenca često korištenih referenci koja se regulira na plovilima je
kurs. Zadavanje reference kursa može se dogoditi na više razina regulacije.
Referentna vrijednost kursa može se zadati ručno, a može je zadavati regulator
koji se nalazi hijerarhijski iznad regulatora kursa, npr. regulator praćenja
linije. U svakom slučaju, cilj je osigurati što bržu i što točniju regulaciju
kursa po mogućnosti bez prebačaja i oscilacija.

Matematički model koji će služiti za regulaciju kursa je dan Nomotovom funkcijom
prijenosa prvog reda sa parametrima $\alpha = 15$ i $\beta = 1.5$. Ovi parametri
dobiveni su usrednjavanjem većeg broja parametara iz tablice $3.1$. Vrijeme
diskretizacije računala broda iznosi $T = 0.25 \left[s\right]$, ali će
simulacije biti provedene na kontinuiranom modelu. Uz $K = 1 / \beta_\nu$ i $T
= \alpha_\nu / \beta_\nu$ dobije se da je $K = 0.67$ i $T = 10$. Slijedi:

\begin{equation}
\frac{\psi}{\delta}(s)=\frac{0.67}{s(10s + 1)}
\end{equation}

Prvi i najjednostavniji način regulacije kursa je P regulator, međutim to i nije
baš najbolje rješenje budući da se ne mogu po želji postaviti polovi prijenosne
funkcije rezultirajućeg zatvorenog kruga. Može se pokazati da se I-PD
regulatorom prema slici \ref{fig:Slika12} mogu po želji razmještati polovi rezultirajuće
prijenosne funkcije zatvorenog kruga. Prijenosna funkcija zatvorenog kruga glasi:

\begin{equation}
\frac{\psi}{\psi_{ref}}(s)=\frac{KK_I}{Ts^3 + (1+KK_D)s^2 + KK_Ps + KK_I)}
\end{equation}

\begin{figure}[H]
	\includegraphics[height=7.5cm, width=14cm]{img/IPD.png} 
	\caption{I-PD regulator} 
	\label{fig:Slika12}   
\end{figure}

\newpage
S obzirom da nije poželjno imati nadvišenje kod regulacije kursa, moguće je
odabrati binomnu modelsku funkciju. Binomna modelska funkcija predstavlja
najbrži aperiodski odziv bez nadvišenja. Ako se odabere trostruki pol u $s =
-1/3$ odnosno $T_b = 3$ dobije se prijenosna funkcija:

\begin{equation}
G_\psi(s)=\frac{1}{27s^3 + 27s^2 + 9s + 1}
\end{equation}

Uzevši u obzir ograničenja na maksimalni zakret i brzinu zakretanja kormila u
obje strane, simuliran je rad zatvorenog kruga regulacije kursa $\psi$ I-PD
regulatorom, i odziv je prikazan na slici\ref{fig:Slika13}

\begin{figure}[H]
	\includegraphics{img/IPDprijelaz.png} 
	\caption{Odziv zatvorenog kruga na step pobudu} 
	\label{fig:Slika13}   
\end{figure}

Plavom bojom prikazan je željeni odziv odnosno binomna funkcija, dok je crvenom
bojom prikazan odziv sa uključenim maksimalnim zakretom kormila od $30\> ^\circ$
i maksimalnom brzinom zakretanja od $90\> ^\circ/s$.

\newpage
\section{Praćenje linije}

Neka je zadani problem doći brodom u jednu udaljenu točku. Problem je
moguće riješiti na više načina. Moguće rješenje je računati kut prema zadanoj
točki i pratiti taj kurs regulatorom kursa. Međutim problem nastaje
ukoliko postoji utjecaj valova ili morske struje. Struja će početi
zanoisiti brod u jednu stranu i brod će promašiti željeno odredište.
Prikladnije rješenje bilo bi zadati referentnu liniju po kojoj se brod mora
kretati do neke točke. Poanta praćenja linije je minimizirati udaljenost broda
od referentne linije. Na taj način se izbjegava zanošenje u slučaju djelovanja
morske struje i brod će sigurno prije doći do zadanog odredišta.

Praćenje linije moguće je rješiti na više načina. Prvi način je direktna
kontrola aktuatora broda, dok je druga opcija upravljanje podređenom
regulacijskom strukturom, u ovom slučaju kontrolom kursa. U ovom seminaru
odabrana je druga metoda slijeđenja linije da se pokaže da se regulator kursa
može koristiti i u ovu svrhu.

Regulacija kursa je prijenosna funkcija trećeg reda prema formuli $4.4$ kojoj
se po volji mogu razmještati polovi. Ako se prijenosna funkcija kursa postavi
kao binomna, npr. prema $4.5$, moguće ju je ugrubo aproksimirati prijenosnom
funkcijom prvog reda koja ima vremensku konstantu kao zbroj svih onih u funkciji
trećeg reda.




\chapter{Zaključak}

 
\bibliography{literatura}  
\bibliographystyle{fer}

\chapter{Sažetak}

\end{document}
