\chapter{Modelování elektromechanického systému v~jazyce Modelica}
\label{sec:FMUexport}
K vytvoření modelu elektromechanického systému v~jazyku Modelica bylo použito programu OpenModelica. OpenModelica umožňuje akauzální modelování, čímž je garantováno, že v~případě vytvoření značně složitého systému model neztrácí svou fyzikální podstatu a~nestává se tak nečitelným nebo dokonce nepřehledným (více v~kapitole \ref{sec:fyzikalni.modelovani}). Navíc OpenModelica, tedy \zkratkatext{zkOMEdit} podporuje standard \zk{zkFMI}, a~to jak ukládání, tak i~načítání modelů ve formátu \zkratkatext{zkFMU}.

Model elektromechanického systému byl vytvořen v~grafickém editoru \zk{zkOMEdit} za použití základních knihovních bloků. Jako model elektromechanického systému byla vybrána konstrukce \zk{zkBLDC} (\zkratkatext{zkBLDC}) motoru. Vytvořené schéma zapojení \zk{zkBLDC} motoru v~grafickém editoru OpenModelica je ukázáno na~obrázku \ref{obr:BLDCmodelvytvoreny}. Funkčnost vytvořeného modelu \zk{zkBLDC} motoru byla také otestována v~simulačním nástroji vestavěném v~\zk{zkOMEdit}oru.

\begin{figure}[!hb]
	\begin{center}
	\includegraphics[width=1 \linewidth]{obrazky/BLDCchemamodelu}
	\caption{Model \zk{zkBLDC} motoru v~\zkratkatext{zkOMEdit}u}
	\label{obr:BLDCmodelvytvoreny}
	\end{center}
\end{figure}

\section{Simulace modelu v~OpenModelice}
K tomu, aby mohl být vytvořený model \zk{zkBLDC} motoru simulací otestován, bylo potřeba  provést nejprve syntaktickou kontrolu. Kontrola syntaxe modelu byla provedena pomocí tlačítka zaškrtávacího znaku, které se nachází ve vrchní části programu OpenModelica. Po odstranění drobných chyb a~úspěšné kontrole správnosti modelu byly nastaveny parametry simulace v~souladu s~tabulkou \ref{tab:BLDC.nastaveni.simulace}.
\begin{table}[!h]
  \begin{center}
	\caption{Nastavení simulace BLDC motoru v~OMEditoru}
	\label{tab:BLDC.nastaveni.simulace}   	
  	\small
	  \begin{tabular}{|l|c|c|}
	    \hline
	\textbf{Parametr}	&	\textbf{Hodnota}	&	\textbf{Jednotka}	\\ \hline
	StartTime			&	0.1				&	[s]				\\ \hline
	StopTime	&	1.0		&	[s]			\\ \hline
	  \end{tabular}
  \end{center}
\end{table}
Teprve po nastavení těchto parametrů byla simulace spuštěna funkčním tlačítkem ve tvaru šipky směřující doprava, která se také nachází ve vrchní liště funkčních tlačítek. Po zobrazení simulačního okna, kde nebyly z~počátku vidět žádné dosažené výsledky, bylo nezbytné zapnout vykreslení jednotlivých signálů modelu.

Ve vestavěném simulátoru je možné zapnout vykreslení nasimulovaného průběhu signálu na~jakémkoliv vstupním nebo výstupním konektoru libovolného bloku. Pro ověření správnosti modelu \zk{zkBLDC} motoru však postačily dva průběhy, a~to průběh elektrických otáček motoru a~proud vinutím motoru. Z~nasimulovaných průběhů proudu a~elektrických otáček motoru bylo patrné, že odpovídají teoretickým předpokladům a~konstrukčním vlastnostem \zk{zkBLDC} motoru podle \cite{Bartik2017}. Po tomto experimentálním ověření modelu následovalo uložení vytvořeného modelu do~\zkratkatext{zkFMU}, která měla být návazně naimportována do~prostředí \zk{zkLabVIEW}.

\section{Export modelu do~formátu FMU}
Export modelu formátu \zk{zkFMU} byl proveden vestavěnou funkcí \zk{zkOMEdit}oru. Tato funkce se nachází ve vrchní liště menu pod označením standardu \zk{zkFMI}. Po rozbalení této nabídky máme možnost výběru ze dvou variant, a~to importu modelu nebo generování modelu do~jednotky \zk{zkFMU}. Výběrem možnosti \textit{„Export FMU“} byl spuštěn automatický proces generace modelu do~\zk{zkFMU}. Průběh procesu exportování bylo možné sledovat ve spodním okně označeném jako \textit{„Message Browser“}. Do~tohoto okna hlášení programu \zk{zkOMEdit} byla vypsána zpráva viz výpis \ref{lst:exportumistenimodelu}.
\begin{small}
\begin{lstlisting}[breaklines=true, caption={Umístění vyexportovaného FMU},captionpos=b,label={lst:exportumistenimodelu}]
The FMU is generated at C:/Users/Luk??/AppData/Local/Temp/BLDC.fmu
\end{lstlisting}
\end{small}

Z výpisu \ref{lst:exportumistenimodelu} je patrné umístění vygenerovaného modelu ve formátu \zk{zkFMU}. Vzhledem k~tomu, že při práci byl použit \zk{zkOS} Windows 10 s~českým rozhraním, který bez sebemenšího upozornění či potíží povolí vytvoření uživatelského účtu se znaky české diakritiky, objevily se právě tyto znaky v~přístupové cestě k~vygenerovanému \zk{zkFMU}. Vzhledem k~tomu, že většina v~této práci použitých programů nepodporuje češtinu, byly v~zásadě dvě možnosti řešení vzniklého problému.

První možností bylo použítí uživatelského účtu, který neobsahuje znaky s~českou diakritikou. Druhou možností bylo přeinstalovat \zk{zkOS} a~použít anglické prostředí, které tyto znaky nepodporuje. Pro dočasné řešení situace byla v~práci použita varianta první, a~sice změna uživatelského účtu. Do~budoucna je však vhodné uvažovat o~použití anglického prostředí operačního systému, neboť by se situace mohla opakovat i~v jiných programech, pokud by soubory byly uloženy s~českou diakritikou.

Po novém exportu modelu již pod záštitou uživatelského účtu, který neobsahoval znaky české diakritiky, byl v~\textit{„Message Browseru“} obdržen výpis podobný \ref{lst:exportumistenimodelu}, který již neobsahoval zástupné znaky české diakritiky ve jméně uživatelského účtu.
\begin{small}
\begin{lstlisting}[breaklines=true, caption={Opravené umístění vyexportovaného FMU},captionpos=b,label={lst:exportumistenimodeluoprava}]
The FMU is generated at C:/Users/Lukas/AppData/Local/Temp/BLDC.fmu
\end{lstlisting}
\end{small}
\par
Vyexportovaný model byl uložen do~výše uvedeného dočasného adresáře. Tento adresář obsahoval také další soubory, které jsou popsány v~následující kapitole.

\section{Struktura vytvořeného modelu}
Do dočasného adresáře, ve kterém se nacházel také popis modelu ve formátu \zk{zkFMU}, byla vyexportována řada dalších souborů. Adresářová struktura všech vygenerovaných souborů do~dočasného adresáře je uvedena níže.

{\small
%
\dirtree{%.
.1 /\DTcomment{kořenový adresář dočasné složky}.
.2 ModelName.fmu\DTcomment{vyexportované FMU}.
.3 binaries\DTcomment{adresář s~binárními knihovnami}.
.4 win64\DTcomment{adresář s~dll knihovnami pro danou platformu OS}.
.3 sources\DTcomment{adresář se zdrojovými programy jazyka C}.
.4 include\DTcomment{adresář standardu FMI}.
.4 ModelName.c\DTcomment{zdrojový kód modelu v~jazyce C}.
.4 ModelName.h\DTcomment{hlavičkové soubory k~programu v~jazyce C}.
.4 ModelName.lib\DTcomment{knihovní funkce ke zdrojovému programu v~jazyce C}.
.4 Makefile.in\DTcomment{makefile}.
.3 modelDescription.xml\DTcomment{XML popis modelu}.
.2 ModelName.libs\DTcomment{knihovna modelu}.
.2 ModelName\_FMU.libs\DTcomment{knihovna modelu FMU}.
.2 ModelName\_FMU.log\DTcomment{logovací soubor}.
.2 ModelName\_FMU.makefile\DTcomment{kompilační soubor makefile}.
.2 ModelName\_info.json\DTcomment{JavaScriptový objektový zápis modelu}.
}
}
\smallskip
Ve vygenerovaném souboru modelu \zk{zkBLDC} motoru se nachází jeho popis jazyce Modelica. V~XML souboru se nachází popis modelu, použitá verze \zk{zkFMI}, verze XML, název modelu, typ vyexportovaného modelu. Dále jsou zde uvedeny proměnné modelu, jejich inicializace a~v neposlední řadě také rovnice, které model popisují. V~XML kódu, který popisuje model \zk{zkBLDC} motoru, se však nachází mnohem více informací, které nebyly v~této fázi práce podstatné.
