Christian Brackmann, Avdelningen för Förbränningsfysik

Christian Brackmann, Avdelningen för Förbränningsfysik
Introduktion till MATLAB
Energi- och miljöfysik (FAFA15) – LP4 2015
Christian Brackmann, Avdelningen för Förbränningsfysik
MATLAB – Matrix Laboratory
• Programvara för tekniska beräkningar
– Numeriska beräkningar
– Hantering av stora datamängder
– Programmering
– Visualisering
• Kurskompendium.
Börja med MATLAB, Nina Reistad, 2004.
Lunds universitet / Förbränningsfysik/ Energi- och miljöfysik, Introduktion till MATLAB / 2015-03-23
Användargränssnitt
Menyer och
knappar
Prompt
Kommando-fönster
Workspace –
variabler i minnet
Kommandohistorik
Lunds universitet / Förbränningsfysik/ Energi- och miljöfysik, Introduktion till MATLAB / 2015-03-23
Enkla beräkningar
• Artimetiska uttryck
• Funktioner
• Variabler
– Tilldelning
– Lagring i minnet
– Radera variabler
– Spara i filer
• Formler
Lunds universitet / Förbränningsfysik/ Energi- och miljöfysik, Introduktion till MATLAB / 2015-03-23
Programmering
• Sekvenser av MATLAB-instruktioner skrivs in i en textfil,
s.k. m-fil eller MATLAB-script.
• Skapas med texteditor, oftast MATLABs inbyggda.
• Strukturerad programmering med bra variabelnamn och
kommentarer i koden underlättar mycket.
• Arbetar med variabler i variabel minnet (workspace).
• Körs genom att skriva kommandofilens namn vid
prompten.
Lunds universitet / Förbränningsfysik/ Energi- och miljöfysik, Introduktion till MATLAB / 2015-03-23
Exempel - temperatur i Dieselmotor
En 1.6 l Dieselmotor arbetar med bränsle/luft
blandning med temperatur 300 K,
atmosfärstryck och kompressionsförhållande
16.5. Antag att kvoten mellan specifika
värmekapaciteterna g=Cp/CV=1.4. Volymen
efter avslutad förbränning är dubbelt så stor
som vid antändning. Vilken temperatur
uppnås efter förbränning?
T1=300 K, p1=101325 Pa, V2=V1/16.5
V 
Adiabatisk kompression T2  T1  1 
 V2 
 V3 
p3=p2 T3  T2  
V3=2V2
V
 2
Lunds universitet / Förbränningsfysik/ Energi- och miljöfysik, Introduktion till MATLAB / 2015-03-23
g 1
Vektorer
• Många storheter representeras inte med ett enda värde, en
skalär, utan med flera. Till exempel i serier med mätvärden.
Exempel - Medeltemperatur under januari (°C).
4.5
3.9
3.5
5
5
1.4
3.5
3.5
0.5
1.7
4.7
0.7
1.2
5.2
1.2
2.7
2.4
3
4.3
5.5
• Temperaturvärdena kan representeras med en vektor för
analys i MATLAB.
Lunds universitet / Förbränningsfysik/ Energi- och miljöfysik, Introduktion till MATLAB / 2015-03-23
Matriser
• Ofta förekommer data som är lämpliga att arrangera i ett
slags tabell, en matris.
Exempel: Ljusintensiteter i gråskala för varje pixel i en
svartvit digital bild.
127
142
146
152
146
140
147
157
145
131
124
129
133
141
140
131
133
137
126
106
142
134
142
147
148
152
153
144
150
147
87
81
84
89
89
95
100
104
132
150
93
94
102
104
102
105
108
104
105
112
101
107
112
113
114
113
115
112
116
118
120
133
141
144
143
143
144
143
144
147
179
182
183
183
183
184
182
180
180
180
Lunds universitet / Förbränningsfysik/ Energi- och miljöfysik, Introduktion till MATLAB / 2015-03-23
227
225
226
225
225
227
227
226
226
226
152
122
128
137
131
137
138
138
140
148
Vektorer och matriser i MATLAB
• Tilldelning
• Indexering, operatorn :
• Beräkningar med vektorer och matriser.
Lunds universitet / Förbränningsfysik/ Energi- och miljöfysik, Introduktion till MATLAB / 2015-03-23
Exempel – spänning över kondensator i växelströmskrets
i (t )  I 0 sin(t )
dq
dt
I0
q (t )   cos(t )
i (t ) 

q (t )  Cv(t )
I
I

v(t )   0 cos(t )  0 sin(t  )
C
C
2
i
i
C
I0=0.2 A
C=50 µF
=2·50 Hz
Givet strömmen i(t), beräkna spänningen över kondensatorn,
v(t). Rita diagram över i(t) samt v(t).
Lunds universitet / Förbränningsfysik/ Energi- och miljöfysik, Introduktion till MATLAB / 2015-03-23
Visualisering
• Grafer i MATLAB med kommandot plot(x,y)
– Enkel graf
– Linjer eller symboler
– Flera plottar i samma graf
– Rubrik och axel-etiketter
Lunds universitet / Förbränningsfysik/ Energi- och miljöfysik, Introduktion till MATLAB / 2015-03-23
Polynom med MATLAB
• Polynom p(x) lagras som radvektor med koefficienterna i
fallande ordning.
Exempel : p(x)=47x4+32x3+2x+15 representeras i MATLAB
med vektorn p=[47 32 0 2 15].
Observera nollan för den saknade x2-termen.
Lunds universitet / Förbränningsfysik/ Energi- och miljöfysik, Introduktion till MATLAB / 2015-03-23
Anpassning av mätdata till polynom
• Par av mätvärden (x1,y1), (x2,y2), (x3,y3),... kan anpassas till
polynom med MATLAB-funktionen polyfit.
p=polyfit(x,y,n)
n anger polynomets gradtal, n=1 för rät linje.
Lunds universitet / Förbränningsfysik/ Energi- och miljöfysik, Introduktion till MATLAB / 2015-03-23
Linjärisering
• Ibland önskar man anpassa data till en funktion som inte är
ett polynom.
Antag att vi vill anpassa (x1,y1), (x2,y2), (x3,y3),... till y=Ae-cx
Inget polynom, men logaritmering ger ln(y)=ln(Ae-x)=ln(A)-cx
• Sambandet mellan ln(y) och x ges av en linje, logaritmera
och anpassa de nya värdena till rät linje med polyfit.
Lunds universitet / Förbränningsfysik/ Energi- och miljöfysik, Introduktion till MATLAB / 2015-03-23
Programmering - funktionsfil
• Innehåller en sekvens av MATLAB instruktioner.
• Arbetar med variabler i eget minnesutrymme. Principen
”svart låda”.
• I likhet med inbyggda funktioner anropas en funktionsfil
genom en tilldelning av ett värde till en variabel.
Exempel:
Inbyggd MATLAB-funktion : y=sin(x)
Egendefinierad funktion : a=carea(r)
x och r är funktionernas parametrar
Lunds universitet / Förbränningsfysik/ Energi- och miljöfysik, Introduktion till MATLAB / 2015-03-23