Utkast til: Løsningsforslag til eksamen i Ingeniørfaglig yrkesutøvelse og arbeidsmetoder 18.des 2013 for oppgave 1, 2 og 3
Oppgave 1 (15%) Anta vi har en matrise: A = 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 a) Vis hva du må skrive i Matlabs arbeidsvindu for å lage matrisa A. A = [1 2 3 4; 5 6 7 8; 9 10 11 12; 13 14 15 16]; eller A = [1:4; 5:8; 9:12; 13:16]; b) Vi ønsker å hente verdien 7 i rad 2 og kolonne 3 fra A og legge inn i B. Angi hvordan du vil gjøre det: B=? B = A(2,3); c) Vi ønsker å hente kolonne 3 fra A og legge resultatet i C. Angi hvordan du vil gjøre det: C=? C = A(:,3); eller C = A(1:4,3); d) Vi ønsker å hente en delmatrise fra A og legge resultatet i D slik at vi får: D = 5 6 9 10 13 14 Angi hvordan du vil gjøre det: D=? D = A(2:4,1:2); e) Hva blir innholdet i E om vi skriver E=A(2,:)? E = 5 6 7 8 2
Oppgave 2 (15 %) Vi har gitt en function «teller» som vist under. Funksjonen er lagret med filnavn «teller.m» function [ antall ] = teller(tabell) terskel = 10; N = length(tabell); % finner lengden av tabell antall = 0; for n=1:n if tabell(n)>terskel antall = antall+1; I Matlabs kommandovindu skriver vi: >> a = [ 17 19 3 19 13 2 6 11 ]; >> k = teller(a); a) Hva er innholdet i k etter at koden er kjørt? Vi ser at koden i function «teller» leter igjennom alle tall i «tabell» og undersøker om de er større en «terskel=10». Hvis ja, økes tallet i «antall» med 1. Det er 5 tall i «tabell» som er større enn 10 og innholdet i «tabell» ut overføres til «k» i kommandovinduet. Etter koden er kjørt er derfor k = 5 b) Hvor mange elementer er det i variabelen k? k er n skalar; antall elementer i k er ett (1) 3
Vi har gitt en function «sorter» som vist under. Funksjonen er lagret med filnavn «sorter.m» function [ ut ] = sorter(tabell) terskel = 10; N = length(tabell); % finner lengden av tabell ut = []; k=0; for n=1:n if tabell(n)>terskel k = k+1; ut(k) = tabell(n); I Matlabs kommandovindu skriver vi: >> a = [ 17 19 3 19 13 2 6 11 ]; >> b = sorter(a); c) Hva er innholdet i b etter at koden er kjørt? Vi ser at koden i function «sorter» leter igjennom alle tall i «tabell» og undersøker om de er større en «terskel=10». Hvis ja, kopieres tallet over i en ny variabel «ut». Etter at koden er kjørt vil derfor alle tall større enn 10 i «tabell» være kopiert over i «ut». Innholdet i «ut» overføres til «b» i kommandovinduet. Etter koden er kjørt er derfor b = 17 19 19 13 11 d) Hvor mange elementer er det i variabelen b? Antall elementer i b er fem (5) 4
Oppgave 3 (20 %) Vi har gitt følge bilde fra et oscilloskop: a) Bruk informasjonen fra figuren og angi amplituden A i volt og periodetiden T i sek til sinussignalet som er vist. Vi leser av amplituden til 2,2 ruter (på positiv side) og følsomheten på oscilloskopet står på 100mV pr. rute. Amplituden er da A = 2,2*100mV = 220mV = 0,22V Periodetiden kan leses av til 4,2 ruter fra origo mot høyre. Tids-følsomheten på oscilloskopet står på 400us pr. rute. Periodetiden er da T = 4,2*400us = 1680us = 1,68 ms = 0,00168s b) Bruk verdiene fra a) og skriv opp et matematisk uttrykk for sinusfunksjonen som er vist. (Vi antar at fasen og middelverdien begge er lik null.) Hvis du ikke greide punkt a) kan du bruke amplitude = 0,5 og periodetid T=0,002. SVAR: x( t) = A sin(2 π t) = 0.22 sin(2 π t) = 0.22 sin(2π595 t) = 0.22 sin(3740 t) 1 1 T 0.00168 5
c) Fullfør Matlab-koden under, som skal tegne en figur helt tilsvare kurva fra et oscilloskop som er vist i figuren over. Fyll derfor inn i koden vist under, det vil si bytt ut spørsmålstegnene med kode. T=0.00168; % periodetid f=1/t; % frekvens t=-0.002:t/100:0.002; % sett inkrement slik at vi får 100 % punkter pr periode y=0.22*sin(2*pi*f*t); % uttrykket for sinusfunksjon med % matlabkode plot(t,y); grid; Vi ønsker nå en ekstra kurve med samme amplitude og frekvens tegnet inn i figuren generert i punkt c). Den nye kurven skal være forskjøvet 0.0004 sekund mot venstre og ha rød farge. d) Skriv den ekstra koden som behøves i tillegg til koden vist over i punkt c) for å få til dette. y2=0.220*sin(2*pi*f*(t+0.0004)); hold on plot(t,y2,'r'); 6