v{{ release.version }} — {{ formatVersionDate(release.date) }} {{ tx('atual') }}
{{ tx(section.title) }}
- {{ item.replace(/`/g, '') }}
Analyze. Simulate. Understand. Optimize.
{{ tx('Selecione um caso na lista ao lado ou carregue um caso de exemplo para começar.') }}
{{ tx('Arquivo em memória') }}
{{ tx('Avisos da leitura') }}
{{ tx('Valores nas unidades do manual do sistema. O arquivo selecionado sobrescreve os valores padrão.') }}
| {{ tx('Código') }} | {{ tx('Valor') }} | {{ tx('Unidade') }} | Default | {{ tx('Descrição') }} |
|---|---|---|---|---|
| {{ constant.code }} | {{ constant.unit || '—' }} | {{ formatConstantValue(constant.default) }} | {{ constant.description }} | |
| {{ tx('Nenhuma constante encontrada.') }} | ||||
{{ modifiedConstantsCount }} {{ tx('constante(s) alterada(s) em relação ao caso selecionado.') }}
| {{ tx('Código') }} | {{ tx('Valor') }} | {{ tx('Unidade') }} | Default | {{ tx('Descrição') }} |
|---|---|---|---|---|
| {{ constant.code }} | {{ constant.unit || '—' }} | {{ formatConstantValue(constant.default) }} | {{ constant.description }} |
{{ tx('Editar aqui altera a mesma constante da aba "Constantes" (lista completa lá).') }}
{{ tx('P/Q em branco equivalem a 0%; Pmáx/Qmáx em branco equivalem a 9999% (valor padrão adotado quando o campo fica vazio — praticamente sem limite de crescimento). Clique numa seleção da lista para editá-la com "Alterar".') }}
{{ tx('Uma curva Q x V é traçada para cada barra do conjunto, variando a tensão entre o mínimo e o máximo em passos do degrau. Clique numa seleção da lista para editá-la com "Alterar".') }}
{{ tx('Execute um Fluxo de Potência (EXLF) para ver o resumo pós-execução.') }}
{{ tx('Resíduo de P') }}: {{ formatNumber(lfDashboard.worst_mismatch.p.value_mw) }} MW ({{ lfDashboard.worst_mismatch.p.bus_number }} - {{ lfDashboard.worst_mismatch.p.bus_name }}) · {{ tx('Resíduo de Q') }}: {{ formatNumber(lfDashboard.worst_mismatch.q.value_mvar) }} MVAr ({{ lfDashboard.worst_mismatch.q.bus_number }} - {{ lfDashboard.worst_mismatch.q.bus_name }})
| {{ tx('Ocorrência') }} | {{ tx('Geração MW') }} | {{ tx('Geração MVAr') }} | {{ tx('Carga MW') }} | {{ tx('Carga MVAr') }} | {{ tx('Perdas MW') }} | {{ tx('Perdas MVAr') }} |
|---|---|---|---|---|---|---|
| {{ row.id }} - {{ row.name }} | {{ formatNumber(row.generation_p) }} | {{ formatNumber(row.generation_q) }} | {{ formatNumber(row.load_p) }} | {{ formatNumber(row.load_q) }} | {{ formatNumber(row.losses_p) }} | {{ formatNumber(row.losses_q) }} |
{{ tx('Execute um caso (aba Entrada) para ver os circuitos — esta tabela usa os mesmos dados do diagrama unifilar, disponíveis apenas após uma execução resolvida nesta sessão.') }}
{{ tx('Execute o fluxo de potência pelo menos duas vezes nesta sessão para comparar soluções (ex.: antes e depois de alternar o estado de um circuito).') }}
{{ tx('Células destacadas indicam diferença entre as duas soluções.') }}
| {{ tx('Número') }} | {{ tx('Nome') }} | {{ tx('Tensão (p.u.)') }} | Δ V | {{ tx('Ângulo (graus)') }} | Δ θ | ||
|---|---|---|---|---|---|---|---|
| A | B | A | B | ||||
| {{ row.barra }} | {{ row.nome }} | {{ formatNumber(row.tensaoA, 3) }} | {{ formatNumber(row.tensaoB, 3) }} | {{ row.deltaV === null ? '—' : formatNumber(row.deltaV, 3) }} | {{ formatNumber(row.anguloA, 1) }} | {{ formatNumber(row.anguloB, 1) }} | {{ row.deltaAngulo === null ? '—' : formatNumber(row.deltaAngulo, 1) }} |
| {{ tx('De') }} | {{ tx('Para') }} | {{ tx('Circuito') }} | {{ tx('Estado') }} | {{ tx('Carregamento (%)') }} | Δ | ||
|---|---|---|---|---|---|---|---|
| A | B | A | B | ||||
| {{ row.de }} — {{ row.deNome }} | {{ row.para }} — {{ row.paraNome }} | {{ row.circuito }} | {{ row.estadoA === null ? '—' : tx(row.estadoA) }} | {{ tx(row.estadoB) }} | {{ formatNumber(row.carregamentoA, 1) }} | {{ formatNumber(row.carregamentoB, 1) }} | {{ row.deltaCarregamento === null ? '—' : formatNumber(row.deltaCarregamento, 1) }} |
{{ tx('Selecione ao menos uma barra para desenhar a curva.') }}
{{ tx('Nenhuma curva P-V disponível. Execute o Fluxo de Potência Continuado (EXIC).') }}
{{ tx('Selecione ao menos uma barra para desenhar a curva.') }}
{{ tx('Nenhuma curva Q-V disponível. Execute a Curva QV (EXQV).') }}
{{ executionLog }}
{{ tx('Equipamentos diretamente conectados à barra central. Clique em uma barra vizinha para navegar. Role o mouse para ajustar o zoom ou arraste para mover a visão.') }}
{{ tx('Grafo desta vizinhança é planar — nenhum cruzamento é estruturalmente inevitável.') }}
{{ tx('Grafo desta vizinhança') }} {{ tx('não') }} {{ tx('é planar — cruzamento inevitável em qualquer desenho 2D entre:') }} {{ index > 0 ? ', ' : '' }}{{ edge.from_number }}↔{{ edge.to_number }}. {{ tx('O diagrama já insere um "salto" visual automático onde esse cruzamento aparece no desenho atual.') }}
{{ tx('Para usar a IA, gere uma chave no provedor escolhido e cole-a no campo') }} API Key. {{ tx('Gerar chave OpenAI') }} {{ tx('ou') }} {{ tx('Gerar chave Google AI Studio') }}.
{{ tx('O servidor já tem uma chave') }} {{ currentAiConfig.env_key_name }} {{ tx('configurada para') }} {{ aiProvider }} {{ tx('— deixe o campo') }} API Key {{ tx('em branco para usá-la automaticamente, ou informe uma chave própria para sobrepô-la.') }}
{{ message.content }}
{{ tx('PDFs técnicos em Mapas/ (ex.: mapas do sistema elétrico). Role o mouse para ajustar o zoom ou arraste para mover a visão.') }}
{{ mapsError || tx('Nenhum PDF encontrado em Mapas/.') }}
{{ tx('Este PDF não tem texto extraível (ex.: mapa desenhado como vetor/curva) — apenas navegação visual está disponível.') }}
{{ mapsSearchError }}
{{ tx('Usinas, subestações e linhas de transmissão do Sistema Interligado Nacional, publicados pelo ONS (sig.ons.org.br), sobre um mapa OpenStreetMap. Role para zoom, arraste para mover.') }}
{{ sinTopologyError }}
{{ tx('Carregando topologia do SIN...') }}
{{ tx('SOBRE O PROJETO') }}
{{ tx('Uma ferramenta para análise, simulação e compreensão de sistemas elétricos de potência.') }}
{{ tx('O PowerLab reúne recursos para carregar casos, executar fluxos de potência, consultar resultados, visualizar o diagrama unifilar e explorar relatórios técnicos com o auxílio de IA.') }}
{{ tx('AJUDE A EVOLUIR') }}
{{ tx('Encontrou um problema, tem uma sugestão ou quer compartilhar sua experiência? Sua contribuição ajuda a tornar o PowerLab melhor.') }}
{{ tx('Ou envie um e-mail para') }} powerlab_project@gmail.com.
{{ tx('Enviar feedback') }}{{ tx('Descrições das alterações disponíveis apenas em português.') }}
{{ tx('Compare dois ou mais casos (.pwf) entre si — útil em análise de contingências e comparação de alternativas.') }}
| {{ tx('Rótulo') }} | {{ tx('Arquivo') }} | |
|---|---|---|
| {{ c.file }} |
{{ tx('Adicione pelo menos 2 casos para comparar (ex.: o caso base e uma variante com uma contingência já salva em outro arquivo .pwf).') }}
{{ tx('Adicione pelo menos 2 casos acima para comparar.') }}
{{ tx('Células destacadas indicam diferença entre os dois casos; tensões fora da faixa normal (0,95–1,05 pu) ficam marcadas como atenção/crítico.') }}
| {{ tx('Número') }} | {{ tx('Nome') }} | {{ tx('Tensão (p.u.)') }} | Δ V | |
|---|---|---|---|---|
| {{ comparePairResult.diff.labels.a }} | {{ comparePairResult.diff.labels.b }} | |||
| {{ row.chave }} | {{ row.a.nome }} | {{ formatNumber(row.a.tensao_pu, 3) }} | {{ formatNumber(row.b.tensao_pu, 3) }} | {{ formatSignedNumber(row.delta.tensao_pu, 4) }} |
{{ tx('Barras exclusivas de um dos casos') }}: {{ comparePairResult.diff.buses.somente_a.length }} {{ tx('só em A') }}, {{ comparePairResult.diff.buses.somente_b.length }} {{ tx('só em B') }}.
| {{ tx('Circuito') }} | {{ tx('Estado') }} | {{ tx('Fluxo (MW)') }} | {{ tx('Carregamento (%)') }} | ||
|---|---|---|---|---|---|
| {{ comparePairResult.diff.labels.a }} | {{ comparePairResult.diff.labels.b }} | {{ comparePairResult.diff.labels.a }} | {{ comparePairResult.diff.labels.b }} | ||
| {{ row.a.de }}–{{ row.a.para }}·c{{ row.a.circuito }} | {{ row.a.estado === row.b.estado ? tx(row.b.estado ? 'Ligado' : 'Desligado') : (tx(row.a.estado ? 'Ligado' : 'Desligado') + ' → ' + tx(row.b.estado ? 'Ligado' : 'Desligado')) }} | {{ formatNumber(row.a.fluxo_de_mw, 1) }} | {{ formatNumber(row.b.fluxo_de_mw, 1) }} | {{ formatNumber(row.a.carregamento_de_pct, 1) }} | {{ formatNumber(row.b.carregamento_de_pct, 1) }} |
{{ tx('Adicione pelo menos 2 casos acima para comparar.') }}
{{ tx('Compara o conteúdo bruto dos dois arquivos .pwf selecionados, linha a linha, sem rodar o fluxo de potência — útil pra ver o que mudou entre duas versões do mesmo caso.') }}
{{ tx('Arquivos idênticos — nenhuma diferença encontrada.') }}
{{ comparePairTextResult.diff.stats.replace }} {{ tx('linha(s) modificada(s)') }}, {{ comparePairTextResult.diff.stats.insert }} {{ tx('inserida(s)') }}, {{ comparePairTextResult.diff.stats.delete }} {{ tx('removida(s)') }}.
| # | {{ comparePairTextResult.diff.labels.a }} | # | {{ comparePairTextResult.diff.labels.b }} |
|---|---|---|---|
| {{ row.a_line }} | {{ seg.text }} {{ row.a_text }} | {{ row.b_line }} | {{ seg.text }} {{ row.b_text }} |
{{ tx('Adicione pelo menos 2 casos acima para comparar.') }}
{{ compareBatchStatus.error }}
{{ tx('Pior caso (mínimo/máximo) através de todos os casos, com o caso responsável por cada extremo.') }}
| {{ tx('Barra') }} | {{ tx('V mín (pu)') }} | {{ tx('caso') }} | {{ tx('V máx (pu)') }} | {{ tx('caso') }} |
|---|---|---|---|---|
| {{ row.chave }} | {{ formatNumber(row.envelope.tensao_pu.min, 4) }} | {{ row.envelope.tensao_pu.min_caso }} | {{ formatNumber(row.envelope.tensao_pu.max, 4) }} | {{ row.envelope.tensao_pu.max_caso }} |
| {{ tx('Circuito') }} | {{ tx('Carreg. mín (%)') }} | {{ tx('caso') }} | {{ tx('Carreg. máx (%)') }} | {{ tx('caso') }} |
|---|---|---|---|---|
| {{ row.chave[0] }}–{{ row.chave[1] }}·c{{ row.chave[2] }} | {{ formatNumber(row.envelope.carregamento_de_pct.min, 2) }} | {{ row.envelope.carregamento_de_pct.min_caso }} | {{ formatNumber(row.envelope.carregamento_de_pct.max, 2) }} | {{ row.envelope.carregamento_de_pct.max_caso }} |
{{ tx('Cole aqui os blocos DBTB/DFTB/DPGE/DQGE de uma definição de Tabelador do ANAREDE para extrair a lista de barras/circuitos/geradores a observar.') }}
{{ tx('Importado') }}: {{ compareWatchlistResult.counts.dbtb }} {{ tx('barra(s) (DBTB)') }}, {{ compareWatchlistResult.counts.dftb }} {{ tx('circuito(s) (DFTB)') }}, {{ compareWatchlistResult.counts.dpge }} {{ tx('gerador(es) ativa (DPGE)') }}, {{ compareWatchlistResult.counts.dqge }} {{ tx('gerador(es) reativa (DQGE)') }}.