MODELLERING AV DYNAMISKA SYSTEM OCH INLUPP 1

Relevanta dokument
MODELLERING AV DYNAMISKA SYSTEM OCH INLUPP 1

Modellering av en Tankprocess

MODELLERING AV DYNAMISKA SYSTEM OCH INLUPP 2

MODELLERING AV DYNAMISKA SYSTEM OCH INLUPP 2

Modellering av en Tankprocess

Matematisk analys för ingenjörer Matlabövning 3 Numerisk lösning av differentialekvationer

Ulrik Söderström 19 Jan Signalanalys

Tentamen ssy080 Transformer, Signaler och System, D3

Kryssproblem (redovisningsuppgifter).

Modellering av Dynamiska system. - Uppgifter till övning 1 och 2 17 mars 2010

Ulrik Söderström 20 Jan Signaler & Signalanalys

SF1635, Signaler och system I

Innehνall 1 Introduktion Processbeskrivning Inloggning och uppstart

SF1635, Signaler och system I

i(t) C i(t) = dq(t) dt = C dy(t) dt y(t) + (4)

LAB 4. ORDINÄRA DIFFERENTIALEKVATIONER. 1 Inledning. 2 Eulers metod och Runge-Kuttas metod

KURSPROGRAM MODELLERING AV DYNAMISKA SYSTEM, 5hp, period 4

Tentamen ssy080 Transformer, Signaler och System, D3

REGLERTEKNIK W3 & ES3 BERÄKNINGSLABORATION 1

Fouriermetoder MVE295 - bonusuppgifter

Stabilitetsanalys och reglering av olinjära system

Signalanalys med snabb Fouriertransform

TENTAMEN Modellering av dynamiska system 5hp

Transformer och differentialekvationer (MVE100)

Tentamen i TMA 982 Linjära System och Transformer VV-salar, 27 aug 2013, kl

Kan vi beskriva ett system utan någon fysikalisk kännedom om systemet?

REGLERTEKNIK Laboration 5

PC-BERÄKNINGAR. REGLERTEKNIK Laboration 5 och inlämningsuppgift. Inlämningsdatum:... Inlämnad av labgrupp:... Gruppdeltagare:

Laboration i Fourieranalys för F2, TM2, Kf2 2011/12 Signalanalys med snabb Fouriertransform (FFT)

Projekt 3: Diskret fouriertransform

Signal- och Bildbehandling, TSBB14. Laboration 2: Sampling och rekonstruktion. DFT.

1. Vi har givet två impulssvar enligt nedan (pilen under sekvenserna indikerar den position där n=0) h 1 (n) = [ ]

Laboration 5: Regressionsanalys. 1 Förberedelseuppgifter. 2 Enkel linjär regression DATORLABORATION 5 MATEMATISK STATISTIK FÖR I, FMS 012, HT-08

Laboration 1, M0039M, VT16

Laboration 3 Sampling, samplingsteoremet och frekvensanalys

Övningar i Reglerteknik. Differentialekvationer kan lösas med de metoder som behandlades i kurserna i matematisk analys. y(0) = 2,

Formalia. Modellbygge & Simulering, TSRT62. Föreläsning 1. Varför modeller? Föreläsning 1: Modeller och modellbygge

Ordinära differentialekvationer,

Signal- och bildbehandling TSBB03

Signal- och bildbehandling TSBB03

Lösningsförslag, Tentamen, Differentialekvationer och transformer II, del 2, för CTFYS2 och CMEDT3, SF1629, den 9 juni 2011, kl.

Laboration i Fourieranalys, TMA132 Signalanalys med snabb Fouriertransform

Uppsala Universitet Matematiska Institutionen Bo Styf. Sammanfattning av föreläsningarna 11-14, 16/11-28/

AUTOMATIC CONTROL REGLERTEKNIK LINKÖPINGS UNIVERSITET. M. Enqvist TTIT62: Föreläsning 2. Här är

För startpopulationer lika med de stationära lösningarna kommer populationerna att förbli konstant.

BEGREPPSMÄSSIGA PROBLEM

Laboration: Grunderna i MATLAB

Laplacetransform, poler och nollställen

TSIU61: Reglerteknik. Matematiska modeller Laplacetransformen. Gustaf Hendeby.

Kompletterande räkneuppgifter i Spektrala Transformer Komplex analys, sampling, kvantisering, serier och filter Laura Enflo & Giampiero Salvi

Signal- och bildbehandling TSBB14

TENTAMEN I TSRT19 REGLERTEKNIK

SF1900 Sannolikhetsteori och statistik, HT 2017 Laboration 1 för CINEK2

TANA17 Matematiska beräkningar med Matlab

Ordinära differentialekvationer (ODE) 1 1

Signal- och Bildbehandling FÖRELÄSNING 4. Multiplikationsteoremet. Derivatateoremet

Transformer och differentialekvationer M3, 2010/2011 Ett par tillämpningar av Fourieranalys.

LABORATIONSHÄFTE NUMERISKA METODER GRUNDKURS 1, 2D1210 LÄSÅRET 03/04. Laboration 3 3. Torsionssvängningar i en drivaxel

Samtidig visning av alla storheter på 3-fas elnät

2 Ortogonala signaler. Fourierserier. Enkla filter.

Flerdimensionella signaler och system

Matematisk analys för ingenjörer Matlabövning 2 Numerisk ekvationslösning och integration

Spektrala Transformer

Inlämningsuppgift 4 NUM131

SIMULINK. En kort introduktion till. Polplacerad regulator sid 8 Appendix Symboler/block sid 10. Institutionen för Tillämpad Fysik och elektronik

2D1212 NumProg för P1, VT2006 PROJEKTUPPGIFT

TAIU07 Matematiska beräkningar med Matlab

Tentamen i Teknisk-Vetenskapliga Beräkningar

Liten MATLAB introduktion

Projekt Spektralanalys med hjälp av den diskreta Fouriertransformen. Marcus Björk Doktorand i Signalbehandling, Systemteknik (IT)

Välkomna till TSRT19 Reglerteknik Föreläsning 5. Sammanfattning av föreläsning 4 Frekvensanalys Bodediagram

Department of Physics Umeå University 27 augusti Matlab för Nybörjare. Charlie Pelland

Laboration 2: 1 Syfte. 2 Väntevärde och varians hos en s.v. X med fördelningen F X (x) MATEMATISK STATISTIK, AK FÖR BYGG, FMS 601, HT-08

System av ordinära differentialekvationer

ÖVNINGSTENTAMEN Modellering av dynamiska system 5hp

TENTAMEN I REGLERTEKNIK Y/D

Facit till Signal- och bildbehandling TSBB

Tentamen SF1633, Differentialekvationer I, den 23 oktober 2017 kl

Institutionen för matematik KTH. Tentamensskrivning, , kl B1210 och 5B1230 Matematik IV, för B, M, och I.

Försättsblad till skriftlig tentamen vid Linköpings universitet

Spektralanalys - konsten att hitta frekvensinnehållet i en signal

Laboration 4: Stora talens lag, Centrala gränsvärdessatsen och enkla punktskattningar

REGLERTEKNIK Laboration 3

Signal- och bildbehandling TSBB14

TENTAMEN I REGLERTEKNIK TSRT03, TSRT19

Instuderingsfrågor i Funktionsteori

Omtentamen i DV & TDV

Signal- och bildbehandling TSBB14

Tentamen i ESS 010 Signaler och System E3 V-sektionen, 16 augusti 2005, kl


Tillämpad Fysik Och Elektronik 1

1 dy. vilken kan skrivas (y + 3)(y 3) dx =1. Partialbråksuppdelning ger y y 3

TSRT91 Reglerteknik: Föreläsning 2

Kompletterande material till föreläsning 5 TSDT08 Signaler och System I. Erik G. Larsson LiU/ISY/Kommunikationssystem

Föreläsning 11. Reglerteknik AK. c Bo Wahlberg. 8 oktober Avdelningen för reglerteknik Skolan för elektro- och systemteknik

Reglerteknik AK. Tentamen 24 oktober 2016 kl 8-13

Transkript:

UPPSALA UNIVERSITET AVDELNINGEN FÖR SYSTEMTEKNIK EKL och PSA, 2002 BC, 2011. PM, 2013. MODELLERING AV DYNAMISKA SYSTEM DATORSTÖDD RÄKNEÖVNING OCH INLUPP 1 1. Introduktion till MATLAB 2. Modellering 3. Tillämpning av transformteori för signalanlys Lämpliga förberedelseuppgifter: 1. Läs igenom instruktionen noggrant. 2. Lös teoriuppgifterna. Namn Handledarens kommentarer Årskurs Inskrivningsår Utförd den Bonuspoäng Sign

Innehåll 1 Inledning 1 1.1 Tillgång till matlab-filer............................ 1 2 MATLAB och simulering av dynamiska system 1 2.1 MATLAB-exempel............................... 2 2.1.1 Att skriva program........................... 2 2.1.2 Ett tankexempel............................ 2 3 Modellering 4 3.1 Ett immunologiskt system........................... 4 A M-Files 10 B En kort repetition av fourierserier och fouriertransformen 12 B.1 Ubåtsjakten................................... 12 B.2 Fourierserier................................... 13 B.3 Fouriertransformen............................... 16 B.4 Facit....................................... 17 i

1 Inledning Att kunna skapa lätthanterliga matematiska modeller för en adekvat beskrivning av system/signaler är av största vikt inom ett flertal discipliner, tex ekonomi, beräkningsvetenskap, prognosdesign och reglerteknik. Exempel på hur detta går till kommer att behandlas i denna beräkningslaboration. Allt som oftast är det minst lika viktigt att den relevanta informationen i dessa system/signaler kan presenteras på ett för användaren lättbegripligt sätt. Kunskaper i transformteori medför att det är lättare att välja en lämplig form av signalrepresentation för en viss bearbetning eller presentation av signalen. Även detta är något som kortfattat skall belysas i denna lab. Denna inledande datorstödda övning/inlämningsuppgift har en del överlapp med metoder som används i beräkningsvetenskap och transformteori. Notera att uppgifterna förväntas ta längre tid än den schemalagda tiden (3h). För att kunna tillgodoräkna er bonuspoäng måste uppgiften inlämnas innan dead-line (information finns på hemsidan). 1.1 Tillgång till matlab-filer I PC-labbet hittas filerna som tillhör laborationen på enheten G, under G:\Program\Systemteknik\DynSyst\. Om du vill köra övningarna någon annanstans behöver du ladda ner Matlabfilerna (mfilerna ) som finns på kursens hemsida. 2 MATLAB och simulering av dynamiska system Denna del syftar till att ge en översiktlig introduktion till MATLAB och simulering av dynamiska system. Uppgiften bör vara mycket enkel för de som läser beräkningsvetenskap parallellt! Med MATLAB som bas har ett stort antal toolboxar utvecklats. Dessa toolboxar består av makrofiler som är skräddarsydda för numeriska beräkningar inom ett visst tekniskt område. Två toolboxar av speciellt intresse för modellering och analys av dynamiska system är Control System Toolbox och Signal Processing Toolbox. Där finns funktioner för stegsvarsanalys, frekvensanalys och mycket mer. För emprisk modellering (systemidentifiering) finns en toolbox med namn System identification toolbox som används bl a kursen Empirisk modellering. Några exempel på hur MATLAB kan användas för olika systemtekniska analyser visas i tabellen nedan (systemet antas finnas definierad i variabeln sys1). Vissa av funktionerna är inte relevanta i denna lab. 1

funktion förklaring sys1 = tf(num, den) Specifierar ett linjärt system med täljare (den) och nämnare (num) på överföringsfunktionsform. y = impulse(sys1,tid) Beräknar impulsvar (tid kan utelämnas, se help impulse). y = step(sys1,tid) Beräknar stegsvar. [amp, f as] = bode(sys1,frekv) [T, Y ] = ode45( F, T SP AN, Y 0) Beräknar Bodediagram. Löser differentialekvationen F (som kan vara olinjär). Se help ode45. X = fft(x) Diskret Fouriertransform av x. 2.1 MATLAB-exempel 2.1.1 Att skriva program Gå in på File-menyn och tryck på New om ny fil skall skapas, eller Open M-file för att redigera gammal fil. Skriv önskad kod och spara filen med ett filnamn som slutar på.m (t ex filnamn.m). Notera att det går att byta defaulteditor (Gå till menyn Preferences under File). Programmet kan sedan köras från matlab-prompten genom filnamn [RETURN]. 2.1.2 Ett tankexempel Det som gör MATLAB till ett så mångsidigt verktyg är möjligheten att skriva egna makron och funktioner. Detta skall här illustreras genom att visa hur man kan beräkna stegsvaret för en enkel tankprocess. Tankprocessen finns beskriven i exempel 2.5 i kurskompendiet. Enligt ekvation (2.16) i kurshäftet kan tankprocessen beskrivs mha följande olinjära differentialekvation ḣ(t) = a q in (t) 2gh(t) + (2.1) A A där h(t) är vätskehöjden i tanken, g är tyngdaccelerationen, q in är flödet in i tanken och tankens respektive utloppets areor betecknas A och a. Det första vi behöver göra är att definiera vår differentialekvationsmodell (2.1) i form av en MATLAB-funktion. Detta görs genom att spara nedanstående MATLAB kod i en fil med namnet tankmodell.m: function hdot=tankmodell(t,h,dummy,par) A=par(1); modellparametrarna finns i vektorn par a=par(2); g=par(3); qin=1; insignalen är ett steg hdot = -a/a*sqrt(2*g*h)+qin/a; diff. ekv. (2.1) 2

Efter att modellen är sparad i MATLAB-filen tankmodell.m kan modellen simuleras, vilket görs genom att skriva en ny fil, tanksim.m enligt nedanstående kod. A=15; arean av tanken a=0.2; arean av utloppet g=9.81; tyngdaccelerationen par=[a a g]; h0=0; begynnelsevärde för vattennivån Tspan = [0 1000]; anger start (0) och stopptid (1000) för simuleringen [T,H] = ode45( tankmodell,tspan,h0,[],par); löser diff.ekv.-modellen tankmodell, som finns sparad i MATLAB-funktionen tankmodell, för givna parametervärden. plot(t,h); vattennivån H plottas gentemot tiden T grid; ger ett rutnät title( Stegsvar ) diagrammets titel Filen exekveras genom att i MATLABs kommandofönster skriva tanksim. Notera att filen tankmodell måste finnas i samma katalog som tanksim. Uppgift 2.1 Vad har vattennivån h(t) för slutvärde (ges av H(end) i MATLAB)? Jämför med jämnviktspunkten (notera att q in = 1): h = q2 in 2ga 2 3

3 Modellering Målet med detta moment är att ge viss övning i modellering av verklighetstrogna problem utifrån kända fysikaliska relationer, samt bekanta sig med några av de verktyg som finns tillgängliga i MATLAB för att simulera matematiska modeller, och då speciellt differentialekvationer. 3.1 Ett immunologiskt system När en organism utsätts för angrepp av virus försöker den skydda sig genom att producera antikroppar vars uppgift är att neutralisera virus. Denna produktion stimuleras av virusangrepp. Å andra sidan kan de celler som producerar antikroppar skadas av virus. För att förstå de faktorer som avgör om organismen klarar sig eller inte kan man försöka att beskriva förloppet med matematiska modeller. I detta avsnitt skall vi betrakta några förenklade exempel på hur dessa modeller kan se ut. De variabler som kan vara av intresse är beskrivna i Tabell 1. V (t) C(t) F (t) Q(t) m(t) Antalet virus i organismen. Antalet plasmaceller som producerar antikroppar. Antalet antikroppar. Den tillväxtstimulans hos C(t) som uppstår som reaktion på virusangreppet. Tillståndet hos angripen vävnad. Här antar vi att 0 m(t) 1, där ett litet värde motsvara en god hälsa. Alltså innebär m(t) = 0 att vävnaden är helt frisk medan m(t) = 1 implicerar att vävnaden är död. Tabell 1: Beskrivning av relevanta variabler. Teoriuppgift 3.1: Betrakta ett scenario där organismen angrips av ett resistent virus, dvs organismens antikroppar är verkningslösa. Föreslå en differentialekvationsmodell för V (t) och m(t) baserat på följande fenomen: Tillväxthastigheten för virus är β 1 V (t) ( 1 α V (t) V ), där β1, α och V är positiva konstanter. De av virus orsakade skadorna gör att m(t) ökar med hastigheten β 2 V (t), där β 2 är en positiv konstant. Den naturliga återhämtningen gör att m(t) minskar med hastigheten γ 1 m(t), där γ 1 är en positiv konstant. 4

Teoriuppgift 3.2: Ange de stationära (jämvikts) punkterna för modellen ovan, dvs ge ett uttryck för V och m då V (t) = ṁ(t) = 0. Vad kan man säga om virusets tillväxthastighet då α = 0? Vad är kravet på γ 1 för att vävnaden, i stationärt tillstånd 1 med α = 1, skall vara vid liv? Svaret skall uttryckas som funktion av V och β 2. Modellen beskriven i Teoriuppgift 3.1 är implementerad i MATLAB-funktionen sys1. Studera filen sys1.m (se Appendix) och notera att denna funktion har derivatan av V (t) och m(t) placerade i en vektor xdot som utparametrar. Inparametrarna till funktionen är tiden t, en vektor X innehållande V (t) och m(t) samt en vektor par som tar alla konstanter som behövs för att definiera modellen. För att simulera systemet sys1 används MATLAB-funktionen ode45. Detta är implementerat i makrot sim1 som även plottar V (t) och m(t) som funktioner av tiden t. 1 Här avses det stationära tillståndet med V > 0 och m > 0 5

Uppgift 3.1: Studera och exekvera makrot sim1 (skriv sim1 vid MATLAB-prompten). Notera att det är det kvalitativa utseendet på graferna som är av betydelse och inte variablernas faktiska värden. Variablerna kan alltid skalas om man vill att de skall representera ett verkligt scenario. Pröva att ändra begynnelsevärdena V 0 (V0) och m0 (m0), samt några av parametrarna β 1 (beta1), β 2 (beta2), γ 1 (gamma1), α (alpha) och V (Vstar). Detta görs genom att direkt editera MATLAB-filen sim1.m. Observera även att parametern Tend bestämmer hur länge simuleringen skall pågå. Undersök om svaren ni kom fram till i Teoriuppgift 3.2 stämmer. Kommentera kort. Teoriuppgift 3.3: Låt oss nu betrakta ett något mer verklighetstroget scenario där vi även tar inverkan av antikroppar under beaktning. Tillsvidare ignorerar vi dock plasmacellernas påverkan och låter produktionen av antikroppar vara konstant (så länge organismen är vid hälsa). Bygg ut modellen i Teoriuppgift 3.1 (inkludera den differentialekvation som styr antikropparna F (t)) och modifiera övriga ekvationer enligt följande: Antalet virus som elimineras per tidsenhet av antikroppar är γ 2 F (t)v (t), där γ 2 är en positiv konstant. Antalet antikroppar som produceras per tidsenhet är f ( m(t) ), där f ( m(t) ) = { F, m(t) 0.8 0, annars och F är en positiv konstant. Detta innebär att när organismen har uppnått en viss grad av skada upphör all produktion av antikroppar. För varje virus som elimineras per tidsenhet (γ 2 F (t)v (t) enligt punkt 1) åtgår γ 3 > 0 antikroppar per tidsenhet. Antalet antikroppar per tidsenhet som blir ineffektiva på grund av åldrande är µ 1 F (t), där µ 1 är en positiv konstant. 6

Modellen beskriven i Teoriuppgift 3.3 är implementerad i MATLAB-funktionen sys2. Studera sys2.m och notera likheter samt skillnader med sys1.m. Observera speciellt hur hjälpfunktionen f(m,fstar) används. Systemet sys2 simuleras genom att exekvera funktionen sim2(µ 1,Tend) som tar två inparametrar. Parametern µ 1 är definierad i modellen medan Tend bestämmer hur lång tid modellen skall simuleras. Övriga modellparametrar är satta till konstanta värden. Uppgift 3.2: Studera och evaluera funktionen sim2 för µ 1 = 1 (simulera lång tid), 1.1 och 1.2. Förklara kvalitativt vad som händer då µ 1 ökar. Förklara speciellt vad som händer då µ 1 = 1.2. Teoriuppgift 3.4: Slutligen skall vi i vår modell ta hänsyn till att produktionen av antikroppar styrs av antalet tillgängliga plasmaceller. Bygg ut modellen i Teoriuppgift 3.3 (inkludera en differentialekvation för mängden plasmaceller C(t)) och modifiera övriga ekvationer baserat på följande punkter: 7

Antalet antikroppar som produceras av plasmaceller per tidsenhet är β 3 C(t), där β 3 är en positiv konstant. Notera att punkt två i Teoriuppgift 3.3 härmed utgår, mao F = 0. Tillväxtstimulansen Q(t) beror på m(t), F (t) och V (t) enligt Q(t) = ξ ( m(t) ) F (t)v (t), där ξ( ) är en given funktion med principiellt utseende enligt Figur 1. Antalet nybildade plasmaceller per tidsenhet är lika med tillväxtstimulansen τ tidsenheter tidigare. Antalet plasmaceller som dör per tidsenhet är µ 2 ( C(t) C ), där C är den normala nivån av sådana celler och µ 2 är en positiv konstant. e(s) e0 m(t) m* 1 Figur 1: Principiellt utseende av funktionen ξ ( m(t) ), som styr tillväxten av tillväxtstimulans Q(t). Om den angripna vävnaden m(t) är vid god hälsa har vi en god tillväxt. Efterhand som organismen skadas minskar tillväxten. I modellen avtar tillväxten linjärt då m(t) m tills m(t) = 1 Tillväxten är noll då m(t) 1. Uppgift 3.3: Er uppgift är nu att implementera den slutgiltiga modellen beskriven Teoriuppgift 3.4 ovan. Implementeringen görs lämpligen genom att döpa om (använd namnet min egen sys3) och modifiera den befintliga filen sys2. Speciellt skall min egen sys3 8

innehålla en hjälpfunktion som tar m, m och ξ 0 som inparametrar, se figur 1. Notera att du behöver särskilja på tre fall beroende på värdet av m(t). Testa din funktion genom att t ex sätta ξ 0 = 2 och m = 0.3 (som indata) och kontrollera att för m < 0.3 blir utdatat från filen ξ = 2 samt att m = 1 ger ξ = 0. Testa gärna flera värden på m och bekräfta att utdatat blir enligt figur 1. Observera att vi antar att τ = 0 vid implementeringen eftersom ode45 inte kan hantera tidsfördröjningar. Skapa även en MATLAB-fil min egen sim3(β 1,Tend) (döp om och modifiera sim2) som simulerar modellen min egen sys3 under följande antaganden: Välj följande begynnelsevärden: V 0 = 0.5, m 0 = 0, F 0 = 0 och C 0 = 1. Välj följande parametervärden: α = 1, β 2 = 1, γ 1 = 3, V = 5, γ 2 = 1, β 3 = 1, γ 3 = 0.1, µ 1 = 1, µ 2 = 1, C = C 0, ξ 0 = 2 och m = 0.3. Inparametern β 1 är definierad i modellen medan inparametern Tend bestämmer hur lång tid modellen skall simuleras. Simulera modellen för β 1 = 1, 3 och 5, och besvara följande frågor: Överlever organismen, dvs är m(t) < 1? Kommer den angripna vävnaden att bli helt frisk, dvs kommer m(t) 0? Om inte förklara intuitivt vad som händer i organismen. I vissa fall behöver man medicinering för att klara av ett virusangrepp. Förklara hur modellen kan byggas ut till att inkludera en sådan yttre påverkan. 9

A M-Files %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Funktionen sys1.m %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function xdot=sys1(t,x,dummy,par) %V and m at time t are in the vector x V=x(1);m=x(2); %The constants are organized in the vector par beta1=par(1);beta2=par(2);gamma1=par(3);vstar=par(4); alpha=par(5); %The system of differential equations Vdot = beta1*v*(1-alpha*v/vstar); mdot = beta2*v-gamma1*m; % The output derivatives should be organized in a column vector! xdot=[vdot;mdot]; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Filen sim1.m %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %Begynnelsevärden Tend=15; % Anger stopptid för simuleringen V0=.1; % Initialt värde för V m0=0; % Initialt värde för m % Definierar nödvändiga konstanter beta1=1; beta2=1; gamma1=6; Vstar=5; alpha=1; % Ordna alla initieringar i vektorer xinit=[v0 m0]; par=[beta1 beta2 gamma1 Vstar alpha]; % Simulera systemet sys1! [t,x]=ode45( sys1,[0 Tend],xinit,[],par); %Plotta resultatet % X=[V(0) V(1) V(2)... % m(0) m(1) m(2)...]^t figure(1) clf ax=axes; set(ax, FontSize,18); plot(t,x) legend( V(t), m(t),0) hold on 10

plot(t,ones(length(t),1), :k ) title( Simulering av systemet sys1 ) xlabel( t [dagar] ) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 11

B En kort repetition av fourierserier och fouriertransformen Syftet med följande avsnitt är att ge en kortfattad repetition av fouriermetoder, samt att visa att spektralanalys kan vara ett viktigt redskap vid signalanalys. Detta avsnitt ingår INTE i inlämningsuppgiften. Svar till uppgifterna finns i slutet av detta avsnitt. B.1 Ubåtsjakten Efter ett flertal observationer har spekulationerna om huruvida det återigen patrullerar utländska ubåtar i Stockholms skärgård tagit ny fart. Er uppgift är att ta reda på huruvida det ligger någon sanning eller ej i dessa påståenden. Till ert förfogande har ni en primitiv inspelning av eventuella ubåtsljud samt en förteckning över propellerljud från misstänkta länders ubåtar, se Figur 2. Kvalitén av den inspelade ljudsekvensen y(t) är tyvärr ganska dålig, vilket matematiskt kan antas beskrivas genom följande samband y(t) = x(t) + e(t) (B.1) där x(t) är signalen av intresse och e(t) är en störningssignal som här antas vara vit och oberoende av x(t). Att störningen e(t) är vit innebär att dess amplitudspektrum är approximativt konstant över alla frekvenser. Med andra ord gäller Y (ω) X(ω) + konstant (B.2) där Y (ω) och X(ω) är amplitudspektrum för y(t) respektive x(t). Land Estland Åland Lettland Ryssland Norge Säl Propellerljud (Approximativt) sinus, 50Hz + sinus, 200Hz fyrkant, 50Hz + sinus, 200Hz sinus, 50Hz + fyrkant, 100Hz fyrkant, 50Hz + fyrkant, 200Hz årtag, 0.03Hz sinus, 600Hz Figur 2: Förteckning över propellerljud. Den inspelade signalen y, som finns sparad i filen signal1.mat erhålls i MATLAB genom kommandot load (för detaljer se filen analys1.m). Uppgift B.1: Ta reda på om det finns någon ubåt vid observationsplatsen och om så är fallet bestäm även dess nationalitet. Ni har friheten att lösa uppgiften hur ni vill; följande tillvägagångssätt rekommenderas dock. 1. Ladda in signalen y och visualisera den i tidsdomänen. Detta görs mha MATLAB makrot analys1 (studera gärna m-filen). Kan du dra några slutsatser utifrån en analys i tidsdomänen? 12

2. Bestäm amplitudspektrum av signalen y och försök att besvara frågorna utifrån en analys av detta. Detta görs lämpligen genom att jämföra det erhållna spektrumet med de amplitudspektra som ni förväntar er att de olika propellerljuden uppvisar. Amplitudspektrum av y beräknas mha funktionen analys2(y). Ni behöver inte förstå hur analys2 går till väga för att beräkna amplitudspektrumet. Notera dock att amplitudspektrum är givet som funktion av frekvensen f [Hz]. Beskriv hur ni löste uppgiften. B.2 Fourierserier Låt oss börja med att rekapitulera delar av teorin om Fourierserier. Antag att f(t) är en T -periodisk, begränsad och styckvis deriverbar signal. Då gäller att f(t) kan skrivas som f(t) = A 0 2 + n=1 ( ) A n cos(nω 0 t) + B n sin(nω 0 t), ω 0 = 2π T där Fourierkoefficienterna A n (n 0) och B n (n 1) ges av formlerna (B.3) A n = 2 T p+t p f(t) cos(nω 0 t) dt, B n = 2 T p+t p f(t) sin(nω 0 t) dt Notera att vanligtvis väljes p = 0 eller p = T/2. Teoriuppgift B.1: En jämn periodisk funktion f(t) = f( t) ger bara upphov till cosinustermer i Fourierserien, dvs B n = 0. Visa detta. 13

1 x(t) 2 1 1 2 1 2 t [s] Figur 3: Funktionen x(t) plottad i tidsdomänen. Notera att x(t) är definierad för < t <. Teoriuppgift B.2: En annan regel säger att om en T -periodisk funktion f(t) är sk halvvågssymmetrisk f(t) = f(t + T/2) så kommer inga termer i fourierserien att uppträda för jämna värden på n. Använd denna regel samt resultatet i Teoriuppgift B.1 för att ange vilken av Fourierserierna nedan som svarar mot signalen x(t) enligt Figur 3. Motivera! a) x(t) = 1 π 2 [ sin(2πt) + 1 3 2 sin(6πt) + 1 5 2 sin(10πt) + ] b) x(t) = 4π + 8 [ π 2 c) x(t) = 1 π 2 [ cos(2πt) + ( cos(2πt) + 1 3 + 1 ) 3 ( 2 1 3 + 1 ) 3 2 cos(3πt) + ( 1 cos(6πt) + 5 + 1 ) 5 2 d) x(t) = 20 π 2 [ cos(2πt) + 1 2 cos(4πt) + 1 3 cos(6πt) + ] ( 1 5 + 1 5 2 ) cos(5πt) + ] cos(10πt) + ] 14

Teoriuppgift B.3: Hur ser Fourierserien ut för en T -periodisk och symmetrisk fyrkantvåg x(t), se Figur 4? x(t) A T/2 T/2 t [s] A Figur 4: En T -periodisk och symmetrisk Fyrkantvåg x(t), < t <. 15

Uppgift B.2: MATLAB funktionen fyrkantserie(n) syntetiserar fyrkantvågen given i Figur 4 (A = 1 och T = 2π) mha en trunkerad Fourierserie (n termer). Evaluera funktionen för några olika värden på n och observera hur serien ändras. Vad händer då n är litet respektive stort? B.3 Fouriertransformen Fouriertransformen är av central betydelse inom tex signalbehandling och man har i många sammanhang stor nytta av att kunna använda och tolka denna transform. Låt oss därför kortfattat återge några grundläggande resultat för Fouriertransformen. Som vi har sett under kursens gång kan de flesta periodiska funktioner skrivas som en Fourierserie. Tyvärr är de flesta signaler i verkligheten icke-periodiska (nästan alla ändliga signaler är icke-periodiska). För att lösa denna situation använder man ofta Fouriertransformen som är definierad även för icke-periodiska signaler. Fouriertransformen (egentligen kvadraten av beloppet av Fouriertransformen) visar hur energin i signalen är 16

fördelad över frekvensområdet, något som är mycket tilltalande för en ingenjör. Beloppet av Fouriertransformen kallas ofta för amplituden och grafen av denna kallas därför amplitudspektrum. Det kan visas att en periodisk funktion med en Fourierserie enligt (B.3) som betraktas en ändlig tid, a t a, har följande Fouriertransform F (ω) = A 0 T + ( (A n ga (ω, nω 0 ) + g a (ω, nω 0 ) ) ( + ib n ga (ω, nω 0 ) + g a (ω, nω 0 ) )) där n=1 g a (ω, ω 0 ) = sin ( (ω + ω 0 )a ) ω + ω 0 (B.4) Funktionen g a (ω, ω 0 ) har sina värden koncentrerade runt frekvensen ω 0 ; ju större värde på a desto tydligare är denna koncentrering. Slutsatsen är att en periodisk funktion f(t) som observeras tillräckligt länge kommer att uppvisa ett amplitudspektrum F (ω) som påminner om motsvarande spektrum för Fourierserien av signalen ( A 2 n + B 2 n som funktion av ω); de olika plottarna kommer att ha sina toppar på samma ställen. Uppgift B.3: MATLAB-funktionen Fourierex(a) beräknar Fouriertransformen för funktionen f(t) = cos(2t), a t a Kör funktionen för några olika värden på a och observera hur transformen ändras med a. B.4 Facit Uppgift B.1: MAKROT analys2(y) ger ett amplitudspektrum med tydliga toppar för frekvenserna f = 50, 100, 300, 500. Om detta jämförs med de förväntade topparna av amplitudspektra för propellerljuden, se Figur 5, kan vi enligt uteslutningsmetoden säga att ubåten är Lettisk! Vi har (se Figur 6) en sinus med frekvens f = 50 och en fyrkantvåg med frekvens f = 100 (ger toppar vid f, 3f, 5f,...). Vi ser även att amplituden 5A(f = 500) 3A(f = 300) A(f = 100) vilket stämmer med teorin! Land Estland Åland Lettland Ryssland Norge Säl Toppar för amplitudspektrum av x (approximativt) 50 Hz(sinus) + 200 Hz (sinus) 50, 150, 250, 350,... Hz (fyrkant) + sinus, 200 Hz (sinus) 50 Hz (sinus) + 100, 300, 500,... Hz (fyrkant) 50, 150, 250, 350,... Hz (fyrkant) + 200, 600,... Hz (fyrkant) Lågfrekvent brus 0.03 Hz 600 Hz (sinus) Figur 5: Förteckning över propellerljud. Notera: Vi använder oss här av den tidsdiskreta Fouriertransformen för att beräkna amplitudspektrum. Detta innebär att ekvation (B.2) kommer att ändras en aning. Speciellt så tar vi inte hänsyn till effekter av vikning och läckage. I detta (tillrättalagda) exempel är dess inverkan försumbar. 17

Funktion Amplitud Frekvens sinus (f) A 1 f Fyrkant (f) A 2 f A 2 /3 3f A 2 /5 5f A 2 /7 7f A 2 /9 9f.. Figur 6: Spektrum för olika funktioner (Fourierserien) Teoriuppgift B.1: Integrering av en udda funktion (jämn funktion gånger en udda funktion, t ex sin(t) = udda funktion) över en period (symmetriskt intervall) är noll! Notera att 0 π/2 och därför gäller π/2 π/2 f( t) sin(nω 0 t) dt = {t = t} = f(t) sin(nω 0 t) dt = 0 π/2 π/2 f( t) sin(nω 0 t) dt + 0 f(t ) sin(nω 0 t ) dt π/2 0 f(t) sin(nω 0 t) dt = 0 Teoriuppgift B.2: x(t) är jämn inga sinustermer ingår i Fourierserien, dvs a) faller bort. Medelvärdet av x(t) är noll A 0 = 0. Eftersom x(t) är halvvågssymmetrisk (bara udda termer) vet vi att Fourierserien kommer att se ut som A 1 cos(ω 0 t) + A 3 cos(3ω 0 t) + A 5 cos(5ω 0 t) + Perioden är T = 1, dvs ω 0 = 2π och vi får att Fourierserien för x(t) har det principiella utseendet A 1 cos(2πt) + A 3 cos(6πt) + A 5 cos(10πt) + Därför måste b) vara rätt svar! Överkurs: En annan regel säger att om en T -periodisk funktion f(t) är sk halvvågssymmetrisk f(t) = f(t+t/2) så kommer inga termer i fourierserien att uppträda för jämna värden på n: 18

Bevis: Vi har Dessutom gäller T/2 T/2 Alltså fås 2A n = 2 T [ T 0 T/2 ] v(t) cos(nω 0 t) dt v(t + T/2) cos(nω 0 t) dt T/2 v(t + T/2) cos(nω 0 t) dt = {s = t + T/2, cos(a b) = cos(a) cos(b) + sin(a) sin(b), ω 0 = 2π/T } = T 0 v(s) cos(nω 0 s) cos(nπ) ds 2A n = 0, n är jämn, dvs n = 0, 2, 4,... 2A n = 2 2 T T 0 v(t) cos(nω 0 t) dt, n är udda, dvs n = 1, 3, 5,... Teoriuppgift B.3: Enligt tidigare resonemang är signalen jämn och vi får endast cosinustermer i Fourierserien. Signalen är amplitudsymmetrisk runt noll, dvs A 0 = 0. Signalen är dessutom halvvågssymmetrisk varför alla jämna cosinustermer blir noll, vilket framgår av räkningarna nedan. Låt ω 0 = 2π/T, då fås (n 0) T/2 A n = 2 x(t) cos(nω 0 t) dt T T/2 = 2 { T/4 T/4 A cos(nω 0 t) dt + A cos(nω 0 t) dt + T T/2 T/4 =... = 4A nπ sin(nπ 2 ) = 4A 1 n = 1, 5, 9,... nπ 1 n = 3, 7, 11,... 0 annars Eller i detta fallet kan vi något enklare skriva Det vill säga, Fourierserien bli A n = 8 T = 4A nπ T/4 0 A cos( 2πn t) dt T [ sin( 2πn ] t=t/4 T t) t=0 T/2 T/4 } A cos(nω 0 t) dt x(t) = 4A π = 4A π n=1 n=0 ( 1) n+1 2n 1 cos(2n 1)ω 0t ( 1) n 2n + 1 cos(2n + 1)ω 0t 19