1 Ruttplanering på fartyg 1994-05-19 Thomas Hellström Seapacer AB tel: 090-44 55 6 Ruttplanering på fartyg innebär att fördela farten på olika delsträckor av en resa med avsikt att minska den totala bränsleåtgången. Projektet består i att utveckla och implementera en optimeringsalgoritm som kan bestämma fartfördelningen med hänsyn taget till angivna värden på ström, vind och vattendjup. Programmet ska kunna köras på en PC och optimera i realtid under fartygets drift. BAKGRUND Bränslekostnaderna utgör efter lönekostnaderna den största posten i ett fartygs driftsbudget. Bränsleförbrukningen för en stor personfärja är mellan 1000 och 5000 liter/timme. Den förbrukar alltså mer olja per timme än en normal villa förbrukar på ett års uppvärmning! Priset för den bunkerolja som normalt används i svenska färjor är ca 1100:-/m 3. Årskostnaden för en färja som kör 20 timmar/dygn är således i storleksordningen 20 miljoner kronor. Varje minskning av oljeförbrukningen med 1 % innebär alltså en årlig besparing på över 200.000 kronor. VAD PÅVERKAR BRÄNSLEFÖRBRUKNINGEN? Några av de viktigaste faktorerna är följande: Fartygsspecifika parametrar som skrovform, vikt, typ av huvudmaskiner, propellrar mm. Antal inkopplade huvudmaskiner. Fartygets fart relativt botten mätt i knop (sk. bottom track speed eller fart över grund ). Ström (riktning samt styrka i knop) Vattendjup Fartygets djupgående beroende på aktuell last Vind (riktning samt styrka mätt i Beaufort)
2 HUR KAN BRÄNSLEFÖRBRUKNINGEN MINSKAS? Den metod som beaktas i detta projekt kallas ruttplanering och består i att variera fartygets fart på olika delar av en total resa (rutt). Eftersom de yttre omständigheterna (vind, ström och djup) varierar inses att minimal bränsleåtgång inte fås vid jämn fart under hela resan. Vi får således ett minimeringsproblem som måste lösas numeriskt för att erhålla den fartfördelning som minimerar den totala bränsleåtgången för en resa med bivillkoret att komma fram enligt tidtabell. Ruttplanering utförs mer eller mindre ambitiöst på de flesta fartyg. Beräkningen består i de allra flesta fall av manuella uppskattningar samt erfarenhet från tidigare resor. SEAPACER Seapacer AB har utvecklat en reglerdator kallad Seapacer som används på personfärjor och lastfartyg med syfte att spara bränsle genom bla. automatisk ruttplanering och farthållning. Vind, strömmar och vattendjup kan matas in före och under resan och Seapacerdatorn beräknar därefter en fartfördelning som minskar den totala bränsleåtgången. Den metod som används finns beskriven längre fram under STARTVÄRDESALGORITM 3. Den beräknade fartfördelningen används av Seapacern för att automatiskt styra hastigheten genom kontroll av fartygets huvudmaskiner och propellrar. Ankomsttiden hålls utan onödiga marginaler och besparingar på 5-15% erhålls på många fartyg. Det finns emellertid intresse av att studera en mer noggrann optimering enligt det som presenteras i denna projektbeskrivning.
3 MODELLER Oljeförbrukningens beroende av fart, vind och vattendjup bestäms med mätningar på fartyget. Inga matematiska samband antas förutom de mätvärden som erhålls. Följande modeller gäller för personfärjan MV Stena Europe som trafikerar Engelska kanalen mellan Hook van Holland och Harwich. De uppmätta värdena varierar naturligtvis från fartyg till fartyg. Karakteristiken hos kurvorna är dock vanligtvis likartade. Tabeller från andra fartyg finns tillgängliga vid behov. FARTMODELL F(xw) Utan påverkan av begränsande vattendjup eller vind erhålls tex följande tabell över bränsleförbrukning vid olika farter (knop): tabell 1: Fart genom vattnet (xw) Liter/timme 10.4 650 13.2 875 17 1300 20.1 2120 20.7 2900 DJUPMODELL D(x, d) Vid begränsande vattendjup fås en uppbromsning av farten på grund av ökat vattenmotstånd samt, vid mycket litet vattendjup (ett fåtal meter under fartygskölen), den sk squat -effekten som drar ner fartyget och därigenom bromsar farten. Följande tabell beskriver vattendjupets inverkan på oljeförbrukningen vid olika farter och vattendjup: tabell 2: Fart över grund (x) Djup (d) Ökad oljeförbrukning % 10.0 8 5 10.0 10 3 10.0 100 0 17.0 8 20 17.0 15 10 17.0 100 0 23 8 30 23 15 20 23 100 0
4 VINDMODELL W(w, wd) Vinden anges genom relativ riktning i förhållande till fartygets kurs samt vindstyrka uttryckt i Beaufort. Parametern wd anger riktningen i grader. w anger Beaufort-tal 0-10. 315-360, 0-45 : Motvind 45-135, 225-315 : Sidvind 135-225 : Medvind Generellt kan sägas att sidvind, även snett bakifrån, påverkar bränsleförbrukningen negativt pga den stora fartygsytan vinden då verkar på. Följande tabell beskriver ett enkelt uppmätt samband mellan vindstyrka. riktning och ökad bränsleförbrukning: tabell 3: Riktning (wd) Ökad oljeförbrukning % (för varje Beaufort) 315-360, 0-45 4.0 45-135, 225-315 2.0 135-225 1.0 För värden som hamnar mellan de uppmätta punkter som anges i ovanstående tabeller kan enklast linjär interpolering användas. Punkter utanför ändlägena extrapoleras. Om optimeringsalgoritmen kräver deriverbarhet i varje punkt kan lämpligen splineinterpolering användas. Observera att tabell 2 kräver interpolering i två dimensioner; fart och vattendjup. Exempel: Fartyget körs i 18 knop över grund. Strömmen 1 knop är riktad längs med färdriktningen. Vinden blåser 4 beaufort rakt mot styrbordssidan av fartyget (wd=90). Vattendjupet är 15 meter under kölen. Farten genom vattnet blir 18-1 = 17 knop. Tabell 1 ger förbrukningen 1300 liter/timme utan hänsyn tagen till vinden eller begränsat djup. Tabell 2 anger 10% ökning pga vattendjupet. Tabell 3 anger 4 2% = 8% ökning pga sidvinden. Total oljeförbrukning i exemplet är därför enligt modellerna : 1300 1,10 1,08 = 1544 liter/timme.
5 FORMULERING AV OPTIMERINGSPROBLEMET Rutten delas upp i n delar med likartade djup-, vind-, och strömförhållanden. n kan anta värden från 2 upp till 40. Varje del benämns rutt-ben eller bara ben. För varje ben i finns följande indata: längd s i (nautiska mil) longitudinell strömkomponent cl i, (enhet: knop) parallell med färdriktningen transversell strömkomponent ct i, (enhet: knop) vinkelrätt mot färdriktningen vindstyrka w i (Beaufort) relativ vindriktning wd i. (0.-360) (se tabell 3) vattendjup d i (meter) under fartygets köl minsta tillåtna fart xmin i (knop). högsta tillåtna fart xmax i (knop). För rutten som helhet finns följande indata: Total restid T (enhet: timmar) Antal ben i rutten Exempel på indata återfinns i appendix 1. Fartygets hastighet över grund (relativt botten) anges i knop. 1 knop motsvarar 1 nautisk mil/timme. Fart över grund x relateras till fart genom vattnet xw och strömkomponenterna ct och cl enligt: 2 2 xw = ct + ( x cl ) dvs vektoraddition av fart- och ström-vektorerna. Förbrukningen (liter) på ett ben i benämns C i och är en funktion av fart över grund x i samt egenskaperna hos ben i ; längden s i, strömmen cl i, ct i, vindstyrkan w i, vindriktningen wd i samt vattendjupet d i : C i ( x i ) = s i /x i F( xw i ) ( 1 + D(x i, d i )/100 ) ( 1 + W( w i, wd i )/100 ) där F, D och W ges av tabell 1, 2 respektive 3. Faktorn s i /x i är den tid (timmar) som fartyget befinner sig på rutt-ben i. Vi definierar vektorn x som ( x 1, x 2,..., x n ) med de sökta farterna (över grund) på de n delsträckorna. Den totalt förbrukningen φ under en resa ges av:
6 φ( x ) = n i= 1 C i (x i )
7 BIVILLKOR Som bivillkor har vi: 1) n i= 1 s i / x i = T dvs fartyget ska komma fram i tid. samt 2) xmin i x i xmax i i detta kan innefatta fartbegränsningar på vissa sträckor samt definiera det tillgängliga fartregistret för fartyget. φ( x ) ska nu minimeras map. x med hänsyn taget till bivillkoren ovan. Om man substituerar t i = s i /x i blir bivillkor 1 linjärt men φ blir å andra sidan olinjärare...
8 STARTVÄRDESALGORITMER Som startvärde till x är föreslås tre alternativ. 1) Ansätt jämn fart över grund på samtliga ben. Dvs: x i = n j= 1 s j / T i Denna metod kräver nästan inga beräkningar men tar i gengäld inte hänsyn till vare sig ström, vind eller vattendjup. 2) Bestäm ett fartvärde xw genom vattnet på samtliga ben som gör att fartyget kommer fram i tid (dvs uppfyller bivillkor 1 ovan).detta innebär att ben med motström körs med lägre fart genom vattnet än ben med medström. Dvs: bestäm ett xw som uppfyller: n i= 1 s i / x i = T xw = ct + ( x cl ) 2 2 i i i om bivillkoret 2) gör att x i inte är en giltig fart över botten på delsträckan i sätts x i till en lämplig ändpunkt i bivillkorets giltiga intervall. Denna metod ger en x-vektor som korrekt tar hänsyn till ström men ej till vattendjup och vind.
9 3) Välj den oljeförbrukning (liter/timme) som om den körs på samtliga ben gör att fartyget kommer fram i tid (uppfyller bivillkor 1 ovan). Detta innebär att ben med motström körs med lägre fart över grund än ben med medström samt att ben med tung belastning pga litet vattendjup eller bromsande vind körs långsammare än andra ben. Detta är intuitivt korrekt och ger ett så tillfredsställande resultat att metoden rekommenderas utan ytterligare beräkningar (se artikel Route-planering - några synpunkter ). Algoritmen kan beskrivas som två nästade iterativa endimensionella ekvationslösningar: Sök förbrukningstal (liter/timme) λ som löser H(λ) = 0 där H(λ) definieras enligt: H(λ) = T - n i= 1 s i /x i (λ) där x i (λ) är den fart över grund som erhålls med förbrukningen λ liter/timme på ben i. x i (λ) är alltså det x i som löser: ( C i (x i ) x i /s i ) - λ = 0 om bivillkoret 2) ovan gör att ett giltigt x i ej kan bestämmas sätts x i till lämplig ändpunkt i bivillkorets giltiga intervall. Denna metod ger oftast en x-vektor som ligger mycket nära optimalpunkten. Varför så är fallet bör utrönas mer i detalj (se uppgift b). Exempel på denna algoritm återfinns i appendix 1.
10 UPPGIFTER a) Den primära uppgiften är att utveckla och implementera en algoritm som löser ovanstående optimerings-problem på ett stabilt och framförallt snabbt sätt. Problemen uppenbarar sig när antalet delsträckor ökar till 20-30. För att få kunskap om problemets karaktär bör n=2 och 3 först studeras och plottas. De föreslagna startvärdesalgoritmerna ska jämföras och utvärderas map. noggranhet och beräkningsarbete (flyttalsoperationer eller tidsåtgång). Programmet ska kunna läsa en valfri datafil med indata enligt appendix 1 samt producera en utfil enligt mallen i appendix 2. Modellerna (tabell 1, 2 och 3) ska läsas från datafil. Optimeringsparametrar (tex tillåtet fel på bivillkor 1 och stoppkriterier) ska också ligga på en datafil för att enkelt kunna ändras. Programmet kan delas i ett antal moduler: Inläsning av datafiler tabell 1, 2 och 3 som funktioner med någon form av interpolering Derivatafunktioner Startvärdesrutin Optimeringsrutin Utskriftsrutin b) Startvärdesalgoritm 3) ska jämföras med de verkliga optimeringskörningarna för att få fram hur stora förbättringar som erhålls samt i vilka situationer (litet djup eller stark ström eller vind?). Kan algoritm 3) ges någon mer formell motivering, kanske under speciella omständigheter (linjära modeller, liten djuppåverkan...). Studera φ:s partiella derivator map x i i den punkt som algoritm 3 föreslår. c) Kan optimeringsproblemet omformuleras som ett dualt problem? d) Hur förändras problemet om bivillkor 1 substitueras in i objektfunktionen.
11 APPENDIX 1 Format på indatafil De datafiler som kan användas för testning av optimeringsprogrammet innehåller mer data än vad som är nödvändigt. De intressanta datafälten är skrivna i VERSALER i nedanstående beskrivning. Datafält på samma rad separeras med ett eller flera blanktecken. Varierande antal decimaler kan förekomma. <indata-fil> ::= <rutt-namn> <ankomsttid> <TOTAL RESTID> <ANTAL BEN> <start del B> <slut del B> <DATA OM BEN 1> <DATA OM BEN 2>... <DATA OM BEN n> <DATA OM RUTTENS ÄNDPUNKT> (används ej i optimeringen) <data om ben i> ::= <kör-mode> <LÄNGD > <VATTENDJUP> <VINDSTYRKA> <vindriktning> <RELATIV VINDRIKTNING> <ström> <strömriktning> <LONGITUDINELL STRÖM> <TRANSVERSELL STRÖM> <kurs> <lattitud för benets start> <longitud> <MIN FART> <MAX FART> <bränsle-limit> <auto-limit> <waypoint nummer> De följande exemplen är verkliga ruttplaner som körts i Seapacersystem på ett flertal fartyg. De kan användas för att testa det utvecklade optimeringsprogrammet med exempel av olika svårighetsgrad. Som jämförelse redovisas resultatet av startvärdesalgoritm 3 för varje exempel.
12 forts. APPENDIX 1 indatafil 1: test 12.666670 0.666667 3 2 2 P 2.00 100.00 0.00 0.0 0.0 0.00 0.0 0.00 0.00 0.448 10.000000 10.000000 2.0000 22.0000 200-1 72 P 8.01 100.00 0.00 0.0 0.0 0.00 0.0 0.00 0.00 0.224 10.033330 10.000000 2.0000 22.0000 200-1 74 P 2.00 100.00 0.00 0.0 0.0 0.00 0.0 0.00 0.00 0.000 10.166670 10.000000 2.0000 22.0000 200-1 76 P 0.00 100.00 0.00 0.0-1.0 0.00 0.0 0.00 0.00-1.000 10.200000 10.000000 2.0000 22.0000 200-1 78 Denna ruttplan har ingen ström, vind eller olika djup på rutt-benen. Den beräknade farten ska då med alla metoder ge samma fartvektor x. Startvärdesalgoritm 3 ger en medelförbrukning på 1167 liter/timme. Vektorn x blir då (18 18 18). Totalförbrukningen blir då 778 liter. Totaldistansen är 12 nm. indatafil 2: HARWICH TO HOOK N.ROUTE 17.333330 4.833333 4 2 2 P 11.93 12.00 0.00 0.0 310.0 0.00 0.0 0.00 0.00 49.929 51.931660 1.455000 2.0000 23.0000 0 0 1 P 36.65 15.00 0.00 0.0 247.0 0.00 0.0 0.00 0.00 113.075 52.059170 1.701667 2.0000 23.0000 0 0 10 P 48.91 25.00 0.00 0.0 283.0 0.00 0.0 0.00 0.00 76.716 51.816670 2.611667 2.0000 23.0000 0 0 6 P 3.93 20.00 0.00 0.0 272.0 0.00 0.0 0.00 0.00 88.496 51.996670 3.898334 2.0000 23.0000 0 0 7 D 0.00 100.00 0.00 0.0-1.0 0.00 0.0 0.00 0.00-1.000 51.998330 4.004500 2.0000 23.0000 0 0 8 Denna ruttplan har ingen ström eller vind. Djupet varierar dock på de olika rutt-benen. Denna ruttplan ger med startvärdesalgoritm 3 en medelförbrukning på 1514 liter/timme. Vektorn x blir då (19.9 20.4 21 21) Totalförbrukningen blir då 7315 liter. Totaldistansen är 101,4 nm.
13 forts. APPENDIX 1 indatafil 3: Göteborg-Kiel DW 14.000000 13.916670 27 0 0 S 2.99 10.00 3.00 135.0 241.0 0.00 0.0 0.00 0.00 253.906 57.695500 11.914500 7.0000 7.0000 0 0 41 P 3.21 10.00 3.00 135.0 255.0 0.00 0.0 0.00 0.00 240.113 57.681670 11.825000 5.0000 23.0000 0 0 42 P 4.75 20.00 3.00 135.0 278.0 0.00 0.0 0.00 0.00 216.772 57.655000 11.738330 5.0000 23.0000 0 0 43 P 3.75 50.00 3.00 135.0 307.0 0.00 0.0 0.00 0.00 188.261 57.591670 11.650000 5.0000 23.0000 0 0 44 P 26.36 35.00 3.00 135.0 317.0 0.00 0.0 0.00 0.00 178.154 57.530000 11.633330 5.0000 23.0000 0 0 45 P 20.99 40.00 3.00 135.0 331.0 0.00 0.0 0.00 0.00 163.506 57.091670 11.660000 5.0000 23.0000 0 0 46 P 17.16 35.00 3.00 135.0 288.0 0.00 0.0 0.00 0.00 207.464 56.756660 11.841670 5.0000 23.0000 0 0 47 P 22.67 20.00 3.00 135.0 286.0 0.00 0.0 0.00 0.00 209.460 56.503170 11.602330 5.0000 23.0000 0 0 48 P 4.61 25.00 3.00 135.0 272.0 0.00 0.0 0.00 0.00 223.197 56.174330 11.267670 5.0000 23.0000 0 0 49 P 11.44 30.00 3.00 135.0 284.0 1.00 0.0-0.86 0.52 210.917 56.118330 11.173330 5.0000 23.0000 0 0 50 P 9.98 17.00 3.00 135.0 276.0 1.00 0.0-0.78 0.63 219.482 55.955000 10.998330 5.0000 23.0000 0 0 51 P 10.89 20.00 3.00 135.0 308.0 1.00 0.0-0.99 0.12 186.536 55.826660 10.810000 5.0000 23.0000 0 0 52 P 8.82 30.00 3.00 135.0 336.0 1.50 0.0-1.40-0.54 158.539 55.646670 10.773330 5.0000 23.0000 0 0 53 P 10.10 35.00 3.00 135.0 349.0 1.50 0.0-1.24-0.84 146.349 55.510000 10.868330 5.0000 23.0000 0 0 54 S 2.20 35.00 3.00 135.0 315.0 1.50 0.0-1.50 0.00 180.000 55.370000 11.032500 12.0000 12.0000 0 0 55 S 0.48 30.00 3.00 135.0 282.0 1.50 0.0-1.26 0.82 212.566 55.333340 11.033330 12.0000 12.0000 0 0 76 D 9.70 30.00 3.00 135.0 320.0 1.50 0.0-1.49-0.13 175.054 55.326660 11.025830 5.0000 23.0000 0 0 56 P 12.00 25.00 3.00 135.0 301.0 1.50 0.0-1.46 0.36 194.397 55.166660 11.050000 5.0000 23.0000 0 0 59 P 3.32 35.00 3.00 135.0 259.0 1.50 0.0-0.84 1.24 236.159 54.973330 10.963330 5.0000 23.0000 0 0 61 P 4.18 27.00 3.00 135.0 292.0 1.50 0.0-1.38 0.59 202.690 54.942500 10.883330 5.0000 23.0000 0 0 62 P 4.66 35.00 3.00 135.0 313.0 1.50 0.0-1.50 0.05 182.002 54.878330 10.836670 5.0000 23.0000 0 0 63 P 4.11 27.00 3.00 135.0 291.0 1.50 0.0-1.37 0.61 204.065 54.800830 10.831670 5.0000 23.0000 0 0 64 P 4.27 22.00 3.00 135.0 299.0 1.50 0.0-1.44 0.41 195.735 54.738330 10.783330 5.0000 23.0000 0 0 65 P 13.18 18.00 3.00 135.0 263.0 0.00 0.0 0.00 0.00 232.405 54.670000 10.750000 5.0000 23.0000 0 0 66 S 11.11 3.00 3.00 135.0 266.0 0.00 0.0 0.00 0.00 229.268 54.535830 10.450000 15.0000 15.0000 0 0 67 S 1.51 6.00 3.00 135.0 299.0 0.00 0.0 0.00 0.00 196.118 54.415000 10.209000 11.0000 11.0000 0 0 69 S 4.68 6.00 3.00 135.0 291.0 0.00 0.0 0.00 0.00 203.996 54.390830 10.197000 8.0000 8.0000 0 0 70 P 0.00 100.00 3.00 135.0-1.0 0.00 0.0 0.00 0.00-1.000 54.319660 10.142670 5.0000 23.0000 0 0 72 Denna ruttplan med 27 ben har såväl ström som vind och olika djupsiffror för de olika ruttbenen. Vissa delsträckor har även xmin=xmax, dvs fixerad fart. Startvärdesalgoritm 3 ger en medelförbrukning på 2963 liter/timme. Vektorn x blir då (7 16.9 18.2 18.5 18.5 18.5 18.6 18.2 18.4 17.8 17.2 17.1 17.1 17.4 12 12 17 16.8 17.6 17.1 17 17.1 16.7 18.1 15 11 8). Totalförbrukningen blir då 38233 liter. Totaldistansen är 233.1 nm.
14 APPENDIX 2 Mall till resultatfil: <optimeringsstatus> <namn på indatafil> <antal ben n> <den beräknade x-vektorn> < φ :s slutvärde> < bivillkor 1:s residual> < φ:s slutderivator)> <antal beräkningar (av C i eller...)för startvärdesalgoritmen> <startvärde på x> <antal beräkningar av C i för optimeringsalgoritmen>