Skip to content

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 

Repository files navigation

Modelagem de uma Estação de Carregamento de Veículos Elétricos com Redes de Petri

Este repositório contém a documentação do segundo estágio do projeto de uma estação de carregamento de veículos elétricos, modelada como um Sistema a Eventos Discretos (SED) por meio de Redes de Petri e da ferramenta CPN Tools.

Descrição Geral

O modelo representa uma estação com duas vagas de carregamento independentes, uma fila de espera compartilhada com capacidade máxima de dois veículos, dois modos de carregamento e uma restrição de potência comum às duas vagas.

A rede permite analisar a evolução dos tokens durante chegadas, início e término de cargas, liberação das vagas, falhas e reparos. O compartilhamento da potência impede combinações incompatíveis com a capacidade elétrica disponível.

Objetivos

  • Modelar a estação utilizando Redes de Petri.
  • Utilizar o CPN Tools para edição, simulação e análise do modelo.
  • Representar uma fila com capacidade máxima de dois veículos.
  • Manter as vagas A e B em subpáginas separadas.
  • Permitir cargas rápidas e lentas.
  • Permitir duas cargas lentas simultâneas.
  • Impedir outras cargas enquanto uma carga rápida utiliza toda a potência.
  • Representar falhas com a vaga livre ou durante o carregamento.
  • Representar o reparo dos carregadores.
  • Verificar propriedades do sistema por meio do espaço de estados.

Estrutura do Modelo

O modelo é hierárquico e está dividido em três páginas:

Página Função
Sistema Representa a fila, a potência compartilhada e as duas transições de substituição.
VagaA Representa os estados e eventos do carregador A.
VagaB Representa os estados e eventos do carregador B.

Os veículos e recursos são representados por tokens do conjunto de cores UNIT. Assim, o modelo controla quantidades, mas não diferencia a identidade individual dos veículos nem estabelece uma política FIFO. O modelo também é não temporizado: a conclusão de uma carga é representada pelo disparo de uma transição.

Página Sistema

A página principal reúne os recursos compartilhados pelas duas vagas.

Lugar Marcação inicial Função
Vagas_disponiveis_fila 2 tokens Quantidade de posições ainda livres na fila.
Fila_max_2 Vazio Quantidade de veículos aguardando atendimento.
Potencia_disponivel 2 tokens Unidades de potência ainda disponíveis.

A transição chega_carro ocupa uma das posições disponíveis e acrescenta um veículo à fila. Como a capacidade total é de dois veículos, cada chegada reduz em uma unidade o número de posições livres. Quando um carregamento começa, o veículo sai da fila e essa posição volta a ficar disponível.

As transições de substituição Vaga_A e Vaga_B conectam a página principal às subpáginas correspondentes.

Página principal do sistema

Subpágina VagaA

A página VagaA representa o ciclo de funcionamento do carregador A.

Lugar Função
Livre_A A vaga está disponível.
C_rapido_A Uma carga rápida está em andamento.
C_lento_A Uma carga lenta está em andamento.
Concluido_A A carga terminou e o veículo aguarda liberação.
Em_falha_A O carregador A está em falha.

A marcação inicial contém um token em Livre_A. As transições da página permitem iniciar e terminar os dois tipos de carga, liberar a vaga, provocar falhas e realizar o reparo.

Rede de Petri da vaga A

Subpágina VagaB

A página VagaB possui a mesma lógica da vaga A, mas mantém estados e eventos próprios.

Lugar Função
Livre_B A vaga está disponível.
C_rapido_B Uma carga rápida está em andamento.
C_lento_B Uma carga lenta está em andamento.
Concluido_B A carga terminou e o veículo aguarda liberação.
Em_falha_B O carregador B está em falha.

A marcação inicial contém um token em Livre_B.

Rede de Petri da vaga B

Portas e Recursos Compartilhados

Cada subpágina possui três lugares de porta:

Porta Tipo Lugar correspondente em Sistema
Fila Entrada Fila_max_2
Vagas_Fila Saída Vagas_disponiveis_fila
Potencia Entrada/Saída Potencia_disponivel

Essas portas não criam recursos adicionais. Elas permitem que as duas vagas consumam veículos da mesma fila, devolvam posições à fila e compartilhem as mesmas duas unidades de potência.

Eventos do Modelo

Evento da página principal

Evento Descrição
chega_carro Insere um veículo na fila, desde que exista uma posição disponível.

Eventos de cada vaga

Na tabela abaixo, X representa A ou B.

Evento Descrição
inicia_lento_X Retira um veículo da fila, ocupa a vaga e consome uma unidade de potência.
inicia_rapido_X Retira um veículo da fila, ocupa a vaga e consome duas unidades de potência.
termina_lento_X Finaliza a carga lenta, devolve uma potência e leva a vaga ao estado concluído.
termina_rapido_X Finaliza a carga rápida, devolve duas potências e leva a vaga ao estado concluído.
liberar_X Retira o veículo concluído e devolve a vaga ao estado livre.
falha_livre_X Leva uma vaga livre ao estado de falha.
falha_lento_X Interrompe a carga lenta, devolve uma potência e leva a vaga ao estado de falha.
falha_rapido_X Interrompe a carga rápida, devolve duas potências e leva a vaga ao estado de falha.
Reparo_X Retorna uma vaga em falha ao estado livre.

Ao todo, o modelo possui 19 transições primitivas: uma chegada e nove eventos para cada vaga.

Funcionamento da Potência

A estação possui duas unidades de potência compartilhadas.

  • Uma carga lenta utiliza uma unidade.
  • Uma carga rápida utiliza duas unidades.
  • Duas cargas lentas podem ocorrer simultaneamente.
  • Uma carga lenta deixa potência suficiente apenas para outra carga lenta.
  • Uma carga rápida impede o início de qualquer outra carga.
  • O término ou a falha de uma carga devolve toda a potência utilizada.

A distribuição da potência pode ser entendida de forma simples:

Situação Potência ainda disponível
Nenhuma carga em andamento 2 unidades
Uma carga lenta 1 unidade
Duas cargas lentas 0 unidades
Uma carga rápida 0 unidades

Falhas e Reparos

Uma vaga pode falhar enquanto está livre ou durante uma carga.

  • falha_livre_X não altera a potência, pois o carregador estava ocioso.
  • falha_lento_X devolve uma unidade de potência.
  • falha_rapido_X devolve duas unidades de potência.
  • Reparo_X devolve a vaga ao estado livre.

Quando uma carga falha, o atendimento é considerado abortado e o veículo não retorna à fila. O reparo recupera o carregador para um novo atendimento.

Regras Preservadas pelo Modelo

Durante toda a execução, o modelo mantém as seguintes condições:

  • A fila nunca possui mais de dois veículos. O número de veículos aguardando e o número de posições livres sempre correspondem à capacidade total da fila.
  • Cada vaga ocupa apenas um estado por vez: livre, em carga rápida, em carga lenta, concluída ou em falha.
  • A potência disponível permanece entre zero e duas unidades.
  • Uma carga lenta utiliza uma unidade de potência, enquanto uma carga rápida utiliza duas.
  • Quando uma carga termina ou falha, toda a potência que ela utilizava é devolvida ao sistema.

Cenários de Teste

Limite da fila

chega_carro
chega_carro

Após duas chegadas, a fila fica cheia e uma terceira chegada permanece desabilitada.

Ciclo rápido completo na vaga A

chega_carro
inicia_rapido_A
termina_rapido_A
liberar_A

A carga rápida consome as duas unidades de potência, o término as devolve e a liberação retorna a vaga ao estado livre.

Duas cargas lentas simultâneas

chega_carro
chega_carro
inicia_lento_A
inicia_lento_B

As duas vagas permanecem em carga lenta e a potência disponível chega a zero.

Carga rápida bloqueando a outra vaga

chega_carro
inicia_rapido_A
chega_carro

Mesmo com um veículo na fila e a vaga B livre, nenhum carregamento pode começar em B enquanto a vaga A utiliza toda a potência.

Falha durante carga rápida

chega_carro
inicia_rapido_A
falha_rapido_A
Reparo_A

A falha interrompe a carga, devolve as duas unidades de potência e coloca a vaga em falha. O reparo retorna a vaga ao estado livre.

Os cenários podem ser repetidos de forma simétrica para a vaga B.

Análise do Espaço de Estados

A exploração completa do modelo apresentou os seguintes resultados:

Propriedade Resultado
Marcações alcançáveis 66
Arcos do grafo de ocorrência 246
Marcações mortas 0
Componentes fortemente conectados 1
Transições primitivas inalcançáveis 0

Esses resultados indicam que as restrições de fila, estado das vagas e potência são preservadas e que não existe uma marcação alcançável na qual todo o sistema fique bloqueado.

Execução no CPN Tools

  1. Instale o CPN Tools.
  2. Baixe ou clone este repositório.
  3. Abra o arquivo modelos/modelo_cpn_tools.cpn.
  4. Aguarde a verificação automática de sintaxe.
  5. Utilize a simulação passo a passo para executar os cenários apresentados.
  6. Para a análise formal, gere o espaço de estados e o grafo de componentes fortemente conectados.

Demonstração

Assistir à demonstração no YouTube

Estrutura do Repositório

.
├── README.md
├── modelos/
│   └── modelo_cpn_tools.cpn
└── docs/
    └── imagens/
        ├── sistema.png
        ├── vaga_a.png
        └── vaga_b.png

Desenvolvedores

  • Jose Vanilson de Brito Junior
  • Kayo Matheus Araujo Santos
  • Rafael dos Santos Lima

About

Projeto do segundo estágio de Sistemas a Eventos Discretos: estação de carregamento modelada com Redes de Petri no CPN Tools.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors