private void AnaliseLoopsPvt(string nomeAlim) { // atribui nomeAlim _paramGerais.SetNomeAlimAtual(nomeAlim); // Carrega arquivos DSS so MT _fluxoSoMT = new DailyFlow(_paramGerais, _janelaPrincipal, _oDSS, null, true); // Carrega arquivos DSS if (_fluxoSoMT.CarregaAlimentador()) { // SE executou fluxo snap if (_fluxoSoMT.ExecutaFluxoSnap()) { // verifica cancelamento usuario if (_janelaPrincipal._cancelarExecucao) { return; } // AnaliseLoops2(); } } }
// calcula fluxo mensal sobre o "caso base" e armazena resultado de perdas em variavel da classe. private bool CalculaFluxoMensalBase(string nomeAlim) { // TODO criar nova flag interna // seta este parametro para true para evitar a recarga dos arquivos texto _paramGerais._parGUI._otmPorEnergia = true; _paramGerais._parGUI.SetAproximaFluxoMensalPorDU(true); // atribui nomeAlim _paramGerais.SetNomeAlimAtual(nomeAlim); // Carrega arquivos DSS _fluxoMensal = new MonthlyPowerFlow(_paramGerais, _janela, _oDSS); // Carrega alimentador _fluxoMensal.CarregaAlimentador(); // _janela.ExibeMsgDisplayMW("Configuração Inicial"); // TODO Inserir opcao de Otimizar tambem FluxoMensal bool ret = _fluxoMensal.ExecutaFluxoMensalSimples(); // se covergiu if (ret) { // TODO //bool ret2 = _fluxoMensal.ExecutaFluxoMaximaDiaria(); // nivel de tensao antes _VmagPu_antes = GetAllBusVmagPu(); // nome das barras GetAllBusNames(); /* * // TODO utilizar esta variavel nas analises * // preeenche variavel cargas isoladas * _numCargasIsoladas = _fluxoMensal.GetNumCargasIsoladas(); */ } else { _janela.ExibeMsgDisplayMW("Caso Base Não convergiu"); } return(ret); }
private void AnaliseChavesNAsPvt(string nomeAlim) { // atribui nomeAlim _paramGerais.SetNomeAlimAtual(nomeAlim); // Carrega arquivos DSS so MT _fluxoSoMT = new DailyFlow(_paramGerais, _janela, _oDSS, null, true); // Carrega arquivos DSS bool ret = _fluxoSoMT.CarregaAlimentador(); if (!ret) { _janela.ExibeMsgDisplayMW("Problema ao executar fluxo só MT!"); return; } // executa fluxo snap ret = _fluxoSoMT.ExecutaFluxoSnap(); // se exibeConvergencia if (ret) { // verifica cancelamento usuario if (_janela._cancelarExecucao) { return; } // get chaves NAs conjunto/alimentador GetChaves(); // cria objeto grafo, juntamente com as matrizes de incidencia _grafo = new FeederGraph(_paramGerais, _janela, _fluxoSoMT._oDSS._DSSText); // verifica se extremidades das chaves NAs estao no conjunto escolhido // OBS: no momento esta filtrando chaves monofasicas tb FiltraLstChavesNAs(); // TODO // Calcula Numero de Loops // DEBUG plota chaves // plotaChavesNA(); // TODO criar nova flag interna // seta este parametro para true para evitar a recarga dos arquivos texto _paramGerais._parGUI._otmPorEnergia = true; _paramGerais._parGUI.SetAproximaFluxoMensalPorDU(true); // Creates monthly PF obj. _fluxoMensal = new MonthlyPowerFlow(_paramGerais, _janela, _oDSS); // fluxo mensal que servira de referencia para a otimizacao bool ret2 = _fluxoMensal.CalculaFluxoMensalBase(); if (ret2) { // preeenche variavel cargas isoladas _numCargasIsoladas = _fluxoMensal.GetNumCargasIsoladas(); // armazena resultado do fluxo em variavel temporaria _resCasoBase = new PFResults(_fluxoMensal._resFluxoMensal); // para cada chave NA, escolhe 1 chave NF BranchExchange(); //ajusta numero de FPS, considerando o inicial (so na MT) _fluxoMensal._nFP++; // plota numero de FPs _janela.ExibeMsgDisplayMW("Número de FPs: " + _fluxoMensal._nFP.ToString()); // plota pares otimizados PlotaChavesOtimizadas(); } } }