private void cmbTrocadorMaterial_SelectedIndexChanged_1(object sender, EventArgs e) { MaterialTubulacao materialTubulacao = InicializadorObjetos.MaterialTubulacao(cmbTrocadorMaterial.Text); txbTrocadorRugosidade.Text = $"{Math.Round(materialTubulacao.Rugosidade * 1e2),1} cm"; }
private void btnCalcular_Click(object sender, EventArgs e) { txbErro.Text = ""; // Fluido Anular if (cmbFluidoAnular.Text == "" || cmbFluidoInterno.Text == "" || cmbTrocadorMaterial.Text == "") { txbErro.Text = "Inputs incorretos"; return; } string fluidoAnularNome = cmbFluidoAnular.Text; double fluidoAnularAPI = Convert.ToDouble(nudFluidoAnularAPI.Value); double fluidoAnularTemp = Convert.ToDouble(nudFluidoAnularTempEnt.Value) + 273.15; // T em K double tempAnularSai = Convert.ToDouble(nudFluidoAnularTempSaida.Value) + 273.15; // T em L if (fluidoAnularNome == "Óleo (ºAPI)") { materialFluidoAnular = new MaterialOleoAPI(fluidoAnularAPI, fluidoAnularTemp); } else { materialFluidoAnular = InicializadorObjetos.MaterialFluidoOPII(fluidoAnularNome, fluidoAnularTemp); } fluidoAnularEnt = new FluidoOPII(materialFluidoAnular, fluidoAnularTemp); // Fluido Interno string fluidoInternoNome = cmbFluidoInterno.Text; double fluidoInternoAPI = Convert.ToDouble(nudFluidoInternoAPI.Value); double fluidoInternoTemp = Convert.ToDouble(nudFluidoInternoTempEnt.Value) + 273.15; // T em K double tempInternoSai = Convert.ToDouble(nudFluidoInternoTempSaida.Value) + 273.15; // T em K if (fluidoInternoNome == "Óleo (ºAPI)") { materialFluidoInterno = new MaterialOleoAPI(fluidoInternoAPI, fluidoInternoTemp); } else { materialFluidoInterno = InicializadorObjetos.MaterialFluidoOPII(fluidoInternoNome, fluidoInternoTemp); } fluidoInternoEnt = new FluidoOPII(materialFluidoInterno, fluidoInternoTemp); // Tubulações string tubulacaoMaterialNome = cmbTrocadorMaterial.Text; double tubulacaoComprimento = Convert.ToDouble(nudTrocadorComprimento.Value); MaterialTubulacao materialTubulacao = InicializadorObjetos.MaterialTubulacao(tubulacaoMaterialNome); const double espessura = 0; // Considerando a tubulação sem espeçura. // Tubulação Interna double tubInternaDiam = Convert.ToDouble(nudTrocadorDiametroInterno.Value) * 1e-2; // Diametro em m tubulacaoInterna = new TubulacaoDuploTubo(tubInternaDiam, espessura, tubulacaoComprimento, materialTubulacao, EquipamentoOPII.TipoTubo.interno); // Tubulação Anular double tubAnularDiam = Convert.ToDouble(nudTrocadorDiametroAnular.Value) * 1e-2; // Diametro em m tubulacaoAnular = new TubulacaoDuploTubo(tubAnularDiam, espessura, tubulacaoComprimento, materialTubulacao, EquipamentoOPII.TipoTubo.anular, tubInternaDiam); // Não executa se a diferença de temperatura entre os fluido não for miníma. if (Math.Abs(fluidoAnularTemp - fluidoInternoTemp) < 2) { txbErro.Text = "Inputs incorretos"; return; } tuboQente = (fluidoAnularTemp > fluidoInternoTemp) ? EquipamentoOPII.TipoTubo.anular : EquipamentoOPII.TipoTubo.interno; if (tuboQente == EquipamentoOPII.TipoTubo.anular) { if (fluidoAnularEnt.Temperatura < 40 + 273.15 || fluidoInternoEnt.Temperatura > 40 + 273.15) // Fluido Quente pouco quente ou frio pouco frio { txbErro.Text = "Verifique as temp"; return; } } else { if (fluidoAnularEnt.Temperatura > 40 + 273.15 || fluidoInternoEnt.Temperatura < 40 + 273.15) // Fluido Quente pouco quente ou frio pouco frio { txbErro.Text = "Verifique as temp"; return; } } // Trocador double vazaoQente = Convert.ToDouble(nudVazaoQuente.Value) / 3600.0; // Vazao em m^3/s double fatorIncrustacao = Convert.ToDouble(nudTrocadorFatorEncrustacao.Value); trocador = new TrocadorDuploTubo(fluidoAnularEnt, tempAnularSai, fluidoInternoEnt, tempInternoSai, vazaoQente, tubulacaoAnular, tubulacaoInterna, fatorIncrustacao); trocador.CalculaTroca(); fluidoAnularSai = trocador.FluidoAnularSai; fluidoInternoSai = trocador.FluidoInternoSai; if (trocador.Anular == EquipamentoOPII.FluidoTroca.quente) { txbFigFluidoAnular.Lines = new string[] { "Fluido Anular: ", $"[{trocador.Anular}]", $"{trocador.FluidoAnularEnt.Material.Componente}", $"T ent = {trocador.FluidoAnularEnt.Temperatura - 273.15} ºC", $"Vazão = {trocador.VazaoQuente * 3600} m^3/h" }; txbFigFluidoInterno.Lines = new string[] { "Fluido Interno: ", $"[{trocador.Interno}]", $"{trocador.FluidoInternoEnt.Material.Componente}", $"T ent = {trocador.FluidoInternoEnt.Temperatura - 273.15} ºC", $"Vazão = {Math.Round(trocador.VazaoFrio * 3600,1)} m^3/h" }; } else { txbFigFluidoAnular.Lines = new string[] { "Fluido Anular: ", $"[{trocador.Anular}]", $"{trocador.FluidoAnularEnt.Material.Componente}", $"T ent = {trocador.FluidoAnularEnt.Temperatura - 273.15} ºC", $"Vazão = {Math.Round(trocador.VazaoFrio * 3600,1)} m^3/h" }; txbFigFluidoInterno.Lines = new string[] { "Fluido Interno: ", $"[{trocador.Interno}]", $"{trocador.FluidoInternoEnt.Material.Componente}", $"T ent = {trocador.FluidoInternoEnt.Temperatura - 273.15} ºC", $"Vazão = {trocador.VazaoQuente * 3600} m^3/h" }; } txbFigFluidoAnularTxt = txbFigFluidoAnular.Lines; txbFigFluidoInternoTxt = txbFigFluidoInterno.Lines; txbFigFluidoAnular.Lines = new string[] { txbFigFluidoAnularTxt[0], txbFigFluidoAnularTxt[1], txbFigFluidoAnularTxt[2], txbFigFluidoAnularTxt[3], txbFigFluidoAnularTxt[4] }; txbFigFluidoInterno.Lines = new string[] { txbFigFluidoInternoTxt[0], txbFigFluidoInternoTxt[1], txbFigFluidoInternoTxt[2], txbFigFluidoInternoTxt[3], txbFigFluidoInternoTxt[4] }; // Ativa os elementos da UI. txbFigFluidoAnular.Visible = true; txbFigFluidoInterno.Visible = true; chartPerdaCarga.Visible = true; chartComprimento.Visible = true; gubResultados.Visible = true; gubVarFluidoInterno.Visible = true; gubVarFluidoAnular.Visible = true; gubVarTrocador.Visible = true; tabControl.SelectedIndex = 1; if (trocador.Anular == EquipamentoOPII.FluidoTroca.quente) { nudQuenteSaiMin = Convert.ToDecimal(trocador.FluidoInternoEnt.Temperatura + 2 - 273.15); nudFrioSaiMax = Convert.ToDecimal(trocador.FluidoAnularEnt.Temperatura - 2 - 273.15); nudVarFluidoAnularTemp.Minimum = nudQuenteEntMin; nudVarFluidoAnularTemp.Maximum = nudQuenteEntMax; nudVarFluidoAnularTempSai.Minimum = nudQuenteSaiMin; nudVarFluidoAnularTempSai.Maximum = nudQuenteSaiMax; nudVarFluidoInternoTemp.Minimum = nudFrioEntMin; nudVarFluidoInternoTemp.Maximum = nudFrioEntMax; nudVarFluidoInternoTempSai.Minimum = nudFrioSaiMin; nudVarFluidoInternoTempSai.Maximum = nudFrioSaiMax; } else { nudQuenteSaiMin = Convert.ToDecimal(trocador.FluidoAnularEnt.Temperatura + 2 - 273.15); nudFrioSaiMax = Convert.ToDecimal(trocador.FluidoInternoEnt.Temperatura - 2 - 273.15); nudVarFluidoAnularTemp.Minimum = nudFrioEntMin; nudVarFluidoAnularTemp.Maximum = nudFrioEntMax; nudVarFluidoAnularTempSai.Minimum = nudFrioSaiMin; nudVarFluidoAnularTempSai.Maximum = nudFrioSaiMax; nudVarFluidoInternoTemp.Minimum = nudQuenteEntMin; nudVarFluidoInternoTemp.Maximum = nudQuenteEntMax; nudVarFluidoInternoTempSai.Minimum = nudQuenteSaiMin; nudVarFluidoInternoTempSai.Maximum = nudQuenteSaiMax; } chartPerdaCarga.ChartAreas[0].AxisX.Minimum = Convert.ToDouble(nudQuenteSaiMin); chartComprimento.ChartAreas[0].AxisX.Minimum = Convert.ToDouble(nudQuenteSaiMin); // Coloca os valores nas variaveis dinamicas nudVarFluidoInternoTemp.Value = Convert.ToDecimal(fluidoInternoTemp - 273.15); nudVarFluidoInternoTempSai.Value = Convert.ToDecimal(tempInternoSai - 273.15); nudVarFluidoAnularTemp.Value = Convert.ToDecimal(fluidoAnularTemp - 273.15); nudVarFluidoAnularTempSai.Value = Convert.ToDecimal(tempAnularSai - 273.15); nudVarTrocadorVazaoQuente.Value = Convert.ToDecimal(vazaoQente * 3600); nudTrocadorComprimento.Value = Convert.ToDecimal(tubulacaoComprimento); nudVarTrocadorDiamAnular.Value = Convert.ToDecimal(tubAnularDiam * 100); nudTrocadorDiametroAnular.Value = Convert.ToDecimal(tubAnularDiam * 100); nudVarTrocadorDiamInterno.Value = Convert.ToDecimal(tubInternaDiam * 100); nudTrocadorDiametroInterno.Value = Convert.ToDecimal(tubInternaDiam * 100); AtualizaForms(); atualizaParametros = true; }