public ControlCondition(WireAndWeather wireAndWeather)
 {
     this.wireAndCoefficient   = wireAndWeather.WireAndCoefficient;
     this.weatherGroup         = wireAndWeather.WeatherGroup;
     WeatherAndControlspanList = new SortedList <double, Weather>();
     this.WeatherAndControlspanListSet();
 }
Beispiel #2
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));
        }
Beispiel #3
0
 public WireLoadGroup(WireAndWeather wireAndWeather, ILoadCode loadCode, IELoadCode eLoadCode)
 {
     abstractWire   = wireAndWeather.WireAndCoefficient.Conductor;
     weatherGroup   = wireAndWeather.WeatherGroup;
     this.loadCode  = loadCode;
     this.eLoadCode = eLoadCode;
     SetP();
 }
Beispiel #4
0
        public WireLoadGroup(WireAndWeather wireAndWeather)
        {
            abstractWire = wireAndWeather.WireAndCoefficient.Conductor;
            weatherGroup = wireAndWeather.WeatherGroup;
            Assembly assembly = Assembly.LoadFrom("Standard.dll");
            var      cType    = assembly.GetType("Standard." + OTL.OTLProject.ProjectInfo.LoadCode);

            loadCode  = (ILoadCode)Activator.CreateInstance(cType);
            cType     = assembly.GetType("Standard." + OTL.OTLProject.ProjectInfo.ELoadCode);
            eLoadCode = (IELoadCode)Activator.CreateInstance(cType);
            SetP();
        }
Beispiel #5
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));
            }
        }
        /// <summary>某档控制气象条件及张力</summary>
        public static (Weather, double) ControlWeatherAndTm(WireAndWeather wireAndWeather, double L)
        {
            var s = new ControlCondition(wireAndWeather);

            return(s.ControlWeather(L), s.Tc(L));
        }
 public static double  Tc(WireAndWeather wireAndWeather, double L)
 {
     return(new ControlCondition(wireAndWeather).Tc(L));
 }
Beispiel #8
0
 public static double K(WireAndWeather wireAndWeather, Weather weather, double L)
 {
     return(1);
 }