ObjectANCFCable
A 3D cable finite element using 2 nodes of type NodePointSlope1. The localPosition of the beam with length \(L\)=physicsLength and height \(h\) ranges in \(X\)-direction in range \([0, L]\) and in \(Y\)-direction in range \([-h/2,h/2]\) (which is in fact not needed in the EOM). For description see ObjectANCFCable2D, which is almost identical to 3D case. Note that this element does not include torsion, therfore a torque cannot be applied along the local x-axis.
Additional information for ObjectANCFCable:
- This
Object
has/provides the following types =Body
,MultiNoded
- Requested
Node
type =Position
- Short name for Python =
Cable
- Short name for Python visualization object =
VCable
The item ObjectANCFCable with type = ‘ANCFCable’ has the following parameters:
- name [type = String, default = ‘’]:objects’s unique name
- physicsLength [\(L\), type = UReal, default = 0.]:[SI:m] reference length of beam; such that the total volume (e.g. for volume load) gives \(\rho A L\); must be positive
- physicsMassPerLength [\(\rho A\), type = UReal, default = 0.]:[SI:kg/m] mass per length of beam
- physicsBendingStiffness [\(EI\), type = UReal, default = 0.]:[SI:Nm\(^2\)] bending stiffness of beam; the bending moment is \(m = EI (\kappa - \kappa_0)\), in which \(\kappa\) is the material measure of curvature
- physicsAxialStiffness [\(EA\), type = UReal, default = 0.]:[SI:N] axial stiffness of beam; the axial force is \(f_{ax} = EA (\varepsilon -\varepsilon_0)\), in which \(\varepsilon = |{\mathbf{r}}^\prime|-1\) is the axial strain
- physicsBendingDamping [\(d_{K}\), type = UReal, default = 0.]:[SI:Nm\(^2\)/s] bending damping of beam ; the additional virtual work due to damping is \(\delta W_{\dot \kappa} = \int_0^L \dot \kappa \delta \kappa dx\)
- physicsAxialDamping [\(d_{\varepsilon}\), type = UReal, default = 0.]:[SI:N/s] axial damping of beam; the additional virtual work due to damping is \(\delta W_{\dot\varepsilon} = \int_0^L \dot \varepsilon \delta \varepsilon dx\)
- physicsReferenceAxialStrain [\(\varepsilon_0\), type = Real, default = 0.]:[SI:1] reference axial strain of beam (pre-deformation) of beam; without external loading the beam will statically keep the reference axial strain value
- strainIsRelativeToReference [\(f\cRef\), type = Real, default = 0.]:if set to 1., a pre-deformed reference configuration is considered as the stressless state; if set to 0., the straight configuration plus the values of \(\varepsilon_0\) and \(\kappa_0\) serve as a reference geometry; allows also values between 0. and 1.
- nodeNumbers [type = NodeIndex2, default = [invalid [-1], invalid [-1]]]:two node numbers ANCF cable element
- useReducedOrderIntegration [type = Index, default = 0]:0/false: use Gauss order 9 integration for virtual work of axial forces, order 5 for virtual work of bending moments; 1/true: use Gauss order 7 integration for virtual work of axial forces, order 3 for virtual work of bending moments
- visualization [type = VObjectANCFCable]:parameters for visualization of item
The item VObjectANCFCable has the following parameters:
- show [type = Bool, default = True]:set true, if item is shown in visualization and false if it is not shown; note that all quantities are computed at the beam centerline, even if drawn on surface of cylinder of beam; this effects, e.g., Displacement or Velocity, which is drawn constant over cross section
- radius [type = float, default = 0.]:if radius==0, only the centerline is drawn; else, a cylinder with radius is drawn; circumferential tiling follows general.cylinderTiling and beam axis tiling follows bodies.beams.axialTiling
- color [type = Float4, default = [-1.,-1.,-1.,-1.]]:RGBA color of the object; if R==-1, use default color
DESCRIPTION of ObjectANCFCable
The following output variables are available as OutputVariableType in sensors, Get…Output() and other functions:
Position
: \(\LU{0}{{\mathbf{p}}\cConfig(x,0,0)} = {\mathbf{r}}\cConfig(x) + y\cdot {\mathbf{n}}\cConfig(x)\)global position vector of local position \([x,0,0]\)Displacement
: \(\LU{0}{{\mathbf{u}}\cConfig(x,0,0)} = \LU{0}{{\mathbf{p}}\cConfig(x,0,0)} - \LU{0}{{\mathbf{p}}\cRef(x,0,0)}\)global displacement vector of local positionVelocity
: \(\LU{0}{{\mathbf{v}}(x,0,0)} = \LU{0}{\dot {\mathbf{r}}(x)}\)global velocity vector of local positionDirector1
: \({\mathbf{r}}'(x)\)(axial) slope vector of local axis position (at \(y\)=0)StrainLocal
: \(\varepsilon\)axial strain (scalar) of local axis position (at Y=Z=0)CurvatureLocal
: \([K_x, K_y, K_z]\tp\)local curvature vectorForceLocal
: \(N\)(local) section normal force (scalar, including reference strains) (at \(y\)=\(z\)=0); note that strains are highly inaccurate when coupled to bending, thus consider useReducedOrderIntegration=2 and evaluate axial strain at nodes or at midpointTorqueLocal
: \(M\)(local) bending moment (scalar) (at \(y\)=\(z\)=0), which are bending moments as there is no torqueAcceleration
: \(\LU{0}{{\mathbf{a}}(x,0,0)} = \LU{0}{\ddot {\mathbf{r}}(x)}\)global acceleration vector of local position
MINI EXAMPLE for ObjectANCFCable
1from exudyn.beams import GenerateStraightLineANCFCable
2rhoA = 78.
3EA = 1000000.
4EI = 833.3333333333333
5cable = Cable(physicsMassPerLength=rhoA,
6 physicsBendingStiffness=EI,
7 physicsAxialStiffness=EA,
8 )
9
10ancf=GenerateStraightLineANCFCable(mbs=mbs,
11 positionOfNode0=[0,0,0], positionOfNode1=[2,0,0],
12 numberOfElements=32, #converged to 4 digits
13 cableTemplate=cable, #this defines the beam element properties
14 massProportionalLoad = [0,-9.81,0],
15 fixedConstraintsNode0 = [1,1,1, 0,1,1], #add constraints for pos and rot (r'_y,r'_z)
16 )
17lastNode = ancf[0][-1]
18
19#assemble and solve system for default parameters
20mbs.Assemble()
21mbs.SolveStatic()
22
23#check result
24exudynTestGlobals.testResult = mbs.GetNodeOutput(lastNode, exu.OutputVariableType.Displacement)[0]
25#ux=-0.5013058140308901
The web version may not be complete. For details, consider also the Exudyn PDF documentation : theDoc.pdf