Beispiel #1
0
        public static double CalculateOriginalLengthFromFinalTension(this Wire wire, Creep creep)
        {
            double startingCatenaryCosntant = wire.StartingTension / wire.FinalWireLinearWeight;
            double startingArcLength        = WeatherExtensions.CalculateArcLength(wire.StartingSpanLength, wire.StartingElevation, startingCatenaryCosntant);

            double stressFreeLength = startingArcLength - wire.StartingTension * startingArcLength / (wire.TotalCrossSection * WireExtensions.CalculateWireElasticity(wire));
            double creepStrain      = CreepExtensions.CalculateCreepStrain(creep, wire);

            return(stressFreeLength / (1 + creepStrain));
        }
Beispiel #2
0
        //this calculates the final elastic tension
        //the calculation assumes all plastic elongation has occured prior to the weather condition
        //long term plastic elongation (creep) is assumed to be the controlling plastic elongation
        //future work needs to be done to calculate the maximum plastic strain due to high tension and then force this calculation to use the higher of the two.
        public static double CalculateElasticTension(this Weather weather, Wire wire, Creep creep)
        {
            double orginalLength                = WireExtensions.CalculateOriginalLength(wire, creep);
            double StartingWireLength           = orginalLength + orginalLength * CreepExtensions.CalculateCreepStrain(creep, wire);
            double StartingWireLengthDesignTemp = StartingWireLength + WireExtensions.CalculateWireThermalCoefficient(wire) * StartingWireLength * (weather.Temperature - wire.StartingTemp);
            double psi  = StartingWireLength + WireExtensions.CalculateWireThermalCoefficient(wire) * StartingWireLength * (weather.Temperature - wire.StartingTemp);
            double beta = StartingWireLength / (WireExtensions.CalculateWireElasticity(wire) * wire.TotalCrossSection);

            double lengthEstimate    = Math.Sqrt(Math.Pow(weather.FinalSpanLength, 2) + Math.Pow(weather.FinalElevation, 2));
            double horizontalTension = CalculateFinalLinearForce(weather, wire) * (lengthEstimate * lengthEstimate) / (8 * Math.Sqrt(3 * lengthEstimate * (Math.Abs(StartingWireLengthDesignTemp - lengthEstimate)) / 8));

            double difference = 100;

            while (Math.Abs(difference) > 0.001d)
            {
                difference        = SolveForDifference(horizontalTension, weather.FinalSpanLength, CalculateFinalLinearForce(weather, wire), weather.FinalElevation, psi, beta);
                horizontalTension = (horizontalTension - difference);
            }

            return(horizontalTension);
        }