public static Tuple <double, double> fatorReducaoFlexao(Perfil perfil) { double wcx = perfil.PegarWx(); double wcy = perfil.PegarWy(); double ro = perfil.PegarRo(); string simetria = perfil.PegarSimetria(); double tensao = Form1.tensaofy; List <double> lstForcaAxial = forcaAxialFlambagemGlobal(perfil, simetria); double ney = lstForcaAxial.ElementAt(2); double nez = lstForcaAxial.ElementAt(3); double mex = 1.0 * ro * Math.Sqrt(ney * nez); double mey = calculoMeFlexaoY(perfil); double lambdaZerox = Math.Sqrt(wcx * tensao) / mex; double lambdaZeroy = Math.Sqrt(wcy * tensao) / mey; double quiFltx = condicaoFLTFlexao(lambdaZerox); double quiFlty = condicaoFLTFlexao(lambdaZeroy); Tuple <double, double> quiFlt = new Tuple <double, double>(quiFltx, quiFlty); return(quiFlt); }
public static double calculoMeFlexaoY(Perfil perfil) { double ro = perfil.PegarRo(); double jy = perfil.PegarJy(); string simetria = perfil.PegarSimetria(); List <double> lstForcaAxial = forcaAxialFlambagemGlobal(perfil, simetria); double nex = lstForcaAxial.ElementAt(1); double nez = lstForcaAxial.ElementAt(3); // Considerando Cs = + 1.0 e Cm = 1.0 double me = nex * (jy + Math.Sqrt(Math.Pow(jy, 2) + Math.Pow(ro, 2) * (nez / nex))); return(me); }
// Retorna (Ne (0), Nex (1), Ney(2), Nez(3), Nexz(4)) public static List <double> forcaAxialFlambagemGlobal(Perfil perfil, string simetria) { double pi2 = Math.Pow(Math.PI, 2); double Ne = 0; double comp = perfil.PegarComprimento(); double iPerfilX = perfil.PegarIx(); double iPerfilY = perfil.PegarIy(); double ro = perfil.PegarRo(); double xo = perfil.PegarXo(); double cw = perfil.PegarCW(); double J = perfil.PegarJ(); //dupla simetria double Nex = pi2 * Form1.E * iPerfilX / (Math.Pow(comp, 2)); double Ney = pi2 * Form1.E * iPerfilY / (Math.Pow(comp, 2)); double Nez = 1 / Math.Pow(ro, 2) * ((pi2 * Form1.E * cw) / (Math.Pow(comp, 2)) + (Form1.G * J)); //monossimetricos double _1xoro = 1 - Math.Pow(xo / ro, 2); double Nexz = (Nex + Nez) / (2 * _1xoro) * (1 - Math.Sqrt(1 - (4 * Nex * Nez * _1xoro) / (Math.Pow(Nex + Nez, 2)))); //assimetricos // A ser desenvolvido... equação de 3 grau // Retorna o menor valor if (simetria == "MONOSSIMETRICO") { Ne = Math.Min(Ney, Nexz); } else { Ne = Math.Min(Ney, Math.Min(Nex, Nez)); } List <double> retorno = new List <double>(); retorno.Add(Ne); retorno.Add(Nex); retorno.Add(Ney); retorno.Add(Nez); retorno.Add(Nexz); return(retorno); }