• No results found

ire35117-sensorveiledning-kraftelekntronikk-og-mikrokontrollere---14.12.18

N/A
N/A
Protected

Academic year: 2022

Share "ire35117-sensorveiledning-kraftelekntronikk-og-mikrokontrollere---14.12.18"

Copied!
16
0
0

Laster.... (Se fulltekst nå)

Fulltekst

(1)

SENSORVEILEDNING

Emnekode:

IRE35117

Emnenavn:

Kraftelektronikk og mikrokontrollere Eksamensform:

Skriftlig – delvis digital via Inspera Dato:

14.12.2018 Faglærer(e):

Åge T Johansen (emneansvarlig) Lucian Mihet

Eventuelt:

En skriftlig rapport fra et gruppearbeid legges ved den digitale besvarelsen av

studieadministrasjonen. Prøven teller 75 %, rapporten 25 %

(2)

2

Totalt deles det ut 70 poeng på prøven. Dette utgjør 75 % av totalresultatet.

Kraftelektronikkdel prøve: 40 poeng => 40 * 75 / 70 = 42.9 % Mikrokontrollerprøve: 30 poeng => 30 * 75 / 70 = 32.1 % Prosjektrapport 25 %

Det benyttes i utgangspunktet standard poengskala med prosentgrenser:

F (< 40), E (40-50), D(50-60), C(60-70), B(80-90), A( > 90)

Det er ikke grunnlag i emnebeskrivelsen for å kreve spesifikt at mikrokontrollerdel og

kraftelektronikkdel må bestås hver for seg, men man må forholde seg til emnebeskrivelsen og læringsutbytter. Læringsutbyttene må til en viss grad være oppfylt for å kunne bestå emnet som helhet:

Kunnskap

Studenten har:

grunnleggende kunnskaper om kraftelektroniske koblinger og prinsipper

grunnleggende kunnskap om konstruksjon av digitale styresystemer basert på mikrokontroller

Ferdigheter

Studenten:

utfører beregninger på kraftelektroniske kretser med ideelle komponenter

tar hensyn til spesielle forhold ved oppbygging av kraftelektroniske kretser

kan konstruere enkle mikrokontrollerbaserte styresystemer for elektrorelaterte anvendelser

Generell kompetanse

Studenten har:

forståelse for grunnleggende forhold innen kraftelektronikk

opparbeidet kompetanse i rapportskriving

opparbeidet kompetanse i å kombinere kunnskap fra ulike disipliner

(3)

3

Oppgave 1.1

Test om studenten forstår hvordan registerkommandoer skal utføres, og studenten kan forholde seg til informasjon fra referansemanualen. Det er viktig å kunne se forskjell på 2-bits og 1-bits

kontrollfelter. Det er også viktig å kunne vise hvordan bits kan settes og resettes i et register uten å påvirke de gjenværende bits i registeret.

void GPIO_Pin_Init() {

GPIOA->MODER &= ~(3 << 2 * 5); // Clear mode bits

GPIOA->MODER |= (1 << 2 * 5); // mode = 01, digital output GPIOA->OTYPER |= (1 << 5);

GPIOA->OSPEEDR &= ~(3 << 2 * 5); // Clear speed bits GPIOA->OSPEEDR |= (2 << 2 * 5); // Fast speed

GPIOA->PUPDR &= ~(3 << 2 * 5); // Clear pull up/down bits GPIOA->PUPDR |= (1 << 2 * 5); // no pull-up, no pull-down }

(4)

4

Kjenner studenten til teorien rundt timer-oppsett og hvordan dette utføres i praksis vha. CubeMX?

Hvor mange MHz er systemklokken konfigurert til i dette tilfellet? Forklar kort.

16 MHz. Systemklokka tas fra HSI RC direkte uten PLL-modul aktivert.

Forklar kort funksjonen til prescaleren til en timer.

Prescaleren er en teller som deler klokkefrekvensen med en faktor slik at klokkingen av timeren tilpasses behovet.

Hva er størst mulige verdi for Prescaler i dette tilfellet? Forklar kort.

Ut fra figuren ser man at prescaler er en 16 bits størrelse: Maks verdi blir da 2

16

-1 = 65535 Hvor lang tid går det mellom hver gang ny verdi lastes fra AutoReload-registeret og inn i hovedregisteret til TIMER2? Forklar kort.

Timer klokken går med f =4000Hz. Dvs en klokkeperiode på 0.25mS.

ARR registeret har en verdi på 3999, altså går det 4000 klokkepulser før vi får en Update event og timeren lastes inn på nytt med verdien fra ARR-registeret. Det betyr at det går 4000

* 0.25 mS = 1 S mellom hver innlasting av ARR.

Merk at telleren teller nedover og at innlasting av ARR skjer når telleverdi er 0.

TIMER2 er her satt opp til AutoCompare på kanal 1. Kanalen er koblet mot en fysisk pinne (PA0). Hva blir frekvensen og pulsbredde-forholdet (duty-cycle) til PA0-signalet? Forklar kort.

Frekvensen blir det halve av den som er beregnet for Update events ovenfor: 0.5Hz. Duty

cycle blir 50% pga toggle funksjonen.

(5)

5

Oppgave 1.3

Fullfør interrupt-handler.

Forventer at en global variabel eller static lokal variabel settes opp i handler slik at denne variabelen kan benyttes som en teller av antall ganger handleren er kalt.

Forventer at antall interrupts mellom hver forandring av utgang beregnes riktig ut fra frekvens og DC.

Forventer deretter at utgangene settes/nullstilles fra handleren slik at kun angjeldende bit forandres.

Forventer at telleren nullstilles etter at handleren har startet 10 ganger. Man kan imidlertid også tenke seg at utgangen toggles etter hvert 5. interrupt siden DC skulle være 50%.

Registerkommandoer eller LL_kommandoer kan benyttes.

// Tid mellom hvert interrupt: 0.01s // Periodetid: 0.1s

// Interrupts per periode: 0.1 / 0.01 = 10 // 50% DC gir 5 interrupts på og 5 interrupts av

void TIM2_IRQHandler(void) {

static int counter = 0;

if(LL_TIM_IsActiveFlag_Update(TIM2)) {

LL_TIM_ClearFlag_Update(TIM2);

if (counter < 5) {

GPIOA->ODR |= (1 << 6); // set bit 6 }

else {

GPIOA->ODR &= ~(1 << 6); // reset bit 6 }

counter++;

if (counter >= 10) { counter = 0;

} } }

(6)

6

På NUCLEO-kortet som er benyttet på laboratoriet er SPI-enheten SPI2 aktivert og konfigurert. Se informasjon på venstre side av oppgaveteksten.

Gitt at systemklokken er konfigurert som forklart tidligere:

Hvor mange bytes per sekund kan man teoretisk overføre via SPI2?

Forklar svaret.

Systemklokke: 16 MHz Prescaler: 64

Klokkehastighet for SPI2: 16 MHz / 64 = 250 kHz

Bytes per sekund = Klokkehastighet / 8 bits per byte = 250 / 8 = 3125 bytes per sekund

Forklar kort hvilken funksjon de enkelte av signalene MOSI, MISO og NSS har i SPI-grensesnittet generelt.

SPI er strukturert som et master/slave system der en master kan styre en eller flere slaver. Det er alltid master som leverer klokkepuls (SCK) og slave-select-signal (SS).

MOSI: Synkrone seriedata fra master til slave – et bit per klokkepuls.

MISO: Synkrone seriedata fra slave til master – et bit per klokkepuls.

NSS er et aktivt-lav SS signal som sendes fra master til slave for å aktivere denne. I dette tilfellet er SPI2 satt opp som master som automatisk genererer NSS signal for hver bytes som sendes.

MISO er ikke listet opp i listen over benyttede signaler (pins). Hvorfor ikke?

Vi ser av figuren at SPI2 er satt opp som "Transmit Only Master". Informasjonen skal derfor bare sendes fra master til slave, og MISO blir derfor overflødig.

(7)

7

Oppgave 1.5

Mest direkte alternativ av løsning vises nedenfor. Mer elegant, ville vær å sette opp en teller som kunne leses av under funksjonens gang for å sjekke tid.

Forventer her at standard metode for å sende ut en ramme på SPI vises.

Sjekk av TXE-flagg forventes, men det vil ikke være av avgjørende betydning i dette tilfellet siden det går mange millisekunder mellom hver ramme som sendes.

void c_func() {

LL_SPI_Enable(SPI2);

while (LL_SPI_IsActiveFlag_TXE(SPI2)); // vent LL_SPI_TransmitData8(1);

LL_mDelay(100);

while (LL_SPI_IsActiveFlag_TXE(SPI2)); // vent LL_SPI_TransmitData8(8);

LL_mDelay(100);

while (LL_SPI_IsActiveFlag_TXE(SPI2)); // vent LL_SPI_TransmitData8(9);

LL_mDelay(800);

while (LL_SPI_IsActiveFlag_TXE(SPI2)); // vent LL_SPI_TransmitData8(0);

} }

(8)

8

void goStepper(unsigned int delay) // Delay in ms {

unsigned char FullStep[4] = {0x9, 0x5, 0x6, 0xA}; // MSM = PB7 while(1) {

for(int i = 0; i < 4; i++){

// Alternativ 1 start GPIOB->ODR &= ~(0xF<<4);

GPIOB->ODR |= FullStep[i] << 4;

// Alternativ 1 slutt // Alternativ 2 start switch(i) {

case 0:

LL_GPIO_SetOutputPin(GPIOB, (1 << 4) | (1 << 7));

LL_GPIO_ResetOutputPin(GPIOB,(1 << 5) | (1 << 6));

break;

case 1:

LL_GPIO_SetOutputPin(GPIOB, (1 << 4) | (1 << 6));

LL_GPIO_ResetOutputPin(GPIOB,(1 << 5) | (1 << 7));

break;

case 2:

LL_GPIO_SetOutputPin(GPIOB, (1 << 5) | (1 << 6));

LL_GPIO_ResetOutputPin(GPIOB,(1 << 4) | (1 << 7));

break;

default:

LL_GPIO_SetOutputPin(GPIOB, (1 << 5) | (1 << 7));

LL_GPIO_ResetOutputPin(GPIOB,(1 << 4) | (1 << 6));

break;

}

// Altenativ 2 slutt LL_mDelay(delay);

} } }

(9)

Power Electronics

Exercise 2:

For an ideal single-phase single-pulse controlled rectifier with resistive load:

a) Draw the converter topology and the output voltage and current, indicating also in the sketches the firing angle and the firing current pulse, which is applied to the gate terminal;

b) Assuming that we need to provide more power to the load and implicitly to use a

single-phase full bridge controlled rectifier, draw the converter topology together with

the voltage and current waveforms highlighting how the rectifier works;

(10)
(11)

c) How looks the waveforms if we replace the resistive load with a large inductive one?

(12)

d) Assuming that for the last topology we will consider the voltage source inductance

(Ls=5 mH) and knowing that Vs=100 V, f=50 Hz and Id=20 A, calculate the commutation

and firing angles and the average DC Voltage (Vd);

(13)

e) Highlight the current commutation between thyristors and the differences which occur

in the waveforms for the previous case;

(14)

f) Draw the symbols and the characteristics of the devices used;

(15)

Exercise 3: For a single-phase bidirectional switch-mode DC-DC converter (Fig. 2) with PF=1,

dedicated for improving the utility interface, the following parameters are known: Vs=220 V, P

load

=1 kW, fundamental frequency - f

1

=50 Hz, Ls=5 mH, C=2200 µF, switching frequency-fs=

5 kHz, modulation factor – ma=0.8. Assuming that the components are ideal, calculate:

Fig. 2. Single-phase full bridge bidirectional switch mode converter.

a) The voltage across the converter (V

PN

)

b) the output voltage (V

0

), knowing that the converter is controlled by Pulse Width Modulation (PWM) technique with a modulation factor ma=0.8;

c) The output ripple voltage (V

0

,

ripple

) and the load resistance (R

load

),

(16)

d)

Describe the PWM Technique to regulate/control the output voltage of the

converter.

Referanser

RELATERTE DOKUMENTER

Several mutations that cause pyridoxine-responsive epilepsy lead to accumulation of reactive compounds: α-aminoadipic semialdehyde and P6C in ALDH7A1 and MOCS2 mutations (20,

This report documents the experiences and lessons from the deployment of operational analysts to Afghanistan with the Norwegian Armed Forces, with regard to the concept, the main

Organized criminal networks operating in the fi sheries sector engage in illicit activities ranging from criminal fi shing to tax crimes, money laundering, cor- ruption,

Recommendation 1 – Efficiency/sustainability: FishNET has been implemented cost-efficiently to some extent, and therefore not all funds will be spent before the project’s

However, this guide strongly recommends that countries still undertake a full corruption risk assessment, starting with the analysis discussed in sections 2.1 (Understanding

15 In the temperate language of the UN mission in Afghanistan (UNAMA), the operations of NDS Special Forces, like those of the Khost Protection Force, “appear to be coordinated

b) Assuming that we need to provide more power to the load and implicitly to use a single-phase full bridge controlled rectifier, draw the converter topology

However, the lack of information regarding the Otta Seal, properties, design (previously the design of Otta Seals was based on empirical methods, rather than the more rational