The Manual (FEA) Constraint approach - as the name implies - is totally dependent on user inputs. Using a buckling constraint as an example...
A buckling constraint is defined by 4 inputs:
-
Set of Zones - these are the only zones the algorithm will "look at" to apply stiffness
-
Limit EV - the minimum eigenvalue target
-
ABD Terms - the selection of stiffness matrix terms that are to be adjusted to meet the requirement
-
Load Cases - the selection of load cases this constraint applies to (for the buckling example, only the buckling subcases are selected)
As HyperFEA iterations proceed, HyperX will import results from the buckling solution for selected design cases. For a given eigenmode below the prescribed limit, HyperX will look at the nodal displacements within the Zones of the given Set to determine which zones are participating in the eigenmode. It will use the relative displacements to "scale-up" the selected stiffness terms of those zones.
This solution tends to be more stable and converge quickly. However, it requires considerable user inputs and tuning.
Displacement Constraints work by comparing the actual grid displacement to a user-defined target. At each iteration, the deflection of the Sized Structure is compared to the target. If this target is violated (high or low), the required stiffness values of the afflicted Zones are adjusted for the next iteration.
Important
The grid that is chosen for a Deflection Constraint must not have a displacement boundary condition defined in the selected FEA subcase.
In this case, a deflection limit of 10 inches has been imposed for grids 1000, 1001, and 2000. The grid with the highest absolute deflection value will be used to evaluate the criteria. The ABD controlling stiffness term has been specified as \(A_{11}\) for panels and \(EA\) for beams. The\(A_{11}/EA\) Stiffness Constraints for all of the Zones in the “Upper and Lower Skin” set will be modified according to:
\(f=\vert d_{actual} \vert / (d_{limit})\)
\(A_{11,required} = A_{11,previous} * f\)
In this case, a twist limit of 1.20 radians is the allowable rotation. The twist is calculated from the maximum of the rotations at grids 1000, 1001, and 2000. The ABD controlling stiffness term has been specified as the \(A_{33}\) stiffness. The \(A_{33}\) stiffness constraints for all of the Zones in the “Upper and Lower Skins” display set will be modified according to:
\(f = (R_{actual}) / (R_{limit})\)
\(A_{33,required} = A_{33,previous} * f\)
Additional Tips
-
It is recommended to create a separate subcase/load step corresponding to the desired Displacement/Rotation Constraint on the FEM side. This subcase should contain the actual loads and boundary conditions (i.e. desired Load Factors should be defined here, not on the HyperX Design Load Case) that represent the true deformation of the Structure.
-
All FEA subcases/load steps should have displacement and internal load/section force outputs.
-
If an entire property/section is to be restricted, the best practice is to define a center node with attached rigid body elements spider-ing throughout the property/section. Is the center node of the grid ID to select when defining the Displacement/Rotation Constraint.
Advanced Options
-
Multiple Constraints - Multiple constraints can be specified. This can be used to specify a range of displacement targets along the span of a Structure in order to enforce a target shape. If a Zone is associated with multiple Constraints, the maximum stiffness factor is used.
-
Reference Grids - By default the grid displacement is in global coordinates. Alternatively, you can specify a reference grid ID. In this case, the grid displacement \(U\) is computed using: \(U=U_i-U_{ref}\) where \(U_{ref}\) is the displacement of the reference grid. If multiple reference grids are specified, the mean reference grid displacement is used.
-
Load Cases - Grid displacements are computed per Design Load Case. By default, the maximum magnitude grid displacement from all Load Cases is used to compute the stiffness factor.
Note
The grid displacement constraint can be restricted to a single Load Case using the Design Load Case drop-down list. This option does not affect the required stiffness application. Required stiffness values are always enforced for each Load Case.
Manual Buckling Constraints require the user to define not only the eigenvalue limit for a selected Design Load but also the set of Zones and corresponding stiffness terms to constrain to meet this target. An example of a manual Buckling Constraint definition is shown in the following image.
First, HyperX must determine which Zones are participating in buckling mode(s) below the required limit. It does this using the modal detection parameter. Then, for those zones, a new required stiffness value for each user-input stiffness term is calculated to drive sizing.
The Zone stiffness factors are computed for each mode that is below the limit. The maximum Zone stiffness factor is used.
Note
Modes with negative eigenvalues and modes with a max translation magnitude less than 1.0 are ignored. Note the translation check is not performed for frequency constraints.
If the minimum eigenvalue limit is met, the Zone stiffness factors are set to 1 to effectively disable the constraint and lock in the current stiffness distribution.
Mode Detection Parameter
To detect which Zones are participating in the buckling mode, a mode detection parameter \(\delta_i\) is computed per grid. The mode detection is based on the magnitude of normalized grid translation and rotation. Both translation and rotation are considered to capture the entire mode shape (not just the peak translation).
\(\delta_i=\sqrt{\left(\frac{\left|\vec{T_i}\right|}{\max\left(\left|\vec{T_i}\right|\right)}\right)^2+\left(\frac{\left|\vec{R_i}\right|}{\max\left(\left|\vec{R_i}\right|\right)}\right)^2}\)
The maximum mode detection parameter for the entire model is also computed to bias the Zone stiffness factors (below).
\(\delta_{\max}=\max\left(\delta_i\right)\)
Zone Stiffness Factor
The base stiffness factor, \(f_b\), is computed using the ratio of the limit eigenvalue to the actual eigenvalue.
\(f_b=\frac{\lambda_{limit}}{\lambda_{actual}}\)
For each Zone, the maximum mode detection parameter \(\delta_c\) is queried. Next, the following equation is used to bias the base stiffness factor to a Zone factor, \(f\). The objective is to bias stiffness factors towards Zones that are participating in the mode shape.
\(f=\left(f_b-1\right)\left(\frac{\delta_c}{\delta_{\max}}\right)+1\)
A plot of the Zone stiffness factor equation is shown below with a base stiffness factor of 3. The Zone associated with the maximum mode detection parameter will receive the full base stiffness factor, whereas other Zones will be scaled down linearly to a minimum of 1.
A minimum static moment can be specified. Note that this Constraint is treated as a minimum (instead of a target-like displacement). The Static Moment Constraint algorithm attempts to redistribute the mass away from the CG of the Structure to meet the limit efficiently.
Note
The Static Moment option is only available as a Manual Constraint (not an Automatic Constraint option).
The static mass moment \(s\) is computed per display set using the following expressions. \(m_i\) is the mass of a Zone, \(M\) is the mass of the Set, \(c_i\) is the centroid of a Zone, and \(C\) is the centroid of the Set.
Note
The origin used to compute the static moment is taken as the global origin of the FEM.
\(M=\sum{m_i}\)
\(\vec{C}=(\sum{m_i\vec{c}_i})/M\)
\(s=\left|\vec{C}\right|M\)
The stiffness modification for the static moment is more complex than Deflection and Buckling Constraints. The following describes the algorithm used.
-
\(f_s\) = static moment factor = \(s/s_{max}\).
-
\(f_u\) = maximum constraint factor from any existing Deflection \(U/U_{max}\) or Buckling Constraints. If no other Constraints exist, \(f_u=1\).
-
\(f\) = Zone stiffness factor.
Case 1: \(f_s \lt 1\)
If the actual static moment is less than the maximum static moment, no action is taken since the static moment is an upper bound - not a target.
\(f+f_u\)
Case 2: \(f_s \gt 1\) and \(f_u \lt 1\)
In this case, the static moment maximum has been violated and the deflection is below the target. To reduce the static moment and increase the deflection, the stiffness needs to be decreased. A constant stiffness factor of \(f_u\) is applied.
\(f=f_u\)
Case 3: \(f_s \gt 1\) and \(f_u \gt 1\)
Here the static moment maximum has been violated, and the deflection is above the target. Decreasing the required stiffness for all Zones will push the deflection further away from the target. To reduce the moment while decreasing the stiffness, the algorithm attempts to shift the mass of the Structure towards the root using a linear stiffness factor distribution. The plot below shows the linear distribution as a solid line.
-
The x-axis is the distance from the Zone centroid to the root of the Set. This distance is normalized by the length of the Set.
-
The stiffness factor at the root of the Set \(x/L = 0\) is \(f_s*f_u\). In the example below the value is 1.4*1.1 = 1.54.
-
The stiffness factor at the CG of the display set ( \(x/L=0.35\)) is 1.0. In other words, Zones that are outboard of the CG are increased in stiffness and vice versa. If the \(x/L\) position of the CG is less than 0.2, the cross-over point is limited to 0.2.
-
The stiffness factor decreases as it moves outboard. The stiffness factor is limited to a minimum of 0.1.