brim.bicycle.tires.InContactTire#

class brim.bicycle.tires.InContactTire(name: str)#

Bases: TireBase

Generic tire model that is in contact with the ground.

Explanation

This tire model is a generic tire model that is defined to be in contact with the ground. It is used as a base class for other tire models that are in contact with the ground.

compute_normal_force#

Flag to indicate if the normal force of the tire model should be computed. Default is True.

Type:

bool

no_lateral_slip#

Flag to indicate if the tire model has no lateral slip. If True, a nonholonomic constraint is added to the system to enforce no slip in the lateral direction. Default is False.

Type:

bool

no_longitudinal_slip#

Flag to indicate if the tire model has no longitudinal slip. If True, a nonholonomic constraint is added to the system to enforce no slip in the longitudinal direction. Default is False.

Type:

bool

substitute_loads#

Flag to indicate if the tire model should automatically substitute the symbols for the loads with the actual tire force and moment equations. Default is True.

Type:

bool

Notes

The tire model reserves the following symbols for the loads: - Fx: Longitudinal force of the tire model. - Fy: Lateral force of the tire model. - Fz: Normal force of the tire model. - Mx: Rolling resistance moment of the tire model. - Mz: Self aligning moment of the tire model.

If these symbols are specified in the symbols attribute, loads are automatically applied to the system. Some of these symbols are automatically removed if the normal force is not computed or if the tire model has no slip in the lateral or longitudinal direction.

Attributes

auxiliary_handler

Auxiliary data handler of the model.

camber_angle

Camber angle of the wheel.

contact_point

Point representing the contact point of the wheel with the ground.

descriptions

Dictionary of descriptions of the lateral tire model's attributes.

ground

Submodel of the ground.

lateral_axis

Lateral axis of the wheel.

load_equations

Equations defining the forces and moments of the tire model.

load_groups

Load groups of the connection.

longitudinal_axis

Longitudinal axis of the wheel.

name

Name of the object.

on_ground

Boolean whether the wheel is already defined as touching the ground.

required_models

slip_angle

Slip angle of the wheel.

submodels

Submodels of the connection.

system

System object used to store the information of the model itself.

upward_radial_axis

Wheel radial axis pointing upward from the contact point to the wheel center.

wheel

Submodel of the wheel.

Methods

__init__

Create a new instance of the connection.

add_load_groups

Add load groups to the connection.

define_constraints

Define the constraints on the connection.

define_kinematics

Define the kinematics of the connection.

define_loads

Define the loads on the connection.

define_objects

Define the objects in the connection.

get_all_symbols

Get all declared symbols of a model.

get_description

Get description of a given object.

get_param_values

Get a parameters mapping of a model based on a bicycle parameters object.

set_plot_objects

Set the symmeplot plot objects.

__init__(name: str) None#

Create a new instance of the connection.

Parameters:

name (str) – Name of the connection.

__repr__() str#

Return repr(self).

__str__() str#

Return str(self).

__weakref__#

list of weak references to the object (if defined)

add_load_groups(*load_groups: LoadGroupBase) None#

Add load groups to the connection.

property auxiliary_handler: AuxiliaryDataHandler | None#

Auxiliary data handler of the model.

property camber_angle: Expr#

Camber angle of the wheel.

property contact_point: Point#

Point representing the contact point of the wheel with the ground.

define_constraints() None#

Define the constraints on the connection.

define_kinematics() None#

Define the kinematics of the connection.

define_loads() None#

Define the loads on the connection.

define_objects() None#

Define the objects in the connection.

property descriptions: dict[Any, str]#

Dictionary of descriptions of the lateral tire model’s attributes.

get_all_symbols() set[sympy.core.basic.Basic]#

Get all declared symbols of a model.

get_description(obj: Any) str#

Get description of a given object.

get_param_values(bicycle_parameters: Bicycle) dict[sympy.core.symbol.Symbol, float]#

Get a parameters mapping of a model based on a bicycle parameters object.

property ground: FlatGround#

Submodel of the ground.

property lateral_axis: Vector#

Lateral axis of the wheel.

property load_equations: dict[sympy.core.function.Function, sympy.core.expr.Expr]#

Equations defining the forces and moments of the tire model.

property load_groups: tuple[brim.core.base_classes.LoadGroupBase]#

Load groups of the connection.

property longitudinal_axis: Vector#

Longitudinal axis of the wheel.

property name: str#

Name of the object.

property on_ground: bool#

Boolean whether the wheel is already defined as touching the ground.

set_plot_objects(plot_object: MplPlotBase) None#

Set the symmeplot plot objects.

property slip_angle: Expr#

Slip angle of the wheel.

property submodels: tuple[brim.core.base_classes.ModelBase]#

Submodels of the connection.

property system: System | None#

System object used to store the information of the model itself.

Notes

This system object is used to store the information of the model itself. It does not by definition contain any information about the submodels or connections. Therefore, one cannot use this system object to form the equations of motion. Instead, one should use the to_system() method to get the system object representing the entire model.

property upward_radial_axis: Vector#

Wheel radial axis pointing upward from the contact point to the wheel center.

Explanation

To possibly simplify the equations of motion, one can overwrite the axis used to compute the location of the contact point with respect to the wheel center. This axis should be normalized. For a knife-edge wheel, one could express the vector from the wheel center to the contact point of the ground as wheel.radius * upward_radial_axis.

property wheel: KnifeEdgeWheel | ToroidalWheel#

Submodel of the wheel.