add file for foc_onderzoek and remove build files
@ -1,801 +0,0 @@
|
||||
\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}
|
||||
@ -1,183 +0,0 @@
|
||||
\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}
|
||||
|
Before Width: | Height: | Size: 89 KiB |
|
Before Width: | Height: | Size: 47 KiB |
|
Before Width: | Height: | Size: 124 KiB |
|
Before Width: | Height: | Size: 35 KiB |
|
Before Width: | Height: | Size: 22 KiB |
|
Before Width: | Height: | Size: 59 KiB |
|
Before Width: | Height: | Size: 6.5 KiB |
|
Before Width: | Height: | Size: 59 KiB |
|
Before Width: | Height: | Size: 88 KiB |
|
Before Width: | Height: | Size: 17 KiB |
|
Before Width: | Height: | Size: 30 KiB |
|
Before Width: | Height: | Size: 44 KiB |
|
Before Width: | Height: | Size: 55 KiB |
|
Before Width: | Height: | Size: 43 KiB |
|
Before Width: | Height: | Size: 53 KiB |
|
Before Width: | Height: | Size: 63 KiB |
|
Before Width: | Height: | Size: 139 KiB |
|
Before Width: | Height: | Size: 23 KiB |
@ -1,168 +0,0 @@
|
||||
\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}
|
||||
@ -1,407 +0,0 @@
|
||||
\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}
|
||||
36
makefile
@ -1,8 +1,8 @@
|
||||
|
||||
all: all_booklets all_docduments
|
||||
|
||||
all_docduments: prepare pdf/plan_van_aanpak.pdf pdf/detailontwerp_stabilisatie.pdf pdf/detailontwerp_stuursysteem.pdf pdf/unittest_stabilisatie.pdf pdf/softwareontwerp_stabilisatie.pdf pdf/projectdocument.pdf
|
||||
all_booklets: prepare pdf/plan_van_aanpak.booklet.pdf pdf/detailontwerp_stabilisatie.booklet.pdf pdf/detailontwerp_stuursysteem.booklet.pdf pdf/unittest_stabilisatie.booklet.pdf pdf/softwareontwerp_stabilisatie.booklet.pdf pdf/projectdocument.booklet.pdf
|
||||
all_docduments: prepare pdf/plan_van_aanpak.pdf pdf/detailontwerp_stabilisatie.pdf pdf/detailontwerp_stuursysteem.pdf pdf/unittest_stabilisatie.pdf pdf/softwareontwerp_stabilisatie.pdf pdf/projectdocument.pdf pdf/pakket_van_eisen.pdf pdf/competenties.pdf pdf/foc_onderzoek.pdf
|
||||
all_booklets: prepare pdf/plan_van_aanpak.booklet.pdf pdf/detailontwerp_stabilisatie.booklet.pdf pdf/detailontwerp_stuursysteem.booklet.pdf pdf/unittest_stabilisatie.booklet.pdf pdf/softwareontwerp_stabilisatie.booklet.pdf pdf/projectdocument.booklet.pdf pdf/pakket_van_eisen.booklet.pdf pdf/competenties.booklet.pdf pdf/foc_onderzoek.booklet.pdf
|
||||
|
||||
prepare:
|
||||
mkdir -p latex pdf
|
||||
@ -95,6 +95,14 @@ latex/projectdocument.latex: converters/mdToLatex.sh converters/template.latex m
|
||||
mkdir -p build/projectdocument
|
||||
bash converters/mdToLatex.sh markdown/projectdocument.md latex/projectdocument.latex
|
||||
|
||||
latex/competenties.latex: converters/mdToLatex.sh converters/template.latex markdown/competenties.md
|
||||
mkdir -p build/competenties
|
||||
bash converters/mdToLatex.sh markdown/competenties.md latex/competenties.latex
|
||||
|
||||
latex/foc_onderzoek.latex: converters/mdToLatex.sh converters/template.latex markdown/foc_onderzoek.md
|
||||
mkdir -p build/foc_onderzoek
|
||||
bash converters/mdToLatex.sh markdown/foc_onderzoek.md latex/foc_onderzoek.latex
|
||||
|
||||
# =======================================
|
||||
# === pdf generation ====================
|
||||
# =======================================
|
||||
@ -159,6 +167,30 @@ pdf/unittest_stabilisatie.booklet.pdf: converters/bookletify.latex pdf/unittest_
|
||||
pdflatex -interaction=nonstopmode -output-directory="build/unittest_stabilisatie.booklet" "build/unittest_stabilisatie.booklet/bookletify.latex"
|
||||
mv build/unittest_stabilisatie.booklet/bookletify.pdf pdf/unittest_stabilisatie.booklet.pdf
|
||||
|
||||
pdf/competenties.pdf: latex/competenties.latex
|
||||
cd build/competenties && xelatex ../../latex/competenties.latex
|
||||
cd build/competenties && xelatex ../../latex/competenties.latex
|
||||
cd build/competenties && xelatex ../../latex/competenties.latex
|
||||
mv build/competenties/competenties.pdf pdf/competenties.pdf
|
||||
|
||||
pdf/competenties.booklet.pdf: converters/bookletify.latex pdf/competenties.pdf
|
||||
mkdir -p build/competenties.booklet
|
||||
sed -e 's|?pdf?|../../pdf/competenties.pdf|' converters/bookletify.latex >build/competenties.booklet/bookletify.latex
|
||||
pdflatex -interaction=nonstopmode -output-directory="build/competenties.booklet" "build/competenties.booklet/bookletify.latex"
|
||||
mv build/competenties.booklet/bookletify.pdf pdf/competenties.booklet.pdf
|
||||
|
||||
pdf/foc_onderzoek.pdf: latex/foc_onderzoek.latex
|
||||
cd build/foc_onderzoek && xelatex ../../latex/foc_onderzoek.latex
|
||||
cd build/foc_onderzoek && xelatex ../../latex/foc_onderzoek.latex
|
||||
cd build/foc_onderzoek && xelatex ../../latex/foc_onderzoek.latex
|
||||
mv build/foc_onderzoek/foc_onderzoek.pdf pdf/foc_onderzoek.pdf
|
||||
|
||||
pdf/foc_onderzoek.booklet.pdf: converters/bookletify.latex pdf/foc_onderzoek.pdf
|
||||
mkdir -p build/foc_onderzoek.booklet
|
||||
sed -e 's|?pdf?|../../pdf/foc_onderzoek.pdf|' converters/bookletify.latex >build/foc_onderzoek.booklet/bookletify.latex
|
||||
pdflatex -interaction=nonstopmode -output-directory="build/foc_onderzoek.booklet" "build/foc_onderzoek.booklet/bookletify.latex"
|
||||
mv build/foc_onderzoek.booklet/bookletify.pdf pdf/foc_onderzoek.booklet.pdf
|
||||
|
||||
# pdf/unittest_stuursysteem.pdf: latex/unittest_stuursysteem.latex
|
||||
# cd build/unittest_stuursysteem && xelatex ../../latex/unittest_stuursysteem.latex
|
||||
# cd build/unittest_stuursysteem && xelatex ../../latex/unittest_stuursysteem.latex
|
||||
|
||||
@ -8,7 +8,7 @@ tags: kladjes, elektro, elektro/hr, elektro/hr/pee51
|
||||
|
||||
# Competentie verantwoording
|
||||
|
||||
## Analyseren (8)
|
||||
## Analyseren
|
||||
|
||||
Aan het begin hebben we goed gekeken naar eisen die er waren voor de vorige groep. Hierna hebben we samen met de opdrachtgever gezeten om te kijken wat de verschillen zijn voor dit jaar. Op basis van deze vergadering, en de eisen van de vorige groep, had ik het eerste concept voor het PvE gemaakt. Dit Het format dat ik het had gemaakt waardeerde de Automotive mensen onder ons niet, ze vonden het niet overzichtelijk. Die moesten het in een MS Exel doen vanuit hun opleiding, maar daar waren wij van Elektrotechniek het niet mee eens. Het is lastig om onderbowing van de eisen er bij te zetten en om er een ondertekenbaar en niet-bewerkbaar bestand van de maken (een PDF). Uieidelijk heb ik mijn format aangehouden en heeft uit mijn hoofd Chris deze vertaalt naar een Exel bestand.
|
||||
|
||||
@ -16,32 +16,32 @@ Het eerste conept dat ik had gamaakt hebben we samen wat aangevult en verbeterd
|
||||
|
||||
Ook heb ik de analyse gedaan voor wat nodig is voor mijn unit, de motordriver voor de stabalisatie.
|
||||
|
||||
## Ontwerpen (8)
|
||||
## Ontwerpen
|
||||
|
||||
Het was eerst de bedoeling dat ik samen met Gryvon het ontwerp voor de motrodriver te maken, maar die is gestopt met het project voor dat er aan begonnen is. Dus ik heb het ontwerp alleen gedaan. Chirs, de enige andere van elektrotechniek, heeft niet veel ervaring van het ontwerpen van motordrivers, dus ik dacht dat het uitleggen hoe het moet meer tijd kost dan het zelf doen.
|
||||
|
||||
## Realiseren (6)
|
||||
## Realiseren
|
||||
|
||||
De motordriver heb ik gesoldeerd in het SMD lab op Accademiplein, en getest eerst op Accademiplein voor te tesen of de hardware werkt en later op het RDM met een motor aangesloten de software en intergratie te testen.
|
||||
|
||||
## Beheren (6)
|
||||
## Beheren
|
||||
|
||||
Het detailontwerp heb ik geschreven, ook heb ik een resource map gemaakt die in software gebruikt kan worden dat beschrijft wat er op welke pin is aangesloten.
|
||||
|
||||
De Software is om moment van schrijven nog niet af, hier wordt nog verder aangewerkent komende weeken. Hier wordt ook documentatie voor geschreven.
|
||||
|
||||
## Managen (6)
|
||||
## Managen
|
||||
|
||||
Eleke week hebben we op donderdag gewerkt en vergaderd op het RDM. Hier hielden we eiders voordgang uptodate, en werdt ook regelmatig samen na gedacht over de uitdagingen waar tegenaangelopen werdt.
|
||||
|
||||
## Adviseren (6)
|
||||
## Adviseren
|
||||
|
||||
Adviesen zoals wat voor accu of motor er nodig is voor de stabilisatie is gegeven in het detaiontwerp. Er komt nog een advies over hoe de test omstelling ingezet kan worden in het voertuig, dit is nog niet gegeven om dat ik hier nog acctief aan werkt en dus nog niet weet wat er exact nodig is om dit te doen.
|
||||
|
||||
## Onderzoeken (6)
|
||||
## Onderzoeken
|
||||
|
||||
ik heb onderzocht hoe de meeste kracht uit een BLDC motor gehaaldt kan worden. Dit kwam heel snel neer op hoe FOC werkt, en hoe dit het best hier geimplementeerd kan worden.
|
||||
|
||||
## professionaliseren (6)
|
||||
## professionaliseren
|
||||
|
||||
Er is elke week een presentatie gehouden voor de opdrachtgever en Automotive docenten.
|
||||
|
||||
35
markdown/foc_onderzoek.md
Normal file
@ -0,0 +1,35 @@
|
||||
---
|
||||
tags: kladjes, elektro, elektro/hr, elektro/hr/pee51
|
||||
---
|
||||
|
||||
[parent](/tPb3Up1fQEuZ86yrJSkYRQ)
|
||||
|
||||
*[BLDC]: Brushless Direct Current motor
|
||||
*[SPC]: Superlight Personal Carier
|
||||
|
||||
# Onderzoek Efficentie BLDC
|
||||
|
||||
## Inleiding
|
||||
|
||||
Voor de stabalisatie van de SPC is gekozen om dit te doen met een reactiewiel.
|
||||
Hiervoor is het nodig dat de voledige kracht geleverd kan worden vanaf stilstand.
|
||||
Dit onderzoek kijkt naar hoe dit gedaan kan worden.
|
||||
|
||||
## Onderzoeks vraag
|
||||
|
||||
hoofdvraag: Hoe kan een BLDC aangstuurd worden om het moment te maximaliseren
|
||||
vanaf stilstand.
|
||||
|
||||
### Deel vragen
|
||||
|
||||
- what control methods are there
|
||||
- touque over speed graph
|
||||
-
|
||||
|
||||
### Voor Onderzoek
|
||||
|
||||
zoek therm: "efficiency BLDC control method for low speed"
|
||||
|
||||
|
||||
|
||||
|
||||