public void CalculaTudo(object sender, EventArgs e) { FluidoOPI agua = new FluidoOPI(Convert.ToDouble(numericUpDown1.Value) * 1000, Convert.ToDouble(numericUpDown8.Value) / 1000); Tubulacao tubo1 = new Tubulacao(Convert.ToDouble(numericUpDown4.Value) / 100, Convert.ToDouble(numericUpDown3.Value), new MaterialTubulacao(Convert.ToDouble(numericUpDown9.Value) / 1000000), Convert.ToDouble(numericUpDown5.Value)); label25.Visible = true; label26.Visible = true; label26.Text = (Math.Round(tubo1.CalculaPerdaCarga(agua.Material, Convert.ToDouble(numericUpDown2.Value) / 3600) + tubo1.Elevacao, 6)).ToString() + " m"; if (this.numericUpDown6.Value == -1) { if (this.numericUpDown7.Value != -1) { label27.Visible = true; label27.Text = "Pressão na saída"; label28.Visible = true; label28.Text = (Math.Round((Convert.ToDouble(numericUpDown7.Value)) - ((agua.Material.Densidade * 9.80665 * tubo1.CalculaPerdaCarga(agua.Material, Convert.ToDouble(numericUpDown2.Value) / 3600) + tubo1.Elevacao) / 101325), 6)).ToString() + " atm"; } } else { if (this.numericUpDown7.Value != -1) { label27.Visible = true; label27.Text = "Compatibilidade"; label28.Visible = true; label28.Text = (Math.Round((Convert.ToDouble(numericUpDown7.Value) - (Convert.ToDouble(numericUpDown6.Value))) - ((agua.Material.Densidade * 9.80665 * tubo1.CalculaPerdaCarga(agua.Material, Convert.ToDouble(numericUpDown2.Value) / 3600) + tubo1.Elevacao) / 101325), 6)).ToString() + " atm"; } else { label27.Visible = true; label27.Text = "Pressão na entrada"; label28.Visible = true; label28.Text = (Math.Round((Convert.ToDouble(numericUpDown6.Value)) + ((agua.Material.Densidade * 9.80665 * tubo1.CalculaPerdaCarga(agua.Material, Convert.ToDouble(numericUpDown2.Value) / 3600) + tubo1.Elevacao) / 101325), 6)).ToString() + " atm"; } } }
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(); }