24
Matematik, Modellering och Simulering Markus Dahl, Carl Jönsson Wolfram MathCore

Matematik, Modellering och Simulering · Stirlingmotorn 10 LiU Math Presentation.nb ... LiU Math Presentation.nb 23. Hur vet SystemModeler vilken lösare den ska använda? När SystemModeler

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Matematik, Modellering och Simulering · Stirlingmotorn 10 LiU Math Presentation.nb ... LiU Math Presentation.nb 23. Hur vet SystemModeler vilken lösare den ska använda? När SystemModeler

Matematik, Modellering och

SimuleringMarkus Dahl, Carl Jönsson

Wolfram MathCore

Page 2: Matematik, Modellering och Simulering · Stirlingmotorn 10 LiU Math Presentation.nb ... LiU Math Presentation.nb 23. Hur vet SystemModeler vilken lösare den ska använda? När SystemModeler

Översikt◼ Vilka är vi som presenterar?

◼ Wolfram Research med produkter

◼ Modellering och simulering i arbetslivet (Markus)

◼ Algoritmutveckling och matematiken bakom den (Carl)

2 LiU Math Presentation.nb

Page 3: Matematik, Modellering och Simulering · Stirlingmotorn 10 LiU Math Presentation.nb ... LiU Math Presentation.nb 23. Hur vet SystemModeler vilken lösare den ska använda? När SystemModeler

Vilka är vi?◼ Markus Dahl - Applications Engineer på Wolfram MathCore

◼ Började Yi (tyska) 2010 - Examen 2015

◼ Masterprofil inom Teori, Modellering och Visualisering

◼ Exjobb på MathCore -> Anställning

◼ Carl Jönsson - Software Engineer på Wolfram MathCore

◼ Började Yi (japanska) 2007 - Examen 2012

◼ Masterprofil i Teknisk Matematik

◼ Utvecklar kärnan i Wolfram SystemModeler

LiU Math Presentation.nb 3

Page 4: Matematik, Modellering och Simulering · Stirlingmotorn 10 LiU Math Presentation.nb ... LiU Math Presentation.nb 23. Hur vet SystemModeler vilken lösare den ska använda? När SystemModeler

Wolfram Research

◼ Huvudkontor i IL, USA.

◼ ~700 anställda världen över

◼ ~20 anställda på Sverigekontoret i Linköping (Wolfram MathCore)

Produkter

◼ Mathematica

◼ Wolfram Alpha

◼ SystemModeler

4 LiU Math Presentation.nb

Page 5: Matematik, Modellering och Simulering · Stirlingmotorn 10 LiU Math Presentation.nb ... LiU Math Presentation.nb 23. Hur vet SystemModeler vilken lösare den ska använda? När SystemModeler

Mathematica◼ Matematikprogram med symbolhantering

In[1]:=

1

1 - x3ⅆx

Out[1]=

ArcTan 1+2 x

3

3-1

3Log[1 - x] +

1

6Log1 + x + x2

In[2]:= DSolve2 + Cos[x] y'[x] - Sin[x] y[x] ⩵ 4 * Exp[2 x], y[0] ⩵ 4, y[x], x[[1, 1, 2]]

Out[2]=

2 5 + ⅇ2 x

2 + Cos[x]

In[3]:= RevolutionPlot3D[Sqrt[1 + x], {x, 0, 1}, RevolutionAxis → {2, 0, 0}]

Out[3]=

y′′(x) x y(x)

y(0) a, y′(0) b

LiU Math Presentation.nb 5

Page 6: Matematik, Modellering och Simulering · Stirlingmotorn 10 LiU Math Presentation.nb ... LiU Math Presentation.nb 23. Hur vet SystemModeler vilken lösare den ska använda? När SystemModeler

y(0)

y′(0)

1 2 3 4

-3

-2

-1

1

2

3

◼ Wolfram Alpha

◼ (Se video)

6 LiU Math Presentation.nb

Page 7: Matematik, Modellering och Simulering · Stirlingmotorn 10 LiU Math Presentation.nb ... LiU Math Presentation.nb 23. Hur vet SystemModeler vilken lösare den ska använda? När SystemModeler

SystemModeler◼ Modellering- och Simuleringsprogram, utvecklas i Mjärdevi av Wolfram MathCore

◼ Drag-and-drop modellering

◼ Multi-domänt

◼ Baserat på programmeringsspråket Modelica

LiU Math Presentation.nb 7

Page 8: Matematik, Modellering och Simulering · Stirlingmotorn 10 LiU Math Presentation.nb ... LiU Math Presentation.nb 23. Hur vet SystemModeler vilken lösare den ska använda? När SystemModeler

Modellering och Simulering◼ Vad betyder modellering i detta sammanhang?

◼ Beskrivning av verkligheten

◼ Ett sätt att kommunicera med en dator

◼ Fjäder:

◼ F =k*x

◼ F = kraft, k = styvhet, x = förskjutning

◼ Hur sätter vi ihop den här fjädermodellen med andra modeller?

◼ “Räknar man verkligen matte efter universitetet?”

SystemModeler - Exempel◼ Elektronikmodell

◼ Mekanikmodell

8 LiU Math Presentation.nb

Page 9: Matematik, Modellering och Simulering · Stirlingmotorn 10 LiU Math Presentation.nb ... LiU Math Presentation.nb 23. Hur vet SystemModeler vilken lösare den ska använda? När SystemModeler

Optimera solfångare◼ Cleanergy - Använder solen för att driva stirlingmotorer

LiU Math Presentation.nb 9

Page 10: Matematik, Modellering och Simulering · Stirlingmotorn 10 LiU Math Presentation.nb ... LiU Math Presentation.nb 23. Hur vet SystemModeler vilken lösare den ska använda? När SystemModeler

◼ Video

◼ Vilka delar behöver modelleras?

◼ Solen

◼ Ta väderdata från mätningar

◼ Hur faller solens strålar in mot parabolen?

◼ Parabolen

◼ Enkel optik där en liten del absorberas av parabolen, resten reflekteras

◼ Solfångaren

◼ Termodynamik! Värmeöverföring genom konvektion, ledning och strålning.

◼ Behöver även kunna beskriva geometrin för kaviteten

◼ Stirlingmotorn

10 LiU Math Presentation.nb

Page 11: Matematik, Modellering och Simulering · Stirlingmotorn 10 LiU Math Presentation.nb ... LiU Math Presentation.nb 23. Hur vet SystemModeler vilken lösare den ska använda? När SystemModeler

◼ Termodynamik igen, plus interaktion med reglersystem

◼ Reglersystemet

◼ Reglerteori

◼ Generator

◼ Enklaste fallet: skriv in en uppmätt verkningsgrad

LiU Math Presentation.nb 11

Page 12: Matematik, Modellering och Simulering · Stirlingmotorn 10 LiU Math Presentation.nb ... LiU Math Presentation.nb 23. Hur vet SystemModeler vilken lösare den ska använda? När SystemModeler

Helikoptermodellering

◼ Vad behöver vi modellera för att få en realistisk helikopterrotor?

◼ Flexibla helikopterblad - Mekanik

◼ Helikopterkropp - Mekanik

◼ Reglersystem för kontroll av motor och vinkel av blad

◼ Hur gör man ett reglersystem till en helikopter på så kort tid som möjligt?

◼ Helikopterbladens interaktion med luft (Stor utmaning!) - Aerodynamik

◼ Detta blev den stora nöten att knäcka..

12 LiU Math Presentation.nb

Page 13: Matematik, Modellering och Simulering · Stirlingmotorn 10 LiU Math Presentation.nb ... LiU Math Presentation.nb 23. Hur vet SystemModeler vilken lösare den ska använda? När SystemModeler

LiU Math Presentation.nb 13

Page 14: Matematik, Modellering och Simulering · Stirlingmotorn 10 LiU Math Presentation.nb ... LiU Math Presentation.nb 23. Hur vet SystemModeler vilken lösare den ska använda? När SystemModeler

14 LiU Math Presentation.nb

Page 15: Matematik, Modellering och Simulering · Stirlingmotorn 10 LiU Math Presentation.nb ... LiU Math Presentation.nb 23. Hur vet SystemModeler vilken lösare den ska använda? När SystemModeler

Matematik och SystemModeler◼ Jag arbetar på SystemModeler-kärnan, typiskt innefattar detta:

◼ Förbättra robusthet och kapabilitet.

◼ Utveckla och vidareutveckla algoritmer som behövs för matematisk behandling av modeller.

◼ Hålla mig uppdaterad med relevant forskning.

◼ SystemModeler-kärnan tar en användardefinierad modell och producerar ett separat simuleringsprogram för modellen.

◼ Först omvandlas modellen till en lista av ekvationer och variabler.

◼ Sen optimeras och sorteras ekvationerna.

◼ Till sist genereras programkod (C++) som kompileras av en vanlig kompilator.

◼ Vilken matematik hanterar SystemModeler? Vad kan användaren skriva in?

◼ Vilken matematik använder SystemModeler internt? Vilken matematik behövs för att omvandla ett stort ekvationssystem till ett datorprogram?

LiU Math Presentation.nb 15

Page 16: Matematik, Modellering och Simulering · Stirlingmotorn 10 LiU Math Presentation.nb ... LiU Math Presentation.nb 23. Hur vet SystemModeler vilken lösare den ska använda? När SystemModeler

Vilken matematik hanterar SystemModeler?Modeller i SystemModeler är matematiskt sett hybrida differential-algebraiska ekvationssystem

(Hybrid DAE). Detta innebär att man kan ha ekvationer som är:

◼ Differentialekvationer, där derivatan tas med avseende på tiden, exempelvis:

◼dxdt

= αx + βy

◼dydt

= δxy - γy

◼ Algebraiska ekvationer (ekvationer utan derivator i), exempelvis:

◼ x2 + y2 = L2

◼ ϵ = tan(ϕ) - ϕ

◼ Event-ekvationer, ekvationer som triggar på en speciell händelse, exempelvis:

◼ when x > 0 then

y = z^2;

end when;

16 LiU Math Presentation.nb

Page 17: Matematik, Modellering och Simulering · Stirlingmotorn 10 LiU Math Presentation.nb ... LiU Math Presentation.nb 23. Hur vet SystemModeler vilken lösare den ska använda? När SystemModeler

Hur löser SystemModeler hybrida DAE:er?◼ Differentialekvationer löses oftast med numeriska ODE-lösare. Man beräknar den högsta

derivatan av en variabel och integrerar sedan numeriskt.

◼ ODE-lösaren “håller takten” vid simulering.

◼ Algebriska ekvationer löses antingen symboliskt, med linjära lösare eller med olinjära lösare.

◼ Event-ekvationer löses symboliskt, men här måste man se till att stanna sin ODE-lösare vid rätt tidpunkt.

LiU Math Presentation.nb 17

Page 18: Matematik, Modellering och Simulering · Stirlingmotorn 10 LiU Math Presentation.nb ... LiU Math Presentation.nb 23. Hur vet SystemModeler vilken lösare den ska använda? När SystemModeler

Hur hanterar SystemModeler stora system?◼ En modell i SystemModeler har ofta väldigt många ekvationer, modeller med över 10 000

ekvationer är vanligt.

◼ Nästan alla intressanta modeller innehåller någon icke-linjär ekvation.

◼ Enkel lösning: Ge alla algebraiska ekvationer till en icke-linjär lösare.

◼ Kan bli väldigt ineffektivt.

◼ Hur kan man behandla modeller mer effektivt?

◼ Vi använder grafteori för att bryta ner systemet i mindre system.

18 LiU Math Presentation.nb

Page 19: Matematik, Modellering och Simulering · Stirlingmotorn 10 LiU Math Presentation.nb ... LiU Math Presentation.nb 23. Hur vet SystemModeler vilken lösare den ska använda? När SystemModeler

Hur använder SystemModeler grafteori?En graf är en samling av noder,sammanbundna av bågar.

GraphPlot3D[GraphData["Foster056A", "EdgeRules"], Boxed → False]

Vi analyserar en modells ekvationer genom att skapa en nod för varje ekvation och variabel. Vi

skapar en båge mellan en ekvation e och en variabel v om v förekommer i e.

x⨯y + z = 1

x + y = 2

x - y = 2

LiU Math Presentation.nb 19

Page 20: Matematik, Modellering och Simulering · Stirlingmotorn 10 LiU Math Presentation.nb ... LiU Math Presentation.nb 23. Hur vet SystemModeler vilken lösare den ska använda? När SystemModeler

eg1 = bipartiteGraph[{{1, x}, {1, y}, {1, z}, {2, x}, {2, y}, {3, x}, {3, y}}]

1 x

y

z

2

3

Vi försöker sedan matcha upp ekvationerna med variablerna så att varje ekvation är matchad med

exakt en variabel. Om ekvation e är matchad med variabel v tolkar vi det som att vi ska lösa ekvatio-

nen e för variabeln v.

HighlightGraph[eg1, FindEdgeCover[eg1]]

1 x

y

z

2

3

20 LiU Math Presentation.nb

Page 21: Matematik, Modellering och Simulering · Stirlingmotorn 10 LiU Math Presentation.nb ... LiU Math Presentation.nb 23. Hur vet SystemModeler vilken lösare den ska använda? När SystemModeler

Graf och matchning för en V6-motorNedanstående graf har ungefär 6800 noder (3400 variabelnoder och 3400 ekvationsnoder). En röd

båge mellan noder betyder att noderna är ett matchat variabel-ekvationspar.

HighlightGraph[bipartiteGraphNoLabels[ev6g], ev6matching]

LiU Math Presentation.nb 21

Page 22: Matematik, Modellering och Simulering · Stirlingmotorn 10 LiU Math Presentation.nb ... LiU Math Presentation.nb 23. Hur vet SystemModeler vilken lösare den ska använda? När SystemModeler

Ekvationssortering◼ När vi har matchat alla variabler med en ekvation sorterar vi ekvationerna i ordningen de ska

lösas.

◼ Idealt sett vill vi ordna ekvationerna så att man löser en ekvation åt gången och lösa den matchade variabeln symboliskt ur ekvationen.

◼ Detta är inte alltid möjligt, betrakta exempelvis följande system:

x + y = 2

x - y = t

◼ Grafen med en matchning ser ut såhär:

exg = {{1, x}, {1, y}, {2, x}, {2, y}};

g = bipartiteGraph[exg];

HighlightGraph[g, FindEdgeCover[g]]

1 x

y2

◼ Här löser vi ekvation 1 för y, men ekvation 1 kräver att vi vet x, vilken löses ur ekvation 2, som kräver att vi vet x.

◼ Alltså måste ekvationerna 1 och 2 lösas samtidigt.

◼ Vi identifierar dessa system av ekvationer och använder speciella lösare för dem.

22 LiU Math Presentation.nb

Page 23: Matematik, Modellering och Simulering · Stirlingmotorn 10 LiU Math Presentation.nb ... LiU Math Presentation.nb 23. Hur vet SystemModeler vilken lösare den ska använda? När SystemModeler

Fördelar◼ Om man bryter ner systemet i mindre system blir det mycket enklare att lösa. Istället för att lösa

ett icke-linjärt system med 10 000 ekvationer, löser man massor av små system.

◼ För de flesta modeller får man massor av system med endast en ekvation och ett fåtal system som är större (oftast under 20 ekvationer) som använder speciella lösare.

◼ För V6-motorn får man:

◼ 17 linjära system: 11 med storlek 2, 6 med storlek 8.

◼ 6 olinjära system, samtliga av storlek 9 (ett system för varje cylinder).

◼ Resten av ekvationerna (över 3200) löses en åt gången, symboliskt.

LiU Math Presentation.nb 23

Page 24: Matematik, Modellering och Simulering · Stirlingmotorn 10 LiU Math Presentation.nb ... LiU Math Presentation.nb 23. Hur vet SystemModeler vilken lösare den ska använda? När SystemModeler

Hur vet SystemModeler vilken lösare den ska använda?◼ När SystemModeler träffar på ett system av flera ekvationer ser den ekvationerna som en

funktion av variablerna den försöker lösa.

◼ Från exemplet tidigare identifierade vi ett system med två ekvationer där vi löser för x och y.

◼ x + y = 2

◼ x - y = t

◼ Vi omvandlar detta till en funktion f (x, y) =x + y - 2x - y - t

och försöker hitta x, y så att f(x, y) = 0.

◼ Vi analyserar systemet genom att beräkna jacobianen.

∂f1

∂x

∂f1

∂y

∂f2

∂x

∂f2

∂y

= 1 11 -1

◼ Vi kan sedan på jacobianen om systemet är tidskonstant linjärt, tidsvariabelt linjärt eller olinjärt.

◼ För tidskonstanta linjära system kan man exempelvis förberäkna en LU-faktorisering för att snabbt lösa systemet när det behövs.

◼ Vårt exempel är tidskonstant linjärt 1 11 -1

x

y =

2t, endast högerledet kan ändras med tiden.

◼ Ett tidsvariabelt linjärt system innehåller variabler som inte är lösningsvariabler för systemet i sin jacobian. För dessa system behöver man lösa systemet med en linjär lösare varje gång.

◼ Exempelvis z ⨯x + y = 1, 2 x + y = 2.

◼ f(x, y) = z ⨯x + y - 12 x + y - 2

◼ Jacobian: z 12 1

◼ z 12 1

x

y =

12, vänsterledet kan ändras med tiden.

◼ Ett olinjärt system innehåller lösningsvariabler i jacobianen. För dessa system använder man speciella lösare som kan ta betydligt mer tid än linjära lösare.

◼ Exempelvis x2 + y = z, 2 x + y2 = 2.

◼ f(x, y) =x2 + y - z

2 x + y2 - 2

◼ Jacobian: 2 x 12 2 y

24 LiU Math Presentation.nb