The classic interface implements several fundamental components for defining kinematics, largely based on the physics and classical mechanics modules in
SymPy. A few of the objects that are used in MOMDYN are:
MOMDYN provides a front-end interface for interacting with these data types, creating a "Mechanism" object that acts as a container for the various types, and uses them to generate bodies and loads. These are passed to the KanesMethod object to generate equations of motion, simulated using custom numerical algorithms, and reported in text and plot form. The following components are implemented in the classic interface:
Parameter
Front-end for SymPy 'symbols' type
A parameter is a symbolic variable used to represent constants in the model. Typical uses are fixed lengths or angles in vector or frame definitions, mass properties, or spring stiffness and damping.
Parameters
:param name: string
Key to be used when referencing this parameter in the mechanism.p dictionary. Can be entered using LaTeX symbol formatting, i.e. \\theta yields θ, etc
:param value: numeric
Constant value for the parameter
:param description: string
Description of the parameter
:return: string
Message describing the created parameter
Generalized Coordinate
Front-end for SymPy 'dynamicsymbols' type
A generalized coordinate is a symbolic variable representing the mechanism configuration, typically as either a length or angular dimension. It is time-varying, and is alternately termed a degree of freedom. When using the classic interface, the generalized coordinate dialog is used to create the symbolic variable, which is later selected in the frame or vector dialogs as a dimension.
Parameters
:param name: string
Key to be used when referencing this coordinate in the mechanism.q dictionary. Can be entered using LaTeX symbol formatting, i.e. \\theta yields θ, etc
:param initial: numeric
Initial value for the generalized coordinate
:param description: string
Description of the generalized coordinate
Generalized Speed
Front-end for SymPy 'dynamicsymbols' type
A generalized speed is a symbolic variable representing the mechanism motion. It is common to equate a generalized speed to the first derivative of a corresponding generalized speed with respect to time, however, this is not required. In fact, a more compact form of equations of motion are often obtained by using an alternate set of generalized speeds, for example, in free motion of a rigid body it is common to define generalized coordinates as positions relative to the origin in the inertial frame, with generalized speeds being the velocity components in the body-fixed frame.
Parameters
:param name: string
Key to be used when referencing this coordinate in the mechanism.q dictionary. Can be entered using LaTeX symbol formatting, i.e. \\omega yields ω, etc.
:param equates_to: string
Equation representing terms in the point velocity or frame angular velocity equations that will be replaced by this generalized speed.
:param initial: numeric
Initial value for the generalized speed
:param description: string
Description of the generalized speed
Frame
Front-end for SymPy 'ReferenceFrame' type
A reference frame is a set of three orthonormal basis vectors which are rotated relative to the inertial frame, or some intermediate frame.
Parameters
:param ref_point_key: string
Name of the point where the frame will be centered, for visualization in the diagram.
:param ref_frame_key: string
Name of the reference frame from which the relative orientation angles are measured.
:param rotation_sequence: string
Euler angle sequence, for example, 'ZYX' corresponds to a yaw-pitch-roll sequence, where the first_angle is a rotation about the Z-axis of the original reference frame, the second_angle is a rotation about the Y'-axis of an intermediate frame, and the third_angle is a rotation about the X''-axis of a second intermediate frame.
:param first_angle: string or numeric
First rotation angle (i.e. yaw rotation in the 'ZYX' example).
:param second_angle: string or numeric
Second rotation angle (i.e. pitch rotation in the 'ZYX' example).
:param third_angle: string or numeric
Third rotation angle (i.e. roll rotation in the 'ZYX' example.
Vector
Front-end for SymPy 'Vector' type
Create a vector using an existing reference frame and specified distances.
Parameters
:param name: string
Key to be used when referencing this vector in the mechanism.vectors dictionary.
:param start_point: string
Key of the point used to mark the start of the vector.
:param ref_frame_key: string
Key of the frame in which the x, y, z components are measured.
:param x: string
Key of the parameter or generalized coordinate for distance in x- component of the reference frame.
:param y: string
Key of the parameter or generalized coordinate for distance in y- component of the reference frame.
:param z: string
Key of the parameter or generalized coordinate for distance in z- component of the reference frame.
Point
Front-end for SymPy 'Point' type
A point has a location, velocity, and acceleration relative to the inertial reference frame. Points are used to define interfaces between multiple parts in the mechanism, to position bodies (masses and inertias), or as locations of applied forces.
Parameters
:param name: string
Key to be used when referencing this point.
:param ref_point_key: string
Key of the point from which the created points position will be measured.
:param vector_key: string
Key of the vector used to define the position of the created point relative to the reference point.
No comments:
Post a Comment