I denne artikel vil jeg dele et eksempel på en simuleringsanimation med diskret begivenhed i Python. Mere specifikt en lastbiltransport-simulationsanimation for en mine, ved hjælp af SimPy og DesViz i Python. Dette eksempel og DesViz-modulet er udviklet af prof. Paul Corry og hans team, og jeg videredeler hans eksempel i dette indlæg. Ved at bruge DesViz SimPy-model kan udviklere animere deres simuleringsmodel .
Nedenfor er en animation af en SimPy-lastbilsimulationsmodel til minedrift.
Eksemplet er dokumenteret og tilgængeligt i Paul Corrys GitHub-lager: https://github.com/corryp/DesViz
Hvordan kan DesViz bruges til simuleringsanimation i Python?
Citerer direkte fra DesViz-dokumentationen:
DesViz er en samling af Python-klasser og -funktioner, der letter asynkron animation til modeller med diskret hændelsessimulering ( DES ). Den er bygget oven på Pyglet-pakken, som giver den underliggende grafikfunktionalitet. DesViz tillader en DES- model at skrive en csv-fil, som senere fortolkes af DesViz til at konfigurere og flytte sprites, der repræsenterer baggrunds- og forgrundsobjekter i simuleringen. Hver linje i csv-filen giver simuleringstiden, en animationsinstruktion og et sæt argumenter, der relaterer til den instruktion. Disse instruktioner giver en kompakt metode til at specificere sprites udseende og bevægelser på måder, der er nyttige i en DES- sammenhæng.DesViz-dokumentation af Paul Corry
SimPy-udviklere kan bruge DesViz til at animere deres simuleringsmodel i en to-trins tilgang. For det første skal de bruge DesViz-biblioteket til at generere og gemme animationsdata. Dernæst bruges animationen til at gengive en animation.
Her er nogle eksempler på, hvad du kan animere med DesViz:
- bevægelser fra pixelpunkt til pixelpunkt eller langs foruddefinerede stier med automatisk objektorientering
- justering af objektorienteringer, dvs. animere objektrotationer
- definere master-slave-forhold mellem objekter til animationsformål, f.eks. lastbil (master) og trailer (slave)
- statuslinjer, enten statiske eller knyttet til et andet objekt (dvs. bevæger sig sammen med det tilknyttede objekt)
- mærkning, anmærkninger og baggrundsbilleder
- defineret animationshastighed (frame interval, dvs. fps – frames per second)
Under motorhjelmen udfylder DesViz en database (csv-fil) med definerede animationsinstruktioner. Disse instruktioner skal implementeres i selve simuleringsapplikationen. Den underliggende database udfyldes under simuleringens udførelse og bruges derefter til at gengive selve animationen. Til dette giver DesViz en række klasser, metoder og funktioner.
Relateret indhold
Hvis du er interesseret i at lære mere om simulering af diskrete hændelser og relateret modelimplementering i Python, kan du være interesseret i følgende blogindlæg:
- Link: Liste over software til simulering af diskrete begivenheder
- Link : Simuleringsmetoder for SCM-analytikere
- Link: Proceduremodel for diskret hændelsessimulering
- Link : Jobshop SimPy Python-simulering
- Link : Visualisering af statistik med salabim (DES, Python)
Hvis du er interesseret i at lære mere om simulering og dens use cases i mineindustrien, kan du være interesseret i følgende artikler:
- Link: Simulering af åbne mine for bedre planlægning
- Link : Simulering og dens anvendelsesmuligheder i mineindustrien
- Link : Håndtering af blandingsproblemer i mineindustrien
- Link : Løsning af jernmalmblandingsproblemet
- Link : Analyse i stålproduktionens værdikæde
Industriingeniør som gerne beskæftiger sig med optimering, simulation og matematisk modellering i R, SQL, VBA og Python
Leave a Reply