Пример #1
0
        // 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();
            }
        }
Пример #2
0
        // 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);
        }
Пример #3
0
        // 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);
                }
            }
        }