801
latex/detailontwerp_stabilisatie.latex
Normal 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}
|
||||
183
latex/detailontwerp_stuursysteem.latex
Normal 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}
|
||||
BIN
latex/images/0623b75b-1585-421a-9329-4feba9e00ae2.png
Normal file
|
After Width: | Height: | Size: 89 KiB |
BIN
latex/images/224f3e03-21c4-4034-8905-9848007b253e.png
Normal file
|
After Width: | Height: | Size: 47 KiB |
BIN
latex/images/43a7f9a1-a3d6-4f2b-844e-be65623e1b12.png
Normal file
|
After Width: | Height: | Size: 124 KiB |
BIN
latex/images/4aa438b9-f968-4ed9-97f3-dfb934130f6d.png
Normal file
|
After Width: | Height: | Size: 35 KiB |
BIN
latex/images/506da834-573f-4c24-8b22-15e82df64301.png
Normal file
|
After Width: | Height: | Size: 22 KiB |
BIN
latex/images/6f8ac25b-16f5-41ae-b7cf-980ddfbfbfd7.png
Normal file
|
After Width: | Height: | Size: 59 KiB |
BIN
latex/images/7f783ce7-ee05-4193-844f-240cbec98bce.png
Normal file
|
After Width: | Height: | Size: 6.5 KiB |
BIN
latex/images/93b15853-82d2-48a2-9cbb-bdf3f4b0fb4b.png
Normal file
|
After Width: | Height: | Size: 59 KiB |
BIN
latex/images/958b5da9-80bc-4069-9a13-acc8a0fe6b5b.png
Normal file
|
After Width: | Height: | Size: 88 KiB |
BIN
latex/images/99a21b34-2ff8-475c-8fef-296368d93bae.png
Normal file
|
After Width: | Height: | Size: 17 KiB |
BIN
latex/images/b87f75dc-87b1-47a9-adfe-bc389c5377fb.png
Normal file
|
After Width: | Height: | Size: 30 KiB |
BIN
latex/images/c75e80d7-dcc2-454e-adb2-dc4a1925b2bf.png
Normal file
|
After Width: | Height: | Size: 44 KiB |
BIN
latex/images/c776081d-b52e-40b8-84f4-065145305f76.png
Normal file
|
After Width: | Height: | Size: 55 KiB |
BIN
latex/images/c7dcc010-3e60-4f73-a520-a128e600615a.png
Normal file
|
After Width: | Height: | Size: 43 KiB |
BIN
latex/images/d62ce8e7-705b-46da-884c-e3da26c39be9.png
Normal file
|
After Width: | Height: | Size: 53 KiB |
BIN
latex/images/e4a587e6-798b-4fed-8518-9574473bdf79.png
Normal file
|
After Width: | Height: | Size: 63 KiB |
BIN
latex/images/f2dbe830-87ac-4a88-95da-f53177a114a1.png
Normal file
|
After Width: | Height: | Size: 139 KiB |
BIN
latex/images/fcc86ab9-d051-411d-8379-9d4223c5f4a4.png
Normal file
|
After Width: | Height: | Size: 23 KiB |
1138
latex/plan_van_aanpak.latex
Normal file
2784
latex/projectdocument.latex
Normal file
168
latex/softwareontwerp_stabilisatie.latex
Normal 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}
|
||||
407
latex/unittest_stabilisatie.latex
Normal 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}
|
||||