PEE51_SPC_documents/markdown/projectdocument.md
2025-09-19 17:28:28 +02:00

433 lines
20 KiB
Markdown

---
tags:
- kladjes
- elektro
- elektro/hr
- elektro/hr/pee51
auther:
- name: "Finley van Reenen"
email: "0964590@hr.nl"
name_short: "e.l.f. van Reenen"
- name: "Chris Tan"
email: "0992143@hr.nl"
name_short: "c. Tan"
- name: "Tijn Snijders"
email: "1001829@hr.nl"
name_short: "t. Snijders"
- name: "Max Kappert"
email: "1030682@hr.nl"
name_short: "m. Kappert"
- name: "Thomas Braam"
email: "0989527@hr.nl"
name_short: "t. Braam"
---
[parent](/tPb3Up1fQEuZ86yrJSkYRQ)
*[PvE]: Plan van Aanpak
*[MS Exel]: Microsoft Exel
*[SPC]: Superlight Personal Carier
*[VCU]: Vehicle Control Unit
# Superlight Personal Carier (SPC)
## inhoudsopgaven
[toc]
## Inleiding
Het SPC-project is een project vanuit de opleiding Automotive. Het doel is om
een lichtgewicht, zelf stabiliserend persoonsvoertuig te ontwikkelen dat als een
testplatform kan dienden. Bij dit test platform is het doel om een kleinere
milieu vriendelijkere manier van persoonlijk transport dan een 'gewone' auto.
## Documentatie
Voor dat de elektrnotechnici de autotechnici elkaar hadden ontmoet, had Finley voorgesteld om de documentatie in [Markdown](https://commonmark.org/) te schijven. Voordelen hiervan zijn dat de opmaak beter consistent is en er gebruikt gemaakt kan worden van git om alle bewerkingen bij te houden. Alle elektrnotechnici hebben hier op voor gestemd.
De autotechnici moeten van hun opleiding in Microsoft Word en Exel werken. De gezamenlijke documenten hebben we dus hier mee gemaakt, maar dit verslag hebben we alsnog geschreven in Markdown.
### samenwerken in markdown
om makkelijk samen te werken hebben we HedgeDoc gebruikt (op [live.kladjes.nl](https://live.kladjes.nl)). Hier kunnen meerdere mensen tegelijkertijd werken in een document. Vanuit HedgeDoc wordt het gesynchroniseerd naar een git repository, om de bewerkingen bij te houden.
Om de markdown om te zetten naar PDF wordt Pandoc en TexLive gebruikt en om alles te automatiseren, zodat je zonder kennis hoe het werkt ook de PDF's kan genereen, wordt Make gebruikt.
Dit document gemaakt met dit systeem.
## Analyse
Niels Groningen - de opdracht gever - wil graag een test platform hebben. Het is
lastig harde eisen te stellen aan dit testplatform, aangezien nog niet exact
bekend is wat er getest op gaat worden. Het is de bedoeling dat er verschillen
soorten testen op gedaan kunnen worden.
Voor dit project zijn er wel duidelijke eisen nodig zodat het duidelijk is dat
we allebei hetzelfde idee hebben hoe die moet werken. Hierom is er dus
doorgevraagd en zijn een aantal richtlijnen uitgekomen.
- Het voertuig moet een redelijke actieradius hebben, zoals bijvoorbeeld
comfortabel vanaf Amsterdam naar Rotterdam kunnen rijden.
- Het moet over de snelweg kunnen in theorie, maar hoeft niet aan alle
regelgevingen te voldoen.
- Er moet actieve stabilisatie op komen.
- Beide wielen moeten gestuurd en aangedreven worden.
- Het voertuig moet zo licht mogelijk zijn, zonder te veel weg te nemen van
gebruikers vriendelijkheid voor de bestuurder.
- Het voertuig moet uiteindelijk semi-automatisch kunnen rijden.
Op basis van deze richtlijnen heeft Finley een eerste concept voor het Pakket
van Eisen opgesteld. Dit was in document vorm en dat werd niet heel erg
gewaardeerd door automotive. Die volden het erg onoverzichtelijk, zij hebben
geleerd om het in MS Exel een PvE op te stellen. Het is hier echter lastig
om de onderbouwing van de eisen in te verwerken. Na veel discussie de groep over
een tussen weg is er gekozen om Finleys versie te houden om het PvE verder te
maken. En als die af er ook een MS Exel van te maken.
Het PvE heeft ondertussen nog een paar keer besptoken binnen de goep en met de
opdracht gever om tot de definitieve versie te komen.
De definitieve versie van het Pakket van Eisen is te vinden in de bijlagen. En
in het hoofdstuk Architectuur wordden de balangrijkste eisen
## Architectuur
Het diagram in figuur \ref{doc_units} is een overzicht van de units van dit project.
![Units\label{doc_units}](https://live.kladjes.nl/uploads/50d15f05-0809-46b7-a6af-1f2e01a62452.png)
### unit: Vehicle Control Unit (VCU)
De VCU heeft alle ingangen voor de bestuurder voor het sturen, gas geven en remmen.
Voor deze unit gelden de volgende eisen van het PvA:
**REQ-C-1[MH]**: het voertuig wordt bestuurd doormiddel van een elektronisch
input, zoals een joystick, die bedienbaar is door de bestuurder.
**REQ-C-2[MH]**: er is een noodstop aanwezig.
### unit: Stuur systeem
Zodat het voertuig niet alleen rechtuit kan rijden. Er is een nouwe samenwerking
geweest tussen cd VCU en het stuursysteem, omdat de zelfde hoofd persoon de
elektronica voor bijde units is.
Voor deze unit gelden de volgende eisen van het PvA:
**REQ-W-3[SH]**: het voertuig stuurt met beide wielen.
**REQ-W-8[MH]**: het voertuig heeft een draaicirkel van 6 meter in diameter of
minder.
### unit: Stabilisatie
De stabilisatie is om het voertuig rechtop te houden bij bijvoorbeeld het
wachten bij een kruispunt of een stoplicht.
Voor deze unit gelden de volgende eisen van het PvA:
**REQ-S-1[MH]**: Het voertuig wordt actief gestabaliseerd
**REQ-S-2[SH]**: Het voertuig kan uit zichzelf weer recht komen te zitten vanaf
een roll hoek van 5 graden
### unit: Aandrijving
De aandrijving zorgt ervoor dat het voertuig zichzelf kan voortbewegen op genoeg
snelheid zodat er veilig op de weg gereden kan worden. de VCU stuurt een signaal
voor accelereren of remmen.
Voor deze unit gelden de volgende eisen van het PvA:
**REQ-A-4[MH]**: Het voertuig is ontworpen zodat de maximale snelheid 60
kilometer per uur of sneller is.
**REQ-A-5[SH]**: Het voertuig is ontworpen zodat die 150 kilometer per uur of
sneller kan rijden in ideale omstandigheden.
**REQ-A-6[SH]**: Het voertuig is ontworpen zodat die 100 kilometer actieradius
of meer kan bereiken in ideale omstandigheden.
**REQ-A-7[CH]**: Het voertuig is ontworpen zodat die 250 kilometer actieradius
of meer kan bereiken in ideale omstandigheden.
## Vehicle Control Unit (VCU) / Stuursysteem
De VCU is een belangrijk onderdeel van het systeem, hiermee kunnen we het
voertuig in een richting sturen en vooruit bewegen. De belangrijkste keuzes
hierin zijn in welke taal we willen gaan programmeren en wat voor soort
microcontroller we willen. De reden hiervoor is zodat de volgende team
makkelijker kan omgaan met de code en het systeem makkelijker kunnen uitbreiden.
Het makkelijkst is dan om met de Arduino IDE en framework verder te gaan, omdat
het een bekent en veel gedocumenteerd systeem is waar je veel over kan vinden op
internet tegenover veel andere IDE's, programmeertalen en microcontrollers.
Verder moet het ook draadloos verbinding kunnen maken met een console controller
zodat de volgende teams eventueel een andere keuze kunnen maken hoe ze willen
sturen. Daarom hebben we voor de ESP32 gekozen omdat het alles aantikt met een
gezond aantal GPIO pinnen.
### 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.
| Parameter | Waarde | Eenheid | Opmerking |
| ---------------------- | ------------- | -------- | ----------------------------------------------------------------------------------------------------------- |
| Voertuig-spanning | 12 - 14 | $V_{DC}$ | typisch voor auto-VCU's |
| Stuurspanning-demperkle | 0 - 5 | $V_{DC}$ | naloge regeling |
| PWM-signaal frequentie | 25000 - 30000 | $Hz$ | Typische range voor aansturing |
| PWM duty cycle | 10 - 90 | $\%$ | $10\%$: minimale demping, $90\%$: maximale demping^[demping voor de ophanging via de interne actuator demper] |
| Stroomverbruik klep | 0.5 - 2 | $A$ | Afhankelijk van de interne weerstand |
| Wielsnelheid | 0 - 250 | $km/h$ | Meet snelheid per wiel |
| Karrosserie-versnelling | -3 tot +3 | $g$ | Laterale en verticale versnellingen |
| Axiale potentiometer (veerweg) | 0 - 50 | $mm$ | Meet veeruitslag |
| Temperatuur werkbereik | -40 tot +85 | $^\circ C$ | Automobielstandaard |
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.
## Stabilisatie
De groepen voor ons hebben al een klein schaal model voor een reactiewiel
gemaakt en een vliegwiel opstelling, wat volledige schaal lijkt te zijn, gemaakt.
Documentatie over de vliegwiel opstelling hebben wij niet terug gevonden. Maar
wel van het kleine schaal model, de reactiewiel opstelling is pas aan het einde van het project gevonden - Voor onze opvolgers, in het Proto Lab tussen de planten en de 3D
printers is de linker kast - De reactiewiel opstelling is later gemaakt dan de vliegwiel opstelling, er was dus blijkbaar een reden geweest dat de vliegwiel opstelling niet geschikt was. De automotive engineers onder ons hebben berekent wat de beste keuze is.
Dit heeft even geduurd, ondertussen zijn de elektronische engineers onderzoek gedaan naar wat voor soort motor drivers er zijn.
Uiteindelijk kwamen de automotive engineers uit op een vliegwiel van $10kg$ met een kracht van $45Nm$ en een maximale snelheid van $1000rpm$.
### De Motor
Het is er een die gevonden is op Aliexpress, niet een heel erg betrouwbare
verkoper, maar we kunnen geen andere geschikte vinden voor een redelijke prijs.
Er is wel test data beschikbaar waar een rekenmodel mee gemaakt kan worden.
Deze motor kan de kracht net niet continu aan, maar wel voor korte duur. De
snelheid is wel iets ingeperkt ten opzichte van de berekende $1000 rpm$ dat
nodig is, deze kan maar tot $875 rpm$. Dit is de reden geweest dat we geen motor
gaan inkopen, maar een testen met een motor uit de voorraad. Deze zal
waarschijnlijk niet voldoende vermogen kunnen halen, maar we kunnen wel testen
of het concept werkt voordat er grote bedragen uitgegeven gaan worden aan een
geschikte motor.
De specificaties van de motor:
- $K_T = 0.15 Nm/A$ - motor koppel constante
- $I_{noload} = 3.52 A$ - Stroom verbruik bij geen koppel
- $K_v = 69 rpm/V$ - motor snelheidsconstante
- $V_{th} = 598 mV$ - threshold voltage
- $I_{max} = 78.5 A$ - maximaal stroom verbruik voor onze applicatie ($11.2Nm$ met 1:4 gearbox)
- $U_{max} = 64 V$ - maximaal spanning benodigd voor onze applicatie
berekeningen voor deze waardes staan in het Detailontwerp Stabilisatie in
hoofdstuk [Motor Keuze](#motor-keuze) (zie bijlagen)
> Er is helaas iets fout gegaan bij de berekeningen die eerder gedaan hebben om de
> specificaties vast te stellen. Er is per ongeluk met $25 Nm$ gerekend i.p.v.
> $45 Nm$. Dit betekent dat de motor driver is ontworpen voor $50 A$ i.p.v.
> $80A$. Dit kan opgelost worden door een motor gearbox combinatie die te vinden is
> met $50A$ maar met een hogere spanning het vermogen haalt. Er is veel ruimte
> aan spanning, dus dit zal oplosbaar moeten zijn.
### Motor Driver
#### specificaties
- De drijver moet minimaal $64 V$ aan kunnen, met voorkeur van meer dan $120 V$ [^1]
De $120V$ komt van de vorige groep die aan dit project hebben gewerkt. Dit is de
spanning van de accu die zij hadden gebruikt om dingen mee te berekenen. Er is
nog geen besluit wat deze spanning werkelijk gaat worden.
- De drijver moet minimaal $50 A$ continu kunnen leveren (wat eigenlijk $80 A$
had moeten zijn) [^1]
- Maakt gebruik van Field Oriented Control, om het volledige vermogen te kunnen
halen vanaf stilstand.
- De hoek van het voertuig moet gemeten worden.
- Er is een regel loop tussen de hoek sensor en de kracht van de motor.
- Er is een SPI-client connector waarmee verschillende instellingen ingesteld
mee kan worden, waaronder het maximaal vermogen.
[^1]: Er wordt tot $50 V$ getest, voor deze waardes wordt het ontworpen, maar niet tot het limiet getest.
Met deze specificaties is het erg lastig om een motor driver voor te vinden. Zo
lastig dat - zonder een bedrijf één te laten ontwerpen - we er geen gevonden
hebben. Hierom is gekozen om zelf een motor driver te ontwerpen.
De SPI-client is afgesproken met de andere elektrotechnische ingenieurs als
algemeen communicatie protocol nadat was besloten om een eigen motor driver te
ontwerpen.
#### Ontwerp
Het ontwerp is gemaakt door Finley, zij heeft op haar stage al een motor driver
ontworpen. Hier heeft ze heel veel geleerd over het ontwerpen van een motor
driver. Hier komt ook veel van de kennis vandaan. Deze motordriver is niet
gebaseerd op die motor driver, deze kan maar $3A$ aan, dus compleet opnieuw
beginnen is makkelijker.
##### Half-bridges
De motor is een BLDC motor de volledige naam is een permanent magneet
borstelloze 3 fase synchrone motor. Dit betekent dat er permanente magneten in
zitten, geen borstels, aangestuurd met 3 fase en synchrone draait met deze 3
fases.
De motor driver wordt gevoed van een accu, dus DC. Om deze synchrone 3 fases te
genereren zijn drie half-brdiges nodig. Een voor elke fase.
Voor de FET's voor deze Half-bridges is gekozen voor de EPC2307, Dit zijn
GaNFET's in tegenstelling to de vaker gebruikte MOSFET's. MOSFET fabrikanten
hebben een gewoonte om de maximale stroom te berekenen met perfecte koeling. Dit
is dus niet realistisch haalbaar. Om achter te komen wat wel haalbaar is is een
thermal analyses nodig, dit is grof weg gedaan voor een redelijk wat MOSFET's,
maar geen enkel was geschik om de $50A$ te schakelen. EPC (Efiction Power
Converter; de fabrikant van de EPC2307) is een van de weinige fabrikanten wel
een realistisch beeld van de maximale stroom.
Om te bevestigen is een berekening vermaakt hoeveel de FET's aan vermogen
verliezen in deze applicatie. Dit is gedaan met de volgende formule.
$$
P_{loss} = I^2R_{DS(on)} + \frac{UIt}{2} \cdot 2f_s
$$
$I$: stroom
$U$: voedingsspanning
$t$: schakeltijd
$f_s$: de schakel frequentie
$U = 120V$, $I = 50A$ (uit specificaties motor driver)
$t = 4 ns$ (berekent in simulatie)
$f_s = 50 kHz$ (frequentie is gekozen omdat die buiten menselijk gehoor licht)
$P_{loss} = 26.2 W$.
Deze formule is erg pessimistisch, deze gaat uit van $100\%$ PWM terwel de
uitgang een sinus is dus gemiddeld is het altijd $50\%$ en de schakelverliezen
worden ook overschat. Voor meer informatie over deze berekening zie bijlagen
Detailontwerp Stabilisatie hoofdstuk [Verliezen in de FET](#verliezen-in-de-fet)
> Voor meer informatie over hoe de vermogens filtering is gedaan zie bijlagen
Detailontwerp Stabilisatie hoofdstuk [Power Filtering](#power-filtering)
##### Sensoren
Er zijn drie sensoren nodig, stroom meting, positie van de motor en de hoek van
het voertuig.
###### stroom meting
De stroom meting wordt gedaan met de ACS724xLCTR-50AB. Dit is een stroom meting
IC die van $-50A$ tot $+50A$ kan meten. Deze komt tussen de motor en de uitgang
van de half-bridges. Het is ook mogelijk om aan de lage FET in de half-bridge te
meten met een shunt, maar omdat het nog niet heel duidelijk is hoe het FOC
algoritme werkt, lijkt dit een makkelijkere manier om het algoritme te
implementeren.
Er is niet gekozen voor een shunt met een versterker, omdat er $200V$ op deze
uitgang komt te staan. De versterkers die dit aankunnen zijn erg duur en de
ACS724xLCTR-50AB wordt dan een goedkopere optie.
###### Hoek van de motor
de motor hoek is nodig voor FOC. Hoe nauwkeuriger deze sensor is hoe efficiënter
FOC wordt. De AS5600 is zowel makkelijk te monteren als nauwkeurig zonder dat
die elke keer bij het opstarten hoeft gekalibreerd hoeft te worden.
> Meer informatie waarom deze keuze is gemaakt, zie de bijlagen Detailontwerp
Stabilisatie hoofdstuk Encoder
###### Hoek van het voertuig
Een MEMS Gyroscoop kan verandering in de hoek meten, deze is erg snel hierin
maar bij afwijking verliest die de nul positie. Hiervoor is een combinatie
gekozen met een MEMS-acceleratiemeter. Deze kan met de zwaartekracht meten
zolang het voertuig niet te veel beweerd.
Om het makkelijk te maken is er gekozen voor de M5Stack IMU Pro Mini. Deze is
makkelijk te monteren, omdat die al in een behuizing zit met montage gaten. Deze
sensor komt met de BMI270 van Bosch die zowel een MEMS-acceleratiemeter als
gyroscoop heeft.
> Meer informatie warom deze keuze is gemaakt, zie bijlagen Detailontwerp
Stabilisatie hoofdstuk [Hoek Sensor](#hoek-sensor)
#### Productie en Testen Hardware
De PCB en stencil zijn geproduceerd door JLCPCB en de componenten zijn geplaatst
en in de reflow oven gegaan in het SMD-lab op Accademiplein.
Na dat die uit de over kwam zijn er een aantal soleer balletjes weggehaald, twee
soldeer bruggen weg gehaald bij een van de gate driver IC's en de
microcontroller opnieuw met de hand erop geplast. De microcontroller had te veel
tin op de grondpad aan de onderkant, waardoor deze omhoog kwam en de pinnen aan
de zijkant boven de PCB zweefde onder contact.
Tot hoever er getest is werkt alles, de FET's schakelen en de PWM wordt correct
gegenereerd. Helaas heb ik geen foto's van de scope kunnen maken, ik had beide
handen vol met de probes en het lukte me niet om met mijn neus de scope te
triggeren. Ik ga maandag 23 juni iemand om hulp vragen terwijl ik verder ga
testen.
> [!todo]
> latere testen toevoegen.
#### Software
De Software is geschreven in Rust, deze keuze is gemaakt door de beschikbaarheid an FOC library's.
Er is meer te vinden over de software inclusie onderbouwing waarom keuzes zijn gemaakt in bijlagen ...
> [!todo]
> software in rust, git, software documentatie?
#### Advies
> [!todo]
> upgrade to RP2350, RTIC (wegens I2C salve support), mcu aan de andere kant van de morot conn
## Project Verloop
Aan het begin was het vooral lastig om duidelijk te maken wat de vereisten van
beide opleidingen en tot een format te komen van het Plan van Aanpak en Pakket
van eisen die voor beide opleidingen voldoet. Het is ons niet gelukt om tot een
enkel Pakket van Eisen te komen, bij Automotive moet het in een Exel bestand.
Dit is alleen lastig om te exporteren naar bestand dat geschikt is om te kunnen
ondertekenen. Daarbij is het ook lastig om er onderbouwing van de eisen bij te
zetten, dit is niet nodig voor Automotive.
We hebben uiteindelijk ons eigen Pakket van Eisen gemaakt op onze manier en deze
vertaalt naar een Exel bestand voor Automotive.
Na deze twee documenten zijn er geen conflicten geweest tussen de eisen van
Elektrotechniek en Automotive.
Een van de projectleden, Mohamed, is erg weinig komen opdagen. En heeft de drie
waarschuwingen gekregen dat volgens de samenwerkingsovereenkomst dat wij hebben
opgesteld en getekend (inc. Mohamed), waar na die uit de groep gezet kan worden.
i.p.v. dit direct te doen hebben wij als groep samen met Joris Straver een
gesprek gehad, wat er toe heeft geleden dat die de groep heeft verlaten. Rond
deze tijd had Gryvon ook aangegeven dat die de groep verliet wegen te veel
stress met andere vakken.
Vanaf school week 4.1 waren we totaal nog maar met 5 personen i.p.v. 7. Dit
heeft er tot geleid dat de aandrijving van de wielen hebben laten vallen en de
motor driver voor de stabilisatie wat is uitgelopen.
## bijlagen
![Plan van Aanpak](plan_van_aanpak.md)
![Pakket van Eisen](pakket_van_eisen.md)
![Detailonwerp Stabilisatie](detailontwerp_stabilisatie.md)
![Softwareontwerp Stabilisatie](softwareontwerp_stabilisatie.md)
![Unit Testen Stabilisatie](unittest_stabilisatie.md)