Designspecifikation Per Henriksson Version 1.0 1
Status Granskad - Godkänd - 2
Projektidentitet Optimering av Hjullastare HT2011 Linköpings Tekniska Högskola, ISY Namn Ansvar Telefon E-post Per Henriksson Projektledare 0702-720038 perhe377@student.liu.se Per Darnfors Designansvarig 0737-665151 perda988@student.liu.se Viktor Deleskog Testansvarig 0733-625061 vikde803@student.liu.se John Hansson Informationsansvarig 0708-278006 johha761@student.liu.se Jonas Rangsjö Dokumentansvarig 0704-051571 jonra302@student.liu.se Hanna Nyqvist 0706-170724 hanny589@student.liu.se Jonas Thellman 0704-023805 jonth595@student.liu.se E-postlista för hela gruppen: Hemsida för projektet: http://www.isy.liu.se/edu/projekt/reglerteknik/2011/wheelloader/ Kund: Volvo Construction Equipment AB (VCE) Kontakt hos Kund: Anders Fröberg E-post: anders.froberg@volvo.com Beställare av projektet: Erik Frisk E-post: frisk@isy.liu.se Telefon: +46 (0)13-28 5714 Handledare: Tomas Nilsson E-post: tnilsson@isy.liu.se Telefon: +46 (0)13-28 4066 3
Dokumenthistorik Version Datum Utförda förändringar Utförda av Granskad 0.1 2011-10-07 Första Utkastet Alla Alla 0.2 2011-10-11 Ändrat enligt handledare Alla JT och JH 4
Innehåll 1 Inledning 6 1.1 Syfte och Mål.................................. 6 1.2 Användning................................... 6 1.3 Definitioner................................... 6 2 Översikt av systemet 7 2.1 Transportbandsenheten............................ 8 3 Modeller 8 3.1 Däck....................................... 9 3.2 Lastare..................................... 10 3.3 Drivlina..................................... 11 3.3.1 Motor.................................. 12 3.3.2 Momentomvandlare och transmission................. 13 4 Delsystem 1 - Hjullastare 16 4.1 Estimering.................................... 16 4.1.1 Massa utan last............................. 17 4.2 Massa totalt................................... 17 4.2.1 Massa för last.............................. 17 4.2.2 Position................................. 18 4.3 Optimering................................... 19 4.3.1 Problemuppställning.......................... 19 4.3.2 Tillståndsbeskrivning för systemet.................. 20 4.3.3 Implementering............................. 20 4.3.4 CAN-kommunikation.......................... 24 4.3.5 Kommunikation med TBE:n...................... 24 4.4 Förargränssnitt................................. 24 5 Delsystem 2 - Transportband 25 5.1 Gränssnitt för TBE............................... 25 5.2 Schemaläggning................................. 27 6 Trådlös kommunikation 28 6.1 Datameddelandespecifikation......................... 29 5
7 Programstruktur 30 7.1 Översiktliga funktioner............................. 30 7.1.1 Kommunikation............................. 30 7.1.2 HLE................................... 30 7.1.3 TBE................................... 30 A Appendix A 32 6
1 Inledning Dokumentet beskriver hur bränslebesparings- och effektiviseringssystem som tas fram i projektet Optimering, estimering och styrning av hjullastare ska designas. Projektet utförs vid Linköpings tekniska högskola under hösten 2011 i samarbete med Volvo Construction Equipment AB (VCE). 1.1 Syfte och Mål Med dagens teknik och de metoder som används för styrning av hjullastare kan bränsleförbrukningen för två olika förare med samma köruppdrag resultera i stora skillnader. Målet med projektet är att ta fram ett system som minskar dessa skillnader genom att presentera information om körsätt för föraren. Föraren ska få den information som behövs för att fylla på transportbandet innan bufferttanken blir tom på ett så bränsleekonomiskt sätt som möjligt. 1.2 Användning Systemet är tänkt att användas vid ett grustag eller annan arbetsplats där en eller flera hjullastare förflyttar grus eller något liknande från en plats till en avlastningsplats med ett transportband. Systemet skall sedan utvärderas på en förutbestämd plats hos VCE i Eskilstuna samt på uppmätta data. 1.3 Definitioner Följande definitioner kommer användas i dokumentet: CAN-buss Kommunikationsbuss mellan hjullastarens inre sensorer och aktuatorer. TBE Transportbandsenheten, delsystemet vid transportbandet. HLE Hjullastarenheten, delsystemet i hjullastaren. Buffert Behållare av material vid transportbandet. NMPC Olinjär modellprediktiv regulator (nonlinear model predictive controller) Black-box-modell Modell där endast in- och utsignaler är kända, inre signaler samt ekvationsbeskrivningen av modellen är okänd. VCE Volvo Construction Equipment, beställare av projektet 7
2 Översikt av systemet En grov översikt av systemet kan ses i figur 1. Systemet kommer bestå av två olika delsystem, ett i hjullastaren (HLE) och ett vid transportbandet (TBE). Om mer än en hjullastare används kommer ytterligare en HLE per hjullastare att anslutas. Delsystemen kommer att kommunicera trådlöst via WLAN. HLE kommer att få information från TBE när hjullastaren bör anlända till bufferten för att undvika att den töms. Kördirektiv för att minimera bränsleförbrukningen beräknas sedan i HLE för att presenteras åt föraren via ett enkelt grafiskt gränssnitt. Hjullastaren Hjullastarenhet (HLE) GPS CAN Förargränssnitt WLAN Kommunikation Estimering Optimering Buffert Transportbandsenhet (TBE) Optimeringsresultat Maxtid till nästa lastning Körorder WLAN Kommunikation Loggning av data Lägg upp körschema Gränssnitt Figur 1: Enkel skiss över systemet Hjullastarenheten har som uppgift att skatta massan material i hjullastarens skopa. Denna information behövs sedan när enheten ska beräkna kördirektiv till föraren så att denna kan köra så bränsleekonomiskt som möjligt. För att kunna utföra dessa uppgifter behövs en bra modell av hur hjullastarens motor, drivlina och lasthydraulik fungerar. En översiktlig beskrivning av detta följer och noggrannare beskrivning av de modeller som kommer att användas kan ses i avsnitt 3. Genom att trycka på gaspedalen kommenderar föraren ett motorvarvtal till hjullastaren. En regulator justerar bränsleinsprutningen på ett sådant sätt att motorvarvtalet blir det önskade oavsett lasten på motorn, det vill säga ju större last ju mer bränsle sprutas in. Om lastskopan används så delas utmomentet från motorn upp mellan drivlinan och den hydraulik som styr skopan. Förutom detta fås en momentförlust till bland annat styrservo, fläktsystem och andra faciliteter. Drivlinan består, förutom av motorn, av en momentomvandlare, en transmission och en slutväxel. Momentomvandlaren ger ett utmoment som beror på varvtalsskillnaden mellan in- och utgående axlar. Förlusterna i denna är olinjära. Hjullastaren är automatväxlad och har fyra växlar framåt och fyra bakåt. Slutväxeln består av en differential och planetsteg. 8
Hydraulsystemet för hjullastarens lyftarmar består av två hydraulcylindrar som reglerar armarnas vinkel samt en hydraulcylinder för att styra skopans lutning. De tre cylindrarna drivs av två pumpar som är anslutna till motorsidan av momentomvandlaren. Flödesventiler manövreras från förarhytten och styr oljeflödet i systemet. En trycksensor finns monterad på pumpsidan från ventilen sett. Varvtalet på pumpen varierar med varvtalet hos motorn, ett varierbart deplacement reglerar därför flödet ut från pumpen via mekanisk återkoppling. En lastkännande ventil säkerställer att skillnaden i relativt tryck mellan lastsidan och pumpsidan är konstant då höjning/sänkning av lasten sker. Mätningar från lastsensorn är endast relavanta då skopan används eftersom sensorn annars bara ger ett konstant värde. En enkel skiss av cylindrarnas placering kan ses i figur 2. Figur 2: En enkel skiss över hur hydraulcylindrarna styr lyftarmarna. Två cylindrar sitter placerade på vardera lyftarm på trucken för att styra lyftarmarnas vinkel (1). Den tredje cylindern sitter placerad i mitten av trucken för att reglera skopans läge relativt lyftarmen (2). 2.1 Transportbandsenheten Transportbandsenheten har som uppgift att schemalägga körcyklerna för de hjullastarenheter som ingår i systemet. Den utgår från att materialbufferten töms med en konstant hastighet som beror på bandhastigheten, vilken användaren själv kan ställa in. Schemaläggningen har som utgångspunkt att bufferten inte ska vara tom. En estimerad tid då bufferten beräknas bli tom tas fram. Den hjullastare som till lägst kostnad (kostnaden anges i fraktad massa per förbrukad mängd bränsle) kommenderas sedan att anlända till bufferten innan denna tidsfrist. 3 Modeller Modeller över hjullastarens drivlina samt hydraulik som styr lastarens skopa behövs vid bränsleoptimering samt vid masskattning. Detta kapitel beskriver dessa modeller och vilka variabler som modellerna beror av. Det beskriver också vilka mätsignaler som är tillgängliga via hjullastarens CAN-bus. 9
Vid optimeringen krävs modeller över hela drivlinan samt en däckmodell för att kunna beräkna hur stora energiförlusterna blir givet en viss accelerationsprofil för hjullastaren. Hela drivlinemodellen ska även användas för att skatta fordonets massa enligt avsnitt 4.1. För att skatta lastens massa behövs dessutom en modell över hydrauliken som styr skopans rörelser. Black-box-modeller över hjullastarens motor samt övriga drivlina erhålls från VCE. Dessutom erhålls en modell över lastaren som översätter tryck i lasthydrauliken till kraft som verkar på hjullastarens skopa. Den däckmodell som behövs måste dock tas fram av projektgruppen själva. 3.1 Däck Flera modeller kommer att testas och utvärderas. Det som ska modelleras är det rullmotstånd som däckens dynamik ger upphov till. Hjullastarens massa kommer deformera däcken. Den horisontella dynamiken kommer således bero på den radiella deformeringen. I figur 3 visas en skiss över däckets deformering. / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / Figur 3: skiss över komprimerat däck Den första däckmodellen som ska undersökas kommer bygga på att rullmotståndet, R R, är en enkel funktion av massan. R R = a m där a är en parameter som skattas under tiden. Den andra lite mer komplicerade modellen som ska undersökas bygger på att rullmotståndet beror av deformationen i däcken. Deformationen beror i sin tur på massan och vi ansätter en funktion med typutseende enligt arctan för att beskriva kontaktytan med marken. Funktionen kan skrivas som R R = a arctan (b m). Parametrarna a och b i modellen skattas eller eventuellt hämtas från däcktillverkare. Den tredje och mest avancerade däckmodellen visas i figur 4. Denna modell kommer användas ifall en dynamisk modell som beror av hastighet är nödvändig. I modellen beaktas 10
däckets vertikala dynamik som en dämpad fjäder. Den horisontella dynamiken beskrivs också som en dämpad fjäder. Lasten kommer påverka den vertikala dynamiken som i sin tur påverkar den horisontella dynamiken. Utifrån den horisontella dynamiken kan sedan däckets rullmotstånd beräknas. För att modellera hela systemets rullmotstånd måste hänsyn även tas till fyrhjulsdriften. Då lastmaskinen är tungt lastad kommer skillnaden i radie fram och bak ge upphov till effektförlust. Detta på grund av att vinkelhastigheterna på däcken alltid är lika. Denna effektförlust modelleras som en viskös dämpning som beror av hastighetsskillnaderna i en kontaktpunkt med marken för respektive däck. Figur 4: Modell över däck I samtliga modeller måste parametrar skattas. Vid skattning av modellernas parametrar antas hjullastarens totala massa vara känd från mätningar. Momentet ut till hjulet antas vara givet av modeller. Genom att använda sambandet Mout = Frullr + mtotrdck 2 ω (1) kan parametrarna i Frull skattas med hjälp av minstakvadratskattning. rdck beror av massan och kommer vara också okänd. För att använda de mer avancerade däckmodellerna med flera parametrar kommer troligtvis en modell som beskriver däckradien behövas. Denna modell ska om nödvändigt konstrueras utifrån mätning av däckradie då maskinen står stilla med olika last. 3.2 Lastare Modellen över lastaren består av en black-box modell, tillhandahållen av VCE, där den vertikala kraften på skopan ges som funktion av lyftarmarnas vinkel, ϕ1, skopans vinkel, ϕ2,och hydraulsystemets tryck pls se figur 5. Vilka mätsignaler som finns tillgängliga för hydrauliksystemet kan ses i tabell 1. Mätningar från pumptrycket innan flödesventilen är endast relevanta då skopan används eftersom sensorn annars endast ger ett konstant värde. 11
1 Last- och 2 hydraul-system p ls Fskopa Figur 5: Modell över lastsystemet Mätsignal Enhet Beteckning Lyftarmens vinkel mrad ϕ 1 Skopans vinkel mrad ϕ 2 Pumptrycket innan flödesventilerna Pa p ls Tabell 1: Tillgängliga mätsignaler från hydraulsystemet 3.3 Drivlina Drivlinan består av fyra komponenter, motor, momentomvandlare, växellåda samt slutväxel. En enkel skiss av drivlinan kan ses i figur 6. I figuren finns även grenen som går ut till hydraulsystem inritad i form av pumpen och en symbolisk hydraulcylinder. 12
Störningskällor Tiltcylinder Fläkt Generator m.m Figur 6: Enkel skiss över drivlinan 3.3.1 Motor En black-box-modell över motorn erhålls av VCE. Denna tar önskat motorvarvtal som insignal och ger bränsleflöde in i motorn samt moment ut från motorn som utsignaler. Modellen kan ses i figur 7. komm Nmotor Motor Nmotor Vbränsle Figur 7: Modell över motor 13
Då köranvisningar till hjullastarföraren ska beräknas utnyttjas det faktum att föraren genom att trycka på gaspedalen endast ger ett önskat motorvarvtal till motorn. För att kunna beräkna vilken bränsleförbrukning lastaren har utnyttjas det faktum att bränsleflöde in i motorn finns som en signal på hjullastarens CAN-bus. Denna signal kan då integreras för att få total mängd insprutat bränsle. De signaler som berör motorn och som finns tillgängliga på hjullastarens CAN-buss kan ses i tabell 2. Mätsignal Enhet Beteckning Motorns varvtal rpm N motor Utgående moment från motor Nm M motor Bränsleflöde in i motor l/s Vbransle Tabell 2: Tillgängliga signaler från motorn Insignaler Kommenderat motorvavtal - N komm motor Utsignaler Verkligt motorvarvtal - N motor Bränsleflöde in i motorn - V bransle 3.3.2 Momentomvandlare och transmission Från VCE erhålls en black-box-modell som är en hopslagning av momentomvandlaren och övrig transmission på drivlinan. Insignal till denna modell är varvtal på ingående axel, hjulvarvtal samt växel och utsignal är utgående moment samt varvtal. En översikt över modellen kan ses i figur 8. 14
Mmotor Mextra Mhydraulik Nmotor Nhjul + - - t nr, t riktning Momentomvandlare och transmission Mhjul Figur 8: Modell över momentomvandlare och transmission Modeller Verkningsgrad för motor η motor = E bransle V bransle M motor N motor Omvandlaren fungerar som en olinjär transformator där utgående moment beror av varvtalsskillnaden mellan ingående och utgående axlar. Växellådan har fyra växlar framåt och fyra bakåt och är automatstyrd. Växelvalet modelleras som endast beroende av hjullastarens hastighet. Sist i drivlinan sitter en differential och planetväxelar som modelleras som en konstant utväxling. Förlusterna i momentomvandlaren samt transmissionen är olinjära och beror bland annat på turbulens, varvtal och viskositet hos vätskan samt värmeförluster. Verkningsgraden kan beräknas med hjälp av den erhållna black-box-modellen. Inmomentet till systemet är utmomentet från motorn minus de momentförluster som går till att styra lastaren samt övriga faciliteter som till exempel fläktar i förarhytten, laddning av batterier med mera. Signaler som berör momentomvandlaren och transmissionen kan ses i tabell 3. 15
Mätsignal Enhet Beteckning Varvtal hos utgående axel från rps N momentomv momentomvandlare Utgående moment från momentomvandlare Nm M momentomv Växel - t nr Växelriktning - t riktning Tabell 3: Tillgängliga mätsignaler från momentomvandlare och transmission Insignaler Ingående moment till momentomvandlare - M motor M extra M hydraulik Motorvarvtal - N motor Hjulvarvtal - N hjul Växel - t nr Växelriktning - t riktning Utsignaler Utgående moment till hjul - M hjul Modeller Verkningsgrad för hopslagning av momentomvandlare och transmission Att bestämma: f ηtransmission η transmission = Momentförlust till extra facilitier samt hydraulik Att bestämma: K extra,k hydraulik (konstanter) Växelval Att bestämma: f tnr M hjuln hjul M motor N motor (2) M extra = K extra (3) M hydraulik = K hydraulik (4) t nr = f tnr (v lastare ) (5) 16
4 Delsystem 1 - Hjullastare Delsystemet i hjullastaren består av en PC med WLAN och MatLab. Systemets uppgift är att ge hjullastarföraren kördirektiv så att frakten av material till bufferten sker bränsleeffektivt. Kördirektivet kommer att ges i form av en bild som visar hur långt ner föraren bör trycka gaspedalen, det vill säga vilket motorvarvtal föraren bör kommendera. Systemet har även som uppgift att skatta hur mycket material som finns i hjullastarens skopa och sända denna information till TBE:n för att underlätta dess schemaläggning. För att klara av uppgiften är HLE:n indelad i fyra mindre delsystem med var sin specifik uppgift. Förargränssnitt Kommunikation Optimering Estimering Hjullastarenheten styrs via förargränssnittet och de övriga tre delsystemen körs parallellt i bakgrunden. Programstrukturen kan ses i figur 9. HLE Förargränssnitt Kommunikation Optimering Estimering TBE CAN-bus Figur 9: Programstruktur för hjullastarenheten 4.1 Estimering Delsystemet Estimering har som syfte att skatta tillstånd för hjullastaren som inte kan erhållas via CAN-bussen eller där de erhållna värdena är för onoggranna. De tillstånd som måste skattas är hjullastarens totala massa och dess hastighet, vilka behövs i bränsleoptimeringen beskriven i avsnitt 4.3, samt massan på materialet i hjullastarens skopa, vilken begärs av TBE:n. 17
4.1.1 Massa utan last Innan systemet startar ska en invägning av hjullastare, utan last i skopan men inklusive förare, ske. Vid denna mätning erhålls hjullastarens tomvikt, m 0 lastare. Vid körning förlorar hjullastaren massa i form av bränsle som förbränns. En skattning av hjullastarens tomvikt vid tiden t kan då erhållas enligt ekvation 6. t m tom lastare = m 0 lastare ρ bransle t 0 Vbransle dt (6) ρ bransle är bränslets densitet. Bränsleflödet in i motorn, V bransle, erhålls från hjullastarens CAN-buss. 4.2 Massa totalt Hela maskinens vikt skattas genom att massan, m maskin, bestäms ur F netto = m maskin a (7) Accelerationen, a, fås genom att derivera hastighetssignalen. Kraften F netto fås ur F netto = M hjul /r hjul F rull m sin(α) (8) där r hjul och F rull är hjulens radie respektive rullmotstånd och ges av modellen över däcken. M hjul är moment ut till hjulen och ges av modeller för motor och drivlina och baseras på insprutad bränslemängd. F rull = M hjul r b m g r cos(α) b m g m sin(α) = m ω r (10) r cos(α) x 1 := m (11) x 2 := ω (12) x 3 := ω (13) x 1 = 0(+brus) (14) x 2 = x 3 (15) x 3 = 0(+brus) (16) (9) 4.2.1 Massa för last Hur mycket last som finns i skopan skattas med hjälp av två olika metoder. Den ena metoden utnyttjar att trögheten och friktionen för hjullastaren ökar med lasten. Den andra metoden utnyttjar att trycket i hydraulsystemet ökar med ökande last. Metod 1 Lastens massa fås genom att dra av maskinens tomvikt från den skattade massan för hela maskinen. 18
Metod 2 För att beräkna massan på lasten i skopan används F vert = m last g (17) där F vert är den vertikala kraften på lasten, m last är lastens massa och g är gravitationskonstanten. F vert fås från en black-box modell över lastaren som funktion av hydraultrycket och lyftarmsvinklarna. Lasten kommer endast att skattas vid höjning av lyftarmarna då tryckgivaren, som sitter före riktningsventilerna, i annat fall inte ger någon relevant information. För att veta när skopan höjs fritt, utan att vicka skopan i någon grushög, används positionsskattningen för att bestämma var i körcykeln lastaren befinner sig. För att veta att det är lyftarmarna som lyfts och inte bara skopan som tiltas så kollas spakpositionerna för riktningsventilerna. För att få en bra skattning vid ryckig körning räknas massan ut som tidsmedelvärdet 4.2.2 Position 1 t 2 t 1 t2 t1 F vert dt = m last g (18) Positionen för hjullastaren behöver skattas för att optimeringsalgoritmen kräver avstånd till transportband vid lastad skopa och när hjullastaren har tömt respektive fyllt skopan och är i starten på transportsträckan. För att veta var på transportsträckan hjullastaren befinner sig integreras hastigheten från lastning eller tömning med antagandet att efter lastning är hjullastaren på väg mot transportbandet och tvärt om. För att veta att hjullastaren har lastat skopan och ska börja köra mot transportbandet kollas följande i tidsordning: Hydraultryck högt samtidigt som skopan är vinklad uppåt. Skopan vinklad uppåt och hastighet bakåt. Hastighet framåt, lyftarmarna vinklat lågt och skopan vinklad uppåt. För att veta att hjullastaren har tömt skopan och ska börja köra mot lastplatsen kollas följande i tidsordning: Liten hastighet framåt, lyftarmarna vinklat högt och skopan vinklad nedåt. Hastighet bakåt. Hastighet framåt. Eventuellt används en GPS- mottagare för attfå en bättre skattning av position. 19
4.3 Optimering Delsystemets uppgift är att beräkna en körprofil för hjullastaren som minimerar bränsleförbrukningen då hjullastaren färdas från lastplatsen till avlastningsstationen. En banprofil mellan platserna antas vara känd i förväg. Denna betecknas med h(s) och beskriver höjden över en referensnivå givet en färdad sträcka från lastplatsen. Dessutom måste hjullastarens massa vara känd så en invägning av hjullastaren utan last i skopan måste ske innan systemstart. Med dessa förutsättningar sker bränsleoptimeringen enligt beskrivningen i detta avsnitt. 4.3.1 Problemuppställning Med hjälp av de modeller som beskrivs i modellavsnittet 3 kan bränsleförbrukningen för hjullastaren beräknas och modelleras. Denna förbrukning ska sedan minimeras med bivillkoret att bufferten ska vara tom så lite som möjligt. Från TBE:n erhålls tiden t max som anger den tidpunkt då hjullastaren bör vara på plats vid bufferten för att den inte ska tömmas. Benämn bränsleflödet V bransle ( x(t), N motor (t)) där x(t) benämner tillståndsvektorn för hjullastaren och N motor, som betecknar motorns varvtal, är den styrsignal som finns att tillgå. Bränsleoptimeringsproblemet kan då formuleras enligt ekvation 19. min N motor(t) k buffert (t framme t max ) + k bransle t framme t start Vbransle ( x(t), N motor (t), x start (t))dt (19) k bransle och k buffert är reglerparametrar som anger kostnadsvikter för bränsleförbrukning respektive den tid som bufferten får stå tom. Genom att lösa ovanstående optimeringsproblem kan en optimal körprofil i form av motorvarvtal erhållas mellan tidpunkterna t start, som är tidpunkten då optimeringen startar, och t framme, som anger tiden då lastaren är framme. Lösningen som erhålls måste uppfylla vissa krav. Dessa krav är: Hjullastaren får inte anlända till bufferten om bufferten inte är redo att ta emot nytt material. I de fall då systemet innehåller flera HLE:er kan bufferten till exempel vara upptagen av en annan lastare som man måste vänta på. t framme t min Tiden t min erhålls från TBE:n och anger tiden tills då bufferten är redo att ta emot nytt material. Beräknad optimal styrsignal N motor (t) måste ligga inom motorns arbetskapacitet N min motor N motor (t) N max motor t på arbetsplatsen så får hjullas- Om det finns någon hastighetsbegränsning, v max tarens hastighet ej överskrida denna lastare v lastare (t) v max lastare 20
4.3.2 Tillståndsbeskrivning för systemet För att beskriva systemet behövs tillstånden i tabell 4. Tillstånd Variabel Beskrivning x 1 m tot lastare Hjullastarens totala massa x 2 v lastare Hjullastarens hastighet x 3 s lastare Färdad sträcka x 4 N motor Motorns varvtral x 5 t kvar Tid kvar tills lastaren bör vara vid bufferten Tabell 4: Tillstånd för systembeskrivning vid bränsleoptimering Styrsignaler för systemet kan ses i tabell 5. Styrsignal Variabel Beskrivning u N kommenderad motor Önskat motorvavtal Tabell 5: Styrsignaler för systembeskrivning vid bränsleoptimering Med hjälp av modellerna beskrivna i avsnitt 3 kan systemet simuleras och och kosntadsfunktionen beräknas. 4.3.3 Implementering Optimeringsproblemet kommer att lösas med hjälp av dynamisk programmering. Detta innebär att lösningen kommer bestå av två delar, en som utförs offline innan körningen av hjullastaren börjar och en som utförs online under tiden som lastning pågår. Offline-delen går ut på att man i förväg beräknar optimala körprofiler Nmotor kommenderad (t) för alla de tillstånd som hjullastaren kan komma att hamna i. Online-delen går sedan endast ut på att söka bland alla dessa lösningar för att vid varje sampling hitta den bästa lösningen givet hjullastarens nuvarande tillstånd. Genom att inte lösa hela problemet online kan man snabba upp optimeringsprocesssen under körning och få en lösare som snabbare anpassar sig till oförutsedda störninger och förare som inte följer köranvisningarna exakt. Offline-implementering De tillstånd som hjullastaren kan befinna sig i samt styrsignalen diskretiseras först enligt tabell 6. 21
Variabel Min Max Intervallängd Enhet x 1 = m lastare m tom???? kg x 2 = v lastare 0???? m/s x 3 = s lastare 0???? m/s x 4 = N motor 0???? rps x 5 = t kvar 0???? s u = Nmotor kommenderad N tomgang???? rps Tabell 6: Diskretisering av hjullastarens tillstånd och styrsignaler. I tabellen symboliserar?? ett för närvarande okänt värde som behöver erhållas från VCE eller uppskattas. De diskretiserade tillstånden benämns x i,j,k,l,m där indexen anger inom vilket diskretiserat intervall som tillståndet ligger. Vilket index som hör till vilken tillståndsvariabel kan ses i tabell 7. Index i j k l m Variabel x 1 = m lastare x 2 = v lastare x 3 = s lastare x 4 = N motor x 5 = t kvar Tabell 7: Indexeringsbeteckningar för diskretiserade tillstånd För varje möjligt diskretiserat tillstånd ska alla möjliga styrsigneler simuleras med hjälp av tillståndsbeskrivningen i avsnitt 4.3.1. För att kunna göra detta krävs några indata från användaren som definerar den bana längs vilken hjullastaren ska färdas. De indata som krävs är en lutningsprofil för underlaget som funktion av körd sträcka längs banan. Dessutom krävs de data i tabell 6 som definierar de intervall som tillståndsvariablerna ska delas in i. Indatan kan ses i tabell 8. 22
Benämning Beskrivning α(s lastare ) Lutningsprofil för körbana som funktion av körd sträcka v riktprofil (s lastare ) Riktningsprofil för hjullastarens hastighet som anger de sträckor längs körbanan på vilka hjullasten måste backa, 0 = bak 1 = fram x min 1, x max 1, x antal 1 Diskretiseringsdata för tillstånd 1 x min 2, x max 2, x antal 2 Diskretiseringsdata för tillstånd 2 x min 3, x max 3, x antal 3 Diskretiseringsdata för tillstånd 3 x min 4, x max 4, x antal 4 Diskretiseringsdata för tillstånd 4 x min 5, x max 5, x antal 5 Diskretiseringsdata för tillstånd 4 u min, u max, u antal Diskretiseringsdata för styrsignalen Tabell 8: Indata från användaren vid offlineberäkningar av bränsleoptimering För varje sådan simulering av en styrsignal, som tar systemet från starttillståndet till ett sluttillstånd som innebär hjullastaren befinner sig i slutet av körbanan och som dessutom uppfyller de billvor som optimeringen ska utföras under, ska kostnadsfunktionen i ekvation 19 beräknas. Kostnaden för olika styrsignaler givet ett och samma starttillstånd jämförs och den styrsignal som innebar lägst kostnad sparas i en struktur som även innehåller indexnummer för starttillståndet. När en optimal styrstrategi hittats och loggats för alla diskretiserade tillstånd sparas strukturen till fil så att den senare kan läsas in och användas vid online-körning. Strukturens slutgiltiga utseende kan ses i figur 10. 23
Optimala styrstrategier från tillstånd i,j,k,l Nyckel = [i,j,k,l] Optimal styrstrategi [1,1,1,1] N (t) motor [2,1,1,1] N (t) motor [3,1,1,1] N (t) motor................ [imax,jmax,kmax,lmax] N (t) motor Figur 10: Skiss över strukturen för den utsignal som erhålls vid offline-lösning av bränsleoptimeringsproblemet Som utsignal erhålls också indata-informationen. Online-implementering Vid körning av hjullastaren erhålls skattningar och mätningar av tillstånden från HLE:ns övriga delsystem. Med hjälp av dessa kan det diskretiserade tillstånd som hjullastaren för nuvarande befinner sig i identifieras. Sedan används lösningen som erhölls vid offlineoptimeringen för att söka upp den optimala styrstrategin för just det startillstånd som man befinner sig i nu. Detta förfarande kommer att upprepas med samplingstiden Ts opt = 5. Teoretisk modell över minimal körcykelkostnad En lastningscykel börjar då hjullastaren står vid bufferten och just har tömt sin skopa på material. Cykeln inleds med att HLE:n mottar ett meddelande från TBE:n om hur lång tid den har på sig innan den bör vara på plats med en ny omgång last. Då meddelandet mottas befinner sig hjullastaren i något visst tillstånd och en optimal körprofil kan beräknas med metoderna beskrivna ovan. Denna körprofil och kostnaden för den är en teoretisk modell över den absolut minsta kostnaden som nuvarande körcykeln kan få. På grund av modellfel (så som att användning av hydrauliken för skopstyrning även drar bränsle vilket bortsetts från i optimeringen), svårigheter med att följa köranvisningarna exakt med mera så kommer den verkliga bränsleförbrukningen att bli större än denna. Målet med optimeringen är att under resterande körcykel ge så pass bra köranvisningar till föraren att den verkliga kostnaden för körcykeln hamnar så nära den teoretiskt optimala kostnaden som möjligt (se krav 19, 20 i Kravspecifikationen). För att kunna utvärdera hur bra detta lyckas med sparas den teoretiska kostnaden undan i början av varje körcykel för att kunna utnyttjas vid jämförelse i slutet av varje körcykel då den nya omgången med material lämpats av i bufferten. 24
4.3.4 CAN-kommunikation För att få tillgång till väsentlig data i drivlinan krävs uppkoppling mot CAN-bussen. VCE bistår med utrustning som kopplas in till PC i hjullastaren och som gör att HLE kan kommunicera med CAN-bussen. Följande signler ska avläsas från bussen. Hjullastarens hastighet Bränsleflöde in i motorn Lyftarmsvinkel Skopvinkel Pumptryck efter tryckventil i hydraulsystem Motorvarvtal 4.3.5 Kommunikation med TBE:n Kommunikationen med TBE:n sker enligt beskrivningen i avsnitt 6 om trådlös kommunikation. 4.4 Förargränssnitt Förargränssnittet ska på ett övergripligt sätt ge instruktioner till föraren i hjullastaren om vilken nivå hastigheten ska ligga på. Konceptet är att grafiskt visa gaspedalens nuvarande läge i en figur tillsammans med det önskade läget för pedalen. På så sätt kan föraren i realtid se om gaspådraget bör ökas eller sänkas. Gränssnittet kommer att byggas i MATLAB. Figur 11 visar konceptbild på gränssnittet. Figur 11: Gränssnitt för hjullastföraren Här kommer även smådetaljer kunna visas som kan vara av förarens personliga intresse. För att underlätta uppstartandet av systemet finns det initieringsknappar i gränssnittet. HLE initieras i förargränssnittet och väntar därefter på att TBE ska aktiveras, om den inte redan är det. Figur 12 visar flödesschemat över gränssnittet. 25
Figur 12: Flödesschema av förargränssnittet Vid Läs in data fås information om när hjullastaren ska vara framme. Denna används som inargument till optimeringsalgoritm. Vid Skicka data skickas den mest aktuella data som har beräknats fram. 5 Delsystem 2 - Transportband 5.1 Gränssnitt för TBE Gränssnittet vid TBE visar översiktligt information om hela systemet, antal ton sten i bufferttanken, totalt lastad sten, etc. Se Figur 13. Även här finns det initieringsknappar för att underlätta uppstarten. 26
Figur 13: Gränssnitt vid TBE Figur 14 visar flödesschemat över gränssnittet vid TBE. 27
Figur 14: Flödesschema av gränssnittet vid TBE 5.2 Schemaläggning För att hantera bufferten på bästa sätt kommer ankomsttider för anslutna HLE att bestämmas utifrån en viss schemaläggning. Schemaläggningen har ett huvudsyfte, att bufferten ej får stå tom under körning. Utirfrån detta villkor ska den HLE väljas som med lägsta kostnad kan ankomma innan bufferten blir tom. Med kostnad menas förbrukad bränslemängd per lastad massa. Alltså väljs den HLE som utnyttjar sin förbrukade bränslemängd maximalt vilket är målet. Flödesschema för schemaläggningen kan ses i Figur 15. 28
Start Beräkna tid till tom buffert Välj HLE som kan leverera inom tidsfrist och till lägst kostnad. Ange ankomsttid för vald HLE Figur 15: Flödesschema över schemaläggingen i TBE 6 Trådlös kommunikation Den trådlösa kommunikationen används så att de två delsystemen HLE och TBE kan kommunicera med varandra. Förenklat kommer en eller flera HLE ansluta mot en TBE. Alltså kommer TBE agera som server och anslutna HLE som klienter. En översikt kan ses i Figur 16.Den information som skall utbytas mellan enheterna ska paketeras som enskilda datameddelanden (DM) enligt en given struktur, se Tabell 6. Ett datameddelande består av två delar, header och data. I headern beskrivs själva datameddelandet och i data lagras parametrar enligt datameddelandespecifikationen. Headern består av fyra bytes där den sista byten säger hur mycket data som skickas i meddelandet (max 255 bytes). De datameddelanden som kommer skickas via den trådlösa kommunikationen kan ses i Tabell 10. Meddelande ID (MID) Sändar ID (SID) Mottagar ID (RID) Datalängd Data 1 byte 1 byte 1 byte 1 byte 0-255 bytes Tabell 9: Ett datameddelande 29
Hjullastarenhet (HLE) Transportbandsenhet (TLE) Trådlös kommunikation Hjullastarenhet (HLE) Hjullastarenhet (HLE) Figur 16: Översikt över den trådlösa kommunikationen mellan enheterna. Alla enheter som är anslutna via den trådlösa kommunikationen har ett unikt tilldelat Enhets ID (EID) som används i alla datameddelanden för att specificera mottagare och sändare. Möjliga EID är i intervallet 1-255 då 0 används i vissa undantagsfall. Det kommer även finnas möjlighet att skicka ut datameddelanden till alla ansluta enheter genom s.k. broadcast. Ett broadcast-meddelande har alltid RID 0 då specifik mottagare saknas. TCP/IP kommer användas som protokoll för dataöverföring. I MATLAB finns färdiga klasser att utnyttja för att kommunicera via TCP/IP. 6.1 Datameddelandespecifikation De datameddelanden som kommer skickas via den trådlösa kommunikationen definieras nedan. Meddelande (MID) Sändare Mottagare Data 0 Connect HLE TBE IP-address 1 Connected TBE HLE EID 2 Disconnect HLE TBE EID 3 TimeToEmptyBufferBroadcast TBE HLE Broadcast Tid 4 TimeToArrival TBE HLE Tid 5 DischargedLoad HLE TBE Massa 6 NumberOfConnectedHLE TBE HLE Broadcast Antal 7 BufferLoadBroadcast TBE HLE Broadcast Massa 8 HLEStatusBroadcast HLE TBE Broadcast ETA, massa i skopan. Tabell 10: Datameddelanden 30
7 Programstruktur Systemet har höga krav på att kunna utföra flera av operationerna samtidigt och därför kommer vi att använda oss av Parallell Computing Toolbox (PCT) i Matlab. Med hjälp av PCT kan estimering, optimering och updatering av användarinterfacet köras samtidigt utan att det ena funktionsblocket behöver vänta på något av de andra. Varje funktionsblock skrivs i en egen matlabfil och allt binds sedan tillsammans i en huvudfil där PCT används för att styra de olika delarna. Vid utvecklandet av de olika funktionerna är det viktigt att tänka på att använda lokala variabler så att man inte använder en global variabel som andra funktionsblock har tillgång till då detta kan leda till datakonflikter. Mer om detta finns i kodriktlinjerna i Appendix A. 7.1 Översiktliga funktioner Kommunikationskommandona är generella och finns med i alla delsystem. 7.1.1 Kommunikation WLANSendMessage(MID, SID, RID, data) Skickar ett kommando eller information från en enhet (SID) till en annan (MID). WLANRecieveMessage() Loopar en egen tråd för att ta emot kommando eller information från en annan enhet. 7.1.2 HLE ReadCan() Läser in alla värden från CAN-bussen och sparar dem i workspace. UpdateGUI(NewParameters) Uppdaterar GUI med senaste informationen och visar det på skärmen. InitGUI() Skapar GUI och sätter konstanta värden OptimizeRoute(States) Beräknar optimal rutt baserat på vilket tillstånd hjullastaren befinner sig i. EstimateStates(Mesurements) Estimerar de okända parametrarna med hjälp av Kalmanfiltrering. 7.1.3 TBE UpdateGUI(NewParameters) Uppdaterar GUI med senaste informationen och visar det på skärmen. InitGUI() Skapar GUI och sätter konstanta värden 31
LogData(data) Loggar indatan för att sedan kunnna visas. PlanSchedule(Parameters) Utifrån mottagen data från HLE planneras en körordning för varje hjullastare. EstimateTimeToEmpty(data) Skattar hur lång tid det är kvar tills bufferten är tom 32
A Appendix A %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Filnamn: mall.m % Skapare: Per Henriksson % % Redigerad av: Per Henriksson % % Beskrivning: Detta är en mall för hur matlabfilerna ska se ut. % Här skrivs vad programmet / funktionen gör och lite allmänt om vad % den är beroende av och eventuella biblotek som krävs. % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Exempel på bra och dåliga variabelnamn % Dåliga variabelnamn x,y,z % Bra variabelnamn. tempacc tempspeed Speed Torque % Lägg gärna en kommentar för att beskriva variabeln % Vid loopar och andra funktionsblock kan det vara bra att undvika att %kommentera inne i loopen. Det är då bättre att skriva en kommentar/ %förklaring i början av loopen och sedan kommer hela koden. % Funktionsnamn är det samma krav på som variabler dvs bra beskrivande namn % som är enkla att förstå. Förkortningar är bra om man ger en beskrivning i % filerna där de används hur dessa fungerar. %Bra namn EWW() % Estimate wheelloader weight EstimateTorque() UpdateSpeed() % Dåliga namn Update() Speed() % Dessa 2 namn ger ingen beskrivning alls om vad man ex updaterar 33
% Använd Interna variabler och exportera sedan dessa till workspace som % globala variabler när beräkningarna är klara. Detta görs för att undvika % konflikter då vi använder parallell computing. Samma gäller vid % inläsning av variabler dvs man sparar över dessa till lokala variabler % och använd de lokala för beräkningar. % Försök att skriva tydlig kod som är lättläst och använd gärna tomrum för % att göra det lättläst. 34