Upload
others
View
1
Download
0
Embed Size (px)
Citation preview
Høgskolen i Østfold – Avdeling for ingeniørfag
1
EKSAMENSOPPGAVE.
Emne:
Lærer:
IRE35117 / Kraftelektronikk og mikrokontrollere Lucian Mihet / 922 71 353
... / ...
Grupper: 15ELE-D + 15ELEY-D Dato: 26.02.2019 Tid: 09.00 – 13.00
Antall oppgavesider: 6 (med denne) Antall vedleggsider: 7
Sensurfrist: 19.03.2019
Hjelpemidler:
* Godkjent kalkulator.
KANDIDATEN MÅ SELV KONTROLLERE AT OPPGAVESETTET ER FULLSTENDIG
Vektingen mellom kraftelektronikkpørsmål / mikrokontrollerspørsmål og innlevert
prosjektrapport teller som under ordinær eksamen.
Oppgave 1
Prosjektrapport (innlevert elektronisk på forhånd)
Power Electronics
Exercise 2: For a single-phase full bridge diode rectifier (Fig. 1), with a constant current source as load (Id=10 A), connected to a grid with a sinusoidal voltage (Vs=230 V, f=50 Hz), having the inductance of the grid Ls=5 mH:
a)Sketch the AC Voltage, DC Voltage and AC current, indicating in the sketches the current commutation and when the diodes are conducting, for both cases (Ls=0 and Ls=5 mH);
b) Calculate the commutation angle (u), the ideal average DC Voltage (Vd0) and the average DCVoltage (Vd);
c)Highlight the differences which occur in the waveforms of the converter (sketched before)when the diodes are replaced by the thyristors and the converter is working in rectifier mode;
d) Draw the symbols and the characteristics of both devices (diode and thyristor);
Figure 1. Single-phase full bridge diode rectifier
Exercise 3: The chopper (DC-DC converter) shown in Fig. 2 was designed such as the output voltage (V0) should be kept constant at 10 V, while the input voltage (Vd) can be modified between (20-30) V and the load resistor between (5-10)Ω. Knowing that the converter is working in discontinuous conduction mode (DCM) at a switching frequency of 100 kHz:
a)Recommend the switching devices which can be used for commutation in this converter, drawing the symbols and the characteristics of them;
b) What type of converter is? Explain how works.
c) Calculate the parameters of the converter (IL, L) considering the DCM mode of operation and the loadvariation (Rload=(5-10) Ω);
d) Calculate the capacitor C of the filter considering the maximum output voltage ripple (ΔV0=0.1 V);
e) Explain the PWM control technique to regulate the output voltage of the converter
2
e) Calculate the AC and DC power of the converter
Fig. 2. DC to DC Switch Mode converter/Chopper.
3
MIKROKONTROLLEROPPGAVER
Vedlegg som viser eksempler på de fleste av LL-kommandoene som er benyttet i labbene.
Forklar utregninger/svar, gi ikke bare opp et tall.
Oppgave 4
a) Et STM32-prosjekt settes opp i STM32CubeMX. Systemklokkefrekvensen er konfigurert til
16 MHz. Timer7 er satt opp med parameterne som vist i figurene nedenfor.
Forklar kort funksjonen til Prescaler.
Med hvilken frekvens klokkes (hovedtelleren i) Timer7?
Hvor lang tid går det mellom hver gang Timer7 nullstilles automatisk?
b) Anta at vi istedenfor situasjonen i deloppgave a), ønsker et oppsett der systemklokken er
forandret til 80MHz.
Hvordan må parameterne i figuren ovenfor forandres hvis du ønsker at hovedtelleren i Timer7
skal klokkes med 1 MHz og at Timer7 skal telle 10000 klokkepulser (på hovedtelleren) før den
nullstilles?
Hvor lang tid vil det gå mellom hver gang Timer7 genererer en avbruddsforespørsel (interrupt
request)?
4
c) Studér tabellen nedenfor som angir konfigurering av GPIO:
Hvilke av pinnene på mikrokontrolleren er konfigurert til å gi avbrudd (interrupt) ved å aktivere
en bryter som vist i figuren nedenfor?
Hva betyr det at en pinne er konfigurert som "Push Pull"?
Hva betyr det at en pinne er konfigurert som "Pull-up"?
d) Main-funksjonen til et nygenerert STM32-prosjekt, der de fleste kommentarene er fjernet, er
gjengitt nedenfor. De første funksjonene som kalles, initialiserer mikrokontrolleren.
int main(void)
LL_Init();
SystemClock_Config();
MX_GPIO_Init();
MX_TIM7_Init();
/* USER CODE BEGIN WHILE */
while (1)
/* USER CODE END WHILE */
I de fleste laboppgavene er det benyttet et standardoppsett, der en funksjon (userSetup())
kalles én gang og en annen funksjon (userLoop()) kalles opp kontinuerlig fra
hovedprogrammet.
Vis hvordan kall til disse to funksjonen kan settes inn i oppsettet ovenfor?
e) Du ønsker i programmet å benytte et terminalprogram på PC-en (for eksempel Tera Term) for
å logge noen statusverdier. Du ønsker i denne sammenhengen å benyttet printf() og andre
standardfunksjoner til dette.
Forklar hva du må gjøre i programmet og i STM32CubeMX for å kunne få til dette. Du trenger
ikke skrive noen kode her, men gi en generell forklaring av hva som må til.
5
Oppgave 5
Se skissen ovenfor. Gå ut fra at en LED-blokk med 8 leds (bargraph) er tilknyttet en STM32L476-
kontroller gjennom SPI2-grensesnittet via hardware-kontroll av nSS (slave select). Gå ut fra at
passende hardware eksisterer og er riktig koblet. Likeledes forutsettes at SPI2 er riktig satt opp ved
hjelp av STM32CubeMx. De 8 LED-ene kan kontrolleres ved å overføre en 8-bits verdi via SPI2.
En analog spenningskilde som varierer mellom 0 og 3.3 V, er koblet til ADC1 kanal 1 (PC0). Forutsett
også at oppsettet av denne funksjonen er riktig satt opp ved hjelp av STM32CubeMx slik at den
konverterte verdien er en 8-bits størrelse, dvs. 3.3 V tilsvarer den avleste verdier 255.
Du skal nå skrive et program etter mønster fra laboppgavene, der funksjonene userLoop() og
userSetup() skal programmeres. Du kan se bort fra aktiveringsprosedyren for ADC1.
a) Når den analoge spenningen på ADC1-kanal1 varierer skal bargraph avspeile dette ved at
antall LEDs som til enhver tid lyser, er proporsjonal med spenningen. Den analoge spenningen
skal avleses 100 x per sekund. Programmet skal ikke benytte avbrudd.
(Hvis du ikke får til den angitte omregningen, er det nest beste å skrive binærverdien direkte til
bargraph.)
b) Gjør programmet avbruddsstyrt ved at Timer7 benyttes til å generere avbruddsforespørsler
100 x per sekund. Forutsett at Timer 7 er riktig konfigurert til dette ved hjelp av
STM32CubeMx.
Vis både hvordan du må redigere C-filen med avbruddsrutinene (stm32l4xx_it.c) og brukerfilen
(user.c) med funksjonene userSetup() og userLoop(). Du kan innføre egne funksjoner om
ønskelig.
En mal for IRQ-handleren i stm32l4xx_it.c er vist nedenfor.
void TIM7_IRQHandler(void)
...
6
Vedlegg
Hjelpemidler ved eksamen (7 sider med denne)
The list with formulas for Power Electronics
1) Power factor: )cos(
IV
P
S
PPF
2) Displacement power factor: 1cosDPF
3) Total Harmonic Current Distortion: 100%1
s
disI
I
ITHD
4) Average output voltage:
T
d dttvT
V0
)(1
5) Root-means-square (RMS) value of the voltage:
T
dttvT
V0
2 )(1
6) Active/Real power: P=1
T∙ ∫ 𝑝(𝑡)𝑑𝑡 = 𝑉 ∗ 𝐼 ∗ cos(𝜑)
𝑇
0
7) Three-phase (active or real) power: )cos(3)cos(3 IVIVP LL
Fourier analysis:
8) The average value of the output DC voltage and current (single-phase diode rectifier):
Vd0 =2
𝜋⋅ √2 ⋅ 𝑉𝑠 = 0.9 ⋅ 𝑉𝑠; 𝐼𝑑 = 𝐼𝑠(𝐿𝑠 = 0)
0
2;( 0)s d
d d
L IV V Ls
9) The fundamental RMS current component: dds III 9.022
1
10) The commutation angle: 2
cos( ) 12
s d
s
L Iu
V
11) The average value of the output DC voltage and current (three-phase diode rectifier):
0
0
3 32 1.35 ; 0.816 ;( 0)
2
3;( 0)
d LL LL d s s d
d d s d
V V V I I I I Ls
V V L I Ls
12) The fundamental RMS current component: dds III 78.061
1
13) The commutation angle: LL
ds
V
ILu
2
21)cos(
14) The average value of the output DC voltage (single-phase thyristor rectifier):
0
22 cos( ) 0.9 cos( );( 0)
20.9 cos( ) ;( 0)
2cos( ) cos( )
2
d s s
d s s d
s d
s
V V V Ls
V V L I Ls
L Iu
V
15) The RMS value of fundamental-frequency current component: dds III 9.022
1
16) The average value of the output DC voltage (three-phase thyristor rectifier):
0
32 cos( ) 1.35 cos( );
3 2 3cos( ) ;( 0)
2cos( ) cos( )
2
d LL LL
d LL s d
sd
LL
V V V
V V L I Ls
Lu I
V
17) Step-down converter:
0 0
0
2
0 0
; (1 ) (1 )2 2
(1 )8
d s d sLB
d
s
V I T V T VD I D D D
V I L L
TV D V
L C
18) Step-up converter:
20 0 00
0
0 00
1; (1 ); (1 )
1 2 2
d s sLB B
d
s s
V I T V T VI D D I D D
V I D L L
V D T I D TV
R C C
Buck-boost converter:
19)
0 0
0
20 0 00 0
1; (1 )
1 2 2
(1 ) ;2
d s d sLB
d
s s sB
V I T V T VD I D D
V D I L L
T V I D T V D TI D V
L C R C
20) Flyback converter:D
D
N
N
V
V
d 11
20
21) Forward converter: DN
N
V
V
d
1
20
22) Improved single-phase utility interface (active rectifiers with PF correction):
-DC Voltage ripple: );2sin(2
)(1
)(, tC
Idtti
Ctv
d
dc
d
rippled
-modulation factor 0/2 VVm convertera
Improved three-phase utility interface (active rectifiers with PF correction):
23) 3
( ) ; 1.63 ; cos( )s sconv LL LL d LL d
d
V IV V V V I
V
24) Switch-mode inverters: 2
;; 0
1
daA
sf
tri
control
a
VmV
f
fm
V
Vm
25) The peak amplitude of the fundamental frequency components in the single-phase inverter
output:
-sinusoidal PWM (linear modulation): 2
)( 10d
aA
VmV
-square-wave PWM: 2
4)( 10
dA
VV
26) The peak amplitude of the fundamental frequency components in the three-phase inverter
output:
-sinusoidal PWM (linear modulation): dad
aLL VmV
mV 612.022
3)( 1
-Square-wave PWM: dd
LL VV
V 78.02
4
2
3)( 1
27) DC Motor Drives:
DC Motor:
;60
2;;
nkkeTB
dt
dJIkTe
dt
diLiRv emeaLm
maTema
aaaaa
For Permanent-Magnet (PM) DC Motor the field flux is constant
EKSEMPLER PÅ AKTUELLE LL-KOMMANDOER
// Delay
LL_mDelay (100); // i ms
// GPIO funksjoner
LL_GPIO_TogglePin(GPIOA, LL_GPIO_PIN_5 | LL_GPIO_PIN_7);
LL_GPIO_ResetOutputPin(GPIOA,LL_GPIO_PIN_5 | LL_GPIO_PIN_7);
LL_GPIO_SetOutputPin(GPIOA, LL_GPIO_PIN_5 | LL_GPIO_PIN_7);
// NVIC
NVIC_SetPriority(EXTI15_10_IRQn, 0);
NVIC_EnableIRQ(EXTI15_10_IRQn);
// EXTERNAL INTERRUPTS
LL_EXTI_IsActiveFlag_0_31(LL_EXTI_LINE_7)
LL_EXTI_ClearFlag_0_31(LL_EXTI_LINE_7);
// SPI
LL_SPI_Enable(SPI2);
LL_SPI_EnableIT_TXE(SPI2);
LL_SPI_DisableIT_TXE(SPI2);
LL_SPI_TransmitData8(SPI2, data);
LL_SPI_IsActiveFlag_TXE(SPI2)
LL_SPI_IsActiveFlag_BSY(SPI2)
// TIM
LL_TIM_EnableIT_UPDATE(TIM6);
LL_TIM_EnableCounter(TIM6);
LL_TIM_IsActiveFlag_UPDATE(TIM6)
LL_TIM_ClearFlag_UPDATE(TIM6);
LL_TIM_CC_EnableChannel(TIM2, LL_TIM_CHANNEL_CH1);
LL_TIM_OC_SetCompareCH1(TIM3, 200);
LL_TIM_EnableExternalClock(TIM2);
// ADC – konvertering
LL_ADC_Enable( ADC1);
LL_ADC_REG_StartConversion(ADC1);
LL_ADC_IsActiveFlag_EOS(ADC1)
LL_ADC_REG_ReadConversionData32(ADC1);
// ADC - aktivering
LL_ADC_REG_SetDMATransfer(ADC1, LL_ADC_REG_DMA_TRANSFER_NONE);
LL_ADC_DisableDeepPowerDown(ADC1);
LL_ADC_EnableInternalRegulator(ADC1);
LL_ADC_StartCalibration(ADC1, LL_ADC_SINGLE_ENDED);
LL_ADC_IsCalibrationOnGoing(ADC1)
LL_ADC_ClearFlag_ADRDY( ADC1);
LL_ADC_IsActiveFlag_ADRDY(ADC1)
// I2C
LL_I2C_IsActiveFlag_STOP(I2C1)
LL_I2C_IsActiveFlag_TXIS(I2C1)
LL_I2C_TransmitData8(I2C1, TxBuf[tIndex++]);
LL_I2C_ClearFlag_STOP(I2C1);
LL_I2C_HandleTransfer(I2C1, SAddr, LL_I2C_ADDRSLAVE_7BIT, numBytes, LL_I2C_MODE_AUTOEND, LL_I2C_GENERATE_START_READ);
LL_I2C_IsActiveFlag_RXNE(I2C1)
LL_I2C_ReceiveData8(I2C1);
// Debug
int _write(int file, char *ptr, int len)
HAL_UART_Transmit( &huart2, (uint8_t *)ptr, len, 10);
return len;