Contenuto principale

Motorcycle Chain

Implement motorcycle chain

Since R2021b

  • Motorcycle Chain block

Libraries:
Powertrain Blockset / Drivetrain / Couplings
Vehicle Dynamics Blockset / Powertrain / Drivetrain / Couplings

Description

The Motorcycle Chain block implements the dynamic effects of a motorcycle chain on the Motorcycle Body Longitudinal In-Plane block, including dynamic tension and moment drive coupling.

This figure shows how the chain relates geometrically to the motorcycle frame, rear arm, and rear wheel.

FrameVariable in FigureDescription

Motorcycle main frame

  • iFrm – Forward along vector normal to front fork steer axis

  • kFrm – Downward normal to iFrm

  • jFrm – Orthogonal to motorcycle plane

OFrm

Main frame origin

Ports

Input

expand all

Drive shaft moment on front sprocket about ym, in N·m.

Longitudinal and vertical forces at rear wheel contact patch OCpR, along iCpR and kCpR, in N. Signal vector dimensions are [1x2] or [2x1].

Main frame pitch angle, ϴfrm, in rad.

Rear arm pitch angle, ϴra, in rad.

Brake moment at the rear wheel GWhlRr, about jWhlRr, in N·m.

Rear wheel angular acceleration, in rad/s2.

Output

expand all

Bus signal containing these block calculations.

SignalDescriptionUnits
FChn

Chain force applied to rear arm

N
AngVSprtR

Angular velocity of rear sprocket

rad/s
MDrvSprtR

Wheel damper moment applied to rear sprocket

N·m
WhlDmpAng

Angle between rear sprocket and rear wheel

rad

Wheel damper moment applied to rear sprocket, in N·m.

Drive chain moment at rear arm OArmRr, about jArmRr, in N·m.

Drive chain moment at the frame OFrm, about jFrm, in N·m.

Parameters

expand all

This figure shows how the chain relates geometrically to the motorcycle frame, rear arm, and rear wheel.

Front Sprocket

Position of front sprocket, SprktFrPxz, along xm zm, respectively, in m.

Programmatic Use

To set the block parameter value programmatically, use the set_param function.

To get the block parameter value programmatically, use the get_param function.

Parameter: SprktFrPxz
Values: [0.05 -0.05] (default) | vector
Data Types: double

Front sprocket mass moment of inertia, SprktFrIyy, in kg·m2.

Programmatic Use

To set the block parameter value programmatically, use the set_param function.

To get the block parameter value programmatically, use the get_param function.

Parameter: SprktFrIyy
Values: 0.005 (default) | scalar
Data Types: double

Front sprocket radius, SprktFrR, in m.

Programmatic Use

To set the block parameter value programmatically, use the set_param function.

To get the block parameter value programmatically, use the get_param function.

Parameter: SprktFrR
Values: 0.04 (default) | scalar
Data Types: double

Rear Sprocket

Rear sprocket mass moment of inertia, SprktRrIyy, in kg·m2.

Programmatic Use

To set the block parameter value programmatically, use the set_param function.

To get the block parameter value programmatically, use the get_param function.

Parameter: SprktRrIyy
Values: 0.01 (default) | scalar
Data Types: double

Rear sprocket radius, SprktRrR, in m.

Programmatic Use

To set the block parameter value programmatically, use the set_param function.

To get the block parameter value programmatically, use the get_param function.

Parameter: SprktRrR
Values: 0.12 (default) | scalar
Data Types: double

Rear Wheel

Rear wheel mass moment of inertia, WhlRrIyy, in kg·m2.

Programmatic Use

To set the block parameter value programmatically, use the set_param function.

To get the block parameter value programmatically, use the get_param function.

Parameter: WhlRrIyy
Values: 0.66 (default) | scalar
Data Types: double

Rear wheel radius, WhlRrR, in m.

Programmatic Use

To set the block parameter value programmatically, use the set_param function.

To get the block parameter value programmatically, use the get_param function.

Parameter: WhlRrR
Values: 0.33 (default) | scalar
Data Types: double

Swing Arm

Arm length, ArmRrLen, in m.

Programmatic Use

To set the block parameter value programmatically, use the set_param function.

To get the block parameter value programmatically, use the get_param function.

Parameter: ArmRrLen
Values: 0.535 (default) | scalar
Data Types: double

Wheel Damper

Wheel damper stiffness, WhlDmpK, in N/rad.

Programmatic Use

To set the block parameter value programmatically, use the set_param function.

To get the block parameter value programmatically, use the get_param function.

Parameter: WhlDmpK
Values: 1e4 (default) | scalar
Data Types: double

Wheel damper damping, WhlDmpC, in N·s/rad.

Programmatic Use

To set the block parameter value programmatically, use the set_param function.

To get the block parameter value programmatically, use the get_param function.

Parameter: WhlDmpC
Values: 1e2 (default) | scalar
Data Types: double

Equilibrium angle, WhlDmpAng0, in rad.

Programmatic Use

To set the block parameter value programmatically, use the set_param function.

To get the block parameter value programmatically, use the get_param function.

Parameter: WhlDmpAng0
Values: -15e-3 (default) | scalar
Data Types: double

Initial Conditions

Rear sprocket angular velocity, SprktRrAngV0, in rad/s.

Programmatic Use

To set the block parameter value programmatically, use the set_param function.

To get the block parameter value programmatically, use the get_param function.

Parameter: SprktRrAngV0
Values: 0 (default) | scalar
Data Types: double

Rear wheel angular velocity, WhlRrAngV0, in rad/s.

Programmatic Use

To set the block parameter value programmatically, use the set_param function.

To get the block parameter value programmatically, use the get_param function.

Parameter: WhlRrAngV0
Values: 0 (default) | scalar
Data Types: double

References

[1] Giner, David Moreno. “Symbolic-Numeric Tools for the Analysis of Motorcycle Dynamics. Development of a Virtual Rider for Motorcycles Based on Model Predictive Control.” PhD diss., Universidad Miguel Hernández de Elche, 2016.

Extended Capabilities

expand all

C/C++ Code Generation
Generate C and C++ code using Simulink® Coder™.

Version History

Introduced in R2021b