Пример #1
0
        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";
                }
            }
        }
Пример #2
0
        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();
        }