Van bottleneck detectie naar predictie en preventie
Een bottleneck in de fabriek ontstaat als er een bewerking overbelast raakt, en niet meer in staat is orders tijdig te verwerken. Orders liggen te wachten voor de bewerking waardoor de doorvoer van de gehele fabriek stagneert. Door het slim plannen van orders proberen we deze bottleneck te voorkomen
Onno Huijgen, Gerlinde Oversluizen, Thomas Lautenbach - HAN University of Applied Sciences - november 2024
Introductie
Binnen het project ’Organised Digital Factory’ werkt de HAN in samenwerking met mkb-maakbedrijven aan het slimmer maken van hun productieplanning. Daarbij richten we ons op mkb-maakbedrijven die een hoge vari¨eteit aan producten in lage volumes maken, zogenaamde HVLV-bedrijven. In ons onderzoek zien we dat zelfs tot 30% van de producten uniek is en slechts ´e´en keer geproduceerd wordt. Deze hoge vari¨eteit zorgt voor extra complexiteit in de planning en besturing van de productie. We onderzoeken hoe we de planning van de HVLV-bedrijven datagedreven kunnen ondersteunen met digital twins. Het inplannen HVLV-orders, zodat ze op de afgesproken leverdatum klaar zijn, is een complex probleem. Hierbij moet bijvoorbeeld rekening gehouden worden met onderstaande punten:
- Niet alle orders gaan in dezelfde volgorde langs elk bewerking.
- Het in de volgorde van binnenkomst plannen van orders kan dan ook voor onbalans tussen de verschillende bewerkingen zorgen.
- Daarnaast hebben bewerkingen zelf ook restricties de planning. Zo kan het bijvoorbeeld efficienter zijn om orders van licht naar donker te verfen op een dag. Omstellen kost dan minder tijd.
HVLV-orders plannen, rekening houdend met productierestricties, zonder dat bottlenecks ontstaan is een gecompliceerd probleem. Een bottleneck in de fabriek ontstaat als er een bewerking overbelast raakt, en niet meer in staat is orders tijdig te verwerken. Orders liggen te wachten voor de bewerking waardoor de doorvoer van de gehele fabriek stagneert. Binnen het project ’Organised Digital Factory’ zijn we de afgelopen tijd bezig geweest met het ontwikkelen van algoritmes om te kunnen voorspellen waar een bottleneck gaat
Bottlenecks
In de literatuur zijn veel verschillende definities te vinden voor wat een bottleneck nou precies is. Een simpele manier om ze te detecteren, is door te kijken naar de wachttijd van de producten voor elk station. De bewerking waar de producten het langst staan te wachten, is dan hoogstwaarschijnlijk de bottleneck. We zeggen hier hoogstwaarschijnlijk, omdat dit niet altijd het geval is. Stel we ontlasten de bottleneck, bijvoorbeeld door de aanschaf van een extra machine of inzet van meer personeel. Dit kan ervoor zorgen dat de wachttijd verplaatst naar het volgende station in de productie. Het oplossen van de bottleneck, wil dus nog niet zeggen dat de rest van de fabriek de verhoogde hoeveelheid orders ook aankan. De bottleneck is dan ook dat station dat de orderdoorvoer van de hele fabriek bepaalt.
Bottleneck detectie - een eerste benadering
Het detecteren van bottlenecks is dus een gecompliceerd, niet-lokaal probleem. Voor een eerste inschatting van de bottleneck, verhogen we de efficiëntie per station en bepalen we de doorvoer verhoging per station. Dat station, waarvan de doorvoer het meest verhoogt bij efficientieverhoging beschouwen we als de bottleneck. We gebruiken dit als een eerste benadering van de bottleneck. Deze eerste benadering is een stuk makkelijker te berekenen dan de doorvoer van de hele fabriek te bepalen. Deze eerste benadering hebben we gebruikt om de bottleneck vast te stellen. We hielden hierbij rekening met de bewerking waar de orders vandaan kwamen (zijn er al meer orders beschikbaar als deze bewerking eerder klaar is) en de bewerking waar ze naartoe gingen (kan het volgende station de verhoogde doorvoer ook aan). We hebben echter niet dieper de fabriek in gekeken om te zien hoe de orders verder verwerkt werden. Dit geeft een eerste benadering die vergelijkbaar is met het bepalen van de bewerking met de langste wachttijden. Als eerste indicatie werkt dit redelijk goed, maar het zegt niet alles.
Bottleneck detectie - een verbeterd algoritme
Een preciezere manier om de bottleneck te detecteren is door te kijken naar de doorvoer van de hele fabriek, Tf en hoe die afhangt van de doorvoer Ti van elk station si apart. Daarbij is de bottleneck sb dan de bewerking waarvoor geldt dat de doorvoer van de gehele fabriek het meest stijgt als de doorvoer van de bewerking zelf verhoogd wordt.
De werkbare definitie die we hiernaast weergeven houden we verder aan.
Om een beter beeld te krijgen van de niet-lokale effecten die optreden in de fabriek als de doorvoer Ti van een station si verhoogd wordt, moeten we een digitale representatie van de gehele fabriek maken. Daarvoor hebben we een framework gemaakt, waarin elk station gerepresenteerd is met een eigen agena (bedrijfsuren) en beschikbare capaciteit. Orders kunnen in deze digitale versie van de fabriek gepland worden. Voor het detecteren van een bottleneck gebruiken we historische data; bijvoorbeeld een jaar aan orders. We kennen de routing van de orders langs de bewerkingen en hoe lang deze duurde. Vervolgens worden twee situaties met elkaar vergeleken. Eerst plannen we de doorloop van de orders door de fabriek zoals hij nu is. Dan verhogen we de efficientie van een station, en maken we nogmaals een volledige planning van de orders. Als een station een bottleneck vormt, zal de fabriek in het tweede geval de orders sneller afgerond hebben, en is de fabrieksdoorvoer dus hoger. Op deze manier wordt er een volledige planning van de orders gemaakt door de hele fabriek waarbij er telkens ´e´en station verhoogde capaciteit heeft.
Hoeveel hoger de doorvoer van de fabriek wordt, is afhankelijk van waar je naar kijkt. De doorvoer is gegeven door de hoeveelheid die het kan produceren in een bepaalde tijd (Tf = hoeveelheid/tijd). Maar om welke hoeveelheid gaat het dan? De hoeveelheid producten kan erg verschillen ten opzichte van de hoeveelheid orders. Of moet er gekeken worden naar de totale omzet die een fabriek maakt? De precieze indicator zal per geval verschillen. Om onze methodes zo generiek mogelijk te houden, kijken we in plaats van de doorvoer alleen naar de tijd die het kost om de gegeven lijst met orders te verwerken. Er vanuit gaande dat de hoeveelheid orders gelijk blijft, geeft dit een maat die onafhankelijk is van welk metric je precies kiest om een bottleneck aan te duiden.
De volgende stappen in ons onderzoek
Bottleneck predictie
Kunnen we het door ons gemaakte framework ook gebruiken om bottlenecks te voorspellen? Op dit moment gebruiken we het framework met orders uit het verleden. Hiervan weten we precies hoe lang deze orders bij welk station bewerkt zijn. Nog nuttiger zou het zijn als we ook bottlenecks kunnen voorspellen. Dat kan door een lijst met toekomstige te plannen en/of voorspelde orders op dezelfde manier te gebruiken in het framework. Echter is het dan nodig om te weten hoe lang de orders ongeveer bij elk station bewerkt wordt. Deze exacte tijden zijn vaak niet bekend, zeker in een high-variety low-volume situatie . We kunnen gebruik maken van voor calculatie gegevens. Een volgende stap in ons onderzoek is om machine learning inzetten om de bewerkingstijden per station te voorspellen. De precieze implementatie daarvan is per mkb-bedrijf uniek.
Bottleneck preventie
Als we bottlenecks kunnen voorspellen, kunnen we ons richten op bottleneck preventie. Denk hierbij aan:
- Cross-training van medewerkers zodat ze ingezet kunnen worden bij de bewerking waar we verwachten dat een bottleneck gaat optreden.
- Schuiven met planning Niet alle orders gaan langs elk station, dus het kan voordelig zijn om de orders, die langs het bottleneck station sb moeten, uitgespreid in de tijd door de fabriek te laten druppelen in plaats van ze allemaal tegelijk in te plannen.
- Het efficient clusteren van orders om lange omsteltijden te voorkomen is een andere optie.
Het slim plannen van orders (verschuiven, clusteren, volgorde) is een optimalisatie probleem. In het vervolg van ons onderzoek hopen hier ook machine learning technieken voor in te zetten.
Nottlenecks
Ons framework gaat er voor de bottleneck detectie van uit dat de capaciteit van een station op magische wijze verhoogd wordt. Maar dat is vaak niet realistisch. De capaciteit van een staton hangt af van de hoeveelheid beschikbare resources. Denk aan mankracht en machines. Als de capaciteit van een station verhoogd wordt, kan dat betekenen dat de capaciteit van een ander station verlaagd wordt. Naast kijken waar de capaciteit omhoog zou moeten (bottleneck), is het ook zinnig om de omgekeerde vraag te stellen. Bij welk station kunnen we veilig de capaciteit en doorvoer verlagen, zonder dat dat grote impact heeft op de doorvoer van de gehele fabriek. Welk station is juist niet de bottleneck, maar de nottleneck? We hopen met ons framework ook advies te kunnen geven over waar capaciteit vandaan kan komen.
*Dit onderzoek is medegefinancierd door Regieorgaan SIA, onderdeel van de Nederlandse Organisatie voor Wetenschappelijk Onderzoek (NWO).
Blijf op de hoogte
Wilt u graag op de hoogte blijven van de ontwikkeling rond dit en ander actueel onderzoek?
Abonneer u dan op onze maandelijkse nieuwsbrief.
Lees voor meer informatie over dit specifieke onderzoek onderstaande blogs of neem voor meer informatie contact op met:
Onno Huijgen, onno.huijgen@han.nl