universiteit leuvendreaden.ulyssis.org/mech/peno.pdf · 2009. 5. 16. · een inductiemotor met een...
TRANSCRIPT
-
Faculteit
Ingenieurswetenschappen
Departement
Elektrotechniek – ESAT
Master Energie KATHOLIEKEUNIVERSITEIT
LEUVEN
P&OEindverslag Kart
PFCChristophe Mestdag
Jan Noben
FOCPieter-Jan Marsboom
Ian Ooms
Wout Paeyeneers
Buck BoostKristof Vogt
Wouter Vriens
2008 – 2009
-
Inleiding Drie subgroepen werkten aan de kart, volgens drie deelproblemen die opgelost moesten worden: het actief vermogen uit de generator maximaliseren met een power factor corrector (PFC), de batterijspanning omhoog transformeren met een buck-boost converter (BB) en tenslotte de inductiemotor kunnen bedienen met het gaspedaal met behulp van een field-oriented control motorsturing (FOC). Elke subgroep maakt een regelschema in Matlab/Simulink. Het is de bedoeling deze schema’s samen te zetten en uit te voeren op de computer van de kart.
De kart De kart haalt zijn energie zowel uit de batterijen (8x12V serie) als uit een benzinegenerator van 1,6 kVA nominaal. De spanning uit de generator is 230 V 50 Hz, die uit de batterijen 96 V DC (nominaal). De invertor vraagt een DC-spanning van 325 V. De conversie van batterijspanning naar DC-busspanning wordt gedaan door een bidirectionele buckboost converter waardoor remenergie terug in de batterijen wordt gestoken. De wisselspanning uit de generator wordt gelijkgericht en opgevoerd naar de DC-busspanning. Een power factor corrector zorgt ervoor dat maximaal actief vermogen op de DC-bus kan worden gezet. Een inductiemotor met een nominaal vermogen van 4 kW drijft de kart aan. De inverter wordt aangestuurd met een FOC-schema met de stand van gas- en rempedaal als input. De kart wordt aangedreven op de achteras via een riemoverbrenging. Elektrische en thermische veiligheden (AC en DC) dienen om de bestuurder een comfortabele rit te garanderen.
-
Hoofdstuk 1
PFC
1.1 Inleiding
De Power Factor Correction (PFC) heeft als hoofddoel de stroom en spanning van een systeemin fase te brengen. Indien de stroom en spanning 90◦ verschoven zijn ten opzichte van elkaar, zalhet gemiddelde vermogen geleverd door het systeem gelijk zijn aan nul. Het hoogste gemiddeldevermogen wordt geleverd als stroom en spanning in fase zijn.
De hybride kart heeft een aantal energiebronnen en een aantal lasten. Bij de energiebronnen zijner ondermeer de generator van de verbrandingsmotor en de elektriciteitsmotor in generatormodetijdens het afremmen. Als last is er de elektriciteitsmotor in motormode. Alle overdracht vanelektriciteit naar de batterijen gebeurt op een tussencircuit op 400V gelijkspanning. PFC zorgtervoor dat elektrische energie van de verbrandingsmotor zo efficiënt mogelijk zal gebruikt worden.
Zo zal de stabiliteit van het elektrisch circuit van de kart verhoogd worden. De uitgangsspanningvan 400V DC zal stabiieler zijn en ook de totale harmonische distorsie zal beperkt blijven.
1.1.1 Topologieën
De PFC op de kart heeft als basis een Boost convertor (onderdeel 1.2). Hierbij wordt eenspanningsverhoging (230
√2V → 400V ) verwezenlijkt. Andere mogelijke topologieën zijn Buck
en Buck-Boost. De verschillende topologieën worden vergeleken in tabel 1.1, de Boost convertorkomt naar voor als de beste en eenvoudigste schakeling om te verwezenlijken op de kart.
1.1.2 Bruikbare regelschema’s
Verscheidene bruikbare regelschema’s zijn onderzocht in de literatuur en overzichtelijk weergegevenin tabel 1.2. Door de beperkingen van vaste schakelfrequentie en maximale stroomrimpel wordt
1
-
1.2. Boost
Topologie Eigenschap
BoostVout > Vinkleine filter
hoge PF correctie
BuckVout < Vingrote filter
lage PF correctie
Buck-BoostVout vrij
grote filterhoge PF correctie
Tabel 1.1: Overzicht verschillende PFC-topologieën[1]
Regelschema’s EigenschappenPeak current control constante schakelfrequentie
Average current control constante schakelfrequentie
Borderline controlvariabele schakelfrequentielelijke rimpel in de stroom
Discontinuous current pwm controlconstante schakelfrequentielelijke rimpel in de stroom
kleinere dimensionering spoel
Tabel 1.2: Overzicht verschillende mogelijke regelschema’s[2]
gekozen voor de Average current control. Dit is ook zichtbaar bij de simulaties in figuur 1.14
1.1.3 Algemeen schema
Een algemeen overzichtsschema is weergegeven in Figuur 1.1.
1.2 Boost
In Figuur 1.2 is een schematische weergave gegeven van de Boost-invertor.
1.2.1 Berekening capaciteit
De rimpel op de uitgangsspanning van een PFC op een frequentie van 100Hz is gelijk aan [3]:
rimpel = −Iload2ωC
sin(2ωt) (1.1)
Een minimale C dient bepaald te worden zodat de rimpel maximaal 5% van de uitgangsspanningis. De bekomen waarde is:
C = 397µF (1.2)
2
-
1.2. Boost
Boost
SchattingR
Spanningsregellus
Stroomregellus
FeedForward
Figuur 1.1: Overzichtsschema PFC
GATE
Figuur 1.2: Overzichtsfiguur Boost-invertor
De opgemeten waarde op de kart is 2mF , welke te groot gedimensioneerd is voor de applicatieop de kart.
1.2.2 Berekening inductantie
De inductantie kan berekend worden met duty cycle δ met onderstaande formule:
L =12
(1− δ)UoutĪL
δTs (1.3)
Dit geeft een spanningsrimpel van:
∆i =uinLδTs (1.4)
3
-
1.3. Duty Cycle
Om de stroom ĪL te bekomen is de volgende vergelijking geldig:
ĪL = ÎL|sin(ωt)| (1.5)
ÎL wordt berekend uit het maximale actieve vermogen (2kW)
Pin =ÛinÎL
2(1.6)
Hiermee is de minimale waarde voor L berekend:
L = 0.813H (1.7)
De kart maakt gebruik van 8mH (gemeten waarde).
1.2.3 Schakelverliezen
geleidingsverliezen
P = 13.5W (1.8)
schakelverliezen
P = 4.85 · 10−7W (1.9)
Dit is een heel kleine waarde, wat logisch is, aangezien dit zo goed als het ideale geval is vanschakelen op het ogenblik dat zowel de stroom als de spanning nul is.
thermische weerstand
RCS = 0.5◦C/W (1.10)
RJC = 3◦C/W (1.11)
RHA = 0.6◦C/W (1.12)
1.3 Duty Cycle
modes van operandi [2] De vergelijkingen van de boost convertor, gedurende de aan- en uitstandvan de schakelaar in continu bedrijf (CCM) zijn:
LdILdt
= Vin schakelaar aan (1.13)
LdILdt
= Vin − Vuit schakelaar uit (1.14)
4
-
1.3. Duty Cycle
DCM
CCM
Minimale waarde
VinVuit
Duty cycle
Figuur 1.3: Overzichtsfiguur bepaling duty cycle
Dit uitgemiddeld met duty cycle δ is:
LdILdt
= Vinδ + Vin − Vuit(1− δ) (1.15)
Deze vergelijking dient gelineariseerd te worden om de regeling mogelijk te maken. De variabelenworden opgesplitst in een constante term (X) en een kleine variabele ac term (x̂).
iL = IL + îL (1.16)
δ = Dccm + δ̂ (1.17)
vin = Vin + v̂in (1.18)
vuit = Vuit + v̂uit (1.19)
1.3.1 Continuous Conduction Mode
De feed forward duty cycle wordt gelijk aan om zo de disturbance termen weg te werken:
Dccm = 1−VinVuit
(1.20)
Invullen en uitwerken geeft:
Ld(IL + îL)
dt= Vuitδ + v̂uitδ (1.21)
dILdt = 0 en de 2
de orde term v̂uit kan verwaarloosd worden. Met behulp van de laplace transfor-matie wordt de overdrachtsfunctie bekomen:
îLδ
=VoutsL
(1.22)
5
-
1.4. Regelschema’s
1.3.2 Discontinuous Conduction Mode
Voor DCM kan een analoge afleiding gemaakt worden[4], dit geeft:
iLδ = 2VuitLs+ 2Vuit − VinDdcmTsVin (1.23)
Met als duty cycle van DCM:
Ddcm =√
2GeLTs
Vuit − VinVuit
(1.24)
Ge = IL(gewenst) · Vin (1.25)
1.3.3 Delta naar referentie-waarde voor gate
De gekozen functie om een blokgolf te maken is een zaagtand (tussen -1 en 1). Hiermee wordt deblokgolf bekomen om de gate van de boost aan te sturen. Dit signaal ligt tussen 0 en 1. Om ditreferentiesignaal te bekomen, dient er nog een omzetting gemaakt te worden. Bij 0% is ref = -1,bij 50% is ref = 0 en bij 100% is ref = 1. De omzetting is dus volgens volgende formule:
δ =12· (ref − 1) (1.26)
ref = 2δ − 1 (1.27)
Om de correcte δ te bekomen, wordt het minimum tussen Dccm en Ddcm genomen als waarde.
1.4 Regelschema’s
De gebruikte controllers voor beide regellussen zijn telkens PI-regelaars (zie figuur 1.4).
+
1-s
Kp
KI
Figuur 1.4: Overzichtsfiguur PI regelaar
6
-
1.4. Regelschema’s
De overdrachtsfunctie van de controller wordt gegeven door:
Gc = Kτs+ 1τs
(1.28)
De beide versterkingswaardes zijn:
KP = K (1.29)
KI =K
τ(1.30)
Geslotenloopfunctie: dit is conceptueel weergegeven in Figuur 1.5
Gc G
-
+
Figuur 1.5: Conceptuele weergave gesloten lussysteem
1.4.1 Stroomregeling
De bandbreedte voor de stroomregellus wordt gegeven door:
100Hz
-
1.4. Regelschema’s
met ωBB = 2πfBB, en 100Hz
-
1.4. Regelschema’s
+
1-s
Kp
KI
Stroomerror
Figuur 1.7: Overzicht stroomregellus
Voor de spanningsregellus is de overdrachtsfunctie gegeven door:
Y
U=
UDC
ÎL(1.38)
=UDC< IL >
· 2π
(1.39)
=RsC
R+ 1sC(1.40)
=R
sRC + 1(1.41)
De openloopfunctie is:
systeem · controller = RsRC + 1
·Kτs+ 1τs
(1.42)
⇒ τ = RC(eerste voorwaarde, dominante pool elimineren)
=KR
τs(1.43)
De geslotenloopfunctie is gegeven:
systeem · controller1 + systeem · controller =
KRτs
1 + KRτs(1.44)
=KR
τs+KR(1.45)
=1
1 + τKRs(1.46)
9
-
1.4. Regelschema’s
De tweede voorwaarde is te halen uit de bandbreedte van de spanningsregellus:
ω−3dB =KR
τ(1.47)
=K
C(1.48)
K = 2π · 10Hz · C (1.49)
Onze gekozen waardes zijn te vinden in Tabel 1.4. Voor τ in functie van R, wordt er gebruik
Parameter Waarde
fBB 10HzC 7.5mFτ 0.6KP 0.4712KI 0.7854
Tabel 1.4: Parameters PI-regelaar stroomregellus
gemaakt van een Look-Up-Table (zie 1.4.3).
+
1-s
Kp
KIx
y
Spanning
Schatting weerstand
error
Figuur 1.8: Overzicht spanningsregellus
1.4.3 Variabele weerstand
De uitgangsweerstand van de PFC is variabel, daar deze afhankelijk is van de belasting. Dezeis berekend via P = U
2
R . De bruikbare signalen zijn Uin en IL. Deze waardes dienen nogvermenigvuldigd te worden met een veronderstelde rendementsfactor η = 0.95. De variabele
10
-
1.4. Regelschema’s
weerstand is dus gegeven door:
< R >=U2
η· < Uin · IL >(1.50)
De uitgemiddelde waarde < Uin · IL > wordt bekomen door gebruik van een laagdoorlaatfiltermet cut-off frequentie (fc) gelijk aan 5Hz:
fc = 5Hz (1.51)
τ =1
2πf(1.52)
H =1
τs+ 1(overdrachtsfunctie LPF) (1.53)
Schatting
weerstand
LDF
Look Up
Table
x
y
x
I
Vin
spoel
Vuit2
Figuur 1.9: Overzicht bepaling variabele weerstand
11
-
1.5. Simulaties
1.5 Simulaties
Hieronder de bekomen resultaten van de simulaties.Er werd gesimuleerd bij nullast (figuur 1.10 & figuur 1.11), vollast (figuur 1.12, figuur 1.13 &figuur 1.14) en een stap van nullast naar vollast op t=0.15 (figuur 1.15 & figuur 1.16).
0 0.05 0.1 0.15 0.2 0.25320
330
340
350
360
370
380
390
400
410
420
tijd[s]
Uitg
angs
span
ning
[V]
Figuur 1.10: Uitgangsspanning bij nullast
1.6 Besluit
De simulaties tonen aan dat de implementatie van de PFC werkt. De spanning wordt snelgeregeld naar de gevraagde waarde (zowel stationair als bij overgang nullast naar vollast). Destroom benadert mooi een gelijkgericht sinusöıdaal patroon (figuur 1.14).
12
-
1.6. Besluit
0 0.05 0.1 0.15 0.2 0.250
10
20
30
40
50
60
tijd[s]
Str
oom
doo
r sp
oel[A
]
effectieve stroomgemiddelde stroom
Figuur 1.11: Stroom door spoel bij nullast
0 0.05 0.1 0.15 0.2 0.25320
330
340
350
360
370
380
390
400
410
tijd[s]
Uitg
angs
span
ning
[V]
Figuur 1.12: Uitgangsspanning bij vollast
13
-
1.6. Besluit
0 0.05 0.1 0.15 0.2 0.250
10
20
30
40
50
60
tijd[s]
Str
oom
doo
r sp
oel[A
]
effectieve stroomgemiddelde stroom
Figuur 1.13: Stroom door spoel bij vollast
0.15 0.152 0.154 0.156 0.158 0.16 0.162 0.164 0.166 0.168 0.170
5
10
15
tijd[s]
Str
oom
doo
r sp
oel[A
]
effectieve stroomgemiddelde stroom
Figuur 1.14: Stroom door spoel bij vollast: detail
14
-
1.6. Besluit
0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4 0.45 0.5320
330
340
350
360
370
380
390
400
410
420
tijd[s]
Uitg
angs
span
ning
[V]
Figuur 1.15: Uitgansspanning bij stap van nullast naar vollast op t=0.15
0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4 0.45 0.50
10
20
30
40
50
60
tijd[s]
Str
oom
doo
r sp
oel[A
]
effectieve stroomgemiddelde stroom
Figuur 1.16: Stroom door spoel bij stap van nullast naar vollast op t=0.15
15
-
Bibliografie
[1] J. M. Bourgeois, “Circuits for power factor correction with regards to mains filtering,”STMicroelectronics, 1999.
[2] Fairchildsemi, “Power factor correction (pfc) basics,” Application Note 42047.
[3] Mohan, “Improved single-phase utility interface,” Chapter 18.
[4] K. D. Gussemé, D. M. V. de Sype, A. P. M. V. den Bossche, en J. A. Melkebeek, “Digi-tally controlled boost power-factor-correction converters operating in both continuous anddiscontinuous conduction mode.”
16
-
2. Field Oriented Control
1. U/F REGELING
Figuur 2.1: U/f implementatie.
Vooraleer de meer complexere regeling d.m.v. FOC uit te werken, is er eerst een simpele U/f-regeling
uitgewerkt waarbij de flux constant gehouden wordt. In deze regeling wordt de verhouding van
spanning tot frequentie constant gehouden. Volgende formule is van toepassing :
U/f = Unom/fnom waarbij Unom = 230*sqrt(2/3) en fnom =50Hz omdat de motor in driehoek geschakeld is.
Uit de beschikbare 400V lijnspanning, haalt men dat de fasespanning 230V is in driehoek. Deze komt
overeen met 230/sqrt(3) in equivalente ster. Het vermenigvuldigen met de factor sqrt(2) is
noodzakelijk om de RMS-waarde te bekomen. In de implementatie wordt nog gedeeld door Udc/2
om de amplitude te normaliseren tussen 0 en 1. Door nu een gewenst toerental in te geven, wordt
de spanning aangepast om deze verhouding constant te houden. Dit levert de uiteindelijke PWM-
signalen die bestaan uit sinusvormige signalen. Deze hebben een bepaalde fase en amplitude nodig
dewelke uit de DC-bus-spanning en gewenste frequentie berekend worden. Zowel in SIMULINK als
op de motor gaf dit goede resultaten. De U/f-regeling is een simpele, robuuste regeling die wel enkel
goed werkt in een begrensd toerentalgebied. Bij hoge frequenties moet de spanning stijgen om de
verhouding constant te houden. Maar door de spanningsbegrenzing is dit niet mogelijk. Bij hogere
spanningen dan de nominale stijgt de kans op isolatiedoorslag. Dit is het gebied van veldverzwakking.
Ook bij lage frequenties is de regeling erg slecht, zeker wanneer er een last aangehangen wordt.
Onderstaande figuur toont de opgemeten PWM-signalen bij een zuivere U/f-sturing. Zowel
amplitude,phase en frequentie zijn zoals verwacht.
-
Figuur 2.2: PWM signalen bij U/f implementatie.
De SVM-signalen zijn zowel in SIMULINK als op de motor getest met behulp van de U/f-regeling. De
resultaten van de SVM signalen bij een U/f-aansturing zijn hieronder weergegeven.
Figuur 2.3: SVM bij U/f aansturing op de motor van de kart.
-
2. CLARKE EN PARK TRANSFORMATIES
In een drie-fasige machine gelden volgende vergelijkingen in een geïsoleerd neutraal punt:
�� + �� + �� = 0 (2.1)
��� + ��� + ��� = 0 (2.2)
Hieruit kan men afleiden dat men een drie-fasige AC motor volledig kan beschrijven door twee fasen.
Immers, de derde fase is te schrijven als een som van de twee andere fasen. In volgende figuur kan
men zien dat waar de drie fasen 2π/3 van elkaar verschoven waren, het nu nuttig is om de stromen
loodrecht op mekaar voor te stellen.
Figuur 2.4: Clarke transformatie.
Het vaste assenstelsel met haar assen loodrecht op elkaar noemt men het α/β-assenstelsel. Deze
transformatie is bekend als de Clarke-transformatie, en wordt beschreven door:
���� =
������23 �16
0 �12������ ������� �
(2.3)
Dit is zo geïmplementeerd in SIMULINK:
-
Figuur 2.5: Implementatie Clarke transformatie.
Indien men de α- en β-stromen plot, kan men nagaan of deze stromen wel degelijk loodrecht op
elkaar staan. Dit is inderdaad zo, � is 0 als �� maximaal of minimaal is en omgekeerd. Voor de volledigheid zijn de driefasige stromen ook geplot:
Figuur 2.6: i_alfa, i_beta en i_abc 1.
Men kan nog een stap verder gaan, en deze stromen wederom naar ander een assenstelsel
transformeren. Dit nieuwe assenstelsel, het d/q-assenstels genoemd, zal nu meedraaien met het
rotorveld. Als dusdanig zullen de stromen in steady-state nu in plaats van sinusoïdale signalen
-
constantes zijn. De bedoeling is om een flux-producerende component te verkrijgen, i_d, en een
koppelproducerende component, i_q. Dit is gekend als de Park transformatie en ziet er als volgt uit:
����� = cos γ sin γ− sin γ cos γ� ��� � (2.4)
In SIMULINK is dit als volgt geïmplementeerd:
Figuur 2.7: Implementatie Park transformatie.
Dit zijn resultaten voor i_d en i_q indien men op 0.5 seconde het gaspedaal indrukt:
Figuur 2.8: i+.
-
Figuur 2.9: i-. De reden waarom er zoveel excitaties op iq zitten, komt door de laagdoorlaatfilter in de . → 0 transformatie. Indien we niet de encoder gebruiken, maar wel ineens de 012�3 uitlezen, bekomen we al veel mooiere resultaten:
Figuur 2.10: i-zonder encoder.
-
3. BEPALING VAN DE MECHANISCHE HOEKSNELHEID
De mechanische hoeksnelheid kan bepaald worden aan de hand van de opgemeten rotorhoek.
De rotorhoek is enkel ter beschikking als een continu signaal dat blijft oplopen. Dit zou echter een
overflow tot gevolg hebben en dient dus begrensd te worden. Ook zijn we praktisch enkel iets met
discrete waarden omdat we met een sampling frequentie werken (fs=10kHz).
Elke toer dat we ronddraaien komt overeen met 2*Π radialen. Na zulk een toer kunnen we door er
(2*Π) radialen van af te trekken ervoor zorgen dat onze hoek begrensd blijft. Dit is geïmplementeerd
door gebruik te maken van een ‘quantizer’. Om de ruis op onze mechanische hoeksnelheid te
beperken is gekozen om in één toer 4*1024 samples te nemen.
De mechanische hoeksnelheid kan dan simpelweg berekend worden aan de hand van de opgemeten
hoek van de huidige en vorige sample en de tijd tussen twee samples. Dit zou theoretisch moeten
werken, maar in de praktijk bleek dat er grote discontinuïteiten optraden door te grote pieken in het
gediscretiseerde rotorhoeksignaal.
Dit probleem van te grote verschillen tussen twee hoeksnelheden is deels opgelost door een test in
te bouwen waarbij het verschil tussen de huidige en de vorige hoek vergeleken wordt met π radialen
en als dit verschil kleiner is, worden de effectieve waarden doorgegeven. Indien dit verschil groter is,
wordt de vorige hoeksnelheid genomen. Deze test kan je zien in Figuur 1.
Figuur 2.11 : Bepaling mechanische hoeksnelheid uit opgemeten rotorhoek uit de encoder
Deze test werkt enkel niet 100% omwille van de aanwezige ruis en dus is besloten de niet
weggewerkte pieken af te vlakken door gebruik te maken van een laagdoorlaatfilter. Deze
laagdoorlaatfilter is zichtbaar in Figuur 2. De tijdsconstante van deze laagdoorlaatfilter is bepaald
door het afwegen van de quantisatieruis t.o.v. de ‘lag’ op het mechanische hoeksnelheid opgemeten
in de drive. Deze effectieve mechanische hoeksnelheid kan men niet gebruiken in de praktijk omdat
deze enkel theoretisch beschikbaar is in het SIMULINK-model. Ze is echter wel nuttig gebruikt om de
-
berekende mechanische hoeksnelheid te vergelijken met wat deze theoretisch zou moeten zijn. De
beste tijdsconstante kwam overeen met een afsnijdfrequentie van 133Hz zodat de meeste pieken
afgevlakt zijn zonder teveel na te ijlen op de effectieve mechanische hoeksnelheid. De
laagdoorlaatfilter is geïmplementeerd als een PI-regelaar door te vertrekken van de
differentievergelijking. Deze is 7[9] = ;[9] + ? ∗ ;[9] – ? ∗ ;[9 − 1]. Deze vergelijking is opgesteld d.m.v. achterwaartse Euler omdat er dan enkel waarden uit het verleden nodig zijn en
omdat dit stabieler is. Om een frequentie van 133Hz in te stellen, is τ = 1/(2*Π*f) met f = 1/(75*Ts)
en
Ts = 10^(-4)s gekozen.
Figuur 2.12 : Laagdoorlaatfilter
In figuur 3 is de berekende ωmech (geel) geplot samen met de theoretische hoeksnelheid (paars). Er is
op 1 seconde een step naar 2000 rpm gevraagd. Door de rate limiters gebeurt dit op een
gemodereerde manier. De berekende ωmech volgt de theoretische ω mooi en vertonen geen van
beiden noemenswaardige overshoot.
-
Figuur 2.13 : ωmech en ωtheoretisch
De mechanische hoeksnelheid is overal gelijk aan de rotorhoeksnelheid omdat het poolpaaraantal
van de gebruikte motor gelijk is aan 1. Het verband tussen beiden is omega_mech = p *
omega_rotor.
-
4. BEPALING ROTORFLUXHOEK ADHV MAGNETISATIESTROOM
De rotorfluxhoek γ is nodig om de eerder aangehaalde Park-transformatie te kunnen uitvoeren. Deze
heeft een verband met de eerder berekende rotorhoeksnelheid.
ωrotor + ωslip = ωμ
(2.5)
Uit deze ωμ kan γ berekend worden simpelweg d.m.v. integratie. Hiervoor dient eerst ωslip bepaald te
worden. Onderstaande formule (8.19) p.199 toont het verband.
(2.6)
De magnetisatiestroom iμ en stroom iq zijn de enige onbekenden waarbij iq uit de Park-transformatie
gehaald kan worden.
De magnetisatiestroom iμ kan men berekenen a.d.h.v. onderstaande formule (8.17) op dezelfde
pagina.
(2.7)
Deze formules zijn geïmplementeerd zoals te zien in onderstaande Figuur 5 en 6.
Figuur 2.14 : Bepaling van de magnetisatiestroom
-
Figuur 2.15 : Bepaling rotorfluxhoek
In de implementatie om de uiteindelijke rotorfluxhoek γ te bepalen, wordt gewerkt met ‘unit delay’
blokjes. Deze hebben een startwaarde dewelke ingesteld moet worden. Door deze waarde niet gelijk
aan nul te nemen, wordt een deling door een erg klein (ongeveer nul) getal vermeden. Zo zullen hoge
pieken op de stromen vermeden worden. Dit kan men ook merken a.d.h.v. bovenstaande formules. iμ
zal tijdens transiënte fenomenen zoals het opstarten van de motor namelijk zeer klein worden.
-
5. ONTKOPPELING
Stroomcontrole resulteert in een niet-lineair gekoppeld systeem. Voor een aparte PI stroomregelaar
zowel in de Q als in de D richting moet het systeem ontkoppeld worden. Dit is tevens gerealiseerd in
het schema met behulp van de ontkoppeltermen ∆�� en ∆��. De ontkoppeltermen ∆�� en ∆�� beschrijven de invloed van een stroom in de andere richting, respectievelijk �� en ��. Voor de implementatie in SIMULINK verwijzen we naar figuur 2.16 en de bijhorende formules (2.8) en (2.9).
Figuur 2.16: Ontkoppeling zoals geïmplementeerd in SIMULINK.
∆�� = −CDE0F�� − DG3H
-
6. JK EN JLCONTROLE Voor een optimale controle van de stromen is het best gebruik te maken van PI-regelaars. Waarbij P
staat voor het proportioneel gedeelte; een factor met welke je de fout wil uitvergroten. I staat voor
Integrator dewelke ervoor zorgt dat de steady state error verdwijnt. Een uitbreiding van een
eenvoudige PI-regelaar bestaat erin een anti-windup systeem toe te voegen. De anti-windup zorgt
ervoor dat het integrerend deel niet overmatig groot wordt. Aangezien we hier te maken hebben
met een gekoppeld systeem en onzekere parameters, is het noodzakelijk de eenvoudige PI-regelaar
met anti-windup uit te breiden. Het uitgangsmodel wordt getoond in figuur 2.17, het
geïmplementeerde in figuur 2.18.
Figuur 2.17: Uitgangsmodel PI-regelaar met anti-windup.
Zoals getoond in figuur 1.2 wordt het integrerend deel beperkt door een maximum waarde op te
leggen aan de binnenste (integrerende) lus. Nadien wordt de uitgang nogmaals beperkt op een
maximale waarde.
Figuur 2.18: Geïmplementeerde PI-regelaar met variabele anti-windup.
-
Het integrerend deel van de PI-regelaar voor de �� stroom op de kart moet tevens beperkt worden. Hier bestaat er geen vaste maximale waarde waardoor het vooropgestelde moet gerealiseerd
worden met een variabele anti-windup. Vergelijking (2.10) verduidelijkt dit verder.
MN7O�� + ∆��P = QR�STUH − ��H (2.10)
Het maximum wordt dus zowel bepaald door de beschikbare DC spanning en een reeds gevraagde
spanning in de D richting bepaald. Het maximum is dus geen constante aangezien het mogelijk is dat
de DC-busspanning wegzakt en aangezien dat de spanning �� ook geen constante is. Dit rechtvaardigt een variabele beperking van het integrerend deel. Analoog wordt de uitgang tevens
variabel beperkt.
Bij het testen op de motor zijn de theoretisch ideale waarden van de PI-regelaar zoals bepaald in
(2.11) en (2.12) getest in de praktijk. Er is gewerkt met opgegeven waarden van weerstanden en
inductanties van de motor, dewelke zeker niet exact zullen zijn temeer omdat zij een temperatuurs-
en frequentieafhankelijkheid bezitten. Hierdoor bleek het noodzakelijk deze parameters aan te
passen om een mooie responsie voor i_d en i_q te krijgen. De theoretisch ideale waarden gaven
namelijk een drastische overshoot dewelke beperkt werd door in te boeten op de stijgtijd.
Onderstaande figuren tonen de invloed van de instelwaarden voor de PI-regelaar.
Figuur 2.19: Stapresponsie van �� In bovenstaande figuur is de linker de betere waarbij de proportionele waarde gelijk aan Kd*0.9 werd
genomen. De rechter toont een grote overshoot en instabiliteiten ten gevolge van een slechte
instelwaarde gelijk aan Kd. De figuur convergeert echter wel naar de juiste instelwaarde voor i_d. Kd
werd bepaald als theoretisch optimale. Zie (2.11) en (2.12).
-
K+ = RX τ+τZ (2.11)
τ+ = [1 − LG]HL^LX_ `LXRXa (2.12)
Voor de i_q-stroom werd dit gelijkaardig bepaald waarbij Kq = Kd en tau_q = tau_d. De instelwaarde
voor het proportioneel deel is ook gezet op Kq*0.9. Dit gaf volgend degelijk resultaat.
Figuur: 2.20: Stapresponsie van ��
-
7. SVM
Space Vector Modulation of SVM is een alternatief voor de alomgebruikte PWM techniek. De
specifieke voordelen van SVM ten opzichte van PWM is minder harmonischen en een optimaler
gebruik van de beschikbare DC-busspanning. De aspecten voor het ingebruikname van SVM zijn
uitvoerig behandeld in cursussen Vermogenelektronica en Elektrische Machines. Hieronder worden
de belangrijkste punten beschreven.
Men genereert een signaal door te schakelen tussen 8 mogelijke vectoren. Deze vectoren stellen de
mogelijke schakelpatronen voor van de driefasige invertor. De vermogenelektronica in de driefasige
invertor telt 2 keer 3 IGBTs. De 3 onderste IGBTs worden invers van de bovenste geschakeld. Dat wil
zeggen dat indien een bovenste aangeschakeld is, de overeenkomstige onderste IGBT uitgeschakeld
moet zijn. Zodoende krijgen we 2b of 8 verschillende schakelstanden. Vervolgens vergelijken we de referentiespanning met de verschillende schakelstanden. Om de referentiespanning te bekomen
schakelen we tussen de 2 dichtsbijzijnde vectoren en de 2 nulvectoren. Een grafische voorstelling van
het resultaat is weergegeven in figuur 2.3.
-
8. VELDVERZWAKKING
Om op een hoger toerental nominaal te kunnen draaien kan de flux niet meer constant gehouden
worden en moet er in het gebied van veldverzwakking gewerkt worden. In dit gebied volgt de
magnetisatiestroom een curve volgens 1/0. Dit is te merken op figuur 2.21b waar de veldverzwakking begint te spelen vanaf 2500 toeren. De implementatie in SIMULINK is te zien op
figuur 2.21b.
Figuur 2.21a: Implementatie
Figuur 2.21b: resultaten op kart
-
9. IMPLEMENTATIE PEDALEN
Naast de snelheidsregeling in het model is een koppelsturing a.d.h.v. de pedalen op de kart ook
noodzakelijk om de kart werkende te krijgen. Informatie over de pedalen komt binnen als
weerstandswaarden met een bepaalde range die als input gebruikt kunnen worden. Er is een
richtingsknop, gaspedaal en rempedaal. De koppelsturing gebeurt d.m.v. een correcte iq*-waarde
door te geven dewelke de koppelproducerende stroom is.
Richtingsknop : Deze input komt elke sample binnen. Als de waarde 0Ω is, dient er achteruit gereden
te worden terwijl als ze 100Ω is moet er vooruit gereden worden. Dit mag echter enkel gebeuren als
het toerental minder dan 50rpm is om schokken te vermijden. Om een onlogische situatie te
vermijden waarbij de richtingsknop ingedrukt blijft en er onbewust later dan plots van richting
veranderd wordt wanneer men onder de 50rpm komt, kan men enkel remmen bij indrukken van de
knop tot een richtingsverandering doorgevoerd wordt.
Gaspedaal : Deze weerstand variëert tussen 20Ω en 960Ω. Het koppel om te versnellen mag echter
niet geleverd worden als het pedaal lichtjes ingedrukt wordt om een nerveus systeem te vermijden.
Dit is geïmplementeerd met een threshold zodat het gaspedaal nu meer dan 10% ingedrukt moet
worden vooraleer er koppel geleverd wordt. Vanaf 4500rpm moet het extra koppel wel beperkt
worden zodat op 5000rpm er geen extra koppel meer geleverd wordt. Met behulp van een ‘switch’
die test in welk toerentalgebied men zich bevindt en een lineaire interpolatie tussen 4500rpm en
5000rpm voor de iq*-stroom is dit gemaakt.
Er is ook een ‘rate limiter’ gehanteerd om een te sterke stijging of daling te vermijden in iq*-stroom.
Rempedaal : Deze weerstand variëert tussen 106Ω en 860Ω. Net zoals voor het gaspedaal dient een
te lichte indrukking van het pedaal niet tot een remkoppel te leiden. Hier is dan ook een threshold
gebruikt die dezelfde relatieve grens gebruikt als bij het gaspedaal. Indien de kart bijna stilstaat, mag
er ook geen remkoppel geleverd worden. Onder 50rpm zal er dus niet elektrisch geremd worden. Het
remvermogen dient ook beperkt te worden omdat er een beperking staat op het recupereerbare
vermogen dat de batterij aankan bij het regeneratief remmen. Dit remvermogen is 1200W. Hieruit
kan men de maximale Iq_rem bepalen = 6. Door gebruik te maken van een ‘saturation’ blokje kan dit
simpelweg ingesteld worden. In het algemeen is het ook erg belangrijk dat de rem voorrang heeft op
de gas ten allen tijde. Dit is simpelweg met een ‘switch’ bekomen.
Het testen van de pedaallogica is eerst grondig uitgevoerd in SIMULINK vooraleer op de motor zelf te
kunnen testen om onveilige situaties te vermijden. Nadien werden enkel scenario’s uitgetest op de
motor. Hierna volgen enkele plots hiervan met uitleg. Een eerste conclusie alvast is dat het geheel
werkte zoals gespecifieerd werd.
-
Scenario 1 : Gaspedaal volledig indrukken
Figuur 2.22: Scenario 1 : gaspedaal volledig indrukken
In de RPM-plot merkt men de sterke stijging op van het toerental die gelimiteerd wordt door de
waarden van de Pi-regelaars voor de i_q- en i_d-stroom. Dit kan ook expliciet begrensd worden door
‘rate-limiters’ te plaatsen op gas- en rempedaal. Beiden werden getest maar in andere testen zijn de
‘rate-limiters’ weggelaten. Het maximum voor de i_q-stroom merkt men ook op en is gezet op 18. De
veldverzwakking kan men hier ook duidelijk waarnemen vanaf 2500rpm aangezien vanaf daar de i_d-
stroom begint te dalen dewelke de veldproducerende-stroom is. Een maximum van 4950 rpm is zo
bereikt.
-
Scenario 2 : Gas indrukken, gas loslaten en remmen
Figuur 2.23: Scenario 2 : gas indrukken, gas loslaten en remmen
Op de grafieken zijn het SVM en de stromen i_abc ook geplot. Men merkt op dat het gaspedaal eerst
ingedrukt wordt en gehouden wordt van 36.3s tot 37.1s. Nadien wordt het losgelaten tot 37.7s
waarna er geremd wordt tot 39s waarbij stilstand bereikt is.
De i_q-stroom is negatief tijdens het remmen zoals verwacht. De veldverzwakking in het
toerentalgebied boven de 2500rpm is ook waar te nemen. De stromen in de motor i_abc en
bijhorende SVM-signalen zijn ook geplot die hun verwachte waarden aannemen.
-
Scenario 3 : Richtingsknop-test : gas niet meer mogelijk, remmen wel
Figuur 2.24: Scenario 3 : Richtingsknop-test : gas niet meer mogelijk, remmen wel
Tijdens de test is de motor op toeren gebracht waarbij de richtingsknop ingedrukt werd. Nadien is er
gepoogd om gas bij te geven maar dit mocht geen effect geven zoals ook merkbaar aan het
toerental. Enkel het remmen mocht nadien nog functioneren wat ook zo was. Tijdens het remmen is
de i_q-stroom negatief tot wanneer er gestopt wordt met remmen, in dit geval tot op het ogenblik
van stilstand waarbij de i_q-stroom natuurlijk nul wordt.
-
Scenario 4 : Richtingsknop-test : gas ingedrukt houden, richtingsknop indrukken
Figuur 2.25: Scenario 4 : Richtingsknop-test : gas ingedrukt houden, richtingsknop indrukken
Zoals verwacht en geïmplementeerd mag het gaspedaal na indrukken van de richtingsknop geen
effect meer hebben boven de 50rpm. Vanaf 50rpm echter zal effectief van richting veranderd
worden zoals ook te zien aan het toerental en i_q-stroom. Dit is zo gespecifieerd om mogelijke
schokken te vermijden.
-
10. EXTRA: TOERENTALREGELING EN CRUISE CONTROL
Als extraatje is er een Cruise Control geïmplementeerd in het model. Op de kart is er een knopje,
verder het “Cruise Control-knopje” of CCK genoemd, aanwezig welke een impuls geeft indien men
dit indrukt. Dit signaal wordt gebruikt als trigger om aan te geven dat de cruise control mag
beginnen, of m.a.w. dat er een toerentalregeling toegepast wordt in plaats van de pedaalregeling. De
cruise control moet aan een aantal zaken voldoen:
• Indien een arbitrair toerental bereikt is door middel van het gaspedaal en de CCK ingedrukt
wordt, moet dit toerental behouden blijven als het gaspedaal losgelaten wordt.
• De cruise control moet stoppen indien het rempedaal ingedrukt wordt.
• Indien de bestuurder even meer koppel wil vragen, moet de cruise control voorrang geven
aan het gaspedaal en daarna het toerental laten zakken tot het vooropgestelde toerental.
• Indien men de CCK indrukt in cruise control mode moet de kart versnellen.
• Indien men de rode CCK indrukt in cruise control mode moet de kart vertragen.
Op het moment van schrijven zijn de laatste twee punten niet uitgetest op de kart. Het is wel
geïmplementeerd in SIMULINK.
Dit alles is als volgt geïmplementeerd: De puls wordt eerst getransformeerd naar een binair signaal: 1
als CCK ingedrukt wordt, 0 indien anders. Deze puls wordt omgezet naar een continu signaal welke
onthoudt of de puls is vrijgegeven of niet. Dit is als volgt geïmplementeerd in SIMULINK:
Figuur 2.26: Cruise Control ENABLER.
Het cruise control enable signaal wordt getriggerd op het moment dat het CCK losgelaten wordt. Dit
om te vermijden dat de kart onmiddellijk zou versnellen. In deze figuur is ook al rekening gehouden
met het remsignaal: indien het rempedaal ingedrukt wordt, wordt het “Cruise Control ENABLE”
signaal gelijk gesteld aan 0. Zolang dit signaal gelijk is aan 1, wordt de toerentalregeling toegepast.
-
Figuur 2.27: Bepaling van referentie omega.
Deze figuur laat het begin zien van de toerentalregeling. Indien de cruise control niet aangeschakeld
is, wordt de referentieomega gelijk gesteld aan de ogenblikkelijke omega. Als dusdanig komt er een
error-signaal uit dat exact gelijk is aan 0, en worden dus de PI-regelaars van de toerentalregeling niet
aangesproken. Indien daarentegen de cruise control wel gevraagd wordt, wordt de ogenblikkelijke
omega bijgehouden in een eenvoudige lus, en wordt deze de referentie-omega. Vanaf dit moment
zal er geregeld worden dat de ogenblikkelijke omega de referentie-omega zal benaderen. Voor dit
alles zorgt de eerste Switch voor in bovenstaande figuur.
De onderste 2 switchen zorgen ervoor dat het door de cruise control ingestelde omega kan
veranderd worden door het CCK in te drukken.
Indien er op het gaspedaal gedrukt geweest is in cruise-control-mode, zal er geen i_q stroom
gevraagd worden. De kart zal stilaan uitbollen totdat het werkelijk toerental bijna het
referentietoerental bereikt heeft. Vanaf dan zal het toerental geregeld worden. Een rechtvaardiging
voor dit toe te passen is de volgende: de toerentalregeling is veel te agressief, waardoor de
vertraging naar het referentietoerental veel te snel gebeurt. Dit geeft aanleiding tot een bijzonder
nerveuze regeling zoals te zien op onderstaande figuur 2.28.
-
Figuur 2.28: Aggressieve toerentalregeling (verkeerde implementatie)!
Nadat de bestuurder het gaspedaal heeft losgelaten, wordt er bijzonder snel (met een kleine
overshoot van ongeveer 40 toeren) terug geregeld naar het vooropgestelde toerental, ongeveer
1800 toeren tijdens de test. Dit gaf een mechanische stoot op de wielas die best te vermijden valt.
Beter zou zijn indien men niet terug regelt naar deze referentie-omega, maar men gewoon geen i_q
stroom vraagt tot men op een twintigtal toeren na de referentie bereikt heeft, en vanaf dan begint te
regelen. Dit is echter niet meer werkend getest op de motor wegens tijdsgebrek. Het is wel in
onderstaande figuur 2.29 getoond.
Figuur 2.29: PI controller met anti-windup
-
Het error-signaal dat verkregen wordt tijdens cruise-control wordt langs een PI-controller met anti-
windup systeem geleidt. Hieruit verkrijgt men een elektrisch koppel dat verder gebruikt wordt om
een i_q te bepalen. Dit is als volgt geïmplementeerd in SIMULINK:
Figuur 2.30: Current mapping.
Om er zeker van te zijn dat er geen koppel gevraagd wordt zonder eerst flux opgebouwd te hebben,
wordt er eerst nagegaan of de magnetisatiestroom wel een voldoende hoge waarde heeft (1A). De
uiteindelijke i_q die hieruit verkregen wordt, wordt teruggekoppeld naar het begin van deze
toerentalregeling om te bepalen of er meer koppel wordt gevraagd van de bestuurder ten opzichte
van de cruise control. De grootste van de twee i_q stromen, dus verkregen uit de of toerentalregeling
of de pedalenlogica, wordt uiteindelijk gekozen.
EXTRA: CRUISE CONTROL SIMULATIE OP KART EN IN SIMULINK
Op onderstaande figuur is de volledige cruise control te bemerken (geïmplenteerd op de kart). Hier
heeft de bestuurder van de kart volgende beslissingen gemaakt:
• Ongeveer voor 50% het gaspedaal induwen (koppelregeling)
• CCK indrukken en gaspedaal loslaten (toerentalregeling)
• Rempedaal induwen (koppelregeling)
-
Figuur.2.31. Cruise Control op de kart.
Een soortgelijk scenario is uitgevoerd in SIMULINK. De beslissingen van de bestuurder zijn ditmaal de
volgende;
• Gaspedaal indrukken tot 5 seconden
• CCK indrukken vanaf 4 seconden en loslaten op 4,3 seconden
• CCK nogmaals indrukken van seconde 6,5 tot 7,5
• CCK (rode) indrukken op seconde 8 tot 10.
Hetgeen we verwachten uit de simulaties is versnellen tot 5 seconden. Vervolgens (rustig) vertragen
tot het toerental dat bereikt werd op 4,3 seconden. Versnellen in de tijdsperiode 6,5 tot 7,5 en
vertragen in de periode van 8 tot 10 seconden. In tussentijd moet de kart op dezelfde snelheid
blijven. Het resultaat van deze simulatie is te zien in figuur 2.32.
-
Figuur.2.32: Simulatie van cruise control in SIMULINK.
Eindopmerking:
Alle gebruikte formules zijn afkomstig uit het handboek “Electrical Drives and Control Techniques”
van Gerd Terörde. Ook bedanken we de assisten en in het bijzonder Jef voor hun enthousiaste
begeleiding.
-
11. BIJLAGES:
a. MOTORPARAMETERS:
%Sampling tijden verhouding_sample_model=5; Tsa= 1/10e3; Tsim = Tsa/verhouding_sample_model; Ts=Tsa;
% motormodel kart p=1;
J=0.014; Rs = 0.5*1.75; Rr = 0.5; R_Fe = 217.2;
X_sigs = 2.1/3; X_sigr = 2.1/3; X_1h = 31.47;
X_s = X_sigs+X_1h; X_r = X_sigr+X_1h;
Ls = X_s/(2*pi*50); Lr = X_r/(2*pi*50); L1h = X_1h/(2*pi*50);
sig=1-L1h^2/(Ls*Lr); V_dc=400; %phase margin phi_r van 65° phi_r=65*pi/180;
Tel_max=12; gain_lowpass = Ts/0.01; tau_2 = Lr/Rr; tau=1/(2*pi*1/(75*Ts));
tau_eq = 1.3e-3;
tau_n = 20*tau_eq; Kn = J/sqrt(tau_n*tau_eq); tau_mu = Lr/Rr; Kmu = (tau_mu)/(2*tau_eq);
Imax = 100; tau_d = (1-L1h^2/(Lr*Ls))*(Ls/Rs); tau_q = tau_d; tau_sigma = tau_eq/(sqrt(2)*2); Kd = Rs*tau_d/tau_sigma; Kq = Kd; i_mu_nom=6.5; PSI_REF = i_mu_nom*L1h; sigma=1-(L1h^2/(Ls*Lr));
R_rem_max=860; R_rem_min=106;
-
R_gas_max=960; R_gas_min=20; R_vooruit=1000; R_achteruit=0; i_q_max=18; gas_threshold=(R_gas_max-R_gas_min)*0.1+R_gas_min; % 10% indrukken
vooraleer gas geven = i_q geven rem_threshold=(R_rem_max-R_rem_min)*0.1+R_rem_min; %10% indrukken vooraleer
remmen = negatieve i_q geven Max_remvermogen=6; Max_toerental_motor=5000; Rate_limiter_gas=18; Rate_limiter_rem=12; Max_omega=2*pi*5000/60; RPM_veldverzwakking=2500; Stap_CC=200*(2*pi*Ts/60); % x rpm per seconde versnellen of vertragen
-
b. SIMULINK OVERZICHT