13
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)

Fig. 2. DC to DC Switch Mode converter/Chopper...Oppgave 4 . a) Et STM32-prosjekt settes opp i STM32CubeMX. Systemklokkefrekvensen er konfigurert til ... Hvor lang tid går det mellom

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Fig. 2. DC to DC Switch Mode converter/Chopper...Oppgave 4 . a) Et STM32-prosjekt settes opp i STM32CubeMX. Systemklokkefrekvensen er konfigurert til ... Hvor lang tid går det mellom

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)

Page 2: Fig. 2. DC to DC Switch Mode converter/Chopper...Oppgave 4 . a) Et STM32-prosjekt settes opp i STM32CubeMX. Systemklokkefrekvensen er konfigurert til ... Hvor lang tid går det mellom

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

Page 3: Fig. 2. DC to DC Switch Mode converter/Chopper...Oppgave 4 . a) Et STM32-prosjekt settes opp i STM32CubeMX. Systemklokkefrekvensen er konfigurert til ... Hvor lang tid går det mellom

Fig. 2. DC to DC Switch Mode converter/Chopper.

3

Page 4: Fig. 2. DC to DC Switch Mode converter/Chopper...Oppgave 4 . a) Et STM32-prosjekt settes opp i STM32CubeMX. Systemklokkefrekvensen er konfigurert til ... Hvor lang tid går det mellom

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

Page 5: Fig. 2. DC to DC Switch Mode converter/Chopper...Oppgave 4 . a) Et STM32-prosjekt settes opp i STM32CubeMX. Systemklokkefrekvensen er konfigurert til ... Hvor lang tid går det mellom

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

Page 6: Fig. 2. DC to DC Switch Mode converter/Chopper...Oppgave 4 . a) Et STM32-prosjekt settes opp i STM32CubeMX. Systemklokkefrekvensen er konfigurert til ... Hvor lang tid går det mellom

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

Page 7: Fig. 2. DC to DC Switch Mode converter/Chopper...Oppgave 4 . a) Et STM32-prosjekt settes opp i STM32CubeMX. Systemklokkefrekvensen er konfigurert til ... Hvor lang tid går det mellom

Vedlegg

Hjelpemidler ved eksamen (7 sider med denne)

Page 8: Fig. 2. DC to DC Switch Mode converter/Chopper...Oppgave 4 . a) Et STM32-prosjekt settes opp i STM32CubeMX. Systemklokkefrekvensen er konfigurert til ... Hvor lang tid går det mellom

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:

Page 9: Fig. 2. DC to DC Switch Mode converter/Chopper...Oppgave 4 . a) Et STM32-prosjekt settes opp i STM32CubeMX. Systemklokkefrekvensen er konfigurert til ... Hvor lang tid går det mellom

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

Page 10: Fig. 2. DC to DC Switch Mode converter/Chopper...Oppgave 4 . a) Et STM32-prosjekt settes opp i STM32CubeMX. Systemklokkefrekvensen er konfigurert til ... Hvor lang tid går det mellom

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

Page 11: Fig. 2. DC to DC Switch Mode converter/Chopper...Oppgave 4 . a) Et STM32-prosjekt settes opp i STM32CubeMX. Systemklokkefrekvensen er konfigurert til ... Hvor lang tid går det mellom

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

Page 12: Fig. 2. DC to DC Switch Mode converter/Chopper...Oppgave 4 . a) Et STM32-prosjekt settes opp i STM32CubeMX. Systemklokkefrekvensen er konfigurert til ... Hvor lang tid går det mellom

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)

Page 13: Fig. 2. DC to DC Switch Mode converter/Chopper...Oppgave 4 . a) Et STM32-prosjekt settes opp i STM32CubeMX. Systemklokkefrekvensen er konfigurert til ... Hvor lang tid går det mellom

// 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;