symbrim.core.auxiliary.AuxiliaryDataHandler

class symbrim.core.auxiliary.AuxiliaryDataHandler(inertial_frame: ReferenceFrame, inertial_point: Point)

Bases: object

Class to compute noncontributing loads in a system.

Explanation

This is an experimental class to compute noncontributing forces and torques in a system. To do so, the class creates a tree representation of what points are used to compute the velocity of other points. Based on this tree, auxiliary velocities of each point are computed and added to the inertal velocity graph of the points. For this to work, the system must be defined in a way that the velocity of each point is computed based on the velocity of its parent point in the position tree. This is almost always the case. An example where this is not the case is when the the velocity of the front wheel of a bicycle, which is constrained to touch the ground using a holonomic constraint, is computed based on the assumption that its contact point is an instantaneous center of rotation.

Parameters:
  • inertial_frame (ReferenceFrame) – Inertial reference frame in which the equations of motion will be formed.

  • inertial_point – Inertial point which is used as root in the tree graph representation.z

__init__(inertial_frame: ReferenceFrame, inertial_point: Point) None
__weakref__

list of weak references to the object (if defined)

add_noncontributing_force(point: Point, direction: Vector, speed_sym: Function, force_sym: Function) AuxiliaryData

Add the data of a noncontributing force to the graph.

apply_speeds() None

Apply auxiliary speeds to the velocity graph.

property auxiliary_forces_data: tuple[AuxiliaryData]

Tuple of noncontributing force data.

property auxiliary_speeds: tuple[Function]

Tuple of auxiliary speeds used to compute the noncontributing loads.

property auxiliary_torques_data: tuple[AuxiliaryData]

Tuple of noncontributing torque data.

create_loads() list[LoadBase]

Create loads for all noncontributing load data.

classmethod from_system(system: System) AuxiliaryDataHandler

Create an auxiliary data handler from a system.

get_auxiliary_velocity(point: Point) Vector

Return the auxiliary velocity of a point.

property inertial_frame: ReferenceFrame

Inertial reference frame.

property inertial_point: Point

Inertial point which is used as root in the tree graph representation.

retrieve_graphs() None

Read in the graphs of the system.