%&tex
\documentclass[english,titlepage,nomath,nopackage,oneside]{siltex-book}
\include{include/preamble}

\title{Title}
\subtitle{Thesis Report}
\course{}
\faculty{\large Electrical Engineering, Mathematics and Computer Science}
\supervisor{%
	Dr. ir. J.F. Broenink \\
	Ir. T.G. Broenink
}
\author{%
    Wouter Horlings
}

\begin{document}
\maketitle
\makerro
\chapter{Samenvatting}
Dit is nu een eerste opzet van de structuur van mijn verslag.
De eerste hoofdstukken komen goed overeen met mijn orinele projectplan.
Dan is er een hoofdstuk over de casestudy zelf.
Daarin ben ik tegen best wel veel dingen aangelopen.
Vooral omdat de methode toch direct was afgeleid van een meer softwarekant.
Al vrij snel kwam ik er achter dat een dynamisch model een interactie tussen powerports.
Waar software een duidelijke input en output heeft.
Het grote verschil komt hier dus ook een volgend "blokje" aan je output hangen wel gevolgen heeft voor je dynamische systeem en niet voor je software.

Features los van elkaar beschouwen is dus niet haalbaar in een dynamisch systeem.
Als je dit terugbrengt tot subsystemen dan kom je een heel eind verder.
Maar dan wordt het implementeren van een onderdeel gelijk een tijdverslindende stap.

In de stap zelf was het toevoegen van detail in kleine stukjes wel erg succesvol.
Maar dit komt ook in een aantal andere papers naar voren.

Ik heb een verzameling van dingen die beter kunnen in het process.
Maar het is nog wel interessant om te bespreken of een "hardware-only" systeem onwikkelen nog wel van deze tijd is.
Enige complexiteit is nu vaak uberhaupt mogelijk omdat er embedded software in kan.

Daaruit komt eingelijk ook het discussiestuk aan het einde waarbij ik best een aantal punten kon aandragen waarom dit zo veel belangrijker is voor software dan hardware.

\tableofcontents
\include{include/acronyms}
\chapter{Introduction}
    \section{Context of this Thesis}
        %Wat is het probleem?
        %    Cyber Physical systems worden steeds complexer.
        %    De complexiteit bemoeilijkt de ontwikkeling significant.
        %Hoe proberen we dat op te lossen?
        %    het paper introduceerd een gestructureerde design methode voor CPS.
        %    De methode breekt de ontwikkeling op in kleine stukken die elk individueel getest kunnen worden.
        %    Hierdoor kunnen in een vroeg stadium fouten in de ontwikkeling worden gedetecteerd.
        %    De methode is ontworpen rondom de ontwikkeling van embedded control software.
        %    Het dynamische model en de control law worden aan de hand van deze methode ontwikkeld.
        %    De case in het paper baseerd het dynamische model aan de hand van bestaande hardware.

        %    Maar ontwikkeling van een nieuw CPS betekent dat er ook het fysieke deel van het systeem ontwikkeld moet worden.
        %    Of de voorgestelde ontwerpmethode geschikt is voor het ontwikkelen hardware dan ook het doel van dit onderzoek.

        %    
        %    Als de methode gebruikt gaat worden voor de ontwikkeling van een CPS from scratch moet er onderzocht worden of deze methode past bij het ontwikkelen van nieuwe hardware.
        %    
        %    Maar Cyber Physical systems zijn multi disciplinair waarvan embedded control software een is.
            
        Design methodology for \ac{CPS} is one of the research topics within the department of Robotics and Mechatronics.
        A design method for rapid development of embedded control software is proposed by \autocite{broenink_rapid_2019} as part of this research topic.
        The design method in the paper is used to design a control system on an existing hardware system.
        The presented result shows a working control system for a small segway. 
        Broenink and Broenink emphasize that "this [result] does not mean that the same techniques cannot be applied to the physical part of the system."
        This thesis will analyse if these techniques can be applied to the development of a physical system.

        %The goal of this thesis is to present a method that is suitable for designing the physical part of a system.
        %The method is based on the rapid development design method.
        %Initially, 
        %to analyse which techniques are suitable to a physical system development.





        




    \section{Research Objective}

    In the basis this research started with the question if the design method can be applied to the physical part of a system.
    That answers is a quick no.
    In the early stage of the research it was found that some techniques cannot be copied from a software development into a hardware development.
    It is necessary to analyse which techniques cannot be used and replace or improve them.
    Otherwise, it is impossible to present a design method that can be applied in a hardware development at the end of this thesis.
    The research can be summarized in the following two research questions.
    \begin{itemize}
        \item Which techniques of the design method can be applied in the development of hardware?
        \item Which adaptations are required to create a design method that is suitable for the development of hardware?
    \end{itemize}
    
    
    


        %\rro{Which techniques of the design method can be applied in the development of hardware?}
        %\subsection{Which techniques of the design method can be applied in the development of hardware?}
        %    The starting point of this research is the design method by \autocite{broenink_rapid_2019}.
        %    Their design method consists of multiple techniques, in the form of different cycles and steps.
        %    Each of these techniques will be analysed to determine if they are applicable for the physical component of the design.
        %    %For any technique that is not applicable, we w
        %\subsection{Which adaptations are required to create a design method that is suitable for the development of hardware?}
        %    Techniques that are not applicable have to be improved or replaced.
        %\rro{Which adaptations are required to create a design method that is suitable for the development of hardware?}
    \section{Approach}
        \rro{Adapt the design method for hardware development}
            \rroi{Current design method gives an initial foundation for development}
            \rroi{However, lacks detail in some parts}
            \rroi{System Engineering will fill in the blanks}
            The first step is to create a concrete design method.
            The design method by \autocite{broenink_rapid_2019} is in an abstract form.
            It often leaves room for interpretation about how certain steps should be performed.
            However, this does not help the evaluation of the test method.
            If a step is not written down, it is difficult to point out flaws during the evaluation.

            By performing a case study where a physical system will be developed, the design method can be evaluated.
            However, the type of physical system strongly influences the success of the evaluation.
            On the basis of testing requirements, it was decided to develop a Whiteboard Writer.
            Implementing this system ensures sufficient complexity but still fits in the scope of this thesis.

            The next step is to perform the case study.
            Setting up evaluations forms ensures consistent feedback for each step in the case study.
            During the case study all the design method steps are performed one by one.
            Although the development of the Whiteboard writer was not completed.
            The result of the case study is a physical prototype of a subsystem and a substantial amount of feedback.
            Based on the feedback from the case study, an improved design method is proposed.
            



            

        \rro{Define a case study to test the design method}
            \rroi{To actually test the method we have to design something}
            \rroi{From multiple options we chose the whiteboard writer}
                \rroii{Complex enough}
                \rroii{Fits within the scope}
        \rro{Perform the case study}
            \rroi{The case study does not focus on the best product.}
            \rroi{Some design decissions are made to aid the evaluation of the design method}
            \rroi{Run continuous evaluation during the case study, to improve the design method}
        \rro{Use feedback to propose design method for the development of hardware}

    \section{Structure of this Thesis}
        \autoref{chap:analysis}
        \autoref{chap:systemdesign}
        \autoref{chap:casestudy}
        \autoref{chap:improvements}
        \autoref{chap:discussion}
        \autoref{chap:conclusion}

    \include{content/analysis}
    \include{content/designcycle}
    \include{content/casestudy}

    \include{content/improvements}

\chapter{Discussion}
\label{chap:discussion}
    \section{Complexity}
        The goal of this thesis is to investigate how the design method for the embedded software in a cyber-physical system can be applied to the physical part.
        The setup of the design method and applying that method in the case study pointed out that there is an enormous difference between the cyber and physical part.
        This difference in presents itself in development cost and system complexity.

        \subsection{Complexity}
            Almost every complex system that is produced today contains software.
            Software is often the reason that the complex system can exist in the first place.
            Where software can have millions of states, configurations and variables, hardware is often limited to a dozen of states.
            


        \subsection{Cost}


        \rro{\textcite{sheard_718_1998} discusses:}
            \rroi{Mechanical solutions are inherent simpler than software solution}
            \rro{Huge difference in states}
            \rroi{Mechanical part of prototype has 3 states}
            \rroii{2 angles, 1 marker angle (given that is still operating correctly)}
            \rroii{Double it for each angular velocity: making it 6}
            \rroi{Each embedded part of the stepper drivers have more than 30 states}
            \rroii{With two drivers it gives it easily 10 times more states already}
            \rroi{Software itself has more than 40 states}

            \rro{Mechanical states are linked}
            \rroi{Software engineer has to implement and link the states}

            \rro{Mechanical states/behavior is always limited by the law of physics.}
            \rroi{We cannot make mechanics al large as we want}
            \rro{Software has almost no scaling limitations}
            \rroi{Can have gigantious amounts of states}
            \rroi{States can be changed separately}
            \rroi{Only limitations are always the computing power}
            \rroi{Real-time limitations are occuring when we want to keep up with physics}
            \rro{Mechanics that reach the same complexity as software where this design method would be usefull is something that never fits in a Thesis.}
            \rroi{Probably only on industrial scale}

            \rro{The "soft" in software is based on that it can be changed, improved, tweaked.}
            \rroi{This does not mean that it is cheap or easy}
            \rroi{During prototyping/development it probably cheaper to make a change to the hardware}
            \rroi{From the point of production, software becomes cheaper to change than hardware}

            \rro{Humans design and build hardware, humans design software but a machine builds it.}
            \rroi{Therefore, any flaws that come to light during hardware build is spotted way easier.}

    \section{Features vs Subsystems}
        \rro{Original method is based on features and implementing them one by one}
            \rroi{Software can implement a single feature, where the output can be tested}
            \rroi{A single hardware feature cannot be tested as connecting another feature changes the output}
            \rroii{Difference between a power-connection and a singal-port}
            \rroi{Smallest division in hardware is a subsystem}

    \section{Interesting concepts}
        \rro{Some features are required for multiple design options}
        \rroi{Implementing them earlier does not contribute to the cost of switching design.}

\chapter{Conclusion}
\label{chap:conclusion}

\appendix
\input{content/system_test_specification.tex}

\printbibliography
\end{document}
