HyperWorks Solvers

Force: One Body Vector

Force: One Body Vector

Previous topic Next topic Expand/collapse all hidden text  

Force: One Body Vector

Previous topic Next topic JavaScript is required for expanding text JavaScript is required for the print function  
hmtoggle_plus1greyXML Format

Model Element

Description

Force_Vector_OneBody defines a general force and/or torque acting one a Reference_Marker. It can be used to model a force, a torque, or both.  The force and/or torque vectors are defined by their three components with respect to another Reference_Marker. The components may be defined using MotionSolve expressions or a user defined subroutine.  They may be a function of any system state and time.

Format

<Force_Vector_OneBody

      id                         = "integer"

    [ label                      = "string" ]

      marker_id                  = "integer"

      ref_marker_id              = "integer"

{

      type = "FORCEONLY"

      {

            fx_expression        = "motionsolve_expression"

            fy_expression        = "motionsolve_expression"

            fz_expression        = "motionsolve_expression" >

          | usrsub_dll_name      = "valid_path_name"

            usrsub_param_string  = "USER( [[par_1 [, ...][,par_n]] )"

            usrsub_fnc_name      = "custom_fnc_name" >

          | script_name         = valid_path_name

            interpreter          = "PYTHON" | "MATLAB"

            usrsub_param_string  = "USER( [[par_1 [, ...][,par_n]] )"

            usrsub_fnc_name      = "custom_fnc_name" >                

      }

    | type = "TORQUEONLY"

      {

            tx_expression        = "motionsolve_expression"

            ty_expression        = "motionsolve_expression"

            tz_expression        = "motionsolve_expression" >

          | usrsub_dll_name      = "valid_path_name"

            usrsub_param_string  = "USER( [[par_1 [, ...][,par_n]] )"

            usrsub_fnc_name      = "custom_fnc_name" >

          | script_name         = valid_path_name

            interpreter          = "PYTHON" | "MATLAB"

             usrsub_param_string = "USER( [[par_1 [, ...][,par_n]] )"

             usrsub_fnc_name     = "custom_fnc_name" >

      }

    | type = "FORCEANDTORQUE"

      {

            fx_expression        = "motionsolve_expression"

            fy_expression        = "motionsolve_expression"

            fz_expression        = "motionsolve_expression"

            tx_expression        = "motionsolve_expression"

            ty_expression        = "motionsolve_expression"

            tz_expression        = "motionsolve_expression" >

          | usrsub_dll_name      = "valid_path_name"

            usrsub_param_string  = "USER( [[par_1 [, ...][,par_n]] )"

            usrsub_fnc_name      = "custom_fnc_name" >

          | script_name          = valid_path_name

            interpreter          = "PYTHON" | "MATLAB"

            usrsub_param_string  = "USER ( [[par_1 [, ...][,par_n]] }"

            usrsub_fnc_name      = "custome_fnc_name" >

        }

}

</Force_Vector_OneBody>

Attributes

id

Element identification number (integer>0).  This number is unique among all Force_Vector_TwoBody elements.

label

The name of the Force_Vector_OneBody element.

marker_id

Specifies the Reference_Marker at which the force is applied.  This is designated as the point of application of the force.

ref_marker_id

Specifies the Reference_Marker whose coordinate system is used as the basis for defining the components of the force vector.

type

Select from "FORCEONLY", "TORQUEONLY", and "FORCEANDTORQUE".

"FORCEONLY": Implies that the element applies a force between the two Reference_Markers. No torque is applied.

"TORQUEONLY": Implies that the element applies a torque between the two Reference_Markers. No force is applied.

"FORCEANDTORQUE": Implies that the element applies a force and a torque between the two Reference_Markers.

fx_expression

fy_expression

fz_expression

Specifies the three components of the force vector as function expressions.

tx_expression

ty_expression

tz_expression

Specifies the three components of the torque vector as function expressions.

usrsub_param_string

The list of parameters that are passed from the data file to the user defined subroutine.  Use this keyword only when type = USERSUB is selected.  This attribute is common to all types of user subroutines and scripts.  The name of the user subroutine depends on the type of the element.

"FORCEONLY" uses a VFOSUB.

"TORQUEEONLY" uses a VTOSUB.

"FORCEANDTORQUE" uses a GFOSUB.

usrsub_dll_name

Specifies the path and name of the DLL or shared library containing the user subroutine.  MotionSolve uses this information to load the user subroutine in the DLL at run time.

usrsub_fnc_name

Specifies an alternative name for the user subroutine VFOSUB/VTOSUB/GFOSUB.

script_name

Specifies the path and name of the user written script that contains the routine specified by usrsub_fnc_name.

interpreter

Specifies the interpreted language that the user script is written in. Valid choices are MATLAB or PYTHON.

Comments

1.marker_id is designated as the point of application of the Force_Vector_TwoBody.
2.The force and torque expressions (or user subroutines) must be smooth and preferably differentiable.  This enables the numerical methods to deal with the force effectively.
3.If you are using velocity measures like VX(), VY(), and VZ() to calculate a damping force, make sure that the time derivative is taken in the correct reference frame.  See the example for more information.
4.Force_Vector_OneBody can act on all types of bodies: Body_Rigid, Body_Flexible, and Body_Point.

Example

The following examples shows the use of a Force_Vector_OneBody element to model a force of constant magnitude 100 units, acting along the negative Z direction of the Reference_Marker with id 1:

<Force_Vector_OneBody

    id                   = "18"

    type                 = "FORCEONLY"

    marker_id            = "1801"

    ref_marker_id        = "1"

    fx_expression        = "0"

    fy_expression        = "0"

    fz_expression        = "-100" >

</Force_Vector_OneBody>

hmtoggle_plus1greyPython Format

Model Element

Description

VFORCE defines a force acting one a marker.  The force vectors are defined by their three components with respect to another marker.  The components may be defined using MotionSolve expressions or a user defined subroutine.  They may be a function of any system state and time.

Declaration

def VFORCE(id, LABEL="", I= 0, JFLOAT= 0, RM= 0, FX="", FY="", FZ="", FUNCTION="", ROUTINE="", INTERPRETER="", SCRIPT=""):

Attributes

id

Element identification number (integer>0).  This number is unique among all the VFORCE elements. It uniquely identifies the modeling element.

LABEL

The name of the VFORCE element.

I

Specifies the ID of the marker at which the force is applied.  This is designated as the point of application of the force.

JFLOAT

Specifies the ID of the floating marker at which an equal and opposite reaction force is applied.

RM

 

Specifies the marker whose coordinate system is used as the basis for defining the components of the force vector.

FX

Specifies the magnitude of x-components force vector as a constant value, or as a function expression that can be evaluated at run-time

FY

Specifies the magnitude of y-components force vector as a constant value, or as a function expression that can be evaluated at run-time

FZ

Specifies the magnitude of z-components force vector as a constant value, or as a function expression that can be evaluated at run-time

FUNCTION

The list of parameters that are passed from the data file to the user defined subroutine, VFOSUB.  This attribute is common to all types of user subroutines and scripts.

ROUTINE

Specifies an alternative name for the user subroutine VFOSUB.

INTERPRETER

Specifies the interpreted language that the user script is written in.  Valid choices are MATLAB or PYTHON.

SCRIPT

Specifies the path and name of the user written script that contains the routine.

Comments

See Force_Vector_OneBody

Example

The example below shows how a VFORCE may be defined.

VFORCE(18,LABEL="Force0", I=1801,JFLOAT=301,RM=1,FX="0",FY="0",FZ="-100")

hmtoggle_plus1greyPython Format

Model Element

Description

VTORQUE defines a torque acting one a marker.  The torque vectors are defined by their three components with respect to another marker.  The components may be defined using MotionSolve expressions or a user defined subroutine.  They may be a function of any system state and time.

Declaration

def VTORQUE(id, LABEL="", I= 0, JFLOAT= 0, RM= 0, TX="", TY="", TZ="", FUNCTION="", ROUTINE="", INTERPRETER="", SCRIPT=""):

Attributes

id

Element identification number (integer>0).  This number is unique among all the VTORQUE elements.  It uniquely identifies the modeling element.

LABEL

The name of the VTORQUE element.

I

Specifies the ID of the marker at which the torque is applied.  This is designated as the point of application of the torque.

JFLOAT

Specifies the ID of the floating marker at which an equal and opposite reaction torque is applied.

RM

 

Specifies the marker whose coordinate system is used as the basis for defining the components of the torque vector.

TX

Specifies the magnitude of x-components torque vector as a constant value, or as a function expression that can be evaluated at run-time.

TY

Specifies the magnitude of y-components torque vector as a constant value, or as a function expression that can be evaluated at run-time.

TZ

Specifies the magnitude of z-components torque vector as a constant value, or as a function expression that can be evaluated at run-time.

FUNCTION

The list of parameters that are passed from the data file to the user defined subroutine, VTOSUB. This attribute is common to all types of user subroutines and scripts.

ROUTINE

Specifies an alternative name for the user subroutine VTOSUB.

INTERPRETER

Specifies the interpreted language that the user script is written in.  Valid choices are MATLAB or PYTHON.

SCRIPT

Specifies the path and name of the user written script that contains the routine.

Comments

See Force_Vector_OneBody

Example

The example below shows how a VTORQUE may be defined.

VTORQUE(18,LABEL="Force0", I=1801,JFLOAT=301,RM=1,TX="0",TY="0",TZ="-2500")

See Also:

Force_Bushing

Force_Scalar_TwoBody

Force_SpringDamper

GFOSUB

VFOSUB

VTOSUB

Model Statements

Command Statements

Functions

Notation and Syntax

The following MDL Model statements:

*ActionOnlyForce()

*ActionOnlyForcePair()