Byggnationen av Cheopspyramiden - ett visualiseringsprojekt. Mathias Bergqvist, Rikard Gehlin, Henrik Gunnarsson



Relevanta dokument
Inledning. Kapitel Bakgrund. 1.2 Syfte

9-1 Koordinatsystem och funktioner. Namn:

LABORATIONSHÄFTE NUMERISKA METODER GRUNDKURS 1, 2D1210 LÄSÅRET 03/04. Laboration 3 3. Torsionssvängningar i en drivaxel

Inlämningsuppgift 4 NUM131

Två gränsfall en fallstudie

Betygskriterier Matematik E MA p. Respektive programmål gäller över kurskriterierna

Integration av matematik och teknik på ingenjörsutbildningar

2014:2 RIKSFÖRENINGEN FÖR LÄRARNA I MATEMATIK, NATURVETENSKAP OCH TEKNIK

Dataprojekt. Nanovetenskapliga tankeverktyg. January 18, 2008

Inlämningsuppgift 1. 1/ Figuren visar ett energischema för Ulla som går uppför en trappa. I detta fall sker en omvandling av energi i Ullas muskler.

2D1210, Numeriska Metoder, GK I för V 2.

Matematik 5 Kap 3 Derivator och Integraler

Gel esimulering 22 mars 2008

Digitalt lärande och programmering i klassrummet. Introduktionsworkshop - Bygg ett akvarium i Scratch

En trafikmodell. Leif Arkeryd. Göteborgs Universitet. 0 x 1 x 2 x 3 x 4. Fig.1

Inför provet mekanik 9A

LAB 4. ORDINÄRA DIFFERENTIALEKVATIONER. 1 Inledning. 2 Eulers metod och Runge-Kuttas metod

ELEVINSTRUKTION - BILSIMULERING ALGODOO

Vrid och vänd en rörande historia

Peter Ottosson 31/ Introduktionskurs i datateknik II1310

8-1 Formler och uttryck. Namn:.

Mekanik III, 1FA103. 1juni2015. Lisa Freyhult

Försättsblad till skriftlig tentamen vid Linköpings Universitet

Linnéuniversitetet. Naturvetenskapligt basår. Laborationsinstruktion 1 Kaströrelse och rörelsemängd

Övningar för finalister i Wallenbergs fysikpris

BASFYSIK BFN 120. Laborationsuppgifter med läge, hastighet och acceleration. Epost. Namn. Lärares kommentar

Matematisk analys för ingenjörer Matlabövning 3 Numerisk lösning av differentialekvationer

Laboration 4. Numerisk behandling av integraler och begynnelsevärdesproblem

Grunderna i stegkodsprogrammering

Post Mortem för Get The Treasure!

Separata blad för varje problem.

Matematik 2 Digitala övningar med TI-82 Stats, TI-84 Plus och TI-Nspire CAS

Teknikprogrammet, inriktning informations- och medieteknik

Vetenskapsdagen 2016 SciLab för laborativa inslag i matematik eller fysik

Att välja kurser på Datateknik år 4-5

Matematik E (MA1205)

Fria matteboken: Matematik 2b och 2c

4.2 Fastställ en referenslösning Kundvärde... 6

Evaluation Summary - CD5570 DoA, distans VT 2004 Dan Levin

Redovisning av inlämningsuppgifter

MODELLERING AV DYNAMISKA SYSTEM OCH INLUPP 2

Positiv Ridning Systemet Arbetar min häst korrekt? Av Henrik Johansen

Viktiga moment i kursplanen

Inledande matematik M+TD

Beräkningsuppgift I. Rörelseekvationer och kinematiska ekvationer

Consump. Om du kör miljövänligt så visar den grön text och kör du inte miljövänligt så visar rött, kör du något där emellan visar den gult.

Procedurell stad. Projekt i kursen TNM022 Procedurella metoder för bilder. Tobias Heldring, tobhe

RödGrön-spelet Av: Jonas Hall. Högstadiet. Tid: minuter beroende på variant Material: TI-82/83/84 samt tärningar

Processidentifiering och Polplacerad Reglering

NATIONELLT PROV I MATEMATIK KURS E HÖSTEN 1996

varandra. Vi börjar med att behandla en linjes ekvation med hjälp av figur 7 och dess bildtext.

TI-89 / TI-92 Plus. en ny teknologi med

(Eftersom kraften p. g. a. jordens gravitation är lite jämfört med inbromsningskraften kan du försumma gravitationen i din beräkning).

Mekaniska vågor. Emma Björk

Tentaupplägg denna gång

Laboration 4. Numerisk behandling av integraler och begynnelsevärdesproblem

Grafisk visualisering av en spårbarhetslösning

DAGBOK HB ADVENTURE TEAM. Vårat lag: Jinci, Ida, Jennifer, Felicia Lagledare: Hans

Var försiktig med elektricitet, laserstrålar, kemikalier osv. Ytterkläder får av säkerhetsskäl inte förvaras vid laborationsuppställningarna.

Funktioner och grafritning i Matlab

Föreläsning 3.1: Datastrukturer, en översikt

Uppdrag för LEGO projektet Hitta en vattensamling på Mars

Reglerteknik M3. Inlämningsuppgift 3. Lp II, Namn:... Personnr:... Namn:... Personnr:...

Trycket beror på ytan

MATEMATIK FÖR KURS B (B-boken version 2)

Lektion 1: Fördelningar och deskriptiv analys

Figur 1. Skärmbild med markerade steg i videon. Diagram och tabell som visar positionerna som funktion av tiden.

REPETITION (OCH LITE NYTT) AV REGLERTEKNIKEN

Algoritm för uppskattning av den maximala effekten i eldistributionsnät med avseende på Nätnyttomodellens sammanlagringsfunktion

NXT LEGO-robot laboration Programmering och felsökning av en LEGOrobot

Objektorienterad programmering

6.2 Partikelns kinetik - Tillämpningar Ledningar

Överföringsfunktioner, blockscheman och analys av reglersystem

Just nu pågår flera satsningar för att förbättra svenska elevers måluppfyllelse

4 Numerisk integration och av differentialekvationer

Att använda pekare i. C-kod

Nr 1 år 2007 Årgång 25

Integration av matematik och teknik på ingenjörsutbildningar

LiTH. WalkCAM 2007/05/15. Testrapport. Mitun Dey Version 1.0. Status. Granskad. Godkänd. Reglerteknisk projektkurs WalkCAM LIPs

Projekt i Bildanalys: Automatisk detektion av lungemboli ur scintbilder

a), c), e) och g) är olikheter. Av dem har c) och g) sanningsvärdet 1.

Partiklars rörelser i elektromagnetiska fält

Brandsäker rökkanal. Skorstensfolkets guide till en trygg stålskorsten

GPS-sändare: en ny era för studier av beteendeekologi hos vilda djur

THALASSOS C o m p u t a t i o n s. Ny hamn i Trelleborg. Modellberäkning av vattenomsättningen öster och väster om hamnen.

Ma2bc. Komvux, Lund. Prov 1. 1-Övningsprov.

Föreläsningen ger en introduktion till differentialekvationer och behandlar stoff från delkapitel 18.1, 18.3 och 7.9 i Adams. 18.

TAIU07 Matematiska beräkningar med Matlab

Allmän studieplan för utbildning på forskarnivå i

HÖGSKOLAN I KALMAR Institutionen för teknik Erik Loxbo LABORATION I PLC-TEKNIK SEKVENSSTYRNING AV TRANSPORTBAND SIMATIC S7 - GRAPH

BEDÖMNINGSSTÖD. till TUMMEN UPP! matte inför betygssättningen i årskurs 6

Splitsning av flätade linor gjorda av polyester eller nylon.

MA 1202 Matematik B Mål som deltagarna skall ha uppnått efter avslutad kurs.

D I G I TA LT S K A PA N D E

Östbergsskolans loggbok!

Grupp 1: Kanonen: Launch + Top Hat + Lilla Lots

Gunnesboskolan, miljövänlig? Energi och Miljö tema VT-10

Information om ämnet Militärteknik med diagnostiskt självtest av förkunskaper till blivande studerande på Stabsutbildningen (SU)

Introduktion till kursen och MATLAB

Tentamen, EDA501 Programmering M L TM W K V

Transkript:

Byggnationen av Cheopspyramiden - ett visualiseringsprojekt Mathias Bergqvist, Rikard Gehlin, Henrik Gunnarsson 25 April 2010

0.1 Förord Gruppen vill tacka Adam Grudzinski för att ha fått tillåtelse att använda hans arbete och för den hjälp och det stöd han har gett oss under arbetets gång.

Sammanfattning Detta är en rapport för ett projekt i kursen TNM085 - Modelleringsprojekt, Linköpings Universitet, Campus Norrköping. Projektet gick ut på att i grupper under sex veckor framställa en grafisk animation av ett fysiskt system. Denna grupps valda system blev en simulering av hur Cheopspyramiden byggdes och hur mekanikens lagar påverkar de stenblock som användes då. Systemet simulerades i OpenGL.

Innehållsförteckning 1 Inledning 1 1.1 Inledning..................................... 1 1.2 Syfte........................................ 2 2 Modellen 3 3 Det fysikaliska systemet 5 3.1 Förenklingar.................................... 7 3.2 Numeriska metoder................................ 8 4 Animeringen 9 4.1 Mjuk- och hårdvarukrav............................. 9 4.1.1 Hur man kör animationen........................ 10 5 Avslutning 11 5.1 Epilog....................................... 11 5.2 Diskussion..................................... 11 Litteraturförteckning 13

Figurer 1.1 Cheops pyramiden [1]............................... 1 2.1 Exempel på hur blocktransporten kunde ha sett ut................ 3 2.2 Systemet av taljor [2]............................... 4 3.1 De krafter som påverkar blocket......................... 6 3.2 Resultatet av simuleringen av blockdiagrammet i Simulink........... 6 3.3 Blockdiagramet i Simulink............................ 7 3.4 Plot i Matlab av blockets rörelse......................... 7 4.1 Skärmbild vid 3D-simuleringen av systemet vid en viss tidpunkt. Fås vid körning av C++-koden................................... 10

Kapitel 1 Inledning 1.1 Inledning Kursen Modelleringsprojekt är en del i utbildningen Medieteknik på Linköpings universitet, campus Norrköping. Kursen ges i årskurs 3 och examineras genom ett projekt. Studenterna ska under några veckor, i små grupper, utforma en simulering av ett fysiskt system. Denna grupp, nummer 10, valde att simulera en teori om hur byggandet av den berömda Cheopspyramiden gick till. Teorin är en vidareutveckling av Adam Grudzinskis patentsökta system. Adam är en polsk fysiker som tror att egyptierna har använt taljor, rep och speciella gångar, funna i pyramiden, för att förflytta stenblocken inuti pyramiden upp till de olika nivåerna. Cheopspyramiden eller Khufuspyramiden som den också kallas, påbörjades år 2550 f. Kr [3]. Pyramiden, som är den största i världen, lät byggas av farao Khufu i Giza, Egypten. Den består av 2,3 miljoner stenblock med en medelvikt som varierade från 2,5 till 15 ton och är 147 meter hög. Inuti pyramiden finns det flera gångar och begravningskammare. Farao Khufu begravdes i en av dessa kammare (kungens kammare). Figur 1.1: Cheops pyramiden [1] 1

1.2 Syfte Syftet med projektet är att de studerande ska använda de kunskaper man fått genom tidigare kurser på medieteknikprogrammet. Dessa ska, tillsammans med programmeringskunskaper, användas för att animera ett fysiskt sytem. 2

Kapitel 2 Modellen Vår teori hävdar att man med manskraft drog upp de tunga stenblocken inuti gångarna som finns i pyramiden. Längs sidorna i dessa har man har funnit håligheter som placerats ut med ungefär 1m mellan varandra. I dessa tror Grudzinski att man satt stora trästockar med sågtandad sida för att underlätta vid transporten av blocken. Dessa har varit vinklade så att blocken kunnat vila på varje tand (se fig. 2.1). Med hjälp av dessa antas man ha dragit blocken 1/4m åt gången. Stockarna har även varit inoljade med hampaolja för att minska friktionen. Utöver detta tror Adam att ett system av taljor användes för att göra det lättare att forsla upp blocken (Se fig. 2.2). Taljsystemet består av 6 ihopsatta block vilket gör att det då krävs 6 gånger mindre kraft för att dra upp blocken. Eftersom gångarna har begränsat utrymme användes vevar för dra in blocken. Figur 2.1: Exempel på hur blocktransporten kunde ha sett ut 3

Figur 2.2: Systemet av taljor [2] 4

Kapitel 3 Det fysikaliska systemet Det fysiska systemet visar hur mekanikens lagar påverkar blocken då de transporteras uppför gångarna (se figur 3.1). Följande faktorer påverkar blocken när detta sker: tyngdkraften lutningen på gången friktionen mot underlaget dragkraften av arbetarna taljornas påverkan För att räkna ut hur blocket rör sig i rampen räknas först den kraft som drar blocket nedåt i rampen enligt ekvation 3.1. F block = µ s mgcosθ + mgsinθ (3.1) Där µ betecknar friktionskoefficienten, m är blockets massa, g är gravitationen och Θ är lutningen på gången (se fig. 3.1). Sedan beräknas hur stor den kraft som påverkar blocket i positiv riktning, enligt ekvation 3.2. F = F human g (3.2) Där F human är den kraft som arbetarna drar med. Skillnaden mellan dessa används för att få fram en resulterande kraft på blocket. Om den resulterande kraften är positiv kommer blocket att röra sig uppåt och på samma sätt kommer den att glida ned om kraften är negativ. För att få fram accerelationen på blocket i en aktuell tidpunkt använder man sedan ekvation 3.3. a = F res (3.3) m Där F res är skillanden mellan F och F block. Man kan nu beräkna aktuell hastighet och position för blocket i backen med hjälp av evkvationerna 3.4 och 3.5. Detta görs med eulers stegmetod, som beskrivs mer utförligt i avsnitt 3.2. V och x blir resultatvektorer, de kommer innehålla alla värden för hastighet och position under simuleringen. Dessa båda ekvationer är tidsberoende dvs. att varje nytt resultat beror på det föregående värdet i tidspositionen före. 5

v(t) = v 0 + at (3.4) x(t) = x 0 + v 0 t (3.5) Där v 0 är utgångshastighet, x 0 är startposition och t är tiden i sekunder. Innan vi implementerade fysiken i systemet testade vi att implementera den i simulink med blockdiagram. Som stegmetod valdes Euler. Fig. 3.2 nedan visar den plott som simuleringen gav. I figur 3.3 syns själva blockdiagrammet. Figur 3.1: De krafter som påverkar blocket Figur 3.2: Resultatet av simuleringen av blockdiagrammet i Simulink Blockets rörelse plottade vi även i matlab med hänsyn till att de som drog blocket bara drog 25 cm åt gången (se fig. 3.4). Detta gjordes för att spara energi och var möjligt tack vare de sågtandade stockarna. De aktuella parameterna i figur 3.4 är: m = 10000kg, µ = 0.63, Θ = 45, antalpersoner = 8st, taljor = 13st. Vi räknar med att varje person kan dra 70 kg. 6

Figur 3.3: Blockdiagramet i Simulink 1.4 1.2 Graf över blockets rörelse Blockets rörelse 1 position [m] 0.8 0.6 0.4 0.2 0 0 50 100 150 200 250 300 350 400 450 tid [s] 3.1 Förenklingar Figur 3.4: Plot i Matlab av blockets rörelse I det fysikaliska systemet har vissa förenklingar gjorts. För det första har det inte räknats på hur friktionen i taljorna påverkar systemet. Istället har gruppen utgått från det kända taljsambandet. Där anger antalet block som används hur många gånger lättare det är att dra en vikt. Anledningen till denna förenkling i systemet är att den påverkan friktionen i taljorna har anses marginell. Dessutom blir ekvationerna betydligt mer avancerade då flera block används. Att ta med detta i beräkningarna ansågs inte ge någon direkt vinning. För det andra valde gruppen att inte ta med friktionen som uppstår mellan vevhjulet och dess ställning. Anledningen till detta är precis som föregående, att det har marginell påverkan på slutresultatet. För det tredje räknas det med att varje man som arbetar trycker/drar med samma kraft, samtidigt på veven. Detta är förstås inte realistiskt på grund av de varierande fysiska förutsättningarna mellan olika människor. Då detta inte var en viktig del i vårt arbete gjorde vi det enkelt för oss 7

och räknade med en medelkraft som varje man kan uträtta. 3.2 Numeriska metoder Den numeriska metod som användes för att lösa vår differentialekvation var Eulers metod[4]. Metoden används för att approximera en differentialekvation. Metoden är en så kallad återkopplande metod. Man börjar med funktionsderivatan i en punkt på kurvan och ett funktionsvärde i samma punkt, se ekvation 3.6. y = f(x,y) y(x 0 ) = y 0 (3.6) För att räkna ut nästa värde på kurvan räknar man fram med en vald steglängd, h. Därefter räknar man ut funktionsderivatan och ett nytt funktionsvärde i den aktuella punkten enligt ekvation 3.7. y (x 0 ) = f(x 0,y 0 ) y(x 0 + h) y(x 0 ) + hf(x 0,y 0 ) (3.7) Detta tillämpas sedan tills man fått det antal punkter man vill ha enligt följande: y 1 = y 0 + hf(x 0,y 0 ) y 2 = y 1 + hf(x 1,y 1 )... y n = y n 1 + hf(x n 1,y n 1 ) Eulers stegmetod är den allra enklaste möjliga metoden för lösning av differentialekvationer. Metoden ger i allmänhet ganska dålig noggranhet. Ett exempel på en bättre metod är fjärde ordningens Runge-Kutta [5]. Vi valde dock att använda Euler efter som den metoden är lättare att implementera. Ett test där Runge-Kutta implementerades gjordes också men det blev ingen större skillnad mellan de hastigheter och positioner vi fick ut från de båda metoderna. 8

Kapitel 4 Animeringen Själva animationen av systemet gjordes i OpenGL som är ett API för att programmera datorgrafik. OpenGL finnas till flera programmeringsspråk. Det språk vi programmerade i var C++. Själva programmet består av sju filer: Main.cpp Själva huvudprogrammet. Här sköts all grafik, alla anrop till de olika standardbiblioteken i OpenGL (glut och glu). Programmet ritar upp själva scenen, laddar texturer, sköter all fönsterhantering, uppdateringar scenen som gör att vi får en animation och gör funktionsanrop till beräkningar. Mechanichs.cpp Här görs alla fysiska beräkningar. Implementeringen av Eulers stegmetod görs också i det här programmet. Mechanics.h Definerar alla funktioner som finns i mechanics.cpp. Meny.cpp Denna fil tar hand om all användarinmatning av parametrar. Meny.h Definerar alla funktioner som finns i meny.cpp. Imageloader.cpp Denna fil sköter inläsningen av bilder för användning till texturer. Filen har gruppen hämtat med tillåtelse från skaparen, från dennes webbplats [6]. Imageloader.h Definerar alla funktioner som finns i imageloader.cpp. För mer information om kodens uppbygnad, se bifogad kod och dess kommentarer. 4.1 Mjuk- och hårdvarukrav Mjukvarukrav Vid kodning behövdes en C++ kompilator utrustad med glu.h och glut.h bibliotek. När animeringen skall köras är det enda kravet operativsystemet Windows. Hårdvarukrav OpenGL-kompatibelt grafikkort. 9

4.1.1 Hur man kör animationen För att köra programmet gör följande: Kör exekveringsfilen. Välj menyalternativ för att ändra parametrar och att starta animeringen Figur 4.1: Skärmbild vid 3D-simuleringen av systemet vid en viss tidpunkt. Fås vid körning av C++-koden 10

Kapitel 5 Avslutning 5.1 Epilog Under de veckor som projektet har genomförts har vi som grupp fått utnyttja våra kunskaper som vi införskaffat oss i tidigare kurser. Projektet gav oss en möjlighet att kombinera kunskaper i allt från matematik och fysik till modellbygge och simulering och även kunskaper inom programmering. Detta har producerat ett resultat som är unikt i denna mening. 5.2 Diskussion Vid valet av vad projektet skulle handla om hade gruppen flera alternativ att välja mellan. Bland annat diskuterades bilsimulator och simulering av fluider. Anledningen till att vi till slut valde att simulera byggnationen av Cheopspyramiden var att det alternativet är unikt och nytt. Att vi dessutom under projektets gång hade kontakt med en fysiker och fick möjlighet att visualisera hans arbete har gjort arbetet mer intressant. Under de sex arbetsveckor som ägnats till projektet har arbetet flytit på i varierande takt. De problem som dykt upp har mestadels haft med fysiken att göra. Själva grunddelen av fysiken med block i lutande backe är väldigt basic och var inga problem. För att göra systemet mera avancerat tänkte vi därför i början även ta med hur mycket friktionen i varje block påverkade systemet. Efter en tids försök med detta insåg vi att det försvårade beräkningarna till den grad att det inte lönade sig att ta med dem då de inte påverkade systemet särskilt mycket. Många problem som vi stötte på berörde OpenGL. OpenGL är nytt för alla i gruppen och därför gick det mycket tid till att både lära sig språket och felsöka olika komplieringsfel. De problem som uppstod i OpenGL var bland annat att få till cylindrar. Efter många timmars sökande på lösningar och egna försök tvingades vi efter uteblivet resultat konstatera att vi var tvugna att ge upp. Detta medför att vi inte har kunnat illustrera taljorna och veven i våran animation. Själva beräkningarna för taljor och vev är dock med i uträkningen av hur blocket rör sig. Utöver taljorna och veven saknas även det rep som blocket drogs upp med. Anledningen till att vi inte tagit med det är återigen problemet vi hade med att modellera cylindrar, ett rep kan ju liknas med en smal avlång cylinder. Alternativ hade vi kunnat rita ut ett streck för att symbolisera repet med. Då detta inte blev särskilt visuellt tilltalande valde gruppen att även utesluta detta. Det resultat som stod klart efter de sex veckorna är gruppen nöjd med. Vi har fått fram det resultat vi satte som mål i början av projektet; en visualisering av hur blocken uppför sig enligt 11

mekanikens lagar. Vi hade dock önskat att vi haft mer tid för att även kunna modellera hela systemet med taljor, rep och vev. 12

Litteraturförteckning [1] Franchi L. Cheops Pyramid;. http://www.panoramio.com/photo/5761463. Tillgänglig: Mars 14, 2010. Website. [2] Carhart H Henry; Chute. Six-Pulleys;. http://commons.wikimedia.org/wiki/ File:Six-Pulleys.png. Tillgänglig: Mars 14, 2010. Website. [3] Wonder of the world;. http://www.nationalgeographic.com/pyramids/ khufu.html. Tillgänglig: Februari 25, 2010. Website. [4] Göran Forsling MN. Matematisk analys en variabel. Stockholm: Liber AB; 2004. [5] Fiedler G. Integration Basics;. http://gafferongames.com/game-physics/ integration-basics/. Tillgänglig: April 25, 2010. Website. [6] Jacobs B. Imageloader.cpp;. http://www.videotutorialsrock.com/opengl_ tutorial/textures/textures.zip. Tillgänglig: Mars 14, 2010. Website. 13