///<summary> 电气张力</summary> public static double TensionE(WireAndWeather wireAndWeather, Weather weather, double L) { var controlCondition = new ControlCondition(wireAndWeather); WireMechanic.wireAndWeather = wireAndWeather; WireMechanic.weather = weather; WireMechanic.L = L; controlWeather = controlCondition.ControlWeather(L); Tc = controlCondition.Tc(L); WireMechanic.Pc = new WireLoad(wireAndWeather.WireAndCoefficient.Conductor, controlWeather).P7; if (weather == wireAndWeather.WeatherGroup.MaxWind) { WireMechanic.P = new WireLoadGroup(wireAndWeather).P6E_Maxwind; } else if (weather == wireAndWeather.WeatherGroup.Lightning) { WireMechanic.P = new WireLoadGroup(wireAndWeather).P6E_Maxwind; } else if (weather == wireAndWeather.WeatherGroup.Operate) { WireMechanic.P = new WireLoadGroup(wireAndWeather).P6E_Operate; } else { throw new Exception("电气气象有误"); } return(MathNet.Numerics.RootFinding.RobustNewtonRaphson.FindRoot (Fx, dFx, 2 * wireAndWeather.WireAndCoefficient.Conductor.RatedStrength, 1, 0.5)); }
/// <summary> 力学张力</summary> public static double Tension(WireAndWeather wireAndWeather, Weather weather, double L) { var controlCondition = new ControlCondition(wireAndWeather); WireMechanic.wireAndWeather = wireAndWeather; WireMechanic.weather = weather; WireMechanic.L = L; controlWeather = controlCondition.ControlWeather(L); Tc = controlCondition.Tc(L); WireMechanic.Pc = new WireLoad(wireAndWeather.WireAndCoefficient.Conductor, controlWeather).P7; WireMechanic.P = new WireLoad(wireAndWeather.WireAndCoefficient.Conductor, weather).P7; if (weather == controlWeather) { return(Tc); } else { return(MathNet.Numerics.RootFinding.RobustNewtonRaphson.FindRoot (Fx, dFx, 2 * wireAndWeather.WireAndCoefficient.Conductor.RatedStrength, 1, accuracy: 2)); } }
/// <summary>某档控制气象条件及张力</summary> public static (Weather, double) ControlWeatherAndTm(WireAndWeather wireAndWeather, double L) { var s = new ControlCondition(wireAndWeather); return(s.ControlWeather(L), s.Tc(L)); }