// public void CarregaMapsGrafoAlim() { // preenche map Nome Branchs _dicNomeBranchs.PreencheMapNomeBranchs(_paramGerais.GetNomeAlimAtual()); // preenche map Nome Vertices PreencheMapNomeVertices(); // carrega matriz incidencia CarregaCSVMatrizInc(); // cria objeto QuickGraph CriaObjQuickGraph(); }
// Executa fluxo mensal public bool ExecutaFluxoMensal() { //Executa fluxo diário openDSS. Se alimentador não convergiu, não calcula SA e DO if (!_fluxoDU.ExecutaFluxoDiario()) { return(false); } //Executa fluxo diário openDSS. Se alimentador não convergiu, não calcula DO if (!_fluxoSA.ExecutaFluxoDiario()) { return(false); } //Executa fluxo diário openDSS if (!_fluxoDO.ExecutaFluxoDiario()) { return(false); } // calcula resultados mensal _resFluxoMensal.CalculaResultadoFluxoMensal(_fluxoDU._resFluxo, _fluxoSA._resFluxo, _fluxoDO._resFluxo, _paramGerais, _janela); //nivel pu string nivelTensaoPU = _fluxoDU._oDSS.GetActiveCircuit().Vsources.pu.ToString("0.###"); //Plota perdas na tela //TODO fix me _janela.ExibeMsgDisplayMW(_resFluxoMensal.GetResultadoFluxoToConsole( nivelTensaoPU, _paramGerais.GetNomeAlimAtual())); return(true); }
//Plota niveis tensao nas barras dos trafos public void PlotaCargasIsoladasArq(MainWindow janela) { // se convergiu if (_circuit.Solution.Converged) { // nome alim string nomeAlim = _param.GetNomeAlimAtual(); // linha String linha = ""; // para cada key value foreach (string carga in _lstCargasIsoladas) { // evita plotagem do null em _lstCargasIsoladas if (carga == null) { break; } // TODO tratar retirada \n ultima linha linha += nomeAlim + "\t" + carga + "\n"; } TxtFile.GravaEmArquivo2(linha, _param.GetNomeArqBarraTrafoLocal(), janela); } }
// faz permutacao de ramos private void BranchExchange() { // inicializa _lstParDeChavesOtm _lstParDeChavesOtm = new List <string> { "Chave NA atual \tNovaNA \tRedução(kWh/mês) \tTensão antes (kV) \tTensão Depois (kV) \tVariação(%)" }; // para cada chave NA foreach (Switch chaveNA in _lstChavesNA) { // string novaChaveNA = DefineNovaChaveNA(chaveNA); // se houve sucesso, avisa usuario if (novaChaveNA != null) { // analisa melhoria de tensao nas monabora, verificando as chaves NF (antes e depois) string strTensoes = VoltageVerificationIn_NO_Switches(chaveNA, novaChaveNA); string plot = _paramGerais.GetNomeAlimAtual() + "\t" + chaveNA.nome + "\t" + novaChaveNA + "\t" + chaveNA.redPerda_kWh.ToString("0.##") + "\t" + strTensoes; _lstParDeChavesOtm.Add(plot); // DEBUG // Informa manobra ao usuario //_janela.ExibeMsgDisplayMW("\n Fechar chaveNA: " + chaveNA.nome + " Abrir chaveNF: " + novaChaveNA); } } }
// Executa fluxo Snap public bool ExecutaFluxoSnap() { // carrega alimentador no objDSS CarregaDSS(); // Executa fluxo Snap PVT bool ret = ExecutaFluxoSnapPvt(); //informa usuario convergencia if (ret) { _janela.ExibeMsgDisplayMW(GetMsgConvergencia(null, _nomeAlim)); } //nivel pu string nivelTensaoPU = _oDSS.GetActiveCircuit().Vsources.pu.ToString("0.###"); //Plota perdas na tela _janela.ExibeMsgDisplayMW(_resFluxo.GetResultadoFluxoToConsole( nivelTensaoPU, _paramGerais.GetNomeAlimAtual())); return(ret); }
// grava numero clientes com DRP e DRC no arquivo public void ImprimeNumClientesDRPDRC(GeneralParameters paramGerais, MainWindow _janela) { //nome arquivo DRP e DRC string nomeArq = paramGerais.GetNomeComp_arquivoDRPDRC(); // nome alim string nomeAlim = paramGerais.GetNomeAlimAtual(); // linha //ALim DRP DRC totais string linha = nomeAlim + "\t" + _numClientesOK.ToString() + "\t" + _numClientesDRP.ToString() + "\t" + _numClientesDRC.ToString() + "\t" + _numClientesTotal.ToString(); //Grava em arquivo TxtFile.GravaEmArquivo(linha, nomeArq, _janela); }
// internal double GetLoadMult() { // mes int mes = _paramGerais._parGUI.GetMes(); //alim string alimTmp = _paramGerais.GetNomeAlimAtual(); if (_mapAlimLoadMult[mes].ContainsKey(alimTmp)) { return(_mapAlimLoadMult[mes][alimTmp]); } return(double.NaN); }
// public void GravaTensaoBarraTrafos(MainWindow janela) { // nome alim string nomeAlim = _param.GetNomeAlimAtual(); // linha String linha = ""; // para cada key value foreach (KeyValuePair <string, double> kvp in _nivelTensaoBarra) { // TODO tratar retirada \n ultima linha linha += nomeAlim + "\t" + kvp.Key + "\t" + kvp.Value.ToString() + "\n"; } TxtFile.GravaEmArquivo2(linha, _param.GetNomeArqBarraTrafo(), janela); }
//Tradução da função calculaResultadoFluxoMensal //O resultado no fluxo mensal eh armazenado na variavel da classe public void CalculaResultadoFluxoMensal(PFResults perdasDU, PFResults perdasSA, PFResults perdasDO, GeneralParameters paramGerais, MainWindow janela) { // Limpa medidor atual. _energyMeter = new MyEnergyMeter(); // calcula geracao e perdas maximas entre os 3 dias tipicos CalcGeracaoEPerdasMax(perdasDU, perdasSA, perdasDO); //Obtem mes int mes = paramGerais._parGUI.GetMes(); // cria curva de carga dados: numero de dias do mes e matriz de consumo em PU Dictionary <string, int> numTipoDiasMes = paramGerais._objTipoDeDiasDoMes._qntTipoDiasMes[mes]; // DIAS UTEIS perdasDU._energyMeter.MultiplicaEnergia(numTipoDiasMes["DU"]); // multiplica pelo Num dias perdasSA._energyMeter.MultiplicaEnergia(numTipoDiasMes["SA"]); // multiplica pelo Num dias perdasDO._energyMeter.MultiplicaEnergia(numTipoDiasMes["DO"]); // perdas energia SomaEnergiaDiasTipicos(perdasDU, perdasSA, perdasDO); // setMes _energyMeter.SetMesEM(mes); // grava LoadMult do DU _energyMeter.GravaLoadMult(perdasDU._energyMeter.loadMultAlim); // cria string com o formato de saida das perdas string conteudo = _energyMeter.FormataResultado(paramGerais.GetNomeAlimAtual()); // se modo otimiza nao grava perdas arquivo if (!paramGerais._parGUI._otmPorEnergia) { // grava perdas alimentador em arquivo TxtFile.GravaEmArquivo(conteudo, paramGerais.GetNomeComp_arquivoResPerdasMensal(), janela); } // Se chegou ate aqui, seta convergencia para true _convergiuBool = true; }
// grava numero clientes com DRP e DRC no arquivo public void ImprimeBarrasDRPDRC(GeneralParameters paramGerais, MainWindow _janela) { //nome arquivo DRP e DRC string nomeArq = paramGerais.GetNomeComp_arqBarrasDRPDRC(); // nome alim string nomeAlim = paramGerais.GetNomeAlimAtual(); // linha List <string> lstStr = new List <string>(); // foreach (string barras in _lstBarrasDRCeDRP) { lstStr.Add(nomeAlim + "\t" + barras); } //Grava em arquivo TxtFile.GravaListArquivoTXT(lstStr, nomeArq, _janela); }
// public void ImprimeNiveisTensao() { //nome arquivo DRP e DRC string nomeArq = _paramGerais.GetNomeComp_arqBarrasDRPDRC(); // nome alim string nomeAlim = _paramGerais.GetNomeAlimAtual(); // linha List <string> lstStr = new List <string>(); // for (int i = 0; i < _VmagPu_antes.Count; i++) { lstStr.Add(_NomeBarras[i] + "\t" + _VmagPu_antes[i].ToString() + "\t" + _VmagPu_depois[i].ToString()); } //Grava em arquivo TxtFile.GravaListArquivoTXT(lstStr, nomeArq, _janela); }
// calcula tensao barra trafos public void GetTapRTs() { int iTrafo = _trafosDSS.First; // para cada carga while (iTrafo != 0) { // nome trafo string trafoName = _trafosDSS.Name; //skipa banco de reguladores if (trafoName.Contains("rt")) { //add _tapsRT.Add(_param.GetNomeAlimAtual() + "\t" + trafoName + "\t" + _trafosDSS.Tap); } // itera iTrafo = _trafosDSS.Next; } }
public DailyFlow(GeneralParameters paramGerais, MainWindow janela, ObjDSS objDSS, string tipoDia = "DU", bool soMT = false) { // variaveis da classe _paramGerais = paramGerais; _janela = janela; _oDSS = objDSS; // TODO FIX ME da pau quando executa a segunda vez // OBS: datapath setado por alim string temp = _paramGerais.GetDataPathAlimOpenDSS(); _oDSS._DSSObj.DataPath = temp; // nome alim _nomeAlim = _paramGerais.GetNomeAlimAtual(); // seta variavel _soMT = soMT; // TODO SetTipoDia(paramGerais._parGUI); }
//Plota niveis tensao nas barras dos trafos public void PlotaLoopedPairs(List <string> lstLoops) { // nome alim string nomeAlim = _paramGerais.GetNomeAlimAtual(); // linha String linha = ""; // para cada key value foreach (string loop in lstLoops) { //armazena nomeALim e loop linha += nomeAlim + "\t" + loop; //adiciona quebra de linha if (loop != lstLoops.Last()) { linha += "\n"; } } TxtFile.GravaEmArquivoAsync(linha, _paramGerais.GetNomeCompArqLoops(), _janelaPrincipal); }
internal void AtualizaMapAlimLoadMult(double loadMult) { _reqLoadMultMes.AtualizaMapAlimLoadMult(_paramGerais.GetNomeAlimAtual(), loadMult, _paramGerais._parGUI.GetMes()); }