• No results found

Beräkningsfunktioner för AI och optimering

Även om systemet under utvecklingen anpassas för att utföra tilldelade uppgifter på bästa tänkbara sätt så kommer efterhand nya insikter göras för hur det kan förbättras. Att ständigt jobba med förbättringsarbete är en del av Lean-konceptet som är värt att ta i beaktning. Efter hand som systemet körs kommer förbättringsförslag att dyka upp när det blir tydligare hur systemet fungerar. Detta avsnitt behandlar de förbättringar och

optimeringar som görs i ett tidigt skede under utvecklingens gång, och även förbättringar som uppstår i samband med testning av systemet.

3.5.1 Struktur för AI-utveckling

Artificiell intelligens är precis som det låter konstgjord intelligens. Att automatiserat produktionssystem behöver AI för att fungera, även om nivån på hur avancerad AI som används varierar mellan olika tillämpningar. Varje funktion där indata processas för att generera utdata beroende på indata är en form av AI. Den valda hårdvaruplattformen har goda möjligheter för tillämpningar med AI [12]. I det aktuella systemet anpassas AI

allteftersom utvecklingen pågår och ny funktionalitet testas. Genom att löpande förbättra och anpassa funktionalitet blir slutresultatet väl anpassat för att lösa tänkta uppgifter.

Tidigt i utvecklingsskedet planeras vilka uppgifter olika delsystem ska lösa och sedan utvecklas dess funktionalitet succesivt under arbetets gång. Efter hand som olika delsystem fungerar läggs mer funktionalitet till för att ha kontroll på hur olika delsystem interagerar med varandra. Systemets AI byggs på så vis upp efterhand som ingående delsystem utvecklas.

Några exempel där AI implementeras i systemet är bland annat prioriteringen av

orderhantering och upptäckande av fel. Hur prioritering skall utföras kan från en början vara så simpelt att gå efter FIFO, First in first out, de behandlas alltså i den ordning som de inkommer i systemet. Men allt eftersom systemet blir mer funktionellt kan tidmätningar göras för att se hur olika uppgifter kan anpassas bäst för att prioritering istället ska göras på så vis att hela uppgiften löses på kortare tid. Detta arbete kräver då att alla funktioner är igång så deras tidsåtgång kan värderas korrekt. Upptäckandet av fel är även det ett arbete som sker succesivt under utvecklingens gång då testning behövs för att se vilka problem som faktiskt uppstår under drift. Till exempel mekaniska problem är svårt att gissa sig till i planeringsstadiet utan åskådliggörs bäst i praktiken vid testning, även om vissa tänkbara problem kan anas tidigt.

3.5.2 Beräkningsfunktioner för optimering

I avsnittet innan nämns en viktig del av optimeringen, den artificiella intelligensen.

Systemets viktigaste optimering finns i hur AI är utvecklat vilket avgör hur uppgifter löses. Den utvecklade artificiella intelligensen i sig behöver delas in i mindre delar för att lättare visualiseras. De mindre delarna i sig är de som leder till att systemet som helhet

optimeras. Olika metoder och funktioner bidrar tillsammans för att systemet som helhet kan utföra tänkta uppgifter. Några viktiga delar för optimeringen är de olika

beräkningsfunktioner som systemet använder.

En viktig beräkningsfunktion är hanteringen av navigation. Även om sensorer kan läsa av kända positioner utmed rörelseriktningarna så blir det inte optimalt att för varje rörelse utgå från en känd position. Ett bättre och snabbare sätt att navigera är genom att utgå ifrån de kända positionerna men med hjälp av stegräknare i motorerna räkna ut vilken position som är aktuell och spara detta värde. Då kan förflyttning mellan två positioner ske utan att där emellan gå till en känd position. Risken med detta är att fel adderas på varandra för varje förflyttning om inte alla värden är exakta, vilket är svårt att realisera. Men för att komma runt dessa risker så kan man låta kontroller mot kända positioner ske varje gång de passeras för att upptäcka om värdena blivit felaktiga och då återgå till en känd position för att kalibrera om. Eller ännu enklare lägga in kalibrering med jämna mellanrum som en uppgift att lösa.

Även AI för beräkning av orderprioritering behöver funktioner som hjälper till med optimeringen. Om tidsåtgång mäts för varje aktivitet och dess olika moment så kan det beräknas hur optimeringen blir som bäst för att lösa uppgifterna snabbast. För att möjliggöra detta måste alla tider för olika delmoment sparas i en databas eller någon annan form av logg. Detta är inte tillämpat i detta system i detta skede, men principen för hur detta hanteras beskrivs ändå. Mycket viktigt att tänka på för denna funktionalitet är att inte enbart beräkna hur hanteringen löses snabbast, utan även ta hänsyn till att stora ordrar som tar lång tid inte får vänta bara för att två mindre kan bli slutförda snabbare. Funktionen måste även ta hänsyn till att alla ordrar ska slutföras inom en given tidsram för att inte kunden ska behöva vänta.

Optimering handlar även om hur varje mekanisk rörelse anpassas på bästa vis. Genom testning kan varje moment studeras noggrant för att upptäcka risker där mekaniken inte beter sig som väntat. I detta fall går optimeringen ut på att minimera problem som leder till att systemet behöver stoppas för att lösa ett fel. Denna optimering går dock mer ut på analyser under testning och anpassning i styrningen än att ha beräknande funktioner. Men några stödfunktioner som används under drift för detta är funktioner för att

kontrollera om en bit ur lager har plockats genom att mäta när gripklo når ändläge och avläsning om en box har plockats upp. Dessa funktioner kontrollerar om något problem uppstått så det upptäcks i tidigt skede och kan rättas till, annars finns risken att felen förvärras ju längre problemen fortskrider.

4. Implementation och test

Related documents