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.
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.
- 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.
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.
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.
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.
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.
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.
| Evento | Descrição |
|---|---|
chega_carro |
Insere um veículo na fila, desde que exista uma posição disponível. |
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.
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 |
Uma vaga pode falhar enquanto está livre ou durante uma carga.
falha_livre_Xnão altera a potência, pois o carregador estava ocioso.falha_lento_Xdevolve uma unidade de potência.falha_rapido_Xdevolve duas unidades de potência.Reparo_Xdevolve 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.
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.
chega_carro
chega_carro
Após duas chegadas, a fila fica cheia e uma terceira chegada permanece desabilitada.
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.
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.
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.
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.
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.
- Instale o CPN Tools.
- Baixe ou clone este repositório.
- Abra o arquivo
modelos/modelo_cpn_tools.cpn. - Aguarde a verificação automática de sintaxe.
- Utilize a simulação passo a passo para executar os cenários apresentados.
- Para a análise formal, gere o espaço de estados e o grafo de componentes fortemente conectados.
Assistir à demonstração no YouTube
.
├── README.md
├── modelos/
│ └── modelo_cpn_tools.cpn
└── docs/
└── imagens/
├── sistema.png
├── vaga_a.png
└── vaga_b.png
- Jose Vanilson de Brito Junior
- Kayo Matheus Araujo Santos
- Rafael dos Santos Lima


