Christian Brackmann, Avdelningen för Förbränningsfysik
Transcription
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