Lastbiltransportsimuleringsanimation i Python

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:

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:

You May Also Like

Leave a Reply

Leave a Reply

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.