Sammanfattning av föreläsning 11 Modellbygge & Simulering, TSRT62 Föreläsning 12. Simulering Reglerteknik, ISY, Linköpings Universitet Index för en DAE Antalet derivationer som behövs för att lösa ut ż Index = 1 lätt Index 2 svårt Indexberäkining för linjära system Standardform för linjära system Svårighet med index > 1: indata deriveras Något om index för olinjära DAE-modeller Föreläsning 12. Numeriska metoder och Simulering Standardformulering av simuleringsproblem ẋ = f (x) Översikt över olika metoder Noggrannhet Stabilitet Variabel steglängd Metoder för DAEer. eller en DAE: F(ẋ, x) = 0 (För enkelhets skull tar vi inte med insignalen.) Om man vill beräkna approximationer av x vid tiderna 0 < t 1 < t 2 < < t f. så genererar algoritmen värden x 1, x 2, x 3,... som approximerar x(t 1 ), x(t 2 ), x(t 3 ),...
Eulers metoder Bakåtdifferenser De enklaste metoderna bygger på att man approximerar derivatan med en differens: ẋ(t n ) x n+1 x n h eller ẋ(t n ) x n x n 1 h där steglängden h ges av h = t n+1 t n respektive h = t n t n 1 Med framåtdifferensen och tillståndsbeskrivning fås Eulers metod: x n+1 = x n + hf (x n ) Med bakåtdifferensen och tillståndsbeskrivning fås Euler bakåt : Bakåtdifferensen och en DAE ger x n+1 = x n + hf (x n+1 ) F(h 1 (x n+1 x n ), x n+1 ) = 0 Lägg märke till att dessa metoder kräver lösning av ett ekvationssystem för x n+1. Allmän simuleringsmetod Varför finns det olika metoder? Mer allmänt ges en simuleringsmetod för en tillståndsmodell av en formel av typen x n+1 = G(t, x n k+1, x n k+2,..., x n, x n+1 ) Detta är en k-stegsmetod: det nya värdet beräknas ur k tidigare värden. Explicit metod: G innehåller inte x n+1 Implicit metod: G innehåller x n+1 Euler: explicit enstegsmetod Euler bakåt: implicit enstegsmetod Exempel på egenskaper som måste hanteras Noggrannhet Komplexitet Stabilitet Hantering av diskontinuiteter Hantering av styva system Hantering av DAEer Vilken metod som är bäst beror på vilken egenskap som är mest intressant.
Noggrannhet Runge-Kutta-metoder Beräkna f i mellanliggande punkter. En variant: Globalt fel E n = x(t n ) x n Kan bara beräknas exakt om den sanna lösningen är känd exakt. Lokalt fel = enstegsfel vid exakta indata; kan ofta beräknas lätt ur Taylorutveckling. Lokala felet är typiskt proportionellt mot h p+1 för något heltal p. Globala felet blir då typiskt proportionellt mot h p. Talet p är metodens ordning. Exempel: Eulers metod har ordningen 1. k 1 = f (t n, x n ) k 2 = f (t n + h/2, x n + hk 1 /2) x n+1 = x n + hk 2 En klassisk Runge-Kutta-metod k 1 = f (t n, x n ) k 2 = f (t n + h/2, x n + hk 1 /2) k 3 = f (t n + h/2, x n + hk 2 /2)) k 4 = f (t n + h, x n + hk 3 ) x n+1 = x n + h(k 1 + 2k 2 + 2k 3 + k 4 )/6 ordning = 2 ordning = 4 Flerstegsmetoder Implicita k-stegs Adams-metoder Explicita k-stegs Adams-metoder k = 1 : x n = x n 1 + hf n 1 k = 2 : x n = x n 1 + h (3f n 1 f n 2 ) /2 k = 3 : x n = x n 1 + h (23f n 1 16f n 2 + 5f n 3 ) /12 k = 4 : x n = x n 1 + h (55f n 1 59f n 2 + 37f n 3 9f n 4 ) /24 f j = f (t j, x j ) k = 0 : x n = x n 1 + hf n k = 1 : x n = x n 1 + h (f n + f n 1 ) /2 k = 2 : x n = x n 1 + h (5f n + 8f n 1 f n 2 ) /12 k = 3 : x n = x n 1 + h (9f n + 19f n 1 5f n 2 + f n 3 ) /24 Ordning = k + 1. Ordning = k.
Stabilitet Stabilitet hos Euler bakåt Stabiliteten hos den numeriska simuleringen behöver inte överensstämma med stabiliteten hos den underliggande differentialekvationen. Testekvation ẋ = λx, λ komplext Stabilitetsområde: Re(λ) < 0 Eulersimulering x n+1 = (1 + hλ)x n Stabilitetsområde: 1 + hλ < 1 Stabilitetsområdet blir x n+1 = x n + hf (x n+1 ) 1 hλ > 1 Stabila system kan simuleras med godtyckligt lång steglängd utan stabilitetsproblem Den steglängd som kan väljas bestämms av både noggrannhetsoch stabilitetshänsyn. Stabilitetsområden för explicita Adamsmetoder Stabilitetsområden för implicita Adamsmetoder 1.5 1 0.5 4 3 2 1 k=1 Im 0 k=1 k=2 k=3 k=4 Im 0 k=2 k=3-0.5-1 -2-1 -3-1.5-2.5-2 -1.5-1 -0.5 0 0.5 Re -4-6 -5-4 -3-2 -1 0 Re
Variabel steglängd Styva differentialekvationer Många moderna metoder låter h adapteras för att få den önskade noggrannheten med minsta möjliga räknearbete. Ofta utnyttjas följande principer användaren specificerar önskat lokalt fel algoritmen har en metod att uppskatta lokala felet uppskattat lokalt fel för stort h minskas uppskattat lokalt fel onödigt litet h ökas Styvhet: snabba och långsamma förlopp i samma modell. Problem: stabilitetskravet kan begränsa steglängden mer än noggrannhetskravet Speciella metoder för styva problem ofta implicita Differentialalgebraiska problem Index = 1 F(ż, z, t) = 0 Enkel idé: ersätt ż med bakåtdifferensen z n z n 1 h. Detta ger ekvationen F( 1 h (z n z n 1 ), z n, t n ) = 0 att lösa i varje iteration (görs ofta med Newtons metod). Mer allmänt kan man ersätta ż med en högre ordningens bakåtdifferensformel: k ż α i z n i i=0 där koefficienterna α i valts så att approximationen får felet O(h k+1 ). Låt z(t) = z(t) + w(t) och låt F(ż, z, t) = 0 ha den linjära approximationen Aẇ + Bw = g(t) med A = F ż ( z, z, t), B = F z ( z, z, t). Om A har konstant rang A, B har index = 1 för alla z, ż i närheten av den aktuella lösningen så fungerar en bakåtdifferensmetod F( k i=0 α i z n i, z n, t n ) = 0 för k < 7 och ger noggrannheten O(h k ).
Andra metoder Kursöversikt Det finns flera andra metoder för DAEer, t ex implicita Runge-Kutta-metoder. Dessa fungerar också i princip rättframt för problem med index=1. För problem med högre index krävs anpassning av de numeriska metoderna eller att DAE-strukturen ändras innan problemet löses. Identifiering modell från data ofta relativt enkelt att få en modell förutsätter existerande process att mäta på Fysikaliskt modellbygge modell från fysikaliska principer förutsätter kunskap om bakomliggande mekanismer kan ge komplicerade modeller kan göras för processer som bara finns på planeringsstadiet ger ofta förståelse om hur processen fungerar Kombination Fysikaliskt modellbygge ger grundstruktur med okända parametrar Parametervärdena fås genom identifiering Identifiering, biasfelet Identifiering, variansfelet När N : (N=antal datapunkter) θ = argmin θ π π G 0 (e iω ) G(e iω, θ) 2 Φ u (ω) H (e iω ) 2 dω E( ˆθ N θ 0 )( ˆθ N θ 0 ) T λ N där λ är brusvariansen och R 1 R = Eψ(t, θ 0 )ψ(t, θ 0 ) T, ψ(t, θ) = d dθ ŷ(t θ)
Identifiering, metodik Modellbygge Allmänna modellen är en DAE: Undvik överanpassning. Testa modellen på nya data. Residualtester Jämför många modeller och modellegenskaper Inverkan av återkoppling F(ż, z, u) = 0 I princip kan detta vara en ostrukturerad samling ekvationer. I praktiken måste ekvationerna struktureras. Den bästa struktureringen är i allmänhet en tillståndsmodell Bindningsgrafer DAE-modeller Analogier mellan el, hydraulik, mekanik och i viss mån termodynamik Kausalitet visar om man får en tillståndsbeskrivning Förenklingsregler Normalt lätt generera tillståndsbeskrivning även för relativt komplicerade system Uppstår naturligt vid sammankopplingar i modellbibliotek Differentieringsindex mått på svårighet vid simulering Problem med index=1 är normalt lätta att simulera. Modelica klarar en del problemt med högt index, t ex vid sammankoppling av mekaniska system
Simulering Normalt lätt med moderna numeriska metoder Dessa kan vara svåra: Styva problem DAE-modeller med högt index ( 2) TACK