Esta postagem no blog descreve uma simulação simples de pátio de guindastes em AnyLogic . Desenvolvi este modelo em AnyLogic para fins de demonstração. Já publiquei uma série de posts sobre modelagem de simulação em AnyLogic. Abaixo está uma lista de alguns deles.
Este post considera um pátio de estocagem para estocagem de peças processadas. Não vou considerar a taxa de preenchimento do buffer em si. Nem vou modelar o rastreamento de peças individuais. Ou seja, a capacidade de armazenamento é uma caixa preta e o foco está na avaliação das capacidades de rendimento do guindaste de pátio. Isso pressupõe uma matriz de fluxo de material especificada, descrevendo as taxas de entrada e saída de e para o buffer.
Visão geral do modelo de simulação de pátio de guindastes
A captura de tela abaixo mostra os principais componentes do modelo de simulação de pátio de guindastes AnyLogic . O pátio de estocagem possui dois transportadores de entrada e três transportadores de saída. É operado por um único guindaste de pátio horizontal.
É um modelo simples que pode ser construído em 1 hora. Conforme declarado na introdução deste artigo, o rastreamento de peças individuais não faz parte do modelo. Isso significa que uma parte é guardada no buffer onde é destruída. Este é o processo de produção – armazenamento na seção do bloco lógico acima. As recuperações do pátio são implementadas como um processo separado, utilizando o mesmo guindaste de pátio. Este é o processo de recuperação – enviado na seção do bloco lógico acima. A habitação de peças no pátio não é modelada. As taxas de preenchimento não são consideradas. O foco é avaliar o rendimento máximo possível do guindaste de pátio.
Implementação de alocações de slot de armazenamento e transportador
Neste modelo de simulação de pátio de guindastes, duas decisões de alocação devem ser tomadas:
- Para uma peça que chega em um dos transportadores de entrada, deve-se decidir onde no pátio a peça deve ser armazenada
- Para uma peça que deve ser entregue a um processo a jusante, ou seja, que deve ser recuperada, deve ser decidido em qual transportador a peça deve ser colocada
Atribuir peças a um local de armazenamento para armazenamento
Começando com o processo de produção – entrada em estoque : Isso é implementado na sequência abaixo de blocos lógicos.
Uma parte é criada pela fonte (agente da classe personalizada part ). Esta nova peça está localizada em um dos transportadores de entrada usando os blocos lógicos transport_a e transport_b . A probabilidade de cada transportador de entrada é de 50%.
Em seguida, uma pequena função personalizada é chamada ( alocação_01 / alocação_02 ). Esta função simplesmente decide em qual nó (1 a 7), denominado “bay”, a peça deve ser armazenada. Ela faz isso configurando as variáveis targetbay_01 / targetbay_02 . AnyLogic então captura o guindaste e executa o transporte para um atrator aleatório dentro do nó especificado.
Recuperar peças do pátio e atribuí-las a um transportador
Para modelar a recuperação de peças do pátio de armazenamento, um sourcebay (nó de origem), do qual uma peça deve ser recuperada, e um targetconveyor , no qual a peça deve ser colocada, devem ser especificados. Para tornar isso mais fácil, coloquei essas duas variáveis dentro da classe de agente de peça personalizada.
sourcebay e targetconveyor também são variáveis no próprio modelo principal. No entanto, eles são usados apenas como memória temporária. Na chegada de um novo agente na fonte de recuperação, a função selection() é chamada.
A função de seleção define os espaços reservados temporários de sourcebay e targetconveyor . Os valores dessas variáveis são então gravados no arquivo . fonte e . atributos targetconveyor do agente parcial recém-chegado (instância do objeto). A captura de tela abaixo mostra a função de seleção .
Como você pode ver na captura de tela acima do código da função de seleção, os locais de recuperação são completamente aleatórios. O transportador de destino é sempre o transportador mais próximo do guindaste.
Executando a simulação de pátio de guindastes no AnyLogic
AnyLogic visualiza sua marcação em 2D e 3D. A captura de tela abaixo mostra um instantâneo 2D do modelo de simulação durante o tempo de execução.
Após uma hora de simulação, 9 peças foram enviadas (recuperadas e entregues no final de uma das esteiras de saída) e 9 peças foram guardadas. Abaixo está uma captura de tela dos blocos relevantes após uma hora de simulação.
Se eu quiser priorizar os depósitos sobre as recuperações ou implementar alguma outra lógica relacionada à priorização de tarefas, também posso fazer isso com funções JAVA.
Considerações finais e conteúdo relacionado
Apresentei um modelo simples de simulação de pátio de guindastes sem rastreamento de peças individuais. Um modelo deste tipo é apropriado para, por exemplo, avaliar o rendimento do equipamento. Neste caso, o foco estava nas capacidades de produção do guindaste de pátio horizontal.
Cientista de dados com foco em simulação, otimização e modelagem em R, SQL, VBA e Python
Leave a Reply