ingeleverd!!
All checks were successful
generate pdf files / build (push) Successful in 2m34s

This commit is contained in:
Laila van Reenen 2025-06-22 23:56:31 +02:00
parent c20921eded
commit 3e4ab04fe3
Signed by: LailaTheElf
GPG Key ID: 8A3EF0226518C12D
41 changed files with 5528 additions and 32 deletions

View File

@ -33,7 +33,7 @@ do
-e 's|\[toc\]||' \
-e 's|^\[parent\].*$||' \
-e 's|^# |\\newpage\n# |' \
-e 's|^## |\\newpage\n# |' \
-e 's|^## |\\newpage\n## |' \
-e 's|\[\([^]]*\)\](#\([^)]*\))|[\1](#\L\2)|' \
-e 's|https://live.kladjes.nl/uploads|../../latex/images|'
download_images "$BUILD_DIR/$src"

View File

@ -0,0 +1,801 @@
\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 Detailontwerp Stabilisatie \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 Detailontwerp Stabilisatie}
\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}
\tableofcontents
\newpage
\section{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
\section{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.
\subsection{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.
\subsection{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.
\subsection{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}\)
\subsection{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}
\subsection{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
\section{Ontwerp}\label{ontwerp}
\subsection{Componenten}\label{componenten}
\subsubsection{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{\url{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.
\subsubsection{Gate Driver}\label{gate-driver}
EPC geeft een lijst aan aangeraden gate drivers IC's\footnote{\url{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.
\paragraph{Verliezen in de FET}\label{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.
\subsubsection{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.
\subsubsection{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{\url{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.
\subsubsection{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.
\subsubsection{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{\url{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{\url{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.
\subsection{Schema}\label{schema}
Het schema is gemaakt in KiCad
\subsubsection{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.
\paragraph{Power Filtering}\label{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.
\paragraph{Gate Driver}\label{gate-driver-1}
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.
\subsubsection{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.
\subsection{PCB}\label{pcb}
\subsubsection{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.
\subsubsection{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
\section{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.
\end{document}

View File

@ -0,0 +1,183 @@
\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 \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 }
\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{Vehicle Control unit}\label{vehicle-control-unit}
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 taal
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,
programmeer talen 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.
\newpage
\section{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-ECU's \\
Stuurspanningdemperkle & 0 - 5 & \(V_{DC}\) & naloge regeling \\
PWM-signaal frequentie & 1000 - 3000 & \(Hz\) & Typische range voor
aansturing \\
PWM duty cycle & 10 - 90 & \(\%\) & \(0%
\): minimale demping, \(90%
\): maximale demping \\
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.
\end{document}

Binary file not shown.

After

Width:  |  Height:  |  Size: 89 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 47 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 124 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 59 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 59 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 88 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 55 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 43 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 53 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 63 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 139 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

1138
latex/plan_van_aanpak.latex Normal file

File diff suppressed because it is too large Load Diff

2784
latex/projectdocument.latex Normal file

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,168 @@
\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 Softwareontwerp Sabilisatie \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 Softwareontwerp Sabilisatie}
\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{inleiding}\label{inleiding}
\newpage
\section{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
\section{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:
\url{https://docs.rs/embedded-hal}}. Dit maakt zorgd er voor dat er
veel librarys voor IC's beschikbaar zijn die gewoon werken.
\newpage
\section{Async}\label{async}
De standaard async funtionalitijd in rust werkt nog niet voor
microcontrollers\footnote{\url{https://www.youtube.com/watch?v=H7NtzyP9q8E}}.
Hier zijn wel alternative librarys voor\footnote{\url{https://arewertosyet.com/}},
Embassy\footnote{\url{https://embassy.dev/}} en RTIC\footnote{\url{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
\section{AS5600}\label{as5600}
Er wordt gebruik gemaakt de AS5600 library van Rafael
Bachmann\footnote{\url{https://github.com/barafael/as5600-rs}}.
\newpage
\section{}\label{section}
\end{document}

View File

@ -0,0 +1,407 @@
\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 \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 }
\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{Unit Testen Stabilisatie}\label{unit-testen-stabilisatie}
\subsection{Voedingen}\label{voedingen}
\subsubsection{Benodigdheden}\label{benodigdheden}
\begin{itemize}
\tightlist
\item
12V voeding
\end{itemize}
\subsubsection{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:
\subsection{Microcontroller}\label{microcontroller}
\subsubsection{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}
\subsubsection{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:
\subsection{Half-brug}\label{half-brug}
\subsubsection{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}
\subsubsection{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:
\subsection{IMU}\label{imu}
\subsubsection{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}
\subsubsection{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:
\subsection{stroom meting}\label{stroom-meting}
\subsubsection{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}
\subsubsection{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:
\subsection{encoder}\label{encoder}
\subsubsection{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}
\subsubsection{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}

View File

@ -94,7 +94,8 @@ $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.
![Plot van koppel constanten met 3.662 A voor I_noload_](https://live.kladjes.nl/uploads/8c8a9a58-a1db-47fb-a7a7-74d28b3e34b2.png)
![Plot van koppel constanten met 3.662 A voor I_noload](https://live.kladjes.nl/uploads/4aa438b9-f968-4ed9-97f3-dfb934130f6d.png)
x as: test nummer
y as: koppel constante
@ -105,7 +106,8 @@ In deze grafiek is een duidelijke curve te zien aan het begin te zien. Dit duidt
Met $3.52 A$ voor $I_{noload}$ ziet de grafiek er als volgt uit.
![Plot van koppel constanten met 3.52 A voor I_noload_](https://live.kladjes.nl/uploads/9ee2362f-7785-42d1-88cd-cff05438094c.png)
![Plot van koppel constanten met 3.52 A voor I_noload](https://live.kladjes.nl/uploads/fcc86ab9-d051-411d-8379-9d4223c5f4a4.png)
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.
@ -160,7 +162,8 @@ $$
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
![grafiek van spanningserror met berekende waarde](https://live.kladjes.nl/uploads/fc5b87e8-78db-49cb-b8af-5fecbdfbf70d.png)
![Grafiek van spanningserror met berekende waarde](https://live.kladjes.nl/uploads/99a21b34-2ff8-475c-8fef-296368d93bae.png)
x as: test nummer
y as: spannigs error tussen test data en $U=\frac{\omega}{K_v} + \frac{\tau}{K_T} R + U_{th}$
@ -178,7 +181,7 @@ $$
I = \frac{\tau}{K_T} + I_{noload} = \frac{\tau}{0.15} + 3.52
$$
| gearbox | snelheid | koppel | spanning | stroom | vermogen | efficiëntie^[op basis van 4.5 kW mechanisch vermogen dat berekend is door automotive studenten] |
| gearbox | snelheid | koppel | spanning | stroom | vermogen | efficiëntie[^efficentie-berekening] |
| ------- | --------:| -------:| --------:| -------:| --------:| ------:|
| 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 % |
@ -186,6 +189,8 @@ $$
| 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 % |
[^efficentie-berekening]: op basis van 4.5 kW mechanisch vermogen dat berekend is door automotive studenten
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$.
@ -234,14 +239,14 @@ $$
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 stoom (wat tot veel hogeve verliezen lijd dan de werkelijkheid)
$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$: stoom
$I$: stroom
$t$: schakeltijd
$f_s$: de schakel frequentie
@ -350,11 +355,12 @@ Er is gekozen om een spoor breedte van $40mm$ te gebruiken om iets marge te hebb
Gelukkig heeft EPC (de fabrikant van de FET's) een aantal aangeraden layouts.
![Aangeraden PCB layout van EPC](https://live.kladjes.nl/uploads/bfc31031-16c8-4d51-93d4-c14a542822c6.png)
![Aangeraden PCB layout van EPC](https://live.kladjes.nl/uploads/e4a587e6-798b-4fed-8518-9574473bdf79.png)
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.
![3D render van een van de half-brdige layouts](https://live.kladjes.nl/uploads/ac89820c-9bdf-4ff4-bc41-9a704864cdac.png)
![3D render van een van de half-brdige layouts](https://live.kladjes.nl/uploads/43a7f9a1-a3d6-4f2b-844e-be65623e1b12.png)
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.

View File

@ -101,7 +101,7 @@ Er is nog geen uitgebreid testprotocol ontwikkeld om de prestaties van de aandri
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.
![Figuur 1: SPC-prototype](https://live.kladjes.nl/uploads/0623b75b-1585-421a-9329-4feba9e00ae2.png)
![SPC-prototype](https://live.kladjes.nl/uploads/0623b75b-1585-421a-9329-4feba9e00ae2.png)
## Scope & Afbakening
@ -177,7 +177,8 @@ In die tabel wordt de VOC (voice of customer) genoteerd en bij punten daarvan wo
De CTQs die uit de View of Client en View of Business zijn gehaald die voor dit onderzoek belangrijk zijn, zijn hieronder in tabelvorm genoteerd.
![](https://live.kladjes.nl/uploads/6dfea9cc-9385-4f75-9f36-944d1006a6b4.png)
![](https://live.kladjes.nl/uploads/c776081d-b52e-40b8-84f4-065145305f76.png)
De eisen opgesteld vanuit de opdrachtgever (klant) zijn als volgt:
@ -221,15 +222,18 @@ De verificatiefase van het DMADV-model is weliswaar de laatste fase, maar niet h
### OBS (Organization Breakdown Structure)
![](https://live.kladjes.nl/uploads/598fc377-7f5b-4e07-9c02-a795d663897d.png)
![Organization Breakdown Structure](https://live.kladjes.nl/uploads/d62ce8e7-705b-46da-884c-e3da26c39be9.png)
### PBS (Product Breakdown Structure)
![](https://live.kladjes.nl/uploads/ca2b5821-da96-48da-b523-7959e4a738ee.png)
![Product Breakdown Structure](https://live.kladjes.nl/uploads/93b15853-82d2-48a2-9cbb-bdf3f4b0fb4b.png)
### WBS (Work Breakdown Structure)
![](https://live.kladjes.nl/uploads/84cc6e72-ccf0-46da-b7ee-f24501a11e08.png)
![Work Breakdown Structure](https://live.kladjes.nl/uploads/958b5da9-80bc-4069-9a13-acc8a0fe6b5b.png)
## Risico- en stakeholder analyse
@ -303,7 +307,8 @@ Om het SPC-project succesvol af te ronden, is een goede planning, communicatie e
### Risico matrix
![](https://live.kladjes.nl/uploads/2c5d0ac3-3384-45eb-bc04-a5ea5c50dd3b.png)
![Risico matrix](https://live.kladjes.nl/uploads/224f3e03-21c4-4034-8905-9848007b253e.png)
### Stakeholder analyse
@ -345,7 +350,7 @@ C Consulted (Geraadpleegd): dit is de persoon aan wie vooraf advies gevraagd
I Informed (Geïnformeerd): deze persoon wordt tussentijds geïnformeerd over de beslissingen, over de voortgang, bereikte resultaten enz.
| | Projectleider Tijn | Max | Thomas | Gryvon | Chris | Projectleider Finley | Mohammed | Van Groningen |
| | Tijn | Max | Thomas | Gryvon | Chris | Finley | Mohammed | Van Groningen |
| --- | --- | --- | --- | --- | --- | --- | --- | --- |
| Projectplanning | R | I | I | I | I | I | I | |
| PVE | I | I | I | I | R | A/R | I | C |
@ -390,7 +395,8 @@ In de analyse fase worden de volgende documenten opgesteld:
### Value planning
![](https://live.kladjes.nl/uploads/b84cf445-7956-4ea7-986d-9abbf179a4f3.png)
![Value Planning](https://live.kladjes.nl/uploads/6f8ac25b-16f5-41ae-b7cf-980ddfbfbfd7.png)
### Dynamische planning
@ -398,7 +404,8 @@ Deze planning geeft een overzicht van de verschillende fasen en bijbehorende tak
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
![](https://live.kladjes.nl/uploads/91d95a2a-c1ab-488b-b82c-0b6eca461924.png)
![Stroken planning](https://live.kladjes.nl/uploads/c75e80d7-dcc2-454e-adb2-dc4a1925b2bf.png)
## Begroting

View File

@ -98,20 +98,20 @@ Voor de Stabilisatie is er een motor driver ontworpen. De specificaties van deze
### De Motor
Het is een gevonden op Aliexpress, niet een heel erg betrouwbare verkoper, maar we kunnen niks anders geschikts vinden voor een redelijke prijs. Deze motor kan de kracht net niet aan continu, maar wel voor korte duur. De snelheid is wel ietsje ingeperkt ten opzichte van de berekende $1000 rpm$ dat nodig is, deze kan tot $875 rpm$. Dit is de reden geweest dat we geen motor gaan inkopen, maar een motor driver die geschik is om het volledige vermogen te kunnen halen, en testen met een motor uit de voorraad. Deze zal waarschijnlijk niet voldoende vermogen, maar we kunnen wel testen of het concept werkt voor dat er grote bedragen uitgegeven worden aan een wel geschikte 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:
- $K_T = 0.15 Nm/A$ - motor koppel constante
- $I_{noload} = 3.52 A$ - Stroom verbruik bij geen koppel
- $K_v = 69 rpm/V$ - motor snelheidsconstante
- $V_{th} = 598 mV$ - thrushold voltage
- $V_{th} = 598 mV$ - threshold voltage
- $I_{max} = 78.5 A$ - maximaal stroom verbruik voor onze applicatie ($11.2Nm$ met 1:4 gearbox)
- $U_{max} = 64 V$ - maximaal spanning benodigd voor onze applicatie
berekeningen voor deze waardes staat in het Detailontwerp Stabilisatie in hoofdstuk [Motor Keuze](#motor-keuze) (zie bijlagen)
berekeningen voor deze waardes staan in het Detailontwerp Stabilisatie in hoofdstuk [Motor Keuze](#motor-keuze) (zie bijlagen)
> Er is helaas iets fout gegaan bij de berekeningen eerder gedaan om de specificaties vast te stellen. Er is perongeluk 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 te vinden die met $50A$ maar een hogere spanning het vermogen haalt. Er is veel ruimte aan spanning, dus dit zal geen groot probleem moeten zijn.
> 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.
### Motor Driver
@ -122,16 +122,16 @@ berekeningen voor deze waardes staat in het Detailontwerp Stabilisatie in hoofds
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.
- De drijver moet minimaal $50 A$ continu kunnen leveren (wat eigenlijk $80 A$ had moeten zijn) [^1]
- Maakt gebruik van Field Orented Controll, om het volledige vermogen te kunnen halen vanaf stilstand.
- Maakt gebruik van Field Oriented Control, om het volledige vermogen te kunnen halen vanaf stilstand.
- De hoek van het voertuig moet gemeten worden.
- Er is een regel loop tussen de hoek sensor en de kracht van de motor.
- Er is een SPI-client connector waarmee verschillende instellingen ingesteld mee kan worden, waaronder het maximaal vermogen.
[^1]: Er wordt tot $50 V$ getest, deze waardes wordt het voor ontworpen, maar niet tot de limiet getest.
[^1]: Er wordt tot $50 V$ getest, voor deze waardes wordt het ontworpen, maar niet tot het limiet getest.
Deze specificaties zijn erg lastig motor driver voor te vinden. Zo lastig dat - zonder een bedrijf een laten ontwerpen - we er geen gevonden hebben. Hierom is gekozen om zelf een motor driver te ontwerpen.
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 na dat is besloten om een eigen 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.
#### Ontwerp
@ -151,7 +151,7 @@ $$
P_{loss} = I^2R_{DS(on)} + \frac{UIt}{2} \cdot 2f_s
$$
$I$: stoom
$I$: stroom
$U$: voedingsspanning
$t$: schakeltijd
$f_s$: de schakel frequentie
@ -168,11 +168,11 @@ Deze formule is erg pessimistisch, deze gaat uit van $100\%$ PWM terwel de uitga
##### Sensoren
Er zijn drie sensoren nodig, stoom meting, positie van de motor en de hoek van het voertuig.
Er zijn drie sensoren nodig, stroom meting, positie van de motor en de hoek van het voertuig.
###### stroom meting
De stroom meting wordt gedaan met de ACS724xLCTR-50AB. Dit is een stroom meet 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.
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.
@ -180,7 +180,7 @@ Er is niet gekozen voor een shunt met een versterker, omdat er $200V$ op deze ui
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.
> Meer informatie warom deze keuze is gemaakt, zie bijlagen Detailontwerp Stabilisatie hooftstuk Encoder
> Meer informatie waarom deze keuze is gemaakt, zie de bijlagen Detailontwerp Stabilisatie hooftstuk Encoder
###### Hoek van het voertuig
@ -188,7 +188,7 @@ Een MEMS Gyroscoop kan verandering in de hoek meten, deze is erg snel hierin maa
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.
> Meer informatie warom deze keuze is gemaakt, zie bijlagen Detailontwerp Stabilisatie hooftstuk [Hoek Sensor](#hoek-sensor)
> Meer informatie warom deze keuze is gemaakt, zie bijlagen Detailontwerp Stabilisatie hoofdstuk [Hoek Sensor](#hoek-sensor)
#### Productie en Testen Motor Driver
@ -218,4 +218,6 @@ Vanaf school week 4.1 waren we totaal nog maar met 5 personen i.p.v. 7. Dit heef
![Detailonwerp Stabilisatie](detailontwerp_stabilisatie.md)
![Softwareontwerp Stabilisatie](softwareontwerp_stabilisatie.md)
![Unit Testen Stabilisatie](unittest_stabilisatie.md)

View File

@ -126,7 +126,7 @@ opmergingen:
6. sluit de voeding voor V motor aan
7. meet uitgang van de stroom meeting
8. zet de v motor voeding uit en verlaats de load naar een andere uitgang
9. zet de voeding weer aan en meet de stoom meting
9. zet de voeding weer aan en meet de stroom meting
10. herhaal dit voor de laaste uitgang
TODO: add meet table

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
pdf/plan_van_aanpak.pdf Normal file

Binary file not shown.

Binary file not shown.

BIN
pdf/projectdocument.pdf Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.