public WireLoadGroup(WireAndWeather wireAndWeather, ILoadCode loadCode, IELoadCode eLoadCode) { abstractWire = wireAndWeather.WireAndCoefficient.Conductor; weatherGroup = wireAndWeather.WeatherGroup; this.loadCode = loadCode; this.eLoadCode = eLoadCode; SetP(); }
/// <summary> /// 采用OTL中的标准生成荷载力学计算用P值 /// </summary> public WireLoad(AbstractWire conductor, Weather weather, LoadType loadType = LoadType.M, double g = 9.80665, double iceDensity = 0.9, double Lp = 100) { Assembly assembly = Assembly.LoadFrom("Standard.dll"); var cType = assembly.GetType("Standard." + OTL.OTLProject.ProjectInfo.LoadCode); var loadCode = (ILoadCode)Activator.CreateInstance(cType); SetP1P2(conductor, weather, g, iceDensity); this.P4 = loadCode.P4(conductor, weather, loadType, Lp); }
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(); }
double ILoadCode.P4(AbstractWire conductor, Weather weather, LoadType loadType, double L) { double z; if (weather is MaxWind) { z = 10 * Math.Pow(weather.WindSpeed / weather.BasicWindSpeed, 1 / 0.15); } else { z = 10; } // return βc(z)* this.α(weather.BasicWindSpeed) * weather.WindPress * this.μsc(conductor.Diameter, weather.IceThickness) * (conductor.Diameter + 2 * weather.IceThickness) * this.B1(weather.IceThickness); return(1); }
double IELoadCode.P4(AbstractWire conductor, Weather weather, LoadType loadType, double L) { return(this.αE(weather.BasicWindSpeed) * weather.WindPress * this.μsc(conductor.Diameter, weather.IceThickness) * (conductor.Diameter + 2 * weather.IceThickness) * this.B1(weather.IceThickness)); }
private void SetP1P2(AbstractWire conductor, Weather weather, double g, double iceDensity) { P1 = g * conductor.Quality; P2 = g * iceDensity * Math.PI * weather.IceThickness * (weather.IceThickness + conductor.Diameter) / 1000; }
public WireLoad(AbstractWire conductor, Weather weather, IELoadCode eLoadCode, LoadType loadType = LoadType.E, double g = 9.80665, double iceDensity = 0.9, double Lp = 100) { SetP1P2(conductor, weather, g, iceDensity); this.P4 = eLoadCode.P4(conductor, weather, loadType, Lp); }