Lager simulering i AnyLogic

Dette blogindlæg beskriver en simpel krangårdssimulering i AnyLogic . Jeg udviklede denne model i AnyLogic til demonstrationsformål. Jeg har allerede udgivet en række blogindlæg om simuleringsmodellering i AnyLogic. Nedenfor er en liste over nogle af dem.

Dette indlæg betragter en lagerplads til opbevaring af forarbejdede dele. Jeg vil ikke overveje fyldningshastigheden af ​​selve bufferen. Jeg vil heller ikke modellere sporing af individuelle dele. Det vil sige, at lagerkapacitet er en blackbox, og fokus er på at vurdere gårdkranens gennemløbskapacitet. Dette forudsætter en specificeret materialestrømsmatrix, der beskriver ind- og udgangshastigheder til og fra bufferen.

Oversigt over krangårdssimuleringsmodellen

Nedenstående skærmbillede viser hovedkomponenterne i AnyLogic krangårdssimuleringsmodellen . Lagergården har to indløbstransportører og tre udløbstransportører. Den betjenes af en enkelt vandret gårdkran.

Oversigt over krangårdssimuleringsmodel i AnyLogic

Det er en simpel model, der kan konstrueres på 1 time. Som nævnt i introduktionen af ​​denne artikel er sporing af individuelle dele ikke en del af modellen. Det betyder, at en del bliver lagt væk i bufferen, hvorefter den bliver ødelagt. Dette er produktion – put-away- processen i ovenstående logikbloksektion. Hentninger fra værftet gennemføres som en separat proces, der anvender den samme værftskran. Dette er genfinding – afsendt proces i ovenstående logik blok sektion. Beboelsen af ​​dele i gården er ikke modelleret. Opfyldningssatser tages ikke i betragtning. Fokus er på at vurdere maksimalt mulig gennemløb af gårdkranen.

Implementering af lagerplads- og transportbåndsallokeringer

I denne krangårdssimuleringsmodel skal der træffes to allokeringsbeslutninger:

  1. For en del, der kommer på en af ​​indløbstransportørerne, skal det besluttes, hvor i gården delen skal opbevares
  2. For en del, der skal leveres til en nedstrøms proces, dvs. som skal hentes, skal det besluttes, hvilken transportør delen skal placeres på

Tildeling af dele til et opbevaringssted til bortskaffelse

Startende med produktion – putaway- processen: Dette implementeres i nedenstående rækkefølge af logiske blokke.

Logiske blokke til at lægge produktionen væk

En del oprettes af kilden (agent for brugerdefineret klassedel ). Denne nye del er placeret på en af ​​indløbstransportørerne ved hjælp af logikblokkene convey_a og convey_b . Sandsynligheden for hver indløbstransportør er 50%.

Dernæst kaldes en lille brugerdefineret funktion ( allocation_01 / allocation_02 ). Denne funktion bestemmer ganske enkelt, hvilken node (1 til 7), refereret til som “bay”, delen skal gemmes i. Den gør det ved at indstille variablerne targetbay_01 / targetbay_02 . AnyLogic griber derefter kranen og udfører transporten til en tilfældig attraktor inden for den specificerede node.

Hentning af dele fra gården og tildeling af dem til en transportør

Til modellering af delhentning fra lagerpladsen skal der specificeres en sourcebay (kildeknude), hvorfra en del skal hentes, og en targetconveyor , som delen skal placeres på. For at gøre dette nemmere placerede jeg disse to variabler i den brugerdefinerede delagentklasse .

del agent klasse, skik

sourcebay og targetconveyor er også variable i selve hovedmodellen. De bruges dog kun som midlertidig hukommelse. Ved ankomsten af ​​en ny agent i genfindingskilden kaldes select()- funktionen.

genfindingskilde

Valgfunktionen indstiller de midlertidige kildeplads- og targetconveyor- pladsholdere. Værdierne af disse variable skrives derefter til . sourcebay og . targetconveyor- attributter for den nyligt ankomne delagent (objektforekomst). Nedenstående skærmbillede viser valgfunktionen .

functino til at tildele hentning til udløbstransportør og til at bestemme, hvilken node der skal hentes fra (tilfældig)

Som du kan se fra ovenstående skærmbillede af valgfunktionskoden, er genfindingssteder fuldstændig tilfældige. Måltransportøren er da altid den transportør, der er nærmest kranen.

Kørsel af krangårdssimulering i AnyLogic

AnyLogic visualiserer sin markering i 2D og 3D. Nedenstående skærmbillede viser et 2D-snapshot af simuleringsmodellen under kørsel.

Simulering af krangård i 2D

Efter en times simulering er 9 dele blevet afsendt (hentet og leveret for enden af ​​en af ​​udgangstransportørerne), og 9 dele er blevet sat væk. Nedenfor er et skærmbillede af relevante blokke efter en times simulering.

Krangårdssimuleringsstatus efter 1 times driftstid

Hvis jeg vil prioritere putaways frem for hentning eller implementere en anden logik relateret til opgaveprioritering, kunne jeg også gøre det med JAVA-funktioner.

Afsluttende bemærkninger og relateret indhold

Jeg præsenterede en simpel krangårdssimuleringsmodel uden sporing af individuelle dele. En model af denne art er velegnet til fx at vurdere udstyrsgennemstrømning. I dette tilfælde var fokus på gennemløbskapaciteten af ​​den horisontale gårdskran.

Leave a Reply

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Close

Meta