// executa modo Mensal public void ExecutaMensal(List <string> lstAlimentadoresCemig) { //Limpa Arquivos _paramGerais.DeletaArqResultados(); //Roda fluxo para cada alimentador foreach (string alim in lstAlimentadoresCemig) { if (_janela._cancelarExecucao) { return; } // atribui nomeAlim _paramGerais.SetNomeAlimAtual(alim); //cria objeto fluxo diario _fluxoMensal = new MonthlyPowerFlow(_paramGerais, _janela, _oDSS); // se carregou alimentador if (_fluxoMensal.CarregaAlimentador()) { //Execução com otimização if (_paramGerais._parGUI._otmPorEnergia) { // Otimiza por energia Otimiza(); continue; } // Otimiza PU saida if (_paramGerais._parAvan._otimizaPUSaidaSE) { // Calcula nivel otimo PU OtimizaPUSaidaSE(); continue; } //Execução padrão Mensal(); } } //Se modo otimiza grava arquivo load mult if (_paramGerais._parGUI._otmPorEnergia) { _paramGerais.GravaMapAlimLoadMultExcel(); } }
// 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); }
// Fluxo anual public void ExecutaAnual(List <string> lstAlimentadoresCemig) { //Limpa Arquivos _paramGerais.DeletaArqResultados(); //Seta modo anual _paramGerais._parGUI._modoAnual = true; //Roda fluxo para cada alimentador foreach (string alim in lstAlimentadoresCemig) { // atribui alim _paramGerais.SetNomeAlimAtual(alim); //Vetor _resultadoFluxo List <PFResults> lstResultadoFluxo = new List <PFResults>(); // para cada mes executa um fluxo mensal for (int mes = 1; mes < 13; mes++) { // Verifica se foi solicitado o cancelamento. if (_janela._cancelarExecucao) { return; } // set mes _paramGerais._parGUI.SetMes(mes); //cria objeto fluxo diario _fluxoMensal = new MonthlyPowerFlow(_paramGerais, _janela, _oDSS); // se nao carregou alimentador retorna if (_fluxoMensal.CarregaAlimentador()) { // Otimiza if (_paramGerais._parGUI._otmPorEnergia) { Otimiza(); } else { // Executa Fluxo Mensal _fluxoMensal.ExecutaFluxoMensal(); } PFResults resTmp = new PFResults(_fluxoMensal._resFluxoMensal); //Armazena Resultado lstResultadoFluxo.Add(resTmp); } // FIX ME // se nao carregou alimentador, forca mes = 13 para terminar o for else { mes = 13; break; } } // se convergiu, Calcula resultado Ano if (_fluxoMensal._resFluxoMensal._convergiuBool) { //Calcula resultado Ano _fluxoMensal._resFluxoMensal.CalculaResAno(lstResultadoFluxo, alim, _paramGerais.GetNomeComp_arquivoResPerdasAnual(), _janela); } } }