//calcula resultado ano internal void CalculaResAno(List <PFResults> lstResultadoFluxo, string alim, string arquivo, MainWindow jan) { // obtem 1mês PFResults res1 = lstResultadoFluxo.First(); //usa variavel da classe para armazenar a soma _energyMeter = res1._energyMeter; //remove lstResultadoFluxo.Remove(res1); // obtem medidores do 2mes em diante e soma com o 1mes foreach (PFResults res in lstResultadoFluxo) { //medidor MyEnergyMeter emMes = res._energyMeter; //soma _energyMeter.Soma(emMes); } // cria string com o formato de saida das perdas string conteudo = _energyMeter.FormataResultado(alim); // grava perdas alimentador em arquivo TxtFile.GravaEmArquivo(conteudo, arquivo, jan); }
// Soma energia calculada dias tipicos private void SomaEnergiaDiasTipicos(PFResults perdasDU, PFResults perdasSA, PFResults perdasDO) { _energyMeter.Soma(perdasDU._energyMeter); _energyMeter.Soma(perdasSA._energyMeter); _energyMeter.Soma(perdasDO._energyMeter); }
// set energia e perdas mes para o fluxo simplificado public void SetEnergiaPerdasFluxoSimples(PFResults resFluxo, GeneralParameters par) { // mes int mes = par._parGUI.GetMes(); // num de dias do mes int numDias = par._objTipoDeDiasDoMes.GetNumDiasMes(mes); // SetEnergiaPerdasFluxoSimples(resFluxo, numDias); }
//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; }
// calcula geracao e perdas maximas entre os 3 dias tipicos private void CalcGeracaoEPerdasMax(PFResults perdasDU, PFResults perdasSA, PFResults perdasDO) { // DIAS UTEIS perdasDU MAX List <double> perdasDUMax = perdasDU.GetGeracaoEPerdaPotencia(); // SABADO MAX List <double> perdasSAMax = perdasSA.GetGeracaoEPerdaPotencia(); // DOMINGO MAX List <double> perdasDOMax = perdasDO.GetGeracaoEPerdaPotencia(); // geracao maxima double geracaoMax = Math.Max(Math.Max(perdasDUMax[0], perdasSAMax[0]), perdasDOMax[0]); // perdas maxima double perdasMax = Math.Max(Math.Max(perdasDUMax[1], perdasSAMax[1]), perdasDOMax[1]); // atribui variavel da classe _energyMeter.MaxkW = geracaoMax; _energyMeter.MaxkWLosses = perdasMax; }
// set energia e perdas mes para o fluxo simplificado internal void SetEnergiaPerdasFluxoSimples(PFResults resFluxo, int numDias) { //get Energia diaria double energiaDiaria = resFluxo.GetEnergia(); // calcula energia mensal double energiaMes = energiaDiaria * numDias; // preenchee variavel da classe SetEnergia(energiaMes); //get Perda diaria double perdaDiaria = resFluxo.GetPerdasEnergia(); //perda mensal double perdaMes = perdaDiaria * numDias; // preenche varial de perdas _energyMeter.LossesKWh = perdaMes; // seta fluxo mensal igual a true _convergiuBool = true; }
//Construtor por copia public PFResults(PFResults rf) { _convergiuBool = rf._convergiuBool; _energyMeter = new MyEnergyMeter(rf._energyMeter); }