// Executa fluxo snap private bool ExecutaFluxoSnapPvt() { // Interfaces Circuit DSSCircuit = _oDSS._DSSObj.ActiveCircuit; Solution DSSSolution = _oDSS._DSSObj.ActiveCircuit.Solution; // realiza ajuste das cargas double loadMult = _paramGerais.GetLoadMult(); if (loadMult == 0) { _janela.ExibeMsgDisplayMW("LoadMult igual a 0"); return(false); } DSSSolution.LoadMult = loadMult; // usuario escolheu tensao barramento if (_paramGerais._parGUI._usarTensoesBarramento) { DSSCircuit.Vsources.pu = double.Parse(_paramGerais._parGUI._tensaoSaidaBarUsuario); } // TODO erro em reconfiguracao // seta algorithm Normal ou Newton _oDSS._DSSText.Command = "Set Algorithm = " + _paramGerais._AlgoritmoFluxo; // seta modo snap. _oDSS._DSSText.Command = "Set mode=snap"; // resolve circuito DSSSolution.Solve(); if (DSSCircuit.Solution.Converged) { // Obtem dados para o medidor _oDSS._DSSText.Command = "energymeter.carga.action=take"; // Obtem valores de pot e energia dos medidores GetValoresEnergyMeter(); // verifica saida e grava perdas em arquivo OU alimentador que nao tenha convergido GravaPerdasArquivo(); return(true); } return(false); }