コード例 #1
0
        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();
                }
            }
        }
コード例 #2
0
        public MonthlyPowerFlow(GeneralParameters paramGerais, MainWindow janela, ObjDSS oDSS)
        {
            // preenche variaveis da classe
            _paramGerais = paramGerais;
            _janela      = janela;

            // fluxo dia util
            _fluxoDU = new DailyFlow(paramGerais, janela, oDSS, "DU");

            // fluxo sabado
            _fluxoSA = new DailyFlow(paramGerais, janela, oDSS, "SA");

            // fluxo domingo
            _fluxoDO = new DailyFlow(paramGerais, janela, oDSS, "DO");

            // instancia obj resultado Mensal
            _resFluxoMensal = new PFResults();
        }
コード例 #3
0
        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();
                }
            }
        }