symbrim.bicycle.tires.NonHolonomicTire

class symbrim.bicycle.tires.NonHolonomicTire(name: str)

Bases: InContactTire

Tire model connection based on nonholonomic constraints.

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[object, str]

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

get_all_symbols() set[Basic]

Get all declared symbols of a model.

get_description(obj: object) str | None

Get description of a given object.

get_param_values(bicycle_parameters: Bicycle) dict[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[Function, Expr]

Equations defining the forces and moments of the tire model.

property load_groups: tuple[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[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.