Пример #1
0
        public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
        {
            View view = inflater.Inflate(Resource.Layout.bomba_singularidade, container, false);

            // Inputs
            TextInputLayout comprimentoInput = view.FindViewById <TextInputLayout>(Resource.Id.textInBombaSingularidade);

            MainActivity main = (MainActivity)this.Activity;

            // Chequa se o objeto fluido da main activity jah foi criado, se sim copia o valor dele para o fluido privado dessa classe
            if (main.Singularidade != null)
            {
                if (main.Singularidade.ComprimentoEqv != 0)
                {
                    singularidade = main.Singularidade;
                    comprimentoInput.EditText.Text = singularidade.ComprimentoEqv.ToString();
                }
            }

            // EventHandler para os inputs
            comprimentoInput.EditText.TextChanged += ComprimentoTextInputLayout_ChangedText;

            // Continua com a operação do android
            var ignored = base.OnCreateView(inflater, container, savedInstanceState);

            return(view);
        }
Пример #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();
        }
        /// <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;
            }
        }