protected void AtualizaGrafico() { double densidade = Convert.ToDouble(numericDensidade.Value) * 1000; double viscosidade = Convert.ToDouble(numericViscosidade.Value) / 1000; double diametro = Convert.ToDouble(numericDiametro.Value) / 100; double comprimento = Convert.ToDouble(numericComprimento.Value); double rugosidade = Convert.ToDouble(numericRugosidade.Value) / 1000000; double elevacao = Convert.ToDouble(numericElevacao.Value); double AeqBomba = (trackBarAeq.Value / 500.0); double BeqBomba = (trackBarBeq.Value / 500.0) * (-2096928); double CeqBomba = (trackBarCeq.Value / 500.0) * 2649.96; double DeqBomba = (trackBarDeq.Value / 500.0) * 26; // Cria o fluido agua usando o constructor FluidoOPI agua = new FluidoOPI(densidade, viscosidade); // Cria a tubulação tubo1 usando o constructor Tubulacao tubo1 = new Tubulacao(diametro, comprimento, new MaterialTubulacao(rugosidade), elevacao); // Cria as singularidades usando o constructor Singularidade s1 = new Singularidade(1, "Cotovelo"); Singularidade s2 = new Singularidade(2, "Cotovelo"); tubo1.AdicionaSingularidade(s1); tubo1.AdicionaSingularidade(s2); Bomba bomba1 = new Bomba(new double[] { AeqBomba, BeqBomba, CeqBomba, DeqBomba }, agua, tubo1); // Atualiza os valores da bomba bomba1.CalculaVazao(); List <double> plotX; List <double> plotYBomba; List <double> plotYtubo; // Prepara os pontos para plotagem (plotX, plotYBomba, plotYtubo) = bomba1.PreparaPlot(40); // Ponto de operacao para plotagem double[] pontoOperacaoX = new double[1]; double[] pontoOperacaoY = new double[1]; // Definicao do ponto de operacao pontoOperacaoX[0] = bomba1.Vazao * 3600; // m^3/h pontoOperacaoY[0] = bomba1.CalcAlturaBomba(bomba1.Vazao); // Plotagem da curva da bomba e da tubulacao chart2.Series[0].Points.DataBindXY(plotX, plotYBomba); chart2.Series[1].Points.DataBindXY(plotX, plotYtubo); // Plotagem do ponto de operacao chart2.Series[2].Points.DataBindXY(pontoOperacaoX, pontoOperacaoY); chart2.Series[2].Label = "Ponto de operacao (" + Math.Round(pontoOperacaoX[0], 1) + " [m³/h] ; " + Math.Round(pontoOperacaoY[0], 1) + " [m])"; // Apresentação do ponto de operação no campo Saídas labelVazao.Text = Math.Round(pontoOperacaoX[0], 1).ToString(); labelPerdaCarga.Text = Math.Round(pontoOperacaoY[0], 1).ToString(); }
/// <summary> /// Botão para cálculo inicial do bombeamento /// </summary> private void btnCalcular_Click(object sender, EventArgs e) { if (true) { // -> Fluido cmbFluidoNomeTxt = cmbFluidoNome.Text; nudFluidoTemperaturaDbl = Convert.ToDouble(nudFluidoTemperatura.Value) + 273.15; // Temperatura em K nudFluidoPressaoDbl = Convert.ToDouble(nudFluidoPressao.Value) * 1e5; // Pressão em Pa fluido = new FluidoIdealOPIII(InicializadorObjetos.MaterialFluidoOPIII(cmbFluidoNomeTxt), nudFluidoTemperaturaDbl); // -> Tubulação de Sucção nudTubSucRugosidadeDbl = Convert.ToDouble(nudTubSucRugosidade.Value) * 1e-3; nudTubSucDiametroIntDbl = Convert.ToDouble(nudTubSucDiametroInt.Value) * 1e-2; nudTubSucCompSingDbl = Convert.ToDouble(nudTubSucCompSing.Value); singEqvSuc = new Singularidade(nudTubSucCompSingDbl, "Equivalente"); nudTubSucComprimentoDbl = Convert.ToDouble(nudTubSucComprimento.Value); nudTubSucElevacaoDbl = Convert.ToDouble(nudTubSucElevacao.Value); tubulacaoSuccao = new Tubulacao(nudTubSucDiametroIntDbl, nudTubSucComprimentoDbl, new MaterialTubulacao(nudTubSucRugosidadeDbl), nudTubSucElevacaoDbl, "haaland"); tubulacaoSuccao.AdicionaSingularidade(singEqvSuc); // Valvula da sucção valvulaSuc = new Valvula(2, 1000); tubulacaoSuccao.AdicionaSingularidade(valvulaSuc); // -> Tubulação de Descarga nudTubDesRugosidadeDbl = Convert.ToDouble(nudTubDesRugosidade.Value) * 1e-3; nudTubDesDiametroIntDbl = Convert.ToDouble(nudTubDesDiametroInt.Value) * 1e-2; nudTubDesCompSingDbl = Convert.ToDouble(nudTubDesCompSing.Value); singEqvDes = new Singularidade(nudTubDesCompSingDbl, "Equivalente"); nudTubDesComprimentoDbl = Convert.ToDouble(nudTubDesComprimento.Value); nudTubDesElevacaoDbl = Convert.ToDouble(nudTubDesElevacao.Value); tubulacaoDescarga = new Tubulacao(nudTubDesDiametroIntDbl, nudTubDesComprimentoDbl, new MaterialTubulacao(nudTubDesRugosidadeDbl), nudTubDesElevacaoDbl, "haaland"); tubulacaoDescarga.AdicionaSingularidade(singEqvDes); // Valvula da descarga valvulaDes = new Valvula(2, 3000); tubulacaoDescarga.AdicionaSingularidade(valvulaDes); // Bomba bomba = new BombaCompleta(new double[3] { 0, 0, 0 }, fluido, tubulacaoSuccao, tubulacaoDescarga, nudFluidoPressaoDbl, 2); nudVazaoDesejada.Value = Convert.ToDecimal(0.5); nudAberturaValvulaSuc.Value = Convert.ToDecimal(1.0); nudAberturaValvulaDes.Value = Convert.ToDecimal(1.0); nudFluidoTemperaturaDin.Value = Convert.ToDecimal(nudFluidoTemperaturaDbl - 273.15); nudFluidoPressaoDin.Value = Convert.ToDecimal(nudFluidoPressaoDbl * 1e-5); AtualizaHBomba(); AtualizaNPSHDisp(); gubFluidoDin.Visible = true; gubSucDin.Visible = true; gubDesDin.Visible = true; chartPerdaCarga.Visible = true; chartNPSHDisp.Visible = true; gubResultados.Visible = true; labResultados.Visible = true; tabControl.SelectedIndex = 1; } }