\documentclass[11pt]{article}
\usepackage[a4paper, portrait, includehead, includefoot, margin=1.5cm]{geometry}

\usepackage[dutch]{babel}

\usepackage{pdfpages}

\usepackage{xcolor}
\usepackage{makecell}
\usepackage{tabularx}
\usepackage{adjustbox}

\usepackage{framed}

\usepackage{longtable}
\providecommand{\tightlist}{\setlength{\itemsep}{0pt}\setlength{\parskip}{0pt}}
\usepackage{booktabs}

\usepackage{fontspec}
\usepackage{xunicode}
\usepackage{xltxtra}

\newfontfamily\fontRoboto[]{Roboto}
\newfontfamily\fontUbuntu[]{Ubuntu}
\setmainfont{Roboto}

% \usepackage[style=ieee]{biblatex}
% \usepackage{csquotes}
% \addbibresource{bibliography.bib}

% header and footer
\usepackage{fancyhdr}
\renewcommand{\headrule}{}

\usepackage[nodayofweek]{datetime}

\definecolor{darkishyellow}{rgb}{177, 179, 173}

% for images
\usepackage{graphbox}

% add bookmarks with \hypertarget
\usepackage{bookmark}
\usepackage{hyperref}

% heading numberging
\setcounter{secnumdepth}{3}
\renewcommand\thesection{{\fontUbuntu\arabic{section}}}
\renewcommand\thesubsection{{\fontUbuntu\arabic{section}.\arabic{subsection}}}
\renewcommand\thesubsubsection{{\fontUbuntu\arabic{section}.\arabic{subsection}.\arabic{subsubsection}}}
\usepackage{sectsty}
\allsectionsfont{\fontUbuntu}
\setlength{\headheight}{14pt}

% no indent at paragraphs
\usepackage{parskip}
\usepackage{setspace}
\setstretch{1.1}
\let\tmpitem\itemize
\let\tmpenditem\enditemize
\renewenvironment{itemize}{\tmpitem\setlength\itemsep{-.4em}}{\tmpenditem}

\begin{document}
\raggedright
\pagecolor{darkishyellow}

\begin{titlepage}
	\null\vfill
	\begin{center}
		{\Huge\fontUbuntu Superlight Personal Carier (SPC) \par}
		\vskip 3em
		% \includegraphics{assets/eriks.50.png}
		\vskip 3em
		{\huge\fontUbuntu Superlight Personal Carrier \par}
	\end{center}
	\vskip 25em
	{
		\large
		\lineskip .75em
		\begin{tabular}{r l}
		      gemaakt door: & Finley van Reenen (0964590@hr.nl) \\
		                    & Chris Tan (0992143@hr.nl) \\
		                    & Tijn Snijders (1001829@hr.nl) \\
		                    & Max Kappert (1030682@hr.nl) \\
		                    & Thomas Braam (0989527@hr.nl) \\\\
		          vak code: & ELEPEE51 \\\\
		 ge\"exporteerd op: & \today
		\end{tabular}
	}
	\vfill\null
\end{titlepage}

\pagestyle{fancy}
\fancyhead{} % clear all header fields
\fancyhead[LO]{\color{gray}\fontUbuntu Superlight Personal Carier (SPC)}
\fancyhead[RO]{\color{gray}\fontUbuntu Superlight Personal Carrier}
\fancyfoot{} % clear all footer fields
\fancyfoot[LO]{\color{gray}\fontUbuntu E.L.F. van Reenen, C. Tan, T Snijders, M. Kappert en T. Braam}
\fancyfoot[CO]{\color{gray}\fontUbuntu }
\fancyfoot[RO]{\color{gray}\fontUbuntu \thepage}




\newpage

\section{inhoudsopgaven}\label{inhoudsopgaven}

\tableofcontents

\newpage

\section{Inleiding}\label{inleiding}

Het SPC-project is een project vanuit de opleiding Automotive. Het doel
is om een lichtgewicht, zelf stabiliserend persoonsvoertuig te
ontwikkelen dat als een testplatform kan dienden. Bij dit test platform
is het doel om een kleinere milieu vriendelijkere manier van persoonlijk
transport dan een `gewone' auto.

\newpage

\section{Analyse}\label{analyse}

Niels Groningen - de opdracht gever - wil graag een test platform
hebben. Het is lastig harde eisen te stellen aan dit testplatform,
aangezien nog niet exact bekend is wat er getest op gaat worden. Het is
de bedoeling dat er verschillen soorten testen op gedaan kunnen worden.

Voor dit project zijn er wel duidelijke eisen nodig zodat het duidelijk
is dat we allebei hetzelfde idee hebben hoe die moet werken. Hierom is
er dus doorgevraagd en zijn een aantal richtlijnen uitgekomen.

\begin{itemize}
\tightlist
\item
  Het voertuig moet een redelijke actieradius hebben, zoals bijvoorbeeld
  comfortabel vanaf Amsterdam naar Rotterdam kunnen rijden.
\item
  Het moet over de snelweg kunnen in theorie, maar hoeft niet aan alle
  regelgevingen te voldoen.
\item
  Er moet actieve stabilisatie op komen.
\item
  Beide wielen moeten gestuurd en aangedreven worden.
\item
  Het voertuig moet zo licht mogelijk zijn, zonder te veel weg te nemen
  van gebruikers vriendelijkheid voor de bestuurder.
\item
  Het voertuig moet uiteindelijk semi-automatisch kunnen rijden.
\end{itemize}

Op basis van deze richtlijnen is er een Pakket van Eisen opgesteld,
hierna is er nog wat meer heen en weer gegaan om de eisen wat te fine
tunen.

Het resulterende Pakket van Eisen is te vinden in de bijlagen.

\newpage

\section{Architectuur}\label{architectuur}

Het systeem heeft verschillende onderdelen die te zien zijn in het DFD1,
elk onderdeel zorgt ervoor dat het voertuig kan rijden en een stapje
verder kan zetten in het einddoel, het vervoeren van een persoon.

\begin{figure}
\centering
\includegraphics{../../latex/images/b87f75dc-87b1-47a9-adfe-bc389c5377fb.png}
\caption{DFD1}
\end{figure}

\subsection{VCU}\label{vcu}

De Vehicle Control Unit zorgt voor veel onderdelen in het systeem
waaronder het sturen van het voertuig en aangeven hoe snel de gebruiker
wil, die geeft een signaal naar de stabilisatie en de motor.

REQ-C-1{[}MH{]}: het voertuig wordt bestuurd doormiddel van een
elektronisch input, zoals een joystick, die bedienbaar is door de
bestuurder.

REQ-C-2{[}MH{]}: er is een noodstop aanwezig.

\subsection{Stabilisatie}\label{stabilisatie}

De stabilisatie is nodig zodat we het voertuig niet hoeven te verlaten
als we stil moeten staan, dit is omdat de bestuurder ingecapsuleerd is
in het voertuig. De VCU geeft een data signaal aan de Stabilisatie
hoeveel vermogen die mag gebruiken.

REQ-S-1{[}MH{]}: Het voertuig wordt actief gestabaliseerd

REQ-S-2{[}SH{]}: Het voertuig kan uit zichzelf weer recht komen te
zitten vanaf een roll hoek van 5 graden

\subsection{aandrijving}\label{aandrijving}

De aandrijving zorgt ervoor dat het voertuig zichzelf kan voortbewegen
op genoeg snelheid zodat er veilig op de weg gereden kan worden. de VCU
stuurt een signaal voor accelereren of remmen.

REQ-A-4{[}MH{]}: Het voertuig is ontworpen zodat de maximale snelheid 60
kilometer per uur of sneller is.

60 km/h is de minimale snelheid voor op de snelweg.

REQ-A-5{[}SH{]}: Het voertuig is ontworpen zodat die 150 kilometer per
uur of sneller kan rijden in ideale omstandigheden.

REQ-A-6{[}SH{]}: Het voertuig is ontworpen zodat die 100 kilometer
actieradius of meer kan bereiken in ideale omstandigheden.

De opdracht gever wil graag tussen Amsterdam van Rotterdam kunnen
rijden.

REQ-A-7{[}CH{]}: Het voertuig is ontworpen zodat die 250 kilometer
actieradius of meer kan bereiken in ideale omstandigheden.

\newpage

\section{Vehicle Control unit (VCU)}\label{vehicle-control-unit-vcu}

De VCU is een belangrijk onderdeel van het systeem, hiermee kunnen we
het voertuig in een richting sturen en vooruit bewegen. De belangrijkste
keuzes hierin zijn in welke taal we willen gaan programmeren en wat voor
soort microcontroller we willen. De reden hiervoor is zodat de volgende
team makkelijker kan omgaan met de code en het systeem makkelijker
kunnen uitbreiden. Het makkelijkst is dan om met de Arduino IDE en
framework verder te gaan, omdat het een bekent en veel gedocumenteerd
systeem is waar je veel over kan vinden op internet tegenover veel
andere IDE's, programmeertalen en microcontrollers. Verder moet het ook
draadloos verbinding kunnen maken met een console controller zodat de
volgende teams eventueel een andere keuze kunnen maken hoe ze willen
sturen. Daarom hebben we voor de ESP32 gekozen omdat het alles aantikt
met een gezond aantal GPIO pinnen.

\subsection{Actuator}\label{actuator}

De actuator hebben we nodig om de wielen in een richting te kunnen
sturen. Volgens Max Kappert(student automotive engineer) hebben we de
volgende parameters gekregen die we nodig hebben om het voertuig te
kunnen sturen.

\begin{longtable}[]{@{}
  >{\raggedright\arraybackslash}p{(\columnwidth - 6\tabcolsep) * \real{0.4051}}
  >{\raggedright\arraybackslash}p{(\columnwidth - 6\tabcolsep) * \real{0.1646}}
  >{\raggedright\arraybackslash}p{(\columnwidth - 6\tabcolsep) * \real{0.1519}}
  >{\raggedright\arraybackslash}p{(\columnwidth - 6\tabcolsep) * \real{0.2785}}@{}}
\toprule\noalign{}
\begin{minipage}[b]{\linewidth}\raggedright
Parameter
\end{minipage} & \begin{minipage}[b]{\linewidth}\raggedright
Waarde
\end{minipage} & \begin{minipage}[b]{\linewidth}\raggedright
Eenheid
\end{minipage} & \begin{minipage}[b]{\linewidth}\raggedright
Opmerking
\end{minipage} \\
\midrule\noalign{}
\endhead
\bottomrule\noalign{}
\endlastfoot
Voertuigspanning & 12 - 14 & \(V_{DC}\) & typisch voor auto-VCU's \\
Stuurspanningdemperkle & 0 - 5 & \(V_{DC}\) & naloge regeling \\
PWM-signaal frequentie & 25000 - 30000 & \(Hz\) & Typische range voor
aansturing \\
PWM duty cycle & 10 - 90 & \(\%\) & \(10%
\): minimale demping, \(90%
\): maximale demping\footnote{demping voor de ophanging via de interne
  actuator demper} \\
Stroomverbruik klep & 0.5 - 2 & \(A\) & Afhankelijk van de interne
weerstand \\
Wielsnelheid & 0 - 250 & \(km/h\) & Meet snelheid per wiel \\
Karrosserieversnelling & -3 tot +3 & \(g\) & Laterale en verticale
versnellingen \\
Axiale potentiometer (veerweg) & 0 - 50 & \(mm\) & Meet veeruitslag \\
Temperatuur werkbereik & -40 tot +85 & \(^\circ C\) &
Automobielstandaard \\
\end{longtable}

Voor de Actuator is er een keuze gemaakt voor CDC (Continuous Damping
Control) demper van SACHS, Maar vanwege de besteltijden van dit soort
componenten kunnen we dit niet gebruiken. Daarom gebruiken we een
actuator die er al staat, de A0-01/M van S-LINE. om de actuator te
besturen gebruiken we een motordriver, de MDD20A. Dit is omdat we het al
hebben en werkt met de huidige actuatoren en voldoende de parameters van
de actuatoren behaald, daarom hebben we besloten om niet een nieuwe te
kopen of te ontwerpen. Om ervoor te zorgen dat de actuatoren niet te ver
gaan gebruiken we de AS5600 magnetic encoder. Dit is omdat de encoder
een absoluut positie meegeeft en daarom voor minder problemen zorgt als
het voertuig opnieuw opstart.

\newpage

\section{Stabilisatie}\label{stabilisatie-1}

Voor de Stabilisatie is er een motor driver ontworpen. De specificaties
van deze zijn groten deels gebaseerd op specifieke motor. Samen met
Automotive is deze uitgekozen.

\subsection{De Motor}\label{de-motor}

Het is er een die gevonden is op Aliexpress, niet een heel erg
betrouwbare verkoper, maar we kunnen geeb andere geschikte vinden voor
een redelijke prijs. Deze motor kan de kracht net niet continu aan, maar
wel voor korte duur. De snelheid is wel iets ingeperkt ten opzichte van
de berekende \(1000 rpm\) dat nodig is, deze kan maar tot \(875 rpm\).
Dit is de reden geweest dat we geen motor gaan inkopen, maar een testen
met een motor uit de voorraad. Deze zal waarschijnlijk niet voldoende
vermogen kunnen halen, maar we kunnen wel testen of het concept werkt
voordat er grote bedragen uitgegeven gaan worden aan een geschikte
motor.

De specificaties van de motor:

\begin{itemize}
\tightlist
\item
  \(K_T = 0.15 Nm/A\) - motor koppel constante
\item
  \(I_{noload} = 3.52 A\) - Stroom verbruik bij geen koppel
\item
  \(K_v = 69 rpm/V\) - motor snelheidsconstante
\item
  \(V_{th} = 598 mV\) - threshold voltage
\item
  \(I_{max} = 78.5 A\) - maximaal stroom verbruik voor onze applicatie
  (\(11.2Nm\) met 1:4 gearbox)
\item
  \(U_{max} = 64 V\) - maximaal spanning benodigd voor onze applicatie
\end{itemize}

berekeningen voor deze waardes staan in het Detailontwerp Stabilisatie
in hoofdstuk \hyperref[motor-keuze]{Motor Keuze} (zie bijlagen)

\begin{quote}
Er is helaas iets fout gegaan bij de berekeningen die eerder gedaan zuhb
om de specificaties vast te stellen. Er is per ongeluk met \(25 Nm\)
gerekent i.p.v. \(45 Nm\). Dit betekent dat de motor driver is ontworpen
voor \(50 A\) i.p.v. \(80A\). Dit kan opgelost worden door een motor
gearbox combie die te vinden is met \(50A\) maar met een hogere spanning
het vermogen haalt. Er is veel ruimte aan spanning, dus dit zal geen
groot probleem moeten zijn.
\end{quote}

\subsection{Motor Driver}\label{motor-driver}

\subsubsection{specificaties}\label{specificaties}

\begin{itemize}
\tightlist
\item
  De drijver moet minimaal \(64 V\) aan kunnen, met voorkeur van meer
  dan \(120 V\) \footnote{Er wordt tot \(50 V\) getest, voor deze
    waardes wordt het ontworpen, maar niet tot het limiet getest.}
\end{itemize}

De \(120V\) komt van de vorige groep die aan dit project hebben gewerkt.
Dit is de spanning van de accu die zij hadden gebruikt om dingen mee te
berekenen. Er is nog geen besluit wat deze spanning werkelijk gaat
worden.

\begin{itemize}
\tightlist
\item
  De drijver moet minimaal \(50 A\) continu kunnen leveren (wat
  eigenlijk \(80 A\) had moeten zijn) \footnote{Er wordt tot \(50 V\)
    getest, voor deze waardes wordt het ontworpen, maar niet tot het
    limiet getest.}
\item
  Maakt gebruik van Field Oriented Control, om het volledige vermogen te
  kunnen halen vanaf stilstand.
\item
  De hoek van het voertuig moet gemeten worden.
\item
  Er is een regel loop tussen de hoek sensor en de kracht van de motor.
\item
  Er is een SPI-client connector waarmee verschillende instellingen
  ingesteld mee kan worden, waaronder het maximaal vermogen.
\end{itemize}

Met deze specificaties is het erg lastig om een motor driver voor te
vinden. Zo lastig dat - zonder een bedrijf één te laten ontwerpen - we
er geen gevonden hebben. Hierom is gekozen om zelf een motor driver te
ontwerpen.

De SPI-client is afgesproken met de andere elektrotechnische ingenieurs
als algemeen communicatie protocol nadat was besloten om een eigen motor
driver te ontwerpen.

\subsubsection{Ontwerp}\label{ontwerp}

Het ontwerp is gemaakt door Finley, zij heeft op haar stage al een motor
driver ontworpen. Hier heeft ze heel veel geleerd over het ontwerpen van
een motor driver. Hier komt ook veel van de kennis vandaan. Deze
motordriver is niet gebaseerd op die motor driver, deze kan maar \(3A\)
aan, dus compleet opnieuw beginnen is makkelijker.

\paragraph{Half-bridges}\label{half-bridges}

De motor is een BLDC motor de volledige naam is een permanent magneet
borstelloze 3 fase synchrone motor. Dit betekent dat er permanente
magneten in zitten, geen borstels, aangestuurd met 3 fase en synchrone
draait met deze 3 fases.

De motor driver wordt gevoed van een accu, dus DC. Om deze synchrone 3
fases te genereren zijn drie half-brdiges nodig. Een voor elke fase.

Voor de FET's voor deze Half-bridges is gekozen voor de EPC2307, Dit
zijn GaNFET's in tegenstelling to de vaker gebruikte MOSFET's. MOSFET
fabrikanten hebben een gewoonte om de maximale stroom te berekenen met
perfecte koeling. Dit is dus niet realistisch haalbaar. Om achter te
komen wat wel haalbaar is is een thermal analyses nodig, dit is grof weg
gedaan voor een redelijk wat MOSFET's, maar geen enkel was geschik om de
\(50A\) te schakelen. EPC (Efiction Power Converter; de fabrikant van de
EPC2307) is een van de weinige fabrikanten wel een realistisch beeld van
de maximale stroom.

Om te bevestigen is een berekening vermaakt hoeveel de FET's aan
vermogen verliezen in deze applicatie. Dit is gedaan met de volgende
formule.

\[
P_{loss} = I^2R_{DS(on)} + \frac{UIt}{2} \cdot 2f_s
\]

\(I\): stroom\\
\(U\): voedingsspanning\\
\(t\): schakeltijd\\
\(f_s\): de schakel frequentie

\(U = 120V\), \(I = 50A\) (uit specificaties motor driver)\\
\(t = 4 ns\) (berekent in simulatie)\\
\(f_s = 50 kHz\) (frequentie is gekozen omdat die buiten menselijk
gehoor licht)

\(P_{loss} = 26.2 W\).

Deze formule is erg pessimistisch, deze gaat uit van \(100\%\) PWM
terwel de uitgang een sinus is dus gemiddeld is het altijd \(50\%\) en
de schakelverliezen worden ook overschat. Voor meer informatie over deze
berekening zie bijlagen Detailontwerp Stabilisatie hoofdstuk
\hyperref[verliezen-in-de-fet]{Verliezen in de FET}

\begin{quote}
Voor meer informatie over hoe de vermogens filtering is gedaan zie
bijlagen Detailontwerp Stabilisatie hoofdstuk
\hyperref[power-filtering]{Power Filtering}
\end{quote}

\paragraph{Sensoren}\label{sensoren}

Er zijn drie sensoren nodig, stroom meting, positie van de motor en de
hoek van het voertuig.

\subparagraph{stroom meting}\label{stroom-meting}

De stroom meting wordt gedaan met de ACS724xLCTR-50AB. Dit is een stroom
meting IC die van \(-50A\) tot \(+50A\) kan meten. Deze komt tussen de
motor en de uitgang van de half-bridges. Het is ook mogelijk om aan de
lage FET in de half-bridge te meten met een shunt, maar omdat het nog
niet heel duidelijk is hoe het FOC algoritme werkt, lijkt dit een
makkelijkere manier om het algoritme te implementeren.

Er is niet gekozen voor een shunt met een versterker, omdat er \(200V\)
op deze uitgang komt te staan. De versterkers die dit aankunnen zijn erg
duur en de ACS724xLCTR-50AB wordt dan een goedkopere optie.

\subparagraph{Hoek van de motor}\label{hoek-van-de-motor}

de motor hoek is nodig voor FOC. Hoe nauwkeuriger deze sensor is hoe
efficiënter FOC wordt. De AS5600 is zowel makkelijk te monteren als
nauwkeurig zonder dat die elke keer bij het opstarten hoeft gekalibreerd
hoeft te worden.

\begin{quote}
Meer informatie waarom deze keuze is gemaakt, zie de bijlagen
Detailontwerp Stabilisatie hooftstuk Encoder
\end{quote}

\subparagraph{Hoek van het voertuig}\label{hoek-van-het-voertuig}

Een MEMS Gyroscoop kan verandering in de hoek meten, deze is erg snel
hierin maar bij afwijking verliest die de nul positie. Hiervoor is een
combinatie gekozen met een MEMS-acceleratiemeter. Deze kan met de
zwaartekracht meten zolang het voertuig niet te veel beweerd.

Om het makkelijk te maken is er gekozen voor de M5Stack IMU Pro Mini.
Deze is makkelijk te monteren, omdat die al in een behuizing zit met
montage gaten. Deze sensor komt met de BMI270 van Bosch die zowel een
MEMS-acceleratiemeter als gyroscoop heeft.

\begin{quote}
Meer informatie warom deze keuze is gemaakt, zie bijlagen Detailontwerp
Stabilisatie hoofdstuk \hyperref[hoek-sensor]{Hoek Sensor}
\end{quote}

\subsubsection{Productie en Testen Motor
Driver}\label{productie-en-testen-motor-driver}

De PCB en stencil zijn geproduceerd door JLCPCB en de componenten zijn
geplaatst en in de reflow oven gegaan in het SMD-lab op Accademiplein.

Na dat die uit de over kwam zijn er een aantal soleer balletjes
weggehaald, twee soldeer bruggen weg gehaald bij een van de gate driver
IC's en de microcontroller opnieuw met de hand erop geplast. De
microcontroller had te veel tin op de grondpad aan de onderkant,
waardoor deze omhoog kwam en de pinnen aan de zijkant boven de PCB
zweefde onder contact.

Tot hoever er getest is werkt alles, de FET's schakelen en de PWM wordt
correct gegenereerd. Helaas heb ik geen foto's van de scope kunnen
maken, ik had beide handen vol met de probes en het lukte me niet om met
mijn neus de scope te triggeren. Ik ga maandag 23 juni iemand om hulp
vragen terwel ik verder ga testen.

\newpage

\section{Project Verloop}\label{project-verloop}

Aan het begin was het vooral lastig om duidelijk te maken wat de
vereisten van beide opleidingen en tot een format te komen van het Plan
van Aanpak en Pakket van eisen die voor beide opleidingen voldoet. Het
is ons niet gelukt om tot een enkel Pakket van Eisen te komen, bij
Automotive moet het in een Exel bestand. Dit is alleen lastig om te
exporteren naar bestand dat geschik is om te kunnen ondertekenen.
Daarbij is het ook lastig om er onderbouwing van de eisen bij te zetten,
dit is niet nodig voor Automotive.

We hebben uiteindelijk ons eigen Pakket van Eisen gemaakt op onze manier
en deze vertaalt naar een Exel bestand voor Automotive.

Na deze twee documenten zijn er weinig `conflicten' geweest tussen de
eisen van Elektrotechniek en Automotive.

Een van de projectleden, Mohamed, is erg weinig komen opdagen. En heeft
de drie waarschuwingen gekregen dat volgens de samenwerkingsovereenkomst
dat wij hebben opgesteld en getekend (inc. Mohamed), waar na die uit de
groep gezet kan worden. i.p.v. dit direct te doen hebben wij als groep
samen met Joris Straver een gesprek gehad, wat er toe heeft geleden dat
die de groep heeft verlaten. Rond deze tijd had Gryvon ook aangegeven
dat die de groep verliet wegen te veel stress met andere vakken.

Vanaf school week 4.1 waren we totaal nog maar met 5 personen i.p.v. 7.
Dit heeft er tot geleid dat de aandrijving van de wielen hebben laten
vallen en de motor driver voor de stabilisatie wat is uitgelopen.

\newpage

\section{bijlagen}\label{bijlagen}

\subsection{Plan van Aanpak}\label{plan-van-aanpak}

\subsubsection{Voorwoord}\label{voorwoord}

Voor u ligt het \textbf{Plan van aanpak} (PVA) voor het project
\textbf{Superlight Personal Carrier (SPC) 2025}. Dit document vormt de
leidraad voor de uitvoering van het project en beschrijft de
probleemstelling, doelstellingen, methodologische aanpak en de verwachte
resultaten.

Het SPC-project is een innovatief en interdisciplinair initiatief waarin
studenten van verschillende opleidingen samenwerken om een lichtgewicht,
zelf stabiliserend eenpersoonsvoertuig te ontwikkelen. Dit project bouwt
voort op eerdere inspanningen en richt zich op het verder verfijnen en
implementeren van cruciale systemen zoals de aandrijving, het
stuurmechanisme en de Digital Twin-technologie.

Dit document is met zorg samengesteld en biedt een helder overzicht van
de huidige status van het project, de uitdagingen die voor ons liggen en
de strategieën die we hanteren om deze te overwinnen. We willen hierbij
onze begeleiders, docenten en projectpartners bedanken voor hun
ondersteuning en waardevolle inzichten.

\newpage

\subsubsection{Inleiding}\label{inleiding}

Voor dit semester wordt er verder gewerkt aan het project
\textbf{Superlight Personal Carrier (SPC)}. Het SPC-project is een
samenwerking tussen studenten uit verschillende opleidingen bevordert,
met als doel een lichtgewicht, zelf stabiliserend éénpersoonsvoertuig te
ontwikkelen. Dit semester is gericht op het verfijnen en verbeteren van
essentiële subsystemen, zoals het aandrijf- en stuursysteem en
stabilisatie, waarbij er parameters uit een Digital Twin gehaald worden.

Dit project begint met een opgesteld \textbf{Plan van Aanpak (PvA)}. Dit
document biedt een solide basis voor het project door de belangrijkste
stappen, doelstellingen en methodologieën te beschrijven. Het PvA
fungeert als leidraad en naslagwerk voor alle betrokkenen, en brengt
duidelijkheid over wat er moet worden gedaan, hoe het moet worden
uitgevoerd, en wat de verwachte resultaten zijn.

Naast een overzicht van de werkzaamheden biedt het PvA inzicht in
essentiële aspecten zoals:

\begin{itemize}
\tightlist
\item
  \textbf{Planning:} Een gedetailleerd tijdschema dat de voortgang
  bewaakt en mijlpalen vastlegt.
\item
  \textbf{Kosten:} Een overzicht van de budgettaire eisen en
  financieringsmogelijkheden om het project binnen de gestelde grenzen
  te houden.
\item
  \textbf{Risico's:} Identificatie en beheersing van mogelijke obstakels
  om de betrouwbaarheid en kwaliteit van het eindresultaat te
  garanderen.
\end{itemize}

Door deze gestructureerde aanpak wordt een basis gelegd voor een
uitvoering van het project. Het PvA maakt het mogelijk om op een
doelgerichte manier toe te werken naar een functioneel en valideer baar
eindresultaat: een rijdend voertuig dat klaar is voor verdere
ontwikkeling.

\newpage

\subsubsection{Probleemdefinitie}\label{probleemdefinitie}

\paragraph{Probleemstelling}\label{probleemstelling}

Het probleem is dat er onzekerheden zijn over het voertuig en dat de SPC
niet correct ontwikkeld is om te valideren. Hierdoor is het moeilijk om
aan te tonen of de functionaliteit voldoet aan de gestelde eisen en of
de subsystemen daadwerkelijk bruikbaar zijn in de praktijk.

\paragraph{Doelstelling}\label{doelstelling}

Het doel van het project is om de functionaliteit van de SPC te
verbeteren door een functionele aandrijving en een stuurmechanisme te
ontwerpen die praktisch toepasbaar zijn in het fysieke voertuig. Deze
systemen zullen worden ontworpen en geoptimaliseerd met behulp van data
uit een Digital Twin, die als leidraad dient voor het gehele
ontwikkelingsproces. Daarnaast zal het stabilisatiesysteem verder
ontwikkeld worden, met als uiteindelijk doel een full- scale
implementatie in het voertuig.

\paragraph{Vraagstelling}\label{vraagstelling}

\subparagraph{Hoofdvraag}\label{hoofdvraag}

``Hoe ziet een functioneel en valideer baar aandrijf- en stuursysteem
voor de SPC eruit, waarbij stabilisatie is geïntegreerd in het ontwerp
en gebruik wordt gemaakt van een digital twin voor ontwikkeling,
optimalisatie en validatie?''

\subparagraph{Deelvragen}\label{deelvragen}

\begin{enumerate}
\def\labelenumi{\arabic{enumi}.}
\tightlist
\item
  \textbf{Huidige situatie \& knelpunten}
\end{enumerate}

\begin{itemize}
\tightlist
\item
  Wat is de huidige status van de SPC en welke onzekerheden bestaan er
  in het huidige ontwerp?
\item
  Welke technische beperkingen belemmeren de validatie van de SPC?
\end{itemize}

\begin{enumerate}
\def\labelenumi{\arabic{enumi}.}
\setcounter{enumi}{1}
\tightlist
\item
  \textbf{Ontwerp en validatie van het aandrijf- en stuursysteem}
\end{enumerate}

\begin{itemize}
\tightlist
\item
  Welke ontwerpcriteria moeten worden gehanteerd voor een functionele en
  bruikbare aandrijving?
\item
  Hoe kan een stuurmechanisme worden ontworpen dat werkt zonder een
  traditioneel stuur?
\item
  Welke methoden kunnen worden gebruikt om de werking van deze systemen
  te valideren?
\end{itemize}

\begin{enumerate}
\def\labelenumi{\arabic{enumi}.}
\setcounter{enumi}{2}
\tightlist
\item
  \textbf{Gebruik van een Digital} \textbf{Twin}
\end{enumerate}

\begin{itemize}
\tightlist
\item
  Hoe kan een digital twin bijdragen aan de ontwikkeling en validatie
  van de aandrijving en het stuurmechanisme?
\item
  Welke parameters en data zijn nodig om een betrouwbare digital twin op
  te stellen?
\end{itemize}

\begin{enumerate}
\def\labelenumi{\arabic{enumi}.}
\setcounter{enumi}{3}
\tightlist
\item
  \textbf{Stabilisatie en implementatie}
\end{enumerate}

\begin{itemize}
\tightlist
\item
  Hoe kan het stabilisatiesysteem verder worden ontwikkeld en
  geoptimaliseerd?
\item
  Op welke manier kan een full-scale implementatie van de SPC worden
  gerealiseerd?
\end{itemize}

\begin{enumerate}
\def\labelenumi{\arabic{enumi}.}
\setcounter{enumi}{4}
\tightlist
\item
  \textbf{Kwaliteitsborging en testen}
\end{enumerate}

\begin{itemize}
\tightlist
\item
  Hoe kan de functionaliteit van het systeem worden gekwantificeerd en
  geëvalueerd?
\item
  Welke testmethoden kunnen worden gebruikt om de prestaties van de SPC
  te meten en te valideren?
\end{itemize}

\paragraph{Current State}\label{current-state}

In de vorige projectfasen is een prototype ontwikkeld van de
\textbf{Superlight Personal Carrier (SPC)}, waarin verschillende
technologieën en subsystemen zijn getest. Op dit moment bestaat de SPC
uit:

\begin{itemize}
\tightlist
\item
  Een testframe waarop componenten kunnen worden gemonteerd en
  geëvalueerd.
\item
  Een op schaal geteste opstelling met een reactiewiel om de
  stabilisatie te behouden.
\item
  Een ruwe simulatie met geschatte parameters voor de aandrijving en het
  stuursysteem.
\end{itemize}

\subparagraph{Huidige status van het
aandrijfsysteem}\label{huidige-status-van-het-aandrijfsysteem}

Motor en aandrijving

Het huidige ontwerp maakt gebruik van een elektromotor met een geplande
accupakketcapaciteit van 20,4 kWh, wat resulteert in een geschat gewicht
van 94 kg (gewicht per cel * benodigde cellen).

Er is nog geen definitieve keuze gemaakt tussen directe aandrijving
(zoals een naafmotor) en een indirecte aandrijving (zoals een centrale
motor met riem- of kettingoverbrenging).

De huidige aandrijving is nog niet geïntegreerd met het stuursysteem,
waardoor het effect op rijgedrag en stabiliteit onbekend is.

Simulatie en validatie

De stabilisatie is op kleine schaal getest, maar is nog niet gevalideerd
in combinatie met de aandrijving op het testframe.

De huidige simulaties zijn gebaseerd op geschatte parameters en vereisen
een nauwkeurigere data-invoer om realistische testresultaten te kunnen
leveren.

Uitdagingen en knelpunten

Het accupakket is relatief zwaar, wat invloed heeft op de prestaties en
balans van de SPC.

Er is nog onduidelijkheid over de samenwerking tussen aandrijving en
besturing, waardoor het risico op bumpsteer en vermogensverlies bestaat.

Er is nog geen uitgebreid testprotocol ontwikkeld om de prestaties van
de aandrijving systematisch te valideren.

De huidige status van het project vormt de basis voor verdere
ontwikkelingen. De volgende stappen zijn gericht op het verder
ontwikkelen van het aandrijf- en stuursysteem en de stabilisatie, zodat
er een rijdend 2x2x2 voertuig gerealiseerd wordt.

\begin{figure}
\centering
\includegraphics{../../latex/images/0623b75b-1585-421a-9329-4feba9e00ae2.png}
\caption{SPC-prototype}
\end{figure}

\newpage

\subsubsection{Scope \& Afbakening}\label{scope-afbakening}

\paragraph{Scope}\label{scope}

De scope van een project bepaald wat er wel en niet behandeld gaat
worden. Een scope wordt op meerdere aspecten gesteld. De aspecten waar
onze scope over gaat zijn hieronder neergezet.\\
Dit project richt zich op het ontwikkelen van functionele kernsystemen
voor het voertuig, waarbij de nadruk ligt op de \textbf{aandrijving, de
Digital Twin, het stuurmechanisme en de stabilisatie}.

\subparagraph{Aandrijving en
Stuursysteem}\label{aandrijving-en-stuursysteem}

Een nieuw stuursysteem en doorgerekende aandrijving zijn nodig voor
basis functionaliteit van het voertuig. Deze systemen moeten aan de hand
van de Digital Twin ontworpen worden. Het doel licht hierop bij goed
ontwerp en onderbouwing. Het is daarom essentieel dat er goed nagedacht
wordt over de nodige veiligheidsfactoren en limieten van componenten.

\subparagraph{Digital Twin}\label{digital-twin}

Wij willen aan de hand van een Digital Twin andere subsystemen op het
voertuig kunnen ontwerpen, valideren en optimaliseren. Deze gegevens
moeten dus de rode draad vormen voor het gehele project.

\includegraphics{../../latex/images/c7dcc010-3e60-4f73-a520-a128e600615a.png}

\subparagraph{Stabilisatie}\label{stabilisatie}

Het doel van het project is om het voertuig te kunnen laten
stabiliseren. Dit stabiliseren zal op het full scale voertuig gaan
plaats vinden. Dit systeem moet werken door middel van het correctiewiel
wat op de schaal testopstelling gedemonstreerd is te werken. Het is nu
de taak om dit op full scale werkend te krijgen.

\subparagraph{Afbakening}\label{afbakening}

\begin{itemize}
\tightlist
\item
  Het project richt zich primair op \textbf{functionele en fysiek
  implementeerbare systemen}, niet op aerodynamische optimalisatie of
  esthetische aspecten van het voertuig.
\item
  Autonome functies vallen buiten de scope van dit project.
\end{itemize}

\newpage

\subsubsection{Tussenresultaten}\label{tussenresultaten}

\paragraph{Analyse fase}\label{analyse-fase}

In de analyse fase worden de volgende documenten opgesteld:

\begin{itemize}
\tightlist
\item
  \textbf{Plan van Aanpak}: Dit document.
\item
  \textbf{Risico analyse}: Hier worden alle risico's beschreven en wat
  we doen om de risico's te verminderen.
\item
  \textbf{Pakket van eisen}: Hier worden alle eisen waar het product aan
  moet gaan voldoen
\item
  \textbf{Globale planning}: Zie hoofdstuk
  \hyperref[planning]{Planning}.
\item
  \textbf{Functioneel prototype?}: Een prototype om te controleren of
  het concept mogelijk en realistisch is.
\end{itemize}

\paragraph{Concept fase}\label{concept-fase}

\begin{itemize}
\tightlist
\item
  Persoonlijk PVA
\item
  Het ontwerp van het product
\item
  Bom (Bill of Materials)
\end{itemize}

\paragraph{Ontwerpfase}\label{ontwerpfase}

\begin{itemize}
\tightlist
\item
  Testprocedures
\item
  Het ontwerp van het product
\item
  Bom (Bill of Materials)
\end{itemize}

\subparagraph{Test Fase}\label{test-fase}

\begin{itemize}
\tightlist
\item
  Test rapporten
\end{itemize}

\newpage

\subsubsection{Methodologische aanpak}\label{methodologische-aanpak}

\paragraph{DMADV-model}\label{dmadv-model}

In dit hoofdstuk wordt besproken over de aanpak van de opdracht en welke
methode gevolgd zal worden tijdens het semester. Dit zal gedaan worden
door middel van het DMADV-model. Dat staat voor Define, Measure,
Analyze, Design en Verify.

\begin{figure}
\centering
\includegraphics{../../latex/images/506da834-573f-4c24-8b22-15e82df64301.png}
\caption{DMADV-cyclus: een ontwerp om nieuwe processen te creëren}
\end{figure}

\subparagraph{Define}\label{define}

De eerste fase in het dmadv model is definiëren. Het is essentieel om
vooraf een lijst te hebben van de taken die gedaan moeten worden en de
onderdelen die gemaakt moeten worden. Als je in het begin goed hebt
gedefinieerd wat en hoe het gedaan moet worden zal het makkelijker
worden om naar het gewenste resultaat toe te werken. De onderdelen die
zullen worden ontwikkeld en geïmplementeerd zijn de aandrijving en de
sturing. Een eis is dat het voertuig in-wheel motoren moet hebben,
hiervoor zal er extra aandacht aan gegeven moeten worden vanwege de
complexiteit van dit onderwerp.

\subparagraph{Measure}\label{measure}

In de fase van measure verzamel en neem je de gegevens op die relevant
zijn voor de CTQ-maatregelen die tijdens de eerste fase werden
gedefinieerd. Deze gegevens meet je om resultaten te verkrijgen waarmee
later in het proces

In die tabel wordt de VOC (voice of customer) genoteerd en bij punten
daarvan wordt onder het kopje van drijfveer de technische of functionele
kenmerken beschreven die nodig zijn om de wensen van de klant te
behalen. Bij de CTQ rij wordt weergegeven wat de fysieke onderdelen zijn
om die drijfveren te behalen.

De CTQ's die uit de View of Client en View of Business zijn gehaald die
voor dit onderzoek belangrijk zijn, zijn hieronder in tabelvorm
genoteerd.

\includegraphics{../../latex/images/c776081d-b52e-40b8-84f4-065145305f76.png}

De eisen opgesteld vanuit de opdrachtgever (klant) zijn als volgt:

\begin{itemize}
\tightlist
\item
  Het voertuig is elektrisch aangedreven
\item
  Het voertuig is zelf stabiliserend
\item
  Het voertuig is voor het vervoeren van 1 persoon
\end{itemize}

Het voertuig heeft een 2x2x2 aandrijving (2 wielen, 2 wiel gestuurd, 2
wiel aangedreven)

De laatste twee punten zijn eisen die van toepassing zijn op het
uiteindelijke eindproduct. Dat is iets wat in de tijdsduur van dit
project niet behaald zal worden. Daarom zijn die punten niet een
prioriteit voor dit projectteam.

\subparagraph{Analyze}\label{analyze}

In de fase van analyse worden alle verzamelde data uit de meetfase
gebruikt om te analyseren en testen uit te voeren van de verschillende
concepten die zijn opgesteld voor onderdelen en systemen. Die onderdelen
wordt verder op gerekend en geoptimaliseerd voor hun functie en de
gestelde eisen. Die eisen komen vanuit het pakket van eisen wat wordt
gebruikt als referentie om ervoor te zorgen dat de onderdelen zich
voldoen aan de gestelde randvoorwaarden.

Uit deze fase kan dan ook een ruw concept komen wat voldoet aan
functionele eisen en aan de eerder gestelde CTQ's.

\subparagraph{Design}\label{design}

In de fase van design worden alle gegevens uit eerdere fasen gebruikt
zodat er een product ontwikkeld kan worden wat dichter bij het
definitieve eindproduct komt. Daaruit kunnen mogelijke aanpassingen en
wijzigingen worden gemaakt uit fouten die worden geïdentificeerd en kan
het aan de klant worden laten zien, wat zal voldoen aan hun eisen en
weer mogelijk kan worden aangepast waar nodig is.

\subparagraph{Verify}\label{verify}

De verificatiefase van het DMADV-model is weliswaar de laatste fase,
maar niet het einde van het proces. Om de kwaliteit te waarborgen is het
belangrijk om, continue te verifiëren en het product aanpassen waar dat
dan nodig is. In deze fase zal het ontwerp dan ook definitief klaar zijn
en kan er feedback worden gekregen van de klant waarmee mogelijke
aanpassingen kunnen worden gemaakt die weer kunnen worden verifieerd.

\newpage

\subsubsection{Organisatiestructuur (OBS, PBS,
WBS)}\label{organisatiestructuur-obs-pbs-wbs}

\paragraph{Organisatie leden}\label{organisatie-leden}

\begin{longtable}[]{@{}
  >{\raggedright\arraybackslash}p{(\columnwidth - 6\tabcolsep) * \real{0.2500}}
  >{\raggedright\arraybackslash}p{(\columnwidth - 6\tabcolsep) * \real{0.2500}}
  >{\raggedright\arraybackslash}p{(\columnwidth - 6\tabcolsep) * \real{0.2500}}
  >{\raggedright\arraybackslash}p{(\columnwidth - 6\tabcolsep) * \real{0.2500}}@{}}
\toprule\noalign{}
\begin{minipage}[b]{\linewidth}\raggedright
Functie
\end{minipage} & \begin{minipage}[b]{\linewidth}\raggedright
Naam
\end{minipage} & \begin{minipage}[b]{\linewidth}\raggedright
Opleiding
\end{minipage} & \begin{minipage}[b]{\linewidth}\raggedright
Email
\end{minipage} \\
\midrule\noalign{}
\endhead
\bottomrule\noalign{}
\endlastfoot
Opdrachtgever & Niels van Groningen & Automotive &
\href{mailto:N.van.groningen@hr.nl}{\nolinkurl{N.van.groningen@hr.nl}} \\
Docentbegeleider & Joris Straver & ELE &
\href{mailto:J.g.Straver@hr.nl}{\nolinkurl{J.g.Straver@hr.nl}} \\
Project lid & Max Kappert & Automotive &
\href{mailto:1030682@hr.nl}{\nolinkurl{1030682@hr.nl}} \\
Project lid & Tijn Snijders & Automotive &
\href{mailto:1001829@hr.nl}{\nolinkurl{1001829@hr.nl}} \\
Project lid & Thomas Braam & Automotive &
\href{mailto:0989527@hr.nl}{\nolinkurl{0989527@hr.nl}} \\
Project lid & Chris Tan & ELE &
\href{mailto:0992143@hr.nl}{\nolinkurl{0992143@hr.nl}} \\
Project lid & Gryvon Belfor & ELE &
\href{mailto:0985890@hr.nl}{\nolinkurl{0985890@hr.nl}} \\
Project lid & Mohamed El Morabiti & ELE &
\href{mailto:1014780@hr.nl}{\nolinkurl{1014780@hr.nl}} \\
Project lid & Finley van Reenen & ELE &
\href{mailto:0964590@hr.nl}{\nolinkurl{0964590@hr.nl}} \\
\end{longtable}

\paragraph{OBS (Organization Breakdown
Structure)}\label{obs-organization-breakdown-structure}

\begin{figure}
\centering
\includegraphics{../../latex/images/d62ce8e7-705b-46da-884c-e3da26c39be9.png}
\caption{Organization Breakdown Structure}
\end{figure}

\paragraph{PBS (Product Breakdown
Structure)}\label{pbs-product-breakdown-structure}

\begin{figure}
\centering
\includegraphics{../../latex/images/93b15853-82d2-48a2-9cbb-bdf3f4b0fb4b.png}
\caption{Product Breakdown Structure}
\end{figure}

\paragraph{WBS (Work Breakdown
Structure)}\label{wbs-work-breakdown-structure}

\begin{figure}
\centering
\includegraphics{../../latex/images/958b5da9-80bc-4069-9a13-acc8a0fe6b5b.png}
\caption{Work Breakdown Structure}
\end{figure}

\newpage

\subsubsection{Risico- en stakeholder
analyse}\label{risico--en-stakeholder-analyse}

\paragraph{Risico's}\label{risicos}

Het Superlight Personal Carrier (SPC) project brengt studenten uit
verschillende opleidingen samen, waaronder Automotive en
Elektrotechniek. Dit interdisciplinaire karakter biedt kansen, maar
brengt ook risico's met zich mee, vooral op het gebied van planning,
communicatie en technische realisatie. In deze risicoanalyse worden de
belangrijkste bedreigingen geïdentificeerd en mogelijke
beheersmaatregelen besproken.

\subparagraph{Communicatieproblemen}\label{communicatieproblemen}

Doordat studenten uit verschillende opleidingen samenwerken, kunnen er
communicatieproblemen ontstaan. Elk teamlid heeft een andere
achtergrond, werkwijze en planning. Hierdoor kunnen misverstanden
ontstaan over verwachtingen, deadlines en verantwoordelijkheden. Dit kan
leiden tot vertragingen, inefficiënte samenwerking en fouten in het
ontwerp of de uitvoering van het project.

Maatregelen

\begin{itemize}
\tightlist
\item
  Regelmatige vergaderingen inplannen om voortgang en knelpunten te
  bespreken.
\item
  Duidelijke communicatiekanalen en documentatie opzetten, zoals een
  gedeeld projectplan of online platform.
\item
  Taken en verantwoordelijkheden expliciet vastleggen, zodat iedereen
  weet wat er van hen verwacht wordt.
\end{itemize}

\subparagraph{Verschillende planningen en
beschikbaarheid}\label{verschillende-planningen-en-beschikbaarheid}

Studenten van verschillende opleidingen hebben verschillende
lesroosters, deadlines en toets momenten. Dit kan ertoe leiden dat
sommige teamleden minder beschikbaar zijn of moeilijker in te plannen
zijn voor gezamenlijke werkzaamheden. Bovendien kunnen studenten vakken
moeten herkansen, wat hun inzetbaarheid verder vermindert.

Maatregelen

\begin{itemize}
\tightlist
\item
  Een flexibele maar realistische projectplanning maken die rekening
  houdt met toets weken en herkansingen.
\item
  Taken verdelen op basis van beschikbaarheid, zodat het project niet
  stilvalt bij de afwezigheid van een teamlid.
\item
  Alternatieve communicatiemiddelen gebruiken, zoals online
  vergaderingen en asynchrone updates.
\end{itemize}

\subparagraph{Te veel hooi op de vork
nemen}\label{te-veel-hooi-op-de-vork-nemen}

Binnen het project kan de neiging ontstaan om te veel taken op je te
nemen. Dit verhoogt de werkdruk en kan ertoe leiden dat taken niet goed
worden uitgevoerd of deadlines niet worden gehaald. Hierdoor kunnen
cruciale onderdelen van het project mislukken of niet naar behoren
functioneren.

Maatregelen

\begin{itemize}
\tightlist
\item
  Duidelijke taakverdeling maken en monitoren of de werklast eerlijk is
  verdeeld.
\item
  Wekelijkse statusupdates organiseren om eventuele overbelasting te
  signaleren.
\item
  Teamleden stimuleren om tijdig hulp te vragen als ze vastlopen.
\end{itemize}

\subparagraph{Studenten stoppen of komen niet
opdagen}\label{studenten-stoppen-of-komen-niet-opdagen}

Een ander risico is dat studenten uitvallen, stoppen met het project of
hun taken niet afmaken. Dit kan grote impact hebben op de voortgang en
de verdeling van verantwoordelijkheden binnen het team.

Maatregelen

\begin{itemize}
\tightlist
\item
  Vanaf de start duidelijke afspraken maken over commitment en inzet.
\item
  Een back-up plan opstellen voor cruciale taken, zodat het project door
  kan gaan bij onverwachte uitval.
\item
  Vroegtijdig signaleren wanneer een teamlid minder betrokken raakt en
  hier proactief op inspelen.
\end{itemize}

\subparagraph{Realisatie kan fout gaan}\label{realisatie-kan-fout-gaan}

Tijdens de realisatie van het project kunnen technische problemen
ontstaan, zoals fouten in de hardware of software,
compatibiliteitsproblemen en onvoorziene storingen. Dit kan ertoe leiden
dat onderdelen niet correct werken of dat het eindproduct niet aan de
gestelde eisen voldoet.

Maatregelen

\begin{itemize}
\tightlist
\item
  Duidelijke technische specificaties opstellen en testen in
  verschillende fasen.
\item
  Gebruik maken van bestaande en bewezen technologieën waar mogelijk.
\item
  Regelmatig overleg tussen teamleden om technische obstakels snel te
  identificeren en op te lossen.
\end{itemize}

\subparagraph{Unittesten en
integratietesten}\label{unittesten-en-integratietesten}

Een belangrijk onderdeel van het project is het testen van afzonderlijke
componenten (unittesten) en het integreren van deze componenten in een
werkend geheel (integratietesten). Zonder gedegen teststrategie kunnen
fouten pas laat in het proces worden ontdekt, wat tot vertraging en
herwerk leidt.

Maatregelen

\begin{itemize}
\tightlist
\item
  Een gestructureerd testplan opstellen en uitvoeren in verschillende
  ontwikkelingsfasen.
\item
  Automatische en handmatige testen toepassen om betrouwbaarheid te
  garanderen.
\item
  Problemen documenteren en direct oplossen om verdere complicaties te
  voorkomen.
\end{itemize}

\subparagraph{Conclusie}\label{conclusie}

Om het SPC-project succesvol af te ronden, is een goede planning,
communicatie en technische aanpak essentieel. Door risico's tijdig te
identificeren en maatregelen te nemen, kan het team effectiever
samenwerken en problemen minimaliseren. Duidelijke afspraken,
regelmatige evaluaties, een evenwichtige taakverdeling en een
gestructureerd testplan zijn cruciaal om de uitdagingen binnen dit
interdisciplinaire project te overwinnen en een succesvol eindresultaat
te garanderen.

\paragraph{Risico matrix}\label{risico-matrix}

\begin{figure}
\centering
\includegraphics{../../latex/images/224f3e03-21c4-4034-8905-9848007b253e.png}
\caption{Risico matrix}
\end{figure}

\paragraph{Stakeholder analyse}\label{stakeholder-analyse}

Hierin wordt een analyse gemaakt over de rollen, invloed en belangen van
de verschillende belanghebbenden in dit project. Dit helpt om
communicatie en samenwerking te verbeteren en eventuele conflicten te
voorkomen.

Hieronder zijn de volgende partijen die invloed hebben op dit project
bekend:

\begin{itemize}
\tightlist
\item
  Projectteemleden:

  \begin{itemize}
  \tightlist
  \item
    Gryvon Belfor
  \item
    Tijn Snijders
  \item
    Thomas Braam
  \item
    Max Kappert
  \item
    Finley van Reenen
  \item
    Mohamed El Morabiti
  \item
    Chris Tan
  \end{itemize}
\item
  Begeleiders (school):

  \begin{itemize}
  \tightlist
  \item
    Niels van Groningen
  \item
    Joris Straver
  \end{itemize}
\item
  Eindgebruiker/klant:

  \begin{itemize}
  \tightlist
  \item
    Niels van Groningen
  \end{itemize}
\end{itemize}

Het belang en invloed wordt in dit tabel weergeven:

\begin{longtable}[]{@{}
  >{\raggedright\arraybackslash}p{(\columnwidth - 4\tabcolsep) * \real{0.3333}}
  >{\raggedright\arraybackslash}p{(\columnwidth - 4\tabcolsep) * \real{0.3333}}
  >{\raggedright\arraybackslash}p{(\columnwidth - 4\tabcolsep) * \real{0.3333}}@{}}
\toprule\noalign{}
\begin{minipage}[b]{\linewidth}\raggedright
Stakeholder
\end{minipage} & \begin{minipage}[b]{\linewidth}\raggedright
Belang
\end{minipage} & \begin{minipage}[b]{\linewidth}\raggedright
Invloed
\end{minipage} \\
\midrule\noalign{}
\endhead
\bottomrule\noalign{}
\endlastfoot
Projectteamleden & Verder ontwikkelen van de SPC naar validatie &
Hoog \\
Begeleiders (school) & Begeleiden van kwaliteit en validiteit van het
eindproduct & Gemiddeld \\
Eindgebruiker/klant & Een gebruiksklaar product voor eventuele
vervolgproject & Hoog \\
\end{longtable}

\paragraph{RACI-model}\label{raci-model}

De letters van het RACI-model staan voor rollen van de leden in een
proces, namelijk:

R -- Responsible (Verantwoordelijk): degene die de taak uitvoert is
verantwoordelijk voor de uitvoering hiervan.

A -- Accountable (Eindverantwoordelijk): deze persoon draagt de
uiteindelijke eindverantwoording voor de juiste voltooiing van een of
meerdere projecttaken.

C -- Consulted (Geraadpleegd): dit is de persoon aan wie vooraf advies
gevraagd wordt.

I -- Informed (Geïnformeerd): deze persoon wordt tussentijds
geïnformeerd over de beslissingen, over de voortgang, bereikte
resultaten enz.

\begin{longtable}[]{@{}
  >{\raggedright\arraybackslash}p{(\columnwidth - 16\tabcolsep) * \real{0.1111}}
  >{\raggedright\arraybackslash}p{(\columnwidth - 16\tabcolsep) * \real{0.1111}}
  >{\raggedright\arraybackslash}p{(\columnwidth - 16\tabcolsep) * \real{0.1111}}
  >{\raggedright\arraybackslash}p{(\columnwidth - 16\tabcolsep) * \real{0.1111}}
  >{\raggedright\arraybackslash}p{(\columnwidth - 16\tabcolsep) * \real{0.1111}}
  >{\raggedright\arraybackslash}p{(\columnwidth - 16\tabcolsep) * \real{0.1111}}
  >{\raggedright\arraybackslash}p{(\columnwidth - 16\tabcolsep) * \real{0.1111}}
  >{\raggedright\arraybackslash}p{(\columnwidth - 16\tabcolsep) * \real{0.1111}}
  >{\raggedright\arraybackslash}p{(\columnwidth - 16\tabcolsep) * \real{0.1111}}@{}}
\toprule\noalign{}
\begin{minipage}[b]{\linewidth}\raggedright
\end{minipage} & \begin{minipage}[b]{\linewidth}\raggedright
Tijn
\end{minipage} & \begin{minipage}[b]{\linewidth}\raggedright
Max
\end{minipage} & \begin{minipage}[b]{\linewidth}\raggedright
Thomas
\end{minipage} & \begin{minipage}[b]{\linewidth}\raggedright
Gryvon
\end{minipage} & \begin{minipage}[b]{\linewidth}\raggedright
Chris
\end{minipage} & \begin{minipage}[b]{\linewidth}\raggedright
Finley
\end{minipage} & \begin{minipage}[b]{\linewidth}\raggedright
Mohammed
\end{minipage} & \begin{minipage}[b]{\linewidth}\raggedright
Van Groningen
\end{minipage} \\
\midrule\noalign{}
\endhead
\bottomrule\noalign{}
\endlastfoot
Projectplanning & R & I & I & I & I & I & I & \\
PVE & I & I & I & I & R & A/R & I & C \\
Sponsering & A & R & I & I & I & I & I & I \\
Stuursysteem & I & A/R & I & I & R & I & I & C/I \\
Aandrijving & I & I & I & A/R & I & I & R & C/I \\
Stabilisatie & A/R & I & I & I & I & R & I & C/I \\
Sim model & C/I & C/I & A/R & I & I & I & I & C \\
Concept ontwikkelen & R & R & R & R & R & R & R & C/I \\
Begroting \& kosten & A & C & C & C & R & C & C & C/I \\
\end{longtable}

\newpage

\subsubsection{Planning}\label{planning}

\paragraph{Tussenresultaten}\label{tussenresultaten-1}

Het project wordt op gedeeld in verschillende sprints

\subparagraph{Analyse fase}\label{analyse-fase-1}

In de analyse fase worden de volgende documenten opgesteld:

\begin{itemize}
\tightlist
\item
  \textbf{Plan van Aanpak}\\
  Dit document.
\item
  \textbf{Risico analyse}\\
  Hier worden alle risico's beschreven en wat we doen om de risico's te
  verminderen.
\item
  \textbf{Pakket van eisen}\\
  Hier worden alle eisen waar het product aan moet gaan voldoen
\item
  \textbf{Globale planning}\\
  Zie hoofdstuk \hyperref[planning]{Planning}.
\item
  \textbf{Functioneel prototype?}\\
  Een prototype om te controleren of het concept mogelijk en realistisch
  is.
\end{itemize}

\subparagraph{Ontwerpfase}\label{ontwerpfase-1}

\begin{itemize}
\tightlist
\item
  Testprocedures
\item
  Het ontwerp van het product
\item
  Bom (Bill of Materials)
\end{itemize}

\subparagraph{Test fase}\label{test-fase-1}

\begin{itemize}
\tightlist
\item
  Test rapporten
\end{itemize}

\paragraph{Value planning}\label{value-planning}

\begin{figure}
\centering
\includegraphics{../../latex/images/6f8ac25b-16f5-41ae-b7cf-980ddfbfbfd7.png}
\caption{Value Planning}
\end{figure}

\paragraph{Dynamische planning}\label{dynamische-planning}

Deze planning geeft een overzicht van de verschillende fasen en
bijbehorende taken binnen dit project. Door middel van een Gantt-diagram
worden de doorlooptijden, afhankelijkheden en mijlpalen visueel
weergegeven. De planning is opgedeeld in meerdere sprints, waaronder
\textbf{Sprint Analyseren}, \textbf{Sprint Realiseren}, \textbf{Sprint
Optimaliseren}, en \textbf{Sprint Valideren}, waarmee het project
stapsgewijs wordt ontwikkeld en geoptimaliseerd.

De blauwe balken geven de duur van elke taak aan, terwijl de
diamantvormige symbolen belangrijke mijlpalen markeren. De rode
verticale lijn geeft de huidige voortgang weer. Dit overzicht helpt bij
het bewaken van deadlines, het coördineren van werkzaamheden en het
tijdig bijsturen van het project waar nodig

\begin{figure}
\centering
\includegraphics{../../latex/images/c75e80d7-dcc2-454e-adb2-dc4a1925b2bf.png}
\caption{Stroken planning}
\end{figure}

\newpage

\subsubsection{Begroting}\label{begroting}

Het project moet uiteindelijk een rijdend en zelf stabiliserend voertuig
produceren, het moet op 2 wielen rijden en bestuurd worden d.m.v.
vehicle control unit (een joystick of een controller). We baseren de
prijzen op de keuzes die gemaakt zijn door het vorige projectteam en een
vooronderzoek dat is gedaan. Voor de wielmotoren hebben een 8kW nodig om
de originele eisen van 150km/u te behalen, daarbij komt ook een
batterijpakket bij kijken die minimaal 120V en 280Ah moet zijn. Voor het
stabilisatie systeem hebben we ook hoogstwaarschijnlijk een motor met
veel koppel nodig. Om de drive by wire besturing te kunnen implementeren
hebben we 2 actuatoren nodig, één voor en één achter. Daarnaast hebben
we een vehicle control unit nodig om het voertuig te besturen.

Kosten: voor dit project is het budget nog onbekend.

Baten: omdat het budget nog onbekend is, is het moeilijk te bepalen wat
de baten voor het budget zijn.

De volgende tabel geeft een schatting van het benodigde budget:

\begin{longtable}[]{@{}ll@{}}
\toprule\noalign{}
Item & Begroting \\
\midrule\noalign{}
\endhead
\bottomrule\noalign{}
\endlastfoot
2x Wielmotor & 1000-1500 \\
Stabilisatie motor & 500-600 \\
Banden & 100-150 \\
Actuatoren & 400-500 \\
Wielen & 200-300 \\
2x Encoders & 100-150 \\
Vehicle control unit & 50-80 \\
Motor controller & 100-150 \\
Batterijpakket & 900 \\
Frame & ??? \\
Remmen & 200-300 \\
\end{longtable}

\newpage

\subsubsection{Pakket van Eisen (PvE)}\label{pakket-van-eisen-pve}

Het volgende PVE is opgesteld in een apart document.

\newpage

\subsubsection{Voertuig Validatie}\label{voertuig-validatie}

Na de realisatie en optimalisatie van het voertuig, zal er een grondige
validatie plaats vinden. De validatie zal bestaan uit verschillende
hoofd criteria. Die uit geleid zijn van uit het pakket van eisen. Deze
hoofd criteria zijn statische dynamische en integratie validatie testen.

\paragraph{Statische validatie}\label{statische-validatie}

Tijdens de statische validatie zal het voertuig gevalideerd worden op de
statische parameters van uit het pakket van eisen. Dit zal gebeuren door
een

\begin{itemize}
\tightlist
\item
  Voertuig gewicht validatie (\textless250 kg ex persoon)
  (REQ-A-1{[}MH{]} in PvE)
\item
  Afmetingen (REQ-A-2{[}MH{]}, REQ-A-3{[}MH{]}, REQ-A-10{[}SH{]},
  REQ-A-11{[}MH{]} en REQ-A-12{[}SH{]} in PvE)
\end{itemize}

\paragraph{Dynamische validatie}\label{dynamische-validatie}

\begin{itemize}
\tightlist
\item
  Aandrijving (REQ-W-4{[}MH{]} in PvE)
\item
  Draaicirkel (REQ-W-8{[}MH{]} in PvE)
\item
  Stabilisatie tot hellingshoek 5 graden (REQ-S-2{[}SH{]} in PvE)
\end{itemize}

\paragraph{Integratie validatie}\label{integratie-validatie}

Een volledig rollend sturen d stabiliserend voertuig test.
(REQ-S-1{[}MH{]}, REQ-W-2{[}MH{]} en REQ-W-3{[}SH{]} in PvE)

\newpage

\subsection{Pakket van Eisen}\label{pakket-van-eisen}

\subsubsection{Inleiding}\label{inleiding}

Bij dit project is de SPC\footnote{Superlight Personal Carrier}
opgesplitst in een aantal onderdelen. de eisen zijn verdeeld over deze
onderdelen.

Deze onderdelen zijn gesplitst op basis van welke onderdelen die in dit
project verbeterd worden.

\newpage

\subsubsection{Eis identificatie code}\label{eis-identificatie-code}

\begin{verbatim}
REQ-X-X[XX]
    | | |
    | | +- MH: zonder is het product niet bruikbaar
    | |    SH: het product is zonder ook bruikbaar, maar is zeer gewenst
    | |    CH: als het binnen de tijd lukt is het gewenst
    | |    WH: niet gewenst
    | |
    | +--- uniek identificatie nummer
    |
    +----- A: algemeen
           W: wiel assembly
           S: stabilisatie
           C: VCU
\end{verbatim}

\newpage

\subsubsection{Definities}\label{definities}

\textbf{Het voertuig}: De Superlight Personal Carrier die tijdens dit
project gemaakt/verbeterd wordt.\\
\textbf{Bestuurder}: De persoon die in het voertuig zit, en het voertuig
bestuurd.

\newpage

\subsubsection{Algemene eisen}\label{algemene-eisen}

\textbf{REQ-A-1{[}MH{]}: Het voertuig exclusief bestuurder weegt 250
kilogram of minder.}

\textbf{REQ-A-2{[}MH{]}: Het voertuig heeft een totale lengte van 4
meter of minder.}

\textbf{REQ-A-3{[}MH{]}: Het voertuig heeft een totale breedte van 60
centimeter of minder.}

\textbf{REQ-A-4{[}MH{]}: Het voertuig is ontworpen\footnote{Binnen de
  tijdspan van dit project is het niet mogelijk om op deze eisen te
  testen buiten een simulatie of rekenmodel.} zodat de maximale snelheid
60 kilometer per uur of sneller is.}

60 km/h is de minimale snelheid voor op de snelweg\footnote{\href{https:/www.rijksoverheid.nl/onderwerpen/wegen/vraag-en-antwoord/wat-is-de-minimumsnelheid-voor-het-wegverkeer}{https://www.rijksoverheid.nl/onderwerpen/wegen/vraag-en-antwoord/wat-is-de-minimumsnelheid-voor-het-wegverkeer}}.

\textbf{REQ-A-5{[}SH{]}: Het voertuig is ontworpen\footnote{Binnen de
  tijdspan van dit project is het niet mogelijk om op deze eisen te
  testen buiten een simulatie of rekenmodel.} zodat die 150 kilometer
per uur of sneller kan rijden in ideale omstandigheden\footnote{De
  ideale omstandigheden is op een vlakke rechte geasfalteerde weg zonder
  wind, regen, hagel, sneeuw of andere weersomstandigheden die een
  negatief gevolg op de test kunnen hebben.}.}

\textbf{REQ-A-6{[}SH{]}: Het voertuig is ontworpen\footnote{Binnen de
  tijdspan van dit project is het niet mogelijk om op deze eisen te
  testen buiten een simulatie of rekenmodel.} zodat die 100 kilometer
actieradius of meer kan bereiken in ideale omstandigheden\footnote{De
  ideale omstandigheden is op een vlakke rechte geasfalteerde weg zonder
  wind, regen, hagel, sneeuw of andere weersomstandigheden die een
  negatief gevolg op de test kunnen hebben.}.}

De opdracht gever wil graag tussen Amsterdam van Rotterdam kunnen
rijden.

\textbf{REQ-A-7{[}CH{]}: Het voertuig is ontworpen\footnote{Binnen de
  tijdspan van dit project is het niet mogelijk om op deze eisen te
  testen buiten een simulatie of rekenmodel.} zodat die 250 kilometer
actieradius of meer kan bereiken in ideale omstandigheden\footnote{De
  ideale omstandigheden is op een vlakke rechte geasfalteerde weg zonder
  wind, regen, hagel, sneeuw of andere weersomstandigheden die een
  negatief gevolg op de test kunnen hebben.}.}

\textbf{REQ-A-8{[}CH{]}: Het voertuig is bestand tegen corrosie}

\textbf{REQ-A-9{[}SH{]}: Het voertuig kan bedient worden door een
bestuureder van 130 kilogram of minder.}

\textbf{REQ-A-10{[}SH{]}: Het voertuig kan bediend worden door een
bestuurder met een lengte van 150 centimeter tot en met 200 centimeter.}

\begin{quote}
bron https://www.cbs.nl/nl-nl/maatwerk/2021/37/lichaamslengte 8\% van 19
jarige vrouwen zijn korter dan 160 10.2\% van 19 jarige mannen zijn
korter dan 175
\end{quote}

\textbf{REQ-A-11{[}MH{]}: De bestuurder van het voertuig zit volledig
binnen de afmetingen van het voertuig, met uitzondering van de hoogte.}

\textbf{REQ-A-12{[}SH{]}: Het zwaarte punt van het voertuig ligt 45
centimeter of minder boven de grond bij een vlakke grond.}

\newpage

\subsubsection{Wiel Assembly}\label{wiel-assembly}

\textbf{REQ-W-1{[}MH{]}: het voertuig heeft twee wielen.}

\textbf{REQ-W-2{[}MH{]}: het voertuig wordt aangedreven door beide
wielen.}

\textbf{REQ-W-3{[}SH{]}: het voertuig stuurt met beide wielen.}

\textbf{REQ-W-4{[}MH{]}: het voertuig wordt aangedreven door
elektromotoren.}

\textbf{REQ-W-5{[}SH{]}: het voertuig kan remmen doormiddel van
regenerative braking.}

\textbf{REQ-W-6{[}SH{]}: de aandrijving bevindt zich in het wiel.}

\textbf{REQ-W-7{[}MH{]}: het voertuig heeft een remvertraging van 6
meter per seconde per seconde of meer.}

\textbf{REQ-W-8{[}MH{]}: het voertuig heeft een draaicirkel van 6 meter
in diameter of minder.}

\newpage

\subsubsection{Stabilisatie}\label{stabilisatie}

\textbf{REQ-S-1{[}MH{]}: Het voertuig wordt actief gestabaliseerd}

\textbf{REQ-S-2{[}SH{]}: Het voertuig kan uit zichzelf weer recht komen
te zitten vanaf een roll hoek van 5 graden}

\newpage

\subsubsection{VCU}\label{vcu}

\textbf{REQ-C-1{[}MH{]}: het voertuig wordt bestuurd doormiddel van een
elektronisch input, zoals een joystick, die bedienbaar is door de
bestuurder.}

\textbf{REQ-C-2{[}MH{]}: er is een noodstop aanwezig.}

\newpage

\subsection{Detailontwerp Stabilisatie}\label{detailontwerp-stabilisatie}

\subsubsection{Inleiding}\label{inleiding}

De SPC\footnote{Superlight Personal Carrier} is een twee wielig concept
eenpersoons voertuig. Zonder actieve stabilisatie gaat deze omvallen,
hiervoor is een reactie wiel ontworpen. Het aansturen van de motor voor
dit wiel is lastig, de volledige kracht moet gehaald worden vanaf
stilstand. Dit is alleen mogelijk met FOC\footnote{Field oriented
  Controll}. Er zijn niet veel motor driver op de markt voor het
vermogen (4,5 KW, 45 Nm), hierom is er een op maat gemaakte motor driver
ontworpen.

\newpage

\subsubsection{Analyse}\label{analyse}

Tijn Stijders (student Automotive engineer) heeft de benodigde kracht
van \(45 Nm\) op een maximumsnelheid van \(1000 rpm\), dit is \(4.5 kW\)
berekent voor dit voertuig. Deze berekening is gebaseerd op
inschattingen van het gewicht van het voertuig, maar is nauwkeurig
genoeg om te gebruiken.

\paragraph{Motor Keuze}\label{motor-keuze}

Het is voor ons niet toegestaan om boven de \(50 V\) te testen op de RDM
wegens veiligheid. Er zijn erg weinig motoren beschikbaar die onder deze
spanning aan de eisen voldoet. Hierom wordt er niet op volledig vermogen
getest in dit project, om meer keuze vrijheid te krijgen voor een
geschikte motor.

De volgende motor is gekozen:

\href{https:/nl.aliexpress.com/item/1005006301690150.html?spm=a2g0o.productlist.main.2.6673ifiZifiZQm&algo_pvid=d6292651-bb7c-46b1-a220-6690a13ff967&algo_exp_id=d6292651-bb7c-46b1-a220-6690a13ff967-1&pdp_ext_f=\%7B\%22order\%22\%3A\%2214\%22\%2C\%22eval\%22\%3A\%221\%22\%7D&pdp_npi=4\%40dis\%21EUR\%21168.69\%21168.69\%21\%21\%211350.60\%211350.60\%21\%402103847817496360886601361e6a7e\%2112000036679171853\%21sea\%21NL\%210\%21ABX&curPageLogUid=wQDO26xezkrq&utparam-url=scene\%3Asearch\%7Cquery_from\%3A}{referentie
BLDC-motor}

De gegeven specificatie zijn:

\begin{longtable}[]{@{}ll@{}}
\toprule\noalign{}
\endhead
\bottomrule\noalign{}
\endlastfoot
maximale spanning & 60V \\
nominaal vermogen & 3000 W \\
maximaal vermogen & 6000w \\
piek vermogen & 7000w-8000W \\
onbelaste snelheid & 3500 rpm \\
maximaal rendement & 90\% \\
maximaal koppel & 10 Nm \\
piekkoppel & 30 Nm \\
nettogewicht & 4,5 kg \\
max. stroombegrenzing & 150A \\
\end{longtable}

\begin{figure}
\centering
\includegraphics{../../latex/images/f2dbe830-87ac-4a88-95da-f53177a114a1.png}
\caption{grafiek test data van de motor}
\end{figure}

\begin{longtable}[]{@{}
  >{\raggedright\arraybackslash}p{(\columnwidth - 16\tabcolsep) * \real{0.1754}}
  >{\raggedright\arraybackslash}p{(\columnwidth - 16\tabcolsep) * \real{0.1228}}
  >{\raggedright\arraybackslash}p{(\columnwidth - 16\tabcolsep) * \real{0.1228}}
  >{\raggedright\arraybackslash}p{(\columnwidth - 16\tabcolsep) * \real{0.1228}}
  >{\raggedright\arraybackslash}p{(\columnwidth - 16\tabcolsep) * \real{0.1053}}
  >{\raggedright\arraybackslash}p{(\columnwidth - 16\tabcolsep) * \real{0.0877}}
  >{\raggedright\arraybackslash}p{(\columnwidth - 16\tabcolsep) * \real{0.1228}}
  >{\raggedright\arraybackslash}p{(\columnwidth - 16\tabcolsep) * \real{0.0877}}
  >{\raggedright\arraybackslash}p{(\columnwidth - 16\tabcolsep) * \real{0.0526}}@{}}
\toprule\noalign{}
\begin{minipage}[b]{\linewidth}\raggedright
\end{minipage} & \begin{minipage}[b]{\linewidth}\raggedright
\(U\) (V)
\end{minipage} & \begin{minipage}[b]{\linewidth}\raggedright
\(I\) (A)
\end{minipage} & \begin{minipage}[b]{\linewidth}\raggedright
\(P_{in}\) (W)
\end{minipage} & \begin{minipage}[b]{\linewidth}\raggedright
rpm
\end{minipage} & \begin{minipage}[b]{\linewidth}\raggedright
koppel (N.m)
\end{minipage} & \begin{minipage}[b]{\linewidth}\raggedright
\(P_{out}\) (W)
\end{minipage} & \begin{minipage}[b]{\linewidth}\raggedright
efficiëntie (\%)
\end{minipage} & \begin{minipage}[b]{\linewidth}\raggedright
tijd (s)
\end{minipage} \\
\midrule\noalign{}
\endhead
\bottomrule\noalign{}
\endlastfoot
onbelast & 47.49 & 3.666 & 174.1 & 3264 & 0.03 & 11.1 & 6.4 & 1 \\
test eindpunt\footnote{of wat er ook bedoeld wordt met ``测试结束点''} &
42.99 & 60.35 & 2594 & 2294 & 8.77 & 2108 & 81.3 & 71 \\
beoordeelde punten\footnote{of wat er ook bedoeld wordt met ``額定点''}
& 44.03 & 47.71 & 2101 & 2471 & 6.82 & 1800 & 84.1 & 62 \\
max. koppel & 42.99 & 60.35 & 2594 & 2294 & 8.77 & 2108 & 81.3 & 71 \\
max. \(P_{out}\) & 42.99 & 60.35 & 2594 & 2294 & 8.77 & 2108 & 81.3 &
71 \\
max. efficiëntie & 44.72 & 38.53 & 1723 & 2605 & 5.41 & 1476 & 85.7 &
55 \\
\end{longtable}

\begin{longtable}[]{@{}
  >{\raggedright\arraybackslash}p{(\columnwidth - 16\tabcolsep) * \real{0.0741}}
  >{\raggedright\arraybackslash}p{(\columnwidth - 16\tabcolsep) * \real{0.1296}}
  >{\raggedright\arraybackslash}p{(\columnwidth - 16\tabcolsep) * \real{0.1296}}
  >{\raggedright\arraybackslash}p{(\columnwidth - 16\tabcolsep) * \real{0.1296}}
  >{\raggedright\arraybackslash}p{(\columnwidth - 16\tabcolsep) * \real{0.1111}}
  >{\raggedright\arraybackslash}p{(\columnwidth - 16\tabcolsep) * \real{0.1111}}
  >{\raggedright\arraybackslash}p{(\columnwidth - 16\tabcolsep) * \real{0.1296}}
  >{\raggedright\arraybackslash}p{(\columnwidth - 16\tabcolsep) * \real{0.1111}}
  >{\raggedright\arraybackslash}p{(\columnwidth - 16\tabcolsep) * \real{0.0741}}@{}}
\toprule\noalign{}
\begin{minipage}[b]{\linewidth}\raggedright
编号(No.~)
\end{minipage} & \begin{minipage}[b]{\linewidth}\raggedright
电压 (V)
\end{minipage} & \begin{minipage}[b]{\linewidth}\raggedright
电流 (A)
\end{minipage} & \begin{minipage}[b]{\linewidth}\raggedright
输入功率 (W)
\end{minipage} & \begin{minipage}[b]{\linewidth}\raggedright
转速 (rpm)
\end{minipage} & \begin{minipage}[b]{\linewidth}\raggedright
转矩 (Nm)
\end{minipage} & \begin{minipage}[b]{\linewidth}\raggedright
输出功率 (W)
\end{minipage} & \begin{minipage}[b]{\linewidth}\raggedright
效率 (\%)
\end{minipage} & \begin{minipage}[b]{\linewidth}\raggedright
时间 (s)
\end{minipage} \\
\midrule\noalign{}
\endhead
\bottomrule\noalign{}
\endlastfoot
1 & 47.49 & 3.666 & 174.1 & 3264 & 0.03 & 11.1 & 6.4 & 1 \\
2 & 47.5 & 3.635 & 172.6 & 3262 & 0.03 & 11.14 & 6.5 & 4 \\
3 & 47.5 & 3.684 & 175 & 3259 & 0.03 & 11.44 & 6.5 & 7 \\
4 & 47.48 & 3.846 & 182.6 & 3256 & 0.05 & 18.52 & 10.1 & 10 \\
5 & 47.44 & 4.244 & 201.3 & 3246 & 0.12 & 42.5 & 21.1 & 13 \\
6 & 47.39 & 5.001 & 237 & 3233 & 0.23 & 79.21 & 33.4 & 16 \\
7 & 47.31 & 5.93 & 280.5 & 3214 & 0.37 & 126.7 & 45.2 & 19 \\
8 & 47.21 & 7.09 & 334.7 & 3186 & 0.55 & 184.5 & 55.1 & 22 \\
9 & 47.1 & 8.719 & 410.7 & 3154 & 0.77 & 254.5 & 62.0 & 25 \\
10 & 46.95 & 10.76 & 505.3 & 3114 & 1.04 & 341.9 & 67.7 & 28 \\
11 & 46.78 & 13.04 & 610.3 & 3076 & 1.35 & 437.9 & 71.8 & 31 \\
12 & 46.6 & 15.34 & 715 & 3040 & 1.71 & 547.4 & 76.6 & 34 \\
13 & 46.38 & 17.9 & 830.3 & 2980 & 2.12 & 662.2 & 79.8 & 37 \\
14 & 46.14 & 20.68 & 954.7 & 2917 & 2.57 & 786.9 & 82.4 & 40 \\
15 & 45.88 & 23.75 & 1090 & 2859 & 3.08 & 922.6 & 84.6 & 43 \\
16 & 45.61 & 27.55 & 1256 & 2801 & 3.6 & 1057 & 84.2 & 46 \\
17 & 45.32 & 31.6 & 1432 & 2750 & 4.16 & 1198 & 83.7 & 49 \\
18 & 45.04 & 34.65 & 1561 & 2676 & 4.75 & 1331 & 85.3 & 52 \\
19 & 44.72 & 38.53 & 1723 & 2605 & 5.41 & 1476 & 85.7 & 55 \\
20 & 44.38 & 43.17 & 1916 & 2539 & 6.08 & 1617 & 84.4 & 58 \\
21 & 44.03 & 47.71 & 2101 & 2471 & 6.82 & 1800 & 84.1 & 62 \\
22 & 43.67 & 52.13 & 2277 & 2415 & 7.48 & 1892 & 83.1 & 65 \\
23 & 43.33 & 56.41 & 2444 & 2357 & 8.13 & 2006 & 82.1 & 68 \\
24 & 42.99 & 60.35 & 2594 & 2294 & 8.77 & 2108 & 81.3 & 71 \\
\end{longtable}

Er missen wat gegevens om verder te kunnen. De hoeveelheid stroom bij
krachten groter dan \(8.77 Nm\) en hoelang de piek kracht volgehouden
kan worden.

\paragraph{koppel constante}\label{koppel-constante}

Om de stroom bij grotere krachten te berekenen is de koppel constante
nodig. Dit is de hoeveelheid koppel die per Ampère levert. In dit geval
kan deze berekend worden met de volgende formule.

\[
K_T = \frac{\tau}{I-I_{noload}}
\]

\(K_T\): koppel constante in Nm/A\\
\(\tau\): koppel in Nm\\
\(I\): de stroom nodig om de koppel te halen\\
\(I_{noload}\): de stroom die verbruikt wordt als de motor vrij draait

\(\tau\) en \(I\) is gegeven in de test data. De beste inschatting voor
\(I_{noload}\) is het gemiddelde van test 1, 2 en 3. Deze hebben
allemaal \(0.03Nm\) koppel, er is geen informatie hoe deze koppel
gemeten is. Om te controleren of dit correct is is een plot gemaakt voor
elke regel van de test data.

\begin{figure}
\centering
\includegraphics{../../latex/images/4aa438b9-f968-4ed9-97f3-dfb934130f6d.png}
\caption{Plot van koppel constanten met 3.662 A voor I\_noload}
\end{figure}

x as: test nummer\\
y as: koppel constante\\
blauwe punten: berekende koppel constante vanuit de test data\\
oranje lijn: regressie van de berekende koppel constante

In deze grafiek is een duidelijke curve te zien aan het begin te zien.
Dit duidt er op dat \(I_{noload}\) te hoog is. Dit kan verklaard worden
als de meting is uitgevoerd wanneer de tegenmotor nog aangesloten was
maar uitgeschakeld. De \(0.03 Nm\) komt, als deze theorie correct is,
waarschijnlijk van de lagers van de tegenmotor. Waarschijnlijk mist ook
de weerstand van de lagers in de motor zelf.

Met \(3.52 A\) voor \(I_{noload}\) ziet de grafiek er als volgt uit.

\begin{figure}
\centering
\includegraphics{../../latex/images/fcc86ab9-d051-411d-8379-9d4223c5f4a4.png}
\caption{Plot van koppel constanten met 3.52 A voor I\_noload}
\end{figure}

Dit is waarschijnlijk dichter bij de werkelijke \(I_{noload}\). Het is
hier ook te zien dat de koppel constante ongeveer \(0.15 Nm/A\) is.

\paragraph{Snelheidsconstante en Weerstand
Stator}\label{snelheidsconstante-en-weerstand-stator}

De snelheidsconstante is het aantal rpm dat de motor draait zonder
belasting per volt. Deze kan berekend worden met de volgende formule.

\[
K_v = \frac{\omega}{U-U_{th}}
\]

\(K_v\): de snelheidsconstante in rpm/v\\
\(\omega\): de snelheid dat de motor draait in rpm\\
\(U\): de spanning\\
\(U_{th}\): de spanning waarop de motor start met draaien

Onbelast draait met \(47.49V\) (\(U\)) draait de motor 3264 rpm
(\(\omega\)). \(U_{th}\) is niet gegeven, met de gegeven die er wel zijn
is de beste methode met de volgende formules.

\[
U=\frac{\omega}{K_v} + \frac{\tau}{K_T} R + U_{th}
\]

\[
I=\frac{\omega}{K_vR} + \frac{\tau}{K_T} + I_{noload}
\]

\(U\): de motor spanning\\
\(\omega\): de snelheid dat de motor draait in rpm\\
\(K_v\): de snelheidsconstante in rpm/v\\
\(\tau\): koppel in Nm\\
\(K_T\): koppel constante in Nm/A\\
\(R\): de weerstand van de stator\\
\(U_{th}\): de spanning waarop de motor start met draaien\\
\(I\): de stroom nodig om de koppel te halen\\
\(I_{noload}\): de stroom die verbruikt wordt als de motor vrij draait

Als \(\omega = 0\) gelt \(U = \frac{\tau}{K_T} R + U_{th}\) en
\(I = \frac{\tau}{K_T} + I_{noload} \Rightarrow IR = U = \frac{\tau}{K_T} R + I_{noload} R\)
dus \(U_{th} = R I_{noload}\)

Hiermee kan de volgende formule opgesteld worden

\[
U = \frac{\omega}{K_v} + \frac{\tau}{K_T} R + R I_{noload}
\]

\[
\Rightarrow RU=R\frac{\omega}{K_v} + R^2(\frac{\tau}{K_T} + I_{noload})
\]

\[
\Rightarrow \sqrt{\frac{U}{\frac{\omega}{K_v} (\frac{\tau}{K_T} + I_{noload})}} = R
\]

Met de methode gebruikt voor het berekenen van \(I_{noload}\) komen we
op de waardes \(K_v = 69rpm/V\), \(R = 170m\Omega\) en
\(U_{th} = 598mV\). Hieronder is de grafiek van alle spannignserrors met
deze waardes

\begin{figure}
\centering
\includegraphics{../../latex/images/99a21b34-2ff8-475c-8fef-296368d93bae.png}
\caption{Grafiek van spanningserror met berekende waarde}
\end{figure}

x as: test nummer\\
y as: spannigs error tussen test data en
\(U=\frac{\omega}{K_v} + \frac{\tau}{K_T} R + U_{th}\)

\paragraph{Koppel Tijdens het Draaien}\label{koppel-tijdens-het-draaien}

Om de koppel van \(45 Nm\) te kunnen halen op \(1000 rpm\) is een
gearbox nodig. We hebben alles al berekend om de direct de benodigde
spanning en stroom te krijgen van koppel en snelheid met de volgende
formule.

\[
U = \frac{\omega}{K_v} + \frac{\tau}{K_T} R + U_{th} = \frac{\omega}{69} + \frac{\tau}{0.15} \cdot 0.17 + 0.598
\]

\[
I = \frac{\tau}{K_T} + I_{noload} = \frac{\tau}{0.15} + 3.52
\]

\begin{longtable}[]{@{}
  >{\raggedright\arraybackslash}p{(\columnwidth - 12\tabcolsep) * \real{0.1228}}
  >{\raggedleft\arraybackslash}p{(\columnwidth - 12\tabcolsep) * \real{0.1579}}
  >{\raggedleft\arraybackslash}p{(\columnwidth - 12\tabcolsep) * \real{0.1404}}
  >{\raggedleft\arraybackslash}p{(\columnwidth - 12\tabcolsep) * \real{0.1579}}
  >{\raggedleft\arraybackslash}p{(\columnwidth - 12\tabcolsep) * \real{0.1404}}
  >{\raggedleft\arraybackslash}p{(\columnwidth - 12\tabcolsep) * \real{0.1579}}
  >{\raggedleft\arraybackslash}p{(\columnwidth - 12\tabcolsep) * \real{0.1228}}@{}}
\toprule\noalign{}
\begin{minipage}[b]{\linewidth}\raggedright
gearbox
\end{minipage} & \begin{minipage}[b]{\linewidth}\raggedleft
snelheid
\end{minipage} & \begin{minipage}[b]{\linewidth}\raggedleft
koppel
\end{minipage} & \begin{minipage}[b]{\linewidth}\raggedleft
spanning
\end{minipage} & \begin{minipage}[b]{\linewidth}\raggedleft
stroom
\end{minipage} & \begin{minipage}[b]{\linewidth}\raggedleft
vermogen
\end{minipage} & \begin{minipage}[b]{\linewidth}\raggedleft
efficiëntie\footnote{op basis van 4.5 kW mechanisch vermogen dat
  berekend is door automotive studenten}
\end{minipage} \\
\midrule\noalign{}
\endhead
\bottomrule\noalign{}
\endlastfoot
1:1 & 1000 rpm & 45.0 Nm & 66.1 V & 303.5 A & 20060 W & 22.4 \% \\
1:2 & 2000 rpm & 22.5 Nm & 55.1 V & 153.5 A & 8456 W & 53.2 \% \\
1:3 & 3000 rpm & 15.0 Nm & 61.1 V & 103.5 A & 6323 W & 71.2 \% \\
1:4 & 4000 rpm & 11.3 Nm & 71.3 V & 78.5 A & 5600 W & 80.4 \% \\
1:5 & 5000 rpm & 9.0 Nm & 83.3 V & 63.5 A & 5289 W & 85.1 \% \\
\end{longtable}

Met een 1:4 gearbox kan een maximale snelheid van 875 rpm halen (de
motor kan maximaal 3500 rpm draaien). Dit is iets onder de eisen, maar
een betere motor hebben wij niet gevonden voor een redelijke prijs.

voor \(3500rpm\) met \(11.3 Nm\) is een spanning nodig van \(64V\).

\begin{quote}
Er is zat een grote fout in eerdere berekeningen. Terug regekent was dat
voor 25 Nm i.p.v. 45 Nm. Dan is er maar ongeveer 45 A met de 1:4 gearbox
nodig. De motor driver is dus ontworpen voor 50 A (inclusief een marge)
i.p.v. de 80 A die het eigenlijk had moeten zijn. Volgende keer de
berekeningen beter controleren. Verder in dit document zal de \(50 A\)
gebruik worden
\end{quote}

\paragraph{Specificaties}\label{specificaties}

\begin{itemize}
\tightlist
\item
  De drijver moet minimaal \(72 V\) aan kunnen, met voorkeur van
  \(120 V\) \footnote{Er wordt tot \(50 V\) getest, deze waardes word
    het voor ontworpen, maar niet tot de limiet getest.}
\item
  de drijver moet minimaal \(50 A\) continu kunnen leveren (wat
  eigenlijk \(80 A\) had moeten zijn) \footnote{Er wordt tot \(50 V\)
    getest, deze waardes word het voor ontworpen, maar niet tot de
    limiet getest.}
\item
  maakt gebruik van Field Orented Controll, om het volledige vermogen te
  kunnen halen vanaf stilstand.
\item
  De hoek van het voertuig moet gemeten worden.
\item
  Er is een regel loop tussen de hoek sensor en de kracht van de motor.
\item
  Er is een SPI-client connector waarmee verschillende instellingen
  ingesteld mee kan worden, waaronder het maximaal vermogen.
\end{itemize}

\newpage

\subsubsection{Ontwerp}\label{ontwerp}

\paragraph{Componenten}\label{componenten}

\subparagraph{FET's}\label{fets}

MOSFET's was de eerste waar naar gezocht is. Van bijna alle FET's is de
maximale stroom in de datasheet is niet realistisch haalbaar, dit
vereist veel koeling dat erg lastig is te realiseren. Dit maakt het
vinden van een geschikte MOSFET lastig, de meeste kunnen het niet aan
alleen. Het is mogelijk om meerde parallel te zetten, maar dit vereist
goede thermisch beheer.

Een andere optie is GaNFET's, hier hebben we een fabrikant (Efficiënt
Power Converters; EPC) gevonden die veel redelijkere maximale stroom
geven. De EPC3207\footnote{\href{https:/epc-co.com/epc/products/gan-fets-and-ics/epc2307}{https://epc-co.com/epc/products/gan-fets-and-ics/epc2307}}
lijkt met meest geschikt voor dit project. Deze kan \(62A\) aan volgens
de datasheet, en verliest ongeveer \(15W\) bij \(50A\). Dit vermogen is
goed te koelen met een koelblok.

\subparagraph{Gate Driver}\label{gate-driver}

EPC geeft een lijst aan aangeraden gate drivers IC's\footnote{\href{https:/epc-co.com/epc/design-support/gan-first-time-right/drivers-and-controllers}{https://epc-co.com/epc/design-support/gan-first-time-right/drivers-and-controllers}}.
Er is gekozen voor de NCP51820 van On-Semi uit deze lijst. Deze kan hoge
spanningen aan, de schakeling er om heen is makkelijk te maken door een
aparte source en sync pinnen, en is goed verkrijgbaar voor een goede
prijs.

Verliezen in de FET

De EPC2307 kan tot \(62A\) continu schakelen volgens EPC.

\[
P_{loss} = I^2R_{DS(on)} + P_{loss,sw}
\]

\(P_{loss,sw}\): schakel verliezen

\(R_{DS(on)} = 10m\Omega\) dus bij \(50A\):

\[
P_{loss} = 50^2 \cdot 0.01 + P_{loss,sw} = 25W + P_{loss,sw}
\]

\(P_{loss,sw}\) is voor GaNFET's erg laag, in de simulatie - die
gebaseerd is op de voorbeeld simulatie van EPC - schakelt die binnen
\(4ns\). Als we vanuit gaan van linieer schakelgedrag met liniare
oplopende stroom (wat tot veel hogeve verliezen lijd dan de
werkelijkheid)

\[
P_{loss,sw} = \frac{UIt}{2} \cdot 2f_s
\]

\(U\): voedings spanning \(I\): stroom \(t\): schakeltijd \(f_s\): de
schakel frequentie

Als je dit invult:

\(U = 120V\), \(I = 50A\), \(t = 4 ns\), \(f_s = 50 kHz\) dan is
\(P_{loss,sw} = 1.2 W\).

Dit geeft een totaal van \(P_{loss} = 16.2W\). Dit is berekent met een
ruime schakelverlies met bijna \(100\%\) PWM. De werkelijkheid zal het
minder zijn.

\subparagraph{Stroom Meting}\label{stroom-meting}

Heel eerlijk, deze was ik een beetje vergeten, dus heb snel de ACS724
toegevoegd. Nu hopen dat die de piek stromen aan kan.

\subparagraph{Hoek Sensor}\label{hoek-sensor}

Het meten van de hoek hebben we drie manieren voor gevonden:

\begin{itemize}
\tightlist
\item
  afstand sensoren naar de grond
\end{itemize}

Als de grond wat scheef is zal het reactiewiel het voertuig scheef (ten
opzichte van zwaartekracht), waardoor het wiel steeds sneller gaat
draaien tot die de maximale snelheid bereikt, dan valt het voertuig om.
Niet heel handig dus.

\begin{itemize}
\tightlist
\item
  MEMS-Gyroscoop
\end{itemize}

Meet direct de hoek en is snel. Nadeel is als deze afwijkt veranderd de
nul positie en gaat die balanceren op het verkeerde punt.

\begin{itemize}
\tightlist
\item
  MEMS-Versnellingsmeter
\end{itemize}

Meet de zwaartekracht direct, dus verliest de nul positie niet, maar
wordt verstoord bij een stoot.

De beste optie is een combinatie van een MEMS-gyroscoop en een
MEMS-versnellingsmeter. De versnellingsmeter zorgt er voor dat de nul
positie niet verloren gaat. En de gyroscoop voor nauwkeurige meting van
de hoek. Deze combinatie wordt ook een IMU (Inertial measurement unit)
genoemd.

Uiteindelijk is de M5Stack IMU Pro Mini gekozen, dit is een module in
behuizing met een connector. Dit is erg handig, omdat deze goed
schokvrij bevestigt moet worden. Er zit ook nog een kompas en luchtdruk
sensor op, maar er zijn geen plannen om deze te gebruiken.

In deze module zit de BMI270\footnote{\href{https:/www.bosch-sensortec.com/products/motion-sensors/imus/bmi270/}{https://www.bosch-sensortec.com/products/motion-sensors/imus/bmi270/}}
van Bosch. De I\textsuperscript{2}C bus van deze IC is direct verbonden
met de connector naar buiten toe.

\subparagraph{Microcontroller}\label{microcontroller}

Er zijn niet veel vereisten voor de microcontroller, bijna alle
microcontrollers hebben SPI, I2C interfaces en een ADC voor de stroom
meting. Het belangrijkste is dat die genoeg rekenkracht heeft voor de
FOC berekeningen.

Uiteindelijk is gekozen voor een RP2040 van Raspberry Pi, deze heeft
twee ARM Cortex M0+ cores die tot 150 MHz aan kunnen. Het grote voordeel
van deze microcontroller is dat ik al een ontwerp klaar heb liggen met
alle benodigde componenten.

\subparagraph{Encoder}\label{encoder}

Voor FOC moet de positie van polen (magneten) in de rotor ten opzichte
van de slots (elektro magneten) in de rotor. Hoe nauwkeuriger dit is hoe
effectiever de FOC is om met maximale vermogen uit de motor te kunnen
halen.

Veel motoren worden geleverd met drie hall-effect sensoren die deze
relatieve positie direct meten, allen zijn deze niet heel nauwkeurig op
lage snelheden.

Een Relatieve rotary encoder, zoals een optische die sloten telt in een
schrijf die gemonteerd is aan de rotor, kan veel nauwkeuriger. Het
nadeel is dat deze gekalibreerd moet worden elke keer als de stroom er
afgaat.

Een absolute rotary encoder hoeft maar 1 keer gekalibreerd te worden. De
meeste. Er zijn twee soorten absolute encoders die veel gebruikt worden,
een die om een as gemonteerd worden (zoals de AMT212B-V\footnote{\href{https:/www.sameskydevices.com/product/motion-and-control/rotary-encoders/absolute/modular/amt212b-v}{https://www.sameskydevices.com/product/motion-and-control/rotary-encoders/absolute/modular/amt212b-v}})
of een die de oriëntatie van een magneet meet (zoals de
AS5600\footnote{\href{https:/ams-osram.com/products/sensor-solutions/position-sensors/ams-as5600-position-sensor}{https://ams-osram.com/products/sensor-solutions/position-sensors/ams-as5600-position-sensor}}).

Er is gekozen voor een breakout board te kopen van de AS5600, deze is
het makkelijkst de monteren en goed verkrijgbaar van de absolute
encoders.

\paragraph{Schema}\label{schema}

Het schema is gemaakt in KiCad

\subparagraph{Half-bridge}\label{half-bridge}

Voor een BLDC-motor driver zijn drie half-bridges nodig. Bij een ontwerp
van een half bridge zijn twee belangrijke dingen, naast component keuze.
De gate driver en de power filtering.

Power Filtering

In dit ontwerp worden GaNFET's gebruikt, deze schadelijk binnen enkele
nanosecondes. Eleke hoeveelheid aan inductie vanaf de voeding vertraagt
deze snelheid, en is een antenne voor de honderden MHz dat door deze
schakelsnelheid gegenereerd wordt. Er moeten dus condensatoren zo dicht
mogelijk bij de FET's om de inductie zo minimaal mogelijk te maken. Deze
moeten ook keramische zijn door de lage ESR. Een nadeel is dat deze voor
veel motor drijvers eigenlijk te groot zijn waardoor de afstand tussen
de condensator en FET's te groot wordt als de filtering in 1 stage gaat.

Om te berekenen hoeveel stages nodig zijn, moet eerste de layout gemaakt
worden (hier meer over in het hooftstuk PCB). Bij de layout is het geluk
om \(7.2 \mu F\) (5 x \(1\mu F\) en 1 x \(2.2\mu F\)) in de eerste stage
te plaatsen.

\begin{quote}
TODO: ref to hooftstuk pcb needed!
\end{quote}

Na veel experimenteren in een simulatie in LTspice lijkt \(7.2\mu F\)
wel weinig, het zal een stuk beter zijn als er \(20\mu F\) zal passen.

De tweede stage is wat klein gehouden, om in inschakelstroom beperkt te
houden. Dit betekent wel dat er erg dikke kabels nodig zijn om het
volledige vermogen aan te kunnen.

Helaas is de simulatie gecrasht en het bestand corrupt geraakt. Het is
hierna niet meer gelukt om de simulatie stabiel opnieuw op te bouwen
(vermogens van honderden KW bij een kleine aanpassing). Onder staat is
de schakeling van de opnieuw opgebouwde schakeling die dus niet werkt.

\begin{figure}
\centering
\includegraphics{../../latex/images/7f783ce7-ee05-4193-844f-240cbec98bce.png}
\caption{Schakeling simulatie power filter}
\end{figure}

C2 zijn de keramische condensatoren vlak bij de FET's (eerste stage), C3
en C1 zijn solid polymer aluminum capacitors voor de tweede stage. L4 is
een ingeschatte inductie van de verbinding tussen de condensatoren en L5
is de inductie van de kabels vanaf de accu.

De condensator waardes zijn een stuk groter dan op het evaluatiebord.
Hier zitten 7 condensatoren van \(22nF\) op (\(125nF\) totaal). Ik
vermoed dat mijn simulaties wat pessimistischer zijn dat de
werkelijkheid.

Gate Driver

Het simulatiemodel van de gate driver IC is alleen beschikbaar voor
Simplus. Het is mij niet gelukt om de gratis versie van deze software
werkend te krijgen of het model te converteren naar een ander format.
Dus het berekenen of simuleren voor gate driver gaat niet lukken. Dus ik
heb een referentieontwerp van EPC overgenomen met een \(0\Omega\)
weerstand bij de sync (hier is wel een \(0\Omega\) jumper gebruikt zodat
die later vervangen kan worden met een weerstand) en \(0.39\Omega\) voor
de source.

\subparagraph{Microcontroller}\label{microcontroller-1}

De microcontroller schakeling is een kopie van een hobby project, deze
schakeling is al getest. Er is niks veranderd aan dit ontwerp voor dit
project, behalve dat er andere io pinnen gebruikt worden.

\paragraph{PCB}\label{pcb}

\subparagraph{Stroom Distributie}\label{stroom-distributie}

Vijftig ampère is erg veel voor een PCB.

\begin{quote}
KiCad Calculator Tools:\\
``The calculations are valid for currents up to \(35 A\) (external) or
\(17.5 A\) (internal), temperature rises up to \(100^\circ C\), and
widths of up to 400 mils (10mm)''
\end{quote}

Deze tool heeft voor \(35A\), \(150mm\) spoor lengte en
\(10^\circ C\Delta\) met \(70\mu m\) koper een spoor breedte van
\(20.2mm\). De spoorbreedte is al buiten het berijk van deze tool. Als
we toch de stroom verandert naar \(50A\) wordt dit \(33.1mm\).

Met dezelfde instellingen voor \(50A\) in de calculator van DigiKey
keeft die dezelfde resultatie. En die van AdvancedPCB, PCBWay en OMNI
calculator. Of ze gebruiken allemaal dezelfde beperkte formule of het
klopt redelijk.

Er is gekozen om een spoor breedte van \(40mm\) te gebruiken om iets
marge te hebben als deze rekenmachines afwijken. Dit is erg breed, dus
dit verdeeld gedaan over een buiten laag en een binnen laag plus nog een
extra marge omdat binnenlagen minder goed koelen. De lagen zijn om en om
gedaan, zodat het beetje capaciteit tussen deze lagen de inductie ietsje
compenseert.

\subparagraph{Half-bridges}\label{half-bridges}

Gelukkig heeft EPC (de fabrikant van de FET's) een aantal aangeraden
layouts.

\begin{figure}
\centering
\includegraphics{../../latex/images/e4a587e6-798b-4fed-8518-9574473bdf79.png}
\caption{Aangeraden PCB layout van EPC}
\end{figure}

Bij dit project worden de high-side (HS) en low-side (LS) FET's ongeveer
hetzelfde belast, dus ze hebben dezelfde koeling nodig. Dus er is voor
de middelste optie gekozen.

\begin{figure}
\centering
\includegraphics{../../latex/images/43a7f9a1-a3d6-4f2b-844e-be65623e1b12.png}
\caption{3D render van een van de half-brdige layouts}
\end{figure}

Hierboven is de layout te zien. De rij condensatoren in het midden
tussen de twee FET's (met veel vias er omheen). Rechts daar van de
SOIC-8 is de stroom meting IC en rechts onderin de gate driver.

De uitgang van de FET's voor de stroom meet IC is er ook in de binnen
laag direct onder de top laat (de render is van de top laag). Deze zit
er om de stroom loop zo'n klein mogelijk oppervlak te geven met de
condensatoren, door er onder door te gaan. Hierom stoppen de vias van de
voeding ook zo abrupt.

\newpage

\subsubsection{Productie}\label{productie}

De PCB en stencel zijn gepoduceert door JLCPCB en de componenten zijn
gelaats en in de reflow oven gegaan in het SMD-lab op Accademiplein.

Na dat die uit de over kwam zijn er een aantal soleer balletjes
weggehaald, twee soldeer bruggen weg gehaald bij een van de gate driver
IC's en de microcontroller opnieuwe met de hand erop gelaast. De
microcontroller had teveel tin op de groundpad aan de onderkant,
waardoor deze omhoog kwam en de pinnen aan de zijkant boven de PCB
zweefde onder contact.

\newpage

\subsection{Softwareontwerp Sabilisatie}\label{softwareontwerp-sabilisatie}

\subsubsection{FoC library}\label{foc-library}

In C zijn er niet veel librarys voor FOC, de enige goede library die we
hebben gevonden is \href{https:/www.simplefoc.com/}{SimpleFOCproject}.
Dit komt er in debuurd van een framework. In de video van de homepagina
worden een aantal gemeenschaps projecten laten zien, waarvan meerdere
een reactiewiel voor sabilisatie laat zien. Dit belooft veel goeds, toch
is er gekozen om een andere library te kiezen. Het goed implementeren
van een regel kring met de IMU vraagd veel kennis van hoe dit
`framework' werkt. Onze implementatie is niet exact het zelfde als die
van deze gemeenschaps projecten. Wij hebben dus de kennis nogdig om deze
code aan te passen.

Er is gekozen om te werken met de \href{https:/lib.rs/crates/foc}{Rust
library FOC}. Deze library is alleen een implementatie voor het FOC
algaritme, wadoor er meer flexibilitijd is hoe het systeem verder werkt.
Dit kan dus ook verder geoptimaliseerd worden en meer ge configureerd.
dat tweede is de grootste reden warom voor deze library is gekozen. Er
is behoefte aan een systeem dat aangepast kan worden naar wat later
beter blijkt te zijn.

\newpage

\subsubsection{Rust op RP2040}\label{rust-op-rp2040}

Rust voor microcontrollers is nog in een sooft alpha versie. Het werkt
voor het grootste deel, maar hier en daar zijn nog wat beperkingen.
Vrijwel al deze beperkingen hebben een workaround. Het groote voordeel
is dat er een `officele' standaard is voor het HAL interface\footnote{embeded-hal:
  \href{https:/docs.rs/embedded-hal}{https://docs.rs/embedded-hal}}. Dit
maakt zorgd er voor dat er veel librarys voor IC's beschikbaar zijn die
gewoon werken.

\newpage

\subsubsection{Async}\label{async}

De standaard async funtionalitijd in rust werkt nog niet voor
microcontrollers\footnote{\href{https:/www.youtube.com/watch?v=H7NtzyP9q8E}{https://www.youtube.com/watch?v=H7NtzyP9q8E}}.
Hier zijn wel alternative librarys voor\footnote{\href{https:/arewertosyet.com/}{https://arewertosyet.com/}},
Embassy\footnote{\href{https:/embassy.dev/}{https://embassy.dev/}} en
RTIC\footnote{\href{https:/rtic.rs}{https://rtic.rs}} zijn de twee die
het meest genoemd worden. Embassy ziet er wat eenvoudiger uit als RTIC,
daarvoor is ook gekozen om te gebruiken.

\newpage

\subsubsection{AS5600}\label{as5600}

Er wordt gebruik gemaakt de AS5600 library van Rafael
Bachmann\footnote{\href{https:/github.com/barafael/as5600-rs}{https://github.com/barafael/as5600-rs}}.

\newpage

\subsubsection{}\label{section}

\newpage

\subsubsection{Unit Testen Stabilisatie}\label{unit-testen-stabilisatie}

\paragraph{Voedingen}\label{voedingen}

\subparagraph{Benodigdheden}\label{benodigdheden}

\begin{itemize}
\tightlist
\item
  12V voeding
\end{itemize}

\subparagraph{Procedure}\label{procedure}

\begin{enumerate}
\def\labelenumi{\arabic{enumi}.}
\tightlist
\item
  snel de voeding in op 12V met een stroom berensing van 50 mA
\item
  sluit de 12V voeding aan op de 12V en GND ingnangen op de driver
\item
  meet de uitgangen van de twee voedingen, vul de tabel hieronder in
\end{enumerate}

\begin{longtable}[]{@{}lrr@{}}
\toprule\noalign{}
& \(5V\) & \(12V\) \\
\midrule\noalign{}
\endhead
\bottomrule\noalign{}
\endlastfoot
minimaal & \(4.5V\) & \(11.5V\) \\
maximaal & \(5.5V\) & \(12.5V\) \\
gemeeten & & \\
\end{longtable}

Geslaagd:

opmergingen:

\paragraph{Microcontroller}\label{microcontroller}

\subparagraph{Benodigdheden}\label{benodigdheden-1}

\begin{itemize}
\tightlist
\item
  12V voeding als de voedingen werken, anders met een 5V en 3.3v voeding
\item
  computer met Arduino IDE geinstaleerd
\item
  USB B kabel naar de computer
\item
  ledje met bijhoren de weerstand voor 3.3V
\end{itemize}

\subparagraph{Procedure}\label{procedure-1}

\begin{enumerate}
\def\labelenumi{\arabic{enumi}.}
\tightlist
\item
  sluit een ledje aan op een van de GPIO pinnen
\item
  snel de voeding in op 12V met een stroom berensing van 150 mA
\item
  sluit de 12V voeding aan op de 12V en GND ingnangen op de driver
\item
  sluit de USB kabel aan op de computer (dit is veilig omdat de USB
  alleen verbonden is met ground, de V+ is floating)
\item
  upload een blinky voorbeeld progamma met de GPIO ingesteld van de led
\item
  bekijk of het lidje knipperd
\end{enumerate}

Geslaagd:

opmergingen:

\paragraph{Half-brug}\label{half-brug}

\subparagraph{Benodigdheden}\label{benodigdheden-2}

\begin{itemize}
\tightlist
\item
  als de microcontoller werkt:

  \begin{itemize}
  \tightlist
  \item
    12V voeding als de voedingen werken, anders met een 5V en 3.3v
    voeding
  \item
    30V voor V Motor
  \item
    computer met Arduino IDE geinstaleerd
  \item
    USB B kabel naar de computer
  \item
    ocsiloscoop
  \end{itemize}
\item
  zo niet:

  \begin{itemize}
  \tightlist
  \item
    10V voor V motor
  \item
    signaal generator met twee kanalen
  \item
    ocsioscoop
  \end{itemize}
\end{itemize}

\subparagraph{procedure}\label{procedure-2}

\begin{enumerate}
\def\labelenumi{\arabic{enumi}.}
\tightlist
\item
  sluit de ociloscoop aan op een van de uitgangen van de drijver (er
  komt 30V op te staan, beruik de juiste probe; geen juiste probe bij de
  hand, zelt de voeding voor V motor wa lager)
\item
  snel de voeding in op 12V met een stroom berensing van 150 mA
\item
  sluit de 12V voeding aan op de 12V en GND ingnangen op de driver
\item
  sluit de USB kabel aan op de computer (dit is veilig omdat de USB
  alleen verbonden is met ground, de V+ is floating)
\item
  upload een test progamma die de PWM aansuurt voor de FET's

  \begin{itemize}
  \tightlist
  \item
    de PWM per half bridge zijn aangesloten op de a en b uitganen van 1
    timer per half brug. zorg dat een van de uitput geinverteerd is en
    de twee vergeleijk waardes zo zijn zodat er een korte dead time is.
    ze mogen nooit tegerlijk hoog zijn!
  \end{itemize}
\item
  bekijk het signaal op de osciloscoop
\item
  herhaal de test voor alle drie de half bruggen
\end{enumerate}

resultaat:

\begin{itemize}
\tightlist
\item
  brug a:
\item
  brug b:
\item
  brug c:
\end{itemize}

opmerkingen:

\paragraph{IMU}\label{imu}

\subparagraph{benodigdheden}\label{benodigdheden-3}

\begin{itemize}
\tightlist
\item
  een microcontroller met I2C (kan de motoro driver zelf zijn)
\item
  computer met Arduino IDE geinstaleerd
\item
  USB B kabel naar de computer
\end{itemize}

\subparagraph{procedure}\label{procedure-3}

\begin{enumerate}
\def\labelenumi{\arabic{enumi}.}
\tightlist
\item
  sluit de IMU aan op de motor driver
\item
  snel de voeding in op 12V met een stroom berensing van 150 mA
\item
  sluit de 12V voeding aan op de 12V en GND ingnangen op de driver
\item
  sluit de USB kabel aan op de computer (dit is veilig omdat de USB
  alleen verbonden is met ground, de V+ is floating)
\item
  upload een blinky voorbeeld progamma met de GPIO ingesteld van de led
\item
  bekijk de serial plotter terwel je de IMU draait.
\end{enumerate}

Geslaagd:

opmergingen:

\paragraph{stroom meting}\label{stroom-meting}

\subparagraph{benodigdheden}\label{benodigdheden-4}

\begin{itemize}
\tightlist
\item
  12V voeding (of 5V bij beperking van beschikbaare voedingen)
\item
  voeding die 50A kan leveren (of zoveel mogenlijk) voor V motor
\item
  bij voorkeur een load die de \(50A_{DC}\) kan op nemen, ander kan de
  uitgang korgesloten worden als de voeding dat toestaat.
\item
  multimeter
\item
  computer met Arduino IDE geinstaleerd
\item
  USB B kabel naar de computer
\end{itemize}

\subparagraph{procedure}\label{procedure-4}

\begin{enumerate}
\def\labelenumi{\arabic{enumi}.}
\tightlist
\item
  sluit de load aan op deen van de uitgangen van de motor driver
\item
  snel de voeding in op 12V met een stroom berensing van 150 mA
\item
  sluit de 12V voeding aan op de 12V en GND ingnangen op de driver
\item
  sluit de USB kabel aan op de computer (dit is veilig omdat de USB
  alleen verbonden is met ground, de V+ is floating)
\item
  upload een programma die alle high side fet's dicht zet en de low side
  fet's open
\item
  sluit de voeding voor V motor aan
\item
  meet uitgang van de stroom meeting
\item
  zet de v motor voeding uit en verlaats de load naar een andere uitgang
\item
  zet de voeding weer aan en meet de stroom meting
\item
  herhaal dit voor de laaste uitgang
\end{enumerate}

TODO: add meet table

Geslaagd:

opmergingen:

\paragraph{encoder}\label{encoder}

\subparagraph{benodigdheden}\label{benodigdheden-5}

\begin{itemize}
\tightlist
\item
  een microcontroller met I2C (kan de motoro driver zelf zijn)
\item
  computer met Arduino IDE geinstaleerd
\item
  USB B kabel naar de computer
\end{itemize}

\subparagraph{procedure}\label{procedure-5}

\begin{enumerate}
\def\labelenumi{\arabic{enumi}.}
\tightlist
\item
  sluit de Encoder aan op de motor driver
\item
  snel de voeding in op 12V met een stroom berensing van 150 mA
\item
  sluit de 12V voeding aan op de 12V en GND ingnangen op de driver
\item
  sluit de USB kabel aan op de computer (dit is veilig omdat de USB
  alleen verbonden is met ground, de V+ is floating)
\item
  upload een voorbeeld progamma voor de encoder.
\item
  bekijk de serial plotter terwel je de magneer van de encoder draait
\end{enumerate}

Geslaagd:

opmergingen:




\end{document}