UPG6—Miniprojekt 3: Kastparabler, projektiler, och raketer
Transcription
UPG6—Miniprojekt 3: Kastparabler, projektiler, och raketer
TNA005: Tillämpad matematik i teknik och naturvetenskap VT 2015 UPG6—Miniprojekt 3: Kastparabler, projektiler, och raketer Många fysikaliska fenomen inom natur och tillämpningar kan beskrivas och modelleras genom ordinära differentialekvationer (ODE). Det är endast i de enklare fallen som en analytisk lösning till differentialekvationerna kan bestämmas. Det blir därmed viktigt att kunna lösa ODE-ekvationer numeriskt. I detta projekt kommer vi att undersöka metoder för numeriska/approximativa lösningar av differentialekvationer. Ekvationerna för modellproblemet vi behandlar kommer från Newtons kraft- och rörelselagar. Projektarbetet kan delas in i tre områden: Modellering: Vi börjar med enkla modeller, för vilka analytiska lösningar finns, och går stegvis över till mer realistiska modeller, vars differentialekvationer måste lösas numeriskt. Numeriska metoder: Ni kommer att implementera två metoder för ODE-lösare och undersöka deras noggrannhet. Ni ska även undersöka en av MATLABs inbyggda ODE-lösare. Experiment: Projektet innehåller även ett antal ingenjörsmässiga uppgifter. Det kommer att krävas en del experimenterande för att lösa dessa frågor. 1 Tillämpningar av Newtons lagar Vi har två realistiska(?!) tillämpningscenarier som bakgrund till projektet. I båda fallen gäller det att undersöka rörelsen av något föremål under inverkan av olika krafter. Lunchleverans: Företaget Lunch AB vill utveckla en ny och innovativ tjänst för lunchleveranser. Den nya tjänsten går ut på att leverera nylagad varm lunch till byggarbetare på toppen av en skyskrapa. Lunchen vill man leverera snabbt genom att skjuta upp den med en liten raket. Er uppgift, som nyanställda på företaget, blir att undersöka möjligheterna för detta med hjälp av modellering och datorsimulering. Ni ska redovisa resultaten inom 3–4 veckor till företagsledningen. Snälla grisar: Det är många snälla grisar i svenska gårdar. Det är många snälla fåglar också, men fåglarna är något nonchalanta och tappar ofta bort sina ägg. När grisarna hittar något ägg vill de hemskt gärna hjälpa fåglarna och lämna tillbaka det borttappade ägget. Er uppgift är att hjälpa grisarna lämna tillbaka äggen. Grisarna vill använda en dräkt med raketmotor, se figur 1, för att nå höga höjder. Figur 1: Gris med reketmotor. Linköpings universitet, ITN, Berkant Savas 1 TNA005: Tillämpad matematik i teknik och naturvetenskap VT 2015 Huvuduppgift Miniprojektets huvuduppgift är att lösa rörelseekvationerna för ett föremål som drivs med en raketmotor. Rörelsen beskrivs av differentialekvationer, och det går inte att lösa dessa analytiskt utan ekvationerna måste lösas numeriskt. För att kunna bedöma noggrannheten i de numeriska lösningarna skall vi studera rörelseekvationer med linjärt luftmotstånd, och jämföra analytiska lösningar med olika numeriska lösningar. Projektbeskrivningen (detta dokument) innehåller avsnitt med nio deluppgifter som utgör underlag för er att strukturera upp arbetet med miniprojektet. Alla dessa uppgifter skall lösas! Rapporten och den muntliga redovisningen bygger på att ni har löst dessa uppgifter. 2 Modellering och deluppgifter I detta avsnitt kommer vi att beskriva olika fysikaliska modeller som beskriver rörelsen av ett föremål under inverkan av olika krafter. Vi vet att ett föremål som rör sig följer Newtons lagar. Speciellt intressant för denna uppgift är Newtons andra lag, accelerationslagen, d(mv) , dt där kraften F, som verkar på ett föremål, är lika med förändringen i rörelsemängd. Rörelsemängden ges av massan gånger hastigheten, mv, och dess förändring blir tidsderivatan d(mv)/dt. Om vi antar att massan m inte förändras över tiden får vi F= d(mv) dv =m = ma, (1) dt dt där a är föremålets acceleration. Notera att storheterna F, v, och a är vektorstorheter. Vi ser vidare att rörelseekvationen (1) är en differentialekvation då accelerationen är andraderivatan av positionen. F= Vi kommer att undersöka tre olika fall av rörelsekvationen: 1. Rörelse av ett föremål där luftmotstånd försummas, och inga externa krafter verkar på föremålet förutom gravitationen. 2. Sedan kommer vi att introducera luftmotstånd, som är proportionell mot hastigheten. 3. Slutligen kommer vi att betrakta ett variabel-mass system med kvadratiskt luftmotstånd. Detta är ett typiskt fall vid raketuppskjutning eftersom massan av raketen ändras genom att raketbränsle förbränns och skjuts ut från motorn med hög fart. 2.1 Rörelse utan luftmotstånd, kastparabler I det enklaste fallet bortser vi från luftmotståndet, och låter endast tyngdkraften verka på föremålet. Vi får F = ma = mg, (2) där g är tyngdaccelerationen. Förenkling av (2) ger a = g och delar vi upp den i x- och ykomponenter får vi ax g 0 a = g ⇐⇒ = x = ay gy −g Linköpings universitet, ITN, Berkant Savas 2 TNA005: Tillämpad matematik i teknik och naturvetenskap VT 2015 där g ≈ 9.82 m/s2 är vertikalkomponenten av tyngdaccelerationen1 . Skriver vi ekvationerna i termer av de sökta funktionerna x(t) och y(t) får vi ax = x00 (t) = 0, (3) 00 ay = y (t) = −g. (4) Analytiska lösningar för (3) och (4) hittas enkelt! Integrera två gånger! I x-led får vi x00 (t) = 0 ⇐⇒ x0 (t) = k1 ⇐⇒ x(t) = k1 t + k2 , där k1 och k2 är koefficienter från integrationen som kan bestämmas med hjälp av villkor för någon position och hastighet vid någon tidpunkt. På samma sätt får vi lösningen i y-led enligt y 00 (t) = −g ⇐⇒ y 0 (t) = −gt + k3 ⇐⇒ g y(t) = − t2 + k3 t + k4 , 2 där k3 och k4 är nya integrationskoefficienter. Låt oss använda begynnelsevillkoren x(0) = 0, y(0) = 0, x0 (0) = v0 cos(α), y 0 (0) = v0 sin(α). (5) Detta betyder att positionen för kulan vid t = 0 är origo, samt kulan har farten2 v0 m/s i en riktning som bildar vinkeln α från x-axeln. Även detta vid t = 0. Begynnelsevillkoren (5) ger k2 = k4 = 0 samt k1 = v0 cos(α), k3 = v0 sin(α). Sätter vi in dessa i lösningarna för x(t) och y(t) fås x(t) = v0 cos(α)t, (6) g y(t) = v0 sin(α)t − t2 . 2 (7) Vi kan nu kombinera (6) och (7) och härleda höjden y som en funktion av x. Skriv om (6) som t= x v0 cos(α) och insättning i (7) ger y(x) = tan(α)x − 2v02 gx2 . cos2 (α) Vi ser att lösningarna blir andragradsfunktioner, som ju beskriver parabler, därav namnet kastparabel. Notera att initialfarten v0 och utgångsvinkeln α är givna konstanter. 2.2 Projektilbana med luftmotstånd Det finns två förhållandevis enkla sätt att modellera luftmotståndet och därmed hitta mer realistiska lösningar. Dessa är antingen att modellera kraften som linjärt proportionell mot hastigheten eller som kvadratiskt proportionell mot farten. I båda fallen verkar kraften från luftmotståndet i motsatt riktning som föremålet rör sig. Vi ska undersöka fallet med linjärt luftmotstånd. Ekvationen blir ma = mg − kv, (8) 1 Tyngdacceleration g varierar beroende på var någonstans man är, och i Sverige (Norrköping) är g = 9.82 en bra approximation. 2 Vad är det för skillnad mellan fart och hastighet? Linköpings universitet, ITN, Berkant Savas 3 TNA005: Tillämpad matematik i teknik och naturvetenskap VT 2015 där v är föremålets hastighet och k är en konstant som modellerar övriga faktorer (t.ex. fluidens densitet, area och ytform av föremålet) i kraften från luftmotståndet. Vi kan återigen skiva om ekvationen komponentvis och får k 0 x (t), m k ay = y 00 (t) = − y 0 (t) − g. m ax = x00 (t) = − (9) (10) Notera att differentialekvationerna (9) och (10) är linjära och inte kopplade till varandra. Dessa kan lösas analytiskt för att erhålla explicita uttryck för x(t), y(t), och även y(x). Deluppgifter 1 1. Lös ekvationerna (9) och (10) analytiskt så att du får explicita uttryck för x(t) och y(t). Använd begynnelsevillkoren i (5). Konsultera Forsling och Neymark [2] om det behövs. 2. Implementera lösningarna x(t) och y(t) till (9) respektive (10) i en designerad MATLABfunktion. Låt t, men även modellparametrarna m, k, v0 , och α, vara inparametrar till funktionen så att det blir enkelt att variera dessa när ni experimenterar. 3. Placera en fyrkantig måltavla med hörn i koordinaterna (40,30), (50,30), (50,40), (40,40). Låt kulan ha vikten m = 5 kg. Ange utgångsvinkel α och begynnelsefart v0 så att kulan träffar ovansidan av måltavlan med en negativ hastighet i y-led. Gör detta för tre olika fall med luftmotstånd, använd k = 0.01 kg/s; k = 0.5 kg/s; och k = 3 kg/s. 4. Differentialekvationerna (9) och (10) är av andra ordningen. Skriv om dessa (på papper) som ett system av differentialekvationer av första ordningen, z0 = f1 (t, z). (11) Ange komponenterna av z och f1 . Vi kommer att använda detta för att lösa problemet numeriskt, och jämföra de approximativa lösningarna med de analytiska lösningarna. 2.3 Till rymden! Projektil med raketmotor!! Ja, i alla fall mot högre höjder! Låt oss montera en raketmotor på kulan! Eftersom raketmotorer förbränner bränsle, som skjuts ut i någon riktning, kommer massan av raketen inte att vara konstant, utan den kommer att ändras med tiden, dvs m = m(t). Vi får därmed ett variabelmass system. Genom att använda Newtons tredje lag, impulslagen, kan man visa att följande ekvation gäller m(t)a = F + m0 (t)u, (12) där m(t)a beskriver totala accelerationskraften på raketen, F anger summan av externa krafter som verkar på raketen (gravitation och luftmotstånd), och m0 (t)u beskriver kraften raketen utsätts för genom att partiklar (bränsle) skjuts ut från raketen. Hastighetsvektorn ux (t) u = u(t) = , uy (t) är en funktion av t och anger riktning och fart av bränslet som skjuts ut från raketen. Vi kan anta att u(t) är en känd funktion som piloten (du) kan använda för att styra raketen i en önskad Linköpings universitet, ITN, Berkant Savas 4 TNA005: Tillämpad matematik i teknik och naturvetenskap VT 2015 bana. Vi förutsätter även att m(t) och dess derivata m0 (t) är kända funktioner. Kombinerar vi ekvation (12) med krafter för gravitation och luftmotstånd får vi m(t)a = m(t)g − ckvkv + m0 (t)u, (13) där c är en ny proportionalitetskonstant. Notera att vi, i detta fall, modellerar luftmotståndet som kvadratiskt proportionell mot farten. Division med m(t) och komponentvis uppdelning ger m0 (t) c p 0 2 (x ) + (y 0 )2 x0 + ux (t), (14) m(t) m(t) m0 (t) c p 0 2 (x ) + (y 0 )2 y 0 + ay = y 00 (t) = − uy (t) − g, (15) m(t) m(t) p där vi använder kvk = (x0 )2 + (y 0 )2 . Vi ser att ekvationerna är kopplade till varandra på ett ickelinjärt sätt. Jämför även (14) och (15) med ekvationerna i Exempel 14.7 i Jönsson [3]. ax = x00 (t) = − Deluppgifter 2 5. Skriv om (14) och (15) som ett ickelinjärt system av första ordningens ODE z0 = f2 (t, z). (16) Ange komponenterna av z och f2 . Vi kommer att använda dessa längre fram. 2.4 Numerisk lösning av differentialekvationer I projektet ska du undersöka lösningar till differentialekvationerna som har introducerats. Du ska speciellt jämföra exakta (analytiska) lösningar, där dessa finns, med olika numeriska lösningar. Betrakta en ODE i formen z0 = f (t, z), där z(t) är en vektorvärd funktion som söks och f är en given vektorvärd funktion som kan evalueras för givet t och z(t). Den numeriska lösningsproceduren för differentialekvationer är följande. Bestäm ekvidistanta punkter t0 , . . . , tn som delar in aktuell tidsintervall [a b] i n stycken delintervall med längden h = (b − a)/n. Numeriska approximationer för z(t1 ), . . . , z(tn ) fås rekursivt, där vi använder ett givet begynnelsevillkor z(t0 ) = z0 . Du skall själv implementera två metoder: Eulers method och fjärde ordningens Runge-Kutta metod (RK-4). En beskrivning av dessa metoder ges i Algoritm 1 och 2, se [1] för mer information. Algoritm 1 Eulers metod for i = 0, 1, 2, . . . , n − 1 do zi+1 = zi + hf (ti , zi ) end for Linköpings universitet, ITN, Berkant Savas 5 TNA005: Tillämpad matematik i teknik och naturvetenskap VT 2015 Algoritm 2 Runge-Kutta ordning 4 for i = 0, 1, 2, . . . , n − 1 do k1 = hf (ti , zi ) k2 = hf (ti + h/2, zi + k1 /2) k3 = hf (ti + h/2, zi + k2 /2) k4 = hf (ti + h, zi + k3 ) zi+1 = zi + 16 (k1 + 2k2 + 2k3 + k4 ) end for Deluppgifter 3 6. Ta fram uttryck för f1 och f2 i ODE problemen (11) resp. (16). Du har bestämt dessa i tidigare uppgifter. Implementera f1 (t, z) och f2 (t, z) i lämpliga MATLAB-funktioner, t.ex. funk1.m och funk2.m. Varje funktionsfil tar en tidsvariabel t (skalär) och en kolumnvektor z som inparametrar och returnerar evalueringen av den aktuella funktionen i t och z. Notera att f1 , f2 , och z måste ha samma dimension. Funktionerna skall kunna anropas genom >> dz1 = funk1 (t , z ); >> dz2 = funk2 (t , z ); Utöver t och z, behöver funktionerna ha tillgång till parametrar som massan m. Denna gång definiera dessa parametrar internt i funktionerna. I fallet med raketmotor behöver du komma åt en massfunktion m(t), dess derivata m0 (t), och en hastighetsfunktion u(t). Det är lämpligt att implementera dessa funktioner i egna filer och få ut aktuella storheter genom funktionsanrop. Mer om detta i kommande uppgift. 7. Implementera Eulers metod och RK-4 metoden i MATLAB. Låt förslagsvis funktionerna vara odeSolverEuler.m och odeSolverRk4.m med fyra inparametrar som ges nedan: fun z0 tspan n funktionshandtag som anger funktionen för f (t, z); vektorn z0 anger begynnelsevillkor för ODEn; anger tstart och tslut , gränser för tidsintervallet, t.ex. tspan = [0,20]; n anger antalet diskretiseringspunkter. Låt vidare varje funktion returnera en tidsvektor t och en 4×(n+1) matris y med approximationer av den sökta lösningen. Efter implementeringen av ODE-lösarna och initiering av relevanta variabler skall ni kunna anropa funktionerna enligt följande för att få ut respektive approximativ lösning. >> [ t1 , y1 ] = odeSolverEuler ( @fun , tspan , z0 , n ); >> [ t2 , y2 ] = odeSolverRk4 ( @fun , tspan , z0 , n ); 8. Du ska i denna uppgift jämföra den analytiska lösningen y(t) av (10) (du har explicit uttryck för detta sedan tidigare) med tre stycken numeriska lösningar. Använd y(t) från den tidigare uppgiften där parametrarna (m, k, v0 , α) är sådana att lösningen prickar måltavlan. Låt n ∈ [20, 200]. Beräkna tre stycken approximativa lösningar för samma differentialekvation genom att använda f1 i (11). De numeriska lösningarna skall du beräkna genom att använda din egen Euler och RK-4 metod, samt MATLABs inbyggda ODE-lösare ode45. 9. I den sista uppgiften skall du skjuta iväg raketen och styra den så att den träffar en måltavla, som är betydligt högre upp än tidigare. Hörnen på måltavlan har nu koordinaterna: Linköpings universitet, ITN, Berkant Savas 6 TNA005: Tillämpad matematik i teknik och naturvetenskap VT 2015 (60,130), (70,130), (70,140), (60,140). Vi sätter initiala massan av raketen till m(0) = 5 kg, varav 1 kg är bränsle. Under tiden som motorn är igång förbränner den 200 g bränsle per sekund. Detta gör att motorn kan vara igång som mest 5 sekunder. Om vi startar raketmotorn vid t = 0 och håller motorn igång tills bränslet är slut kommer massfunktionen av raketen, och dess derivata, att se ut enligt följande ( ( 5 − 0.2t om 0 ≤ t ≤ 5, −0.2 om 0 ≤ t ≤ 5, m(t) = m0 (t) = 4 om 5 < t, 0 om 5 < t. Det är smidigt att implementera m(t) och m0 (t) i en egen funktion som anropas i f2 (t, z) för att få aktuell massa och derivata vid en given tidpunkt. Du behöver även specificera u(t) i ekvation (13). Låt masspartiklarna ha en konstant fart km ut från motorn, men motorns riktning θ(t) kan du styra fritt. Detta innebär ux (t) km cos(θ(t)) ku(t)k = km , samt u(t) = = . uy (t) km sin(θ(t)) Fysikaliskt innebär detta att raketmotorn går på full kraft. Utgå ifrån att θ anger vinkeln från positiva x-axeln. För att få en kraft uppåt måste partiklarna skjutas rakt ner. Detta ger vinkeln θ = −π/2 (eller θ = 3π/2 om du vill). I tidigare uppgifter har du skjutit iväg kulan, genom att ange en viss begynnelsefart v0 . I denna uppgift skall du låta raketen röra sig av egen kraft, du sätter därmed v0 = 0. Låt c = 0.05 kg/m och km = 700 m/s. Raketen måste lyfta vertikalt, θ(0) = −π/2, och komma upp till en viss höjd innan vinkeln θ(t) får börja ändras. Din uppgift är att experimentellt bestämma en funktion θ(t) som tar raketen till ovansidan av målet. Använd din egen RK-4 metod med n = 200 när du löser ODE-ekvationen numeriskt. 3 Skriftlig och muntlig redovisning Uppgifterna ovan skall redovisas i en skriftlig teknisk rapport om max 2 sidor. Rapporten måste inkludera följande: 1. Uttryck för x(t) och y(t) som löser ODE-ekvationerna (9) resp. (10). Använd begynnelsevillkoren i (5). 2. Figur som visar tre stycken grafer (y som funktion x och ) där du träffar ovansidan av måltavlan. En graf för vart och ett av fallen med olika luftmotstånd (se uppgift 3). Presentera all nödvändig information så att det går att reproducera resultaten. Diskutera resultat och förutsättningar. 3. Jämförelse mellan den analytiska lösningen y(t) och motsvarande numeriska lösningar från egenimplementerade ODE-lösare och MATLABs ode45. Plotta absolutbeloppet av felet med semilogy för att tydligt kunna se skillnader mellan lösningarna. Diskutera resultat och förutsättningar. 4. En figur som visar raketens flygbana där du återigen prickar ovansidan av den högre måltavlan. Visa även en plott av motorns riktning θ(t). Diskutera och relatera olika skeden av θ(t) till hur raketens bana påverkas. Linköpings universitet, ITN, Berkant Savas 7 TNA005: Tillämpad matematik i teknik och naturvetenskap VT 2015 5. Diskussion och reflektion med utgångspunkt i ett av tillämpningsscenarierna om hur du skulle kunna gå vidare med projektet. OBSERVERA: Denna gång blir det ingen komplettering. Det är därför viktigt att rapporten redan vid den första inlämningen är korrekt och fullständig. Använd en lämplig disposition likt tidigare miniprojekt; krav på reproducerbarhet gäller fortfarande; använd källor och referera i texten till alla källor; referera till alla figurer i texten; låt alla figurer ha en beskrivande figurtext, osv, osv. Den muntliga redovisningen skall innehålla resultat och diskussion av analysen och experimenten som du har utfört. Visualisera flitigt dina resultat i olika figurer med hjälp av dator. Referenser [1] L. Eldén and L. Wittmeyer-Koch. Numeriska beräkningar – analys och illustrationer med MATLAB. Studentlitteratur, 4 edition, 2001. [2] G. Forsling and M. Neymark. Matematisk analys – en variabel. Liber, 2011. [3] P. Jönsson. MATLAB-beräkningar inom teknik och naturvetenskap. Studentlitteratur, 2010. Linköpings universitet, ITN, Berkant Savas 8