% % `HeadingHold.tex' -- describes the FGFS Heading Hold % % Written by Jeff Goeke-Smith % % $Id$ %------------------------------------------------------------------------ \documentclass[12pt]{article} \usepackage{anysize} \papersize{11in}{8.5in} \marginsize{1in}{1in}{1in}{1in} \usepackage{amsmath} \usepackage{epsfig} \usepackage{setspace} \onehalfspacing \usepackage{url} \begin{document} \title{ Flight Gear Autopilot: \\ Heading Hold Module } \author{ Jeff Goeke-Smith \\ (\texttt{jgoeke@voyager.net}) } \maketitle \section{Heading Hold} The first autopilot system implemented was a heading hold system. The entire point of the system was to hold a single heading by using the ailerons only. Currently the system does not use the rudder for heading or side slip control. The system of determining how to control the ailerons is a fuzzy logic system ( at least according to the book I borrowed from the local library) . The first stage of the autopilot system determines the relative heading by comparing the current heading to the target heading. This step allows me to determine what direction I should turn. \begin{figure}[hbt] \centerline{ \psfig{file=HeadingHold.eps} } \caption{Relative heading vs. target roll} \label{fig:headinghold} \end{figure} The next step determines how far I should be rolled and in what direction. By luck, or maybe by design, If I want to move to a negative relative heading, I need to have a negative roll. And by even more luck, To roll in a negative direction, I need to add negative aileron. Figure \ref{fig:headinghold} shows how I determine how far I should be rolled. The x-axis represents the relative heading. The y-axis represents the Target Roll. The specific values where the graph changes slope is determined by a series of variables in the Autopilot Structure. % ___________________________ % / % / %0- - - - - - - - - - - - / - - - - - - - - - - - - % / %_______________________/ %| | | %-180 0 180 Now that the we know how far the aircraft should be rolled, we now determine the Relative roll. This being the current roll compared to the target roll. Now that we know how far we need to roll, we employ a near identical copy of the above routine to determine where the aileron should be by using the x-axis to represent the relative roll and the y-axis being the aileron setting. The system then sets the aileron to that setting and finishes the procedure. If anyone who reads this is interested in more information on how I built this system, feel free to e-mail me at \texttt{jgoeke@voyager.net} or read the code yourself. \end{document} %------------------------------------------------------------------------