I tabell 5.2 anges optimum för målfunktionen för momentet, överslängen och in- svängningstiden. Låt dessa betecknas med Υτopt, Υoveropt och Υinsvopt . Här syns det
att det skiljer sig mellan det optimala värdet för de olika målfunktionerna för varje startläge och rörelseriktning. Eftersom målfunktionerna har utseende enligt figur 4.3, kan Υτ
opt hamna nere i ravinen i målfunktionen för översläng eller in-
svängningstid. Om så är fallet kan Υτ
optanvändas även om det inte sammanfaller
med det globala optimat för överslängen och insvängningstiden. I figur 5.5 visar asterisken var Υτ
opthamnar i målfunktionen för insvängningstiden i startläge 2 och
++-riktningen. Det syns att Υτ
5.2 Analys av mätdata 41
Υinsvopt Υoveropt Υτopt
Startläge 1 ++ [120 90] [85 100] [110 90] +− [105 85] [120 90] [105 85] Startläge 2 ++ [120 70] [120 70] [110 70] +− [95 110] [95 115] [100 70] Startläge 3 ++ [110 65] [105 70] [100 75] +− [100 80] [95 90] [95 90]
Tabell 5.2. Sammanfattning av vilket optimalt värde på Υ = [Υ2 Υ3] de olika mål-
funktionerna ger. 60 70 80 90 100 110 120 60 80 100 120 0 0.2 0.4 0.6 0.8 1 ϒ2 Målfunktion för insvängningstiden ϒ3
Figur 5.5. Insvängningstidens målfunktion för startläge 2 och ++-riktningen där as-
terisken visar var Υτ
opt hamnar. Υτopthamnar inte i det globala optimat men kan ändå
användas eftersom det ligger tillräckligt långt ner i ravinen.
Υτoptanvändas även om det inte sammanfaller med det globala optimat för insväng- ningstiden och överslängen. Tabell 5.3 visar vilka målfunktionsvärden som Υinsvopt
och Υτ
optger i målfunktionen för insvängningstiden. Tabell 5.4 visar motsvarande
för överslängen. Figur 5.6 visar en inzoomning av verktygspositionen i x-led för en bra respektive dålig trimning. De streckade linjerna indikerar 3 mm innan slutvär- det samt ±0.3 mm runt slutvärdet som används för att beräkna insvängningstiden. I bilaga A finns en större undersökning där fler startlägen och rörelselängder har undersökts. Det finns även ett fall där regulatorn har försämrats för att se om det kan ge ett tydligare optimum. Resultatet blir dock det samma, dvs att Υτ
optinte
sammanfaller med det globala optimat för insvängningstiden och överslängen men ändå tillräckligt nära. En försämring av regulatorn påverkar inte målfunktionen så att ett tydligare optimum uppkommer.
42 Validering på robot Π(Υinsv opt ) Π(Υτopt) Startläge 1 ++ 0.1625 0.1870 +− 0.2370 0.2370 Startläge 2 ++ 0.1465 0.2195 +− 0.2280 0.3220 Startläge 3 ++ 0.2360 0.2460 +− 0.1595 0.2185
Tabell 5.3. Sammanfattning av vilket målfunktionsvärde som Υinsv
opt och Υτoptger i mål-
funktionen för insvängningstiden i sekunder.
Θ(Υover opt ) Θ(Υτopt) Startläge 1 ++ 0.2637 0.3829 +− 0.6767 0.7088 Startläge 2 ++ 0.6202 0.7321 +− 0.5649 0.6025 Startläge 3 ++ 0.6384 0.7043 +− 0.4052 0.4052
Tabell 5.4. Sammanfattning av vilket målfunktionsvärde som Υover
opt och Υτoptger i mål-
funktionen för överslängen i millimeter.
3.6 3.8 4 4.2 4.4 4.6 705 706 707 708 709 710 711 712 713 Tid [s] [mm]
Verktygsposition för bra trimning Verktygsposition för dålig trimning
Figur 5.6. Verktygspositionen i x-led för en bra respektive dålig trimning. De streckade
5.2 Analys av mätdata 43
I bilagan sammanvägs även de olika riktningarna samt startlägena. Om båda riktningarna i ett startläge används, blir det ett Υ som inte sammanfaller med det globala optimat för insvängningstiden och överslängen men det hamnar tillräckligt nära. Om däremot alla startlägen sammanvägs hamnar optimum från momentet också i ravinen i de flesta fall men det kan hända att punkten glider upp på kanten i något enstaka fall. Därför bör roboten trimmas i olika lägen där riktningarna sammanvägs och sedan använda olika trimvärden beroende på vilket läge roboten befinner sig i under körning.
Kapitel 6
Minimering av antalet
funktionsanrop
För att undersöka målfunktionens utseende för olika lägen enligt kapitel 4 och 5 har samtliga kombinationer av Υ2 och Υ3 undersökts, där dessa antgit värden
mellan 70 % och 130 % med steg om 5 %. Det tar lång tid att undersöka alla dessa kombinationer eftersom varje kombination kräver ett nytt experiment med en robot. Därför krävs det en metod som hittar minimat utan att undersöka alla kombinationer. Metoden som används i arbetet är en modifierad variant av opti- meringsmetoden Complex. Den fungerar bra då målfunktionen är brusig, vilket är fallet här eftersom den baseras på mätdata.
6.1
Complex
Complex utvecklades av Box, [3], och är en multidimensionell sökmetod som kan hantera bivillkor. Metoden använder sig av m ≥ n + 1 punkter där n är antalet variabler att optimera över. Complex beskrivs i algoritm 6.1. Här indikerar index
j = 1, . . . , m olika punkter och index i = 1, . . . , n indikerar olika variabler.
Algoritm 6.1: Complex
1. Beräkna startvärden enligt
xij= xli+ Rij(xui − x l
i), (6.1)
där xl
i är minsta värdet variabel i får anta och xui är maximala värdet vari-
abel i får anta. Rij är ett slumptal i intervallet [0, 1].
2. Beräkna en ny punkt genom att spegla den sämsta punkten, xworst, i tyngd-
punkten, xc, av de övriga enligt
xnew= xc+ α(xc− xworst), (6.2)
46 Minimering av antalet funktionsanrop
där α anger hur lång bort xworst ska speglas. xworst är den punkt som har
störst funktionsvärde. 3. xc beräknas som xc,i= 1 m − 1 m X j=1 xij − xij=worst , i = 1, . . . , n. (6.3)
4. Om f (xnew) < f (xworst), ersätt xworstmed xnew och återgå till steg 2 tills
konvergenskriterierna är uppfyllda.
5. Om f (xnew) ≥ f (xworst), flytta xnew mot xc enligt xnew0 = xc+
xnew− xc
2 . (6.4)
Upprepa detta tills f (xnew0) < f (xworst). Ersätt xworst med xnew0 och
återgå till steg 2 tills konvergenskriterierna är uppfyllda.
Figur 6.1 visar hur den sämsta punkten speglas i tyngdpunkten för de övriga tre.
I det här arbetet används en modifierad metod som kallas för Complex-RF, se [8]. Den beskrivs i algoritm 6.2. Det som har ändrats är hur en ny punkt beräknas, steg 2, samt hur punkten flyttas mot tyngdpunkten, steg 5, i algoritm 6.1. För- delen med dessa ändringar är att algoritmen kan undvika att hamna i ett lokalt minimum.
Figur 6.1. Illustration av hur xworstspeglas i xcmed avståndet α för Complexmetoden.
Om f (xnew) < f (xworst) ersätts xworst av xnew och algoritmen börjar om med steg 2.
Om f (xnew) ≥ f (xworst) flyttas xnew halva avståndet mot tyngdpunkten tills f (xnew) <
6.1 Complex 47
Algoritm 6.2: Complex-RF
1. Beräkna startvärden enligt
xij= xli+ Rij(xui − x l
i), (6.5)
där xl
i är minsta värdet variabel i får anta och xui är maximala värdet vari-
abel i får anta. Rij är ett slumptal i intervallet [0, 1].
2. Beräkna en ny punkt genom att spegla den sämsta punkten, xworst, i tyngd-
punkten, xc, av de övriga enligt
xnew= xc+ α(xc− xworst) + r, (6.6)
där α anger hur lång bort xworst ska speglas och
ri= rf ak· ∆ · (xui − x l
i)(R − 0.5), i = 1, . . . , n. (6.7)
rf ak är en slumptalsfaktor, R är en slumptalsvektor i intervallet [0, 1] och
∆ = max i maxj(xij) − minj(xij) xu i − xli . (6.8)
∆ är samma för alla variabler. xworstär den punkt som har störst funktions-
värde. 3. xc beräknas som xc,i= 1 m − 1 m X j=1 xij − xij=worst , i = 1, . . . , n. (6.9)
4. Om f (xnew) < f (xworst), ersätt xworst med xnewoch återgå till steg 2 tills
konvergenskriterierna är uppfyllda.
5. Om f (xnew) ≥ f (xworst), flytta xnewmot xc enligt xnew0 =
1
2(((1 − a)xc+ axbest) + xnew) + xc+
xnew− xc
2 + r, (6.10) där r ges av (6.7) och
a = 1 − e−kr4 , (6.11)
där krär antalet gånger punkten har upprepats som den sämsta.
Upprepa detta tills f (xnew0) < f (xworst). Ersätt xworst med xnew0 och
48 Minimering av antalet funktionsanrop
När r adderas till xnew görs det möjligt att metoden kan hoppa från ett lokalt
minimum som den annars skulle fastna i. Dessvärre kan den hoppa från det globala minimat också. Om ett lokalt minimum skulle ligga i tyngdpunkten som xworst
speglas i, kommer metoden till slut stanna i den punkten trots att r adderas till
xnew0. För att undvika det finns termen 1
2(((1 − a)xc+ axbest) + xnew) med i
(6.10). Mer om Complex och Complex-RF finns i [3] och [11].
Varje ny punkt som beräknas i algoritm 6.1 och algoritm 6.2 måste uppfylla användarens bivillkor. Om de inte uppfylls beräknas en ny punkt tills bivillkoren är uppfyllda. I det här arbetet används bivillkoret att optimeringsvariablerna ska vara heltal. Istället för att generera nya punkter om inte bivillkoret är uppfyllt, vilket skulle vara svårt, flyttas punkten till närmaste heltal i det tillåtna området. Ovan nämns det att steg 2 ska upprepas tills dess att konvergenskriterierna är uppfyllda. Det finns två kriterier, det ena är att skillnaden i funktionsvärden mellan två på varandra följande iterationer ska vara inom en viss gräns. Det andra kriteriet är motsvarande för optimeringsparametrarna. Dessa två gränser kan ställas in så att optimeringsmetoden ska konvergera mot optimum med så få funktionsanrop och iterationer som möjligt. Dessutom finns det två parametrar som anger hur många funktionsanrop och iterationer som är tillåtet.