예제 #1
0
        ///<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));
        }
예제 #2
0
        /// <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));
            }
        }
예제 #3
0
        /// <summary>某档控制气象条件及张力</summary>
        public static (Weather, double) ControlWeatherAndTm(WireAndWeather wireAndWeather, double L)
        {
            var s = new ControlCondition(wireAndWeather);

            return(s.ControlWeather(L), s.Tc(L));
        }