pyflange.flangesegments
This module contains FlangeSegment classes, which model the mechanical
behavior of a flange sector containig one bolt only.
Currently, the only two type of FlangeSegment available are an L-Flange segment and a T-Flange segment, implementing a polinomial relation between tower shell force force and bolt force / bolt moment. Nonetheless, this module has been structured to be easily extensible with other types of FlangeSegment model, such as Multilinear (Petersen) L-Flanges, Multilinear T-Flanges, etc.
The models implemented in this module are based on the following references:
[1]: Marc Seidel, SGRE TE TF PST: IEC 61400-6 AMD1 Background Document Fatigue design for ring flange connsections in wind turbine support structures.
[2]: IEC 61400-6:2020/AMD1 - wIND ENERGY GENERATION SYSTEMS - Part 6: Tower and foundation design requirements - AMENDMENT 1 Draft version 2024-10-01
[3]: Petersen, C.: Nachweis der Betriebsfestigkeit exzentrisch beanspruchter Ringflansch-verbindungen (Fatigue assessment of eccentrically loaded ring flange connections). Stahlbau 67 (1998), S. 191-203. https://onlinelibrary.wiley.com/doi/abs/10.1002/stab.199800690
[4]: Petersen, C.: Stahlbau (Steel construction), 4. Auflage Braunschweig: Wiesbaden: Springer Vieweg 2012. https://link.springer.com/book/10.1007%2F978-3-8348-8610-1
[9]: Tobinaga, I.; Ishihara, T.: A study of action point correction factor for L‐type flanges of wind turbine towers. Wind Energy 21 (2018), p. 801-806. https://doi.org/10.1002/we.2193
FlangeSegment
Bases: ABC
Abstract base class for a flange segment.
This class is meant to be extended and not to be instantiated directly.
Each FlangeSegment child class must implement the two transfer-function
methods: .bolt_axial_force(Z) and .bolt_bending_moment(Z).
bolt_axial_force(shell_pull)
abstractmethod
Calculates the bolt axial force generated by a shell pull force.
| Parameters: |
|
|---|
| Returns: |
|
|---|
bolt_bending_moment(shell_pull)
abstractmethod
Calculates the bolt bending moment generated by a shell pull force.
| Parameters: |
|
|---|
| Returns: |
|
|---|
Gap
dataclass
A flange gap due to imperfections.
| Attributes: |
|
|---|
PolynomialFlangeSegment
Bases: FlangeSegment
A generic FlangeSegment with polynomial transfer functions.
This class implements a polynomial relation between tower shell force Z and bolt axial force Fs or bolt bending moment Ms. It is not meant to be instantiated directly but to be subclassed.
The polynomial transfer functions are defined by 4 reference points: - P1: Flange segment at rest. - P2: Flange segment at ultimate tensile limit state. - P3: Flange segment in small tensile deformation. - P4: Gap closure state.
_compressive_force_polynomial
cached
property
Polynomial Fs(Z) for the compressive domain.
This getter returns the polynomial Fs(Z) defined by refs. [1] and [2] between point 1 (flange segment at rest) and point 4 (gap closed).
| Returns: |
|
|---|
_compressive_moment_polynomial
cached
property
Polynomial Ms(Z) for the compressive domain.
This getter returns the polynomial Ms(Z) defined by refs. [1] and [2] between point 1 (flange segment at rest) and point 4 (gap closed).
| Returns: |
|
|---|
_tensile_force_polynomial
cached
property
Polynomial Fs(Z) for the tensile domain.
This getter returns the polynomial Fs(Z) defined by refs. [1] and [2] between point 1 (flange segment at rest) and point 2 (ultimate tensile limit state of the bolt).
| Returns: |
|
|---|
_tensile_moment_polynomial
cached
property
Polynomial Ms(Z) for the tensile domain.
This getter returns the polynomial Ms(Z) defined by refs. [1] and [2] between point 1 (flange segment at rest) and point 2 (ultimate tensile limit state of the bolt).
| Returns: |
|
|---|
bolt_force_at_rest
abstractmethod
property
Bolt axial force when no external loads are applied (Fs1).
bolt_force_at_small_displacement
abstractmethod
property
Intermediate bolt axial force (Fs3).
bolt_force_at_tensile_ULS
abstractmethod
property
Bolt axial force at tensile failure (Fs2).
bolt_moment_at_rest
abstractmethod
property
Bolt bending moment when no external loads are applied (Ms1).
bolt_moment_at_small_displacement
abstractmethod
property
Intermediate bolt bending moment (Ms3).
bolt_moment_at_tensile_ULS
abstractmethod
property
Bolt bending moment at tensile failure (Ms2).
shell_force_at_closed_gap
abstractmethod
property
Shell force necessary to completely close the imperfection gap (Z4).
shell_force_at_rest
abstractmethod
property
Shell force when no external loads are applied (Z1).
shell_force_at_small_displacement
abstractmethod
property
Intermediate tower shell force (Z3).
shell_force_at_tensile_ULS
abstractmethod
property
Ultimate Limit State tower shell force (Z2).
bolt_axial_force(shell_pull)
Calculates bolt axial force from tower shell force using a polynomial.
The relation is defined as a polynomial function based on ref. [1], section 8.2 and ref. [2], section G.4.2.
| Parameters: |
|
|---|
| Returns: |
|
|---|
bolt_bending_moment(shell_pull)
Calculates bolt bending moment from tower shell force using a polynomial.
The relation is defined as a polynomial function based on ref. [1], section 8.3 and ref. [2], section G.4.2.
| Parameters: |
|
|---|
| Returns: |
|
|---|
PolynomialLFlangeSegment
dataclass
Bases: PolynomialFlangeSegment
An L-Flange implementation of a PolynomialFlangeSegment.
This class models an L-flange segment using the polynomial model from ref. [1] and [2]. It defines the reference points for the polynomial functions inherited from the parent class.
| Attributes: |
|
|---|
_bolt_axial_stiffness
cached
property
The axial stiffness of the bolt.
_bolt_bending_stiffness
cached
property
The bending stiffness of the bolt.
_flange_axial_stiffness
cached
property
The axial stiffness of the flange in the thickness direction.
_gap_stiffness
cached
property
Stiffness of the design gap.
Returns the gap stiffness as a spring constant per unit of flange-segment arc length, calculated according to ref.[1], sec. 8.1 and ref.[2], eq. G.35.
_ideal_bolt_force_at_tensile_ULS
cached
property
Bolt axial force at tensile failure for a sinusoidal gap shape.
_ideal_shell_force_at_tensile_ULS
cached
property
Tower shell force at the theoretical state of full prying (Z0).
_parallel_gap_neutralization_shell_force
cached
property
Force necessary to close a parallel imperfection gap.
_polynomial_initial_slope
cached
property
Initial slope of the Fs(Z) polynomial.
This slope is calculated according to ref. [1], section 8.2.2.3 and ref. [2], eq. G.53.
_prying_lever_ratio
cached
property
Lever ratio A, as defined in [9].
_stiffness_correction_factor
cached
property
Stiffness correction factor (alpha-k).
This factor modifies the segment force to account for the effect of the gap spring, evaluated according to ref. [1], sec. 8.2.2.2 and ref. [2], eq. G.46.
_tilt_neutralization_shell_force
cached
property
Force that neutralizes the flange tilt (DZ_gap,incl).
This solves equation (G.64) of ref. [2].
_total_gap_neutralization_shell_force
cached
property
Incremental force to close the imperfection gap (delta-Z_gap,total).
bolt_force_at_rest
cached
property
Bolt axial force when no external loads are applied (Fs1).
The bolt force at rest is just the bolt pretension.
bolt_force_at_small_displacement
cached
property
Intermediate bolt axial force (Fs3).
This auxiliary point gives the polynomial the right initial slope, evaluated according to ref. [1], sec. 8.2.2.3 and ref. [2], sec. G.4.2.
bolt_force_at_tensile_ULS
cached
property
Bolt axial force at tensile failure (Fs2).
This is the bolt's tensile force at the shell's ULS, assuming failure mode B.
bolt_moment_at_rest
cached
property
Bolt bending moment when no external loads are applied (Ms1).
bolt_moment_at_small_displacement
cached
property
Intermediate bolt bending moment (Ms3).
bolt_moment_at_tensile_ULS
cached
property
Bolt bending moment at tensile failure (Ms2).
bolt_preload
cached
property
Bolt preload after settlment and plastic losses.
gap_angle
property
Deprecated. Use gap.angle instead.
gap_height
property
Deprecated. Use gap.height instead.
gap_shape_factor
property
Deprecated. Use gap.shape_factor instead.
shell_force_at_closed_gap
cached
property
Shell force necessary to completely close the imperfection gap (Z4).
shell_force_at_rest
cached
property
Shell force when no external loads are applied (Z1).
The shell loads at rest are normally the self-weights of the structure supported by the flange.
shell_force_at_small_displacement
cached
property
Intermediate tower shell force (Z3).
This auxiliary point gives the polynomial the right initial slope, evaluated according to ref. [1], sec. 8.2.2.3 and ref. [2], sec. G.4.2.
shell_force_at_tensile_ULS
cached
property
Ultimate Limit State tower shell force (Z2).
This is the tower shell force that brings the flange segment to its tensile ULS, evaluated according to ref. [1], sec. 8.2.2.2 and ref. [2], sec. G.4.2.
_bolt_moment(Z, Fs)
Calculates the bolt bending moment.
| Parameters: |
|
|---|
| Returns: |
|
|---|
failure_mode(fy_sh, fy_fl, gamma_0=1.1)
Determines the failure mode of the flange.
| Parameters: |
|
|---|
| Returns: |
|
|---|
validate(fy_sh, fy_fl, gamma_0=1.1)
Verifies the applicability of the polynomial model.
Checks if this L-Flange Segment fails according to failure mode B.
| Parameters: |
|
|---|
| Raises: |
|
|---|
PolynomialTFlangeSegment
dataclass
Bases: PolynomialFlangeSegment
A T-Flange implementation of a PolynomialFlangeSegment.
This class models a T-flange segment using the polynomial model from ref. [1] and [2]. It defines the reference points for the polynomial functions inherited from the parent class.
| Attributes: |
|
|---|
_bolt_axial_stiffness
cached
property
The axial stiffness of the bolt.
_bolt_bending_stiffness
cached
property
The bending stiffness of the bolt.
_early_prying_neutralization_shell_force
cached
property
Increase of the gap closing force due to early prying at the edges.
_flange_axial_stiffness
cached
property
The axial stiffness of the flange in the thickness direction.
_gap_stiffness
cached
property
Stiffness of the design gap.
Returns the gap stiffness as a spring constant per unit of flange-segment arc length, calculated according to ref.[1], sec. 9.1.
_ideal_bolt_force_at_tensile_ULS
cached
property
Bolt axial force at tensile ULS.
_ideal_shell_force_at_tensile_ULS
cached
property
Ideal shell force at tensile ULS.
_parallel_gap_neutralization_shell_force
cached
property
Force necessary to close a parallel imperfection gap.
_polynomial_initial_slope
cached
property
Initial slope of the Fs(Z) polynomial.
This slope is calculated according to ref. [1], eq. 80.
_prying_lever_ratio
cached
property
Lever ratio A, as defined in [9].
_stiffness_correction_factor
cached
property
Stiffness correction factor (alpha-k).
This factor modifies the segment force to account for the effect of the gap spring, evaluated according to ref. [1], sec. 9.2.2.2.
_tilt_neutralization_shell_force
cached
property
Force that neutralizes the flange tilt.
_total_gap_neutralization_shell_force
cached
property
Total incremental force to close the imperfection gap.
bolt_force_at_rest
cached
property
Bolt axial force when no external loads are applied (Fs1).
The bolt force at rest is just the bolt pretension.
bolt_force_at_small_displacement
cached
property
Intermediate bolt axial force (Fs3).
This auxiliary point gives the polynomial the right initial slope, evaluated according to ref. [1], sec. 8.2.2.3 and ref. [2], sec. G.4.2.
bolt_force_at_tensile_ULS
cached
property
Bolt axial force at tensile failure (Fs2).
This is the bolt's tensile force at the shell's ULS, assuming failure mode A.
bolt_moment_at_rest
cached
property
Bolt bending moment when no external loads are applied (Ms1).
bolt_moment_at_small_displacement
cached
property
Intermediate bolt bending moment (Ms3).
bolt_moment_at_tensile_ULS
cached
property
Bolt bending moment at tensile failure (Ms2).
gap_angle
property
Deprecated. Use gap.angle instead.
gap_height
property
Deprecated. Use gap.height instead.
gap_shape_factor
property
Deprecated. Use gap.shape_factor instead.
shell_force_at_closed_gap
cached
property
Shell force necessary to completely close the imperfection gap (Z4).
shell_force_at_rest
cached
property
Shell force when no external loads are applied (Z1).
The shell loads at rest are normally the self-weights of the structure supported by the flange.
shell_force_at_small_displacement
cached
property
Intermediate tower shell force (Z3).
This auxiliary point gives the polynomial the right initial slope, evaluated according to ref. [1], sec. 8.2.2.3 and ref. [2], sec. G.4.2.
shell_force_at_tensile_ULS
cached
property
Ultimate Limit State tower shell force (Z2).
This is the tower shell force that brings the flange segment to its tensile ULS, evaluated according to ref. [1], sec. 8.2.2.2 and ref. [2], sec. G.4.2.
_bolt_moment(Z, Fs)
Calculates the bolt bending moment.
| Parameters: |
|
|---|
| Returns: |
|
|---|
failure_mode(fy_sh, fy_fl, gamma_0=1.1)
Determines the failure mode of the flange.
| Parameters: |
|
|---|
| Returns: |
|
|---|
validate(fy_sh, fy_fl, gamma_0=1.1)
Verifies the applicability of the polynomial model.
Checks if this T-Flange Segment fails according to failure mode A.
| Parameters: |
|
|---|
| Raises: |
|
|---|
bolt_markov_matrix(fseg, flange_markov_matrix, bending_factor=0.0, macro_geometric_factor=1.0, mean_factor=1.0, range_factor=1.0, SMF=1.0)
Evaluates the bolt Markov matrix from the shell Markov matrix.
| Parameters: |
|
|---|
| Returns: |
|
|---|
shell_stiffness(shell_radius, shell_thickness, gap_angle)
Calculates the axial stiffness of a flange-segment shell via interpolation.
This function interpolates shell stiffness from a dataset of 2160 FEA results.
| Parameters: |
|
|---|
| Returns: |
|
|---|