Kinematics of a Motorcycle Tire
(C) 2004 - Roberto Lot
>
restart: mylib :="C:\LIBS":
libname := mylib,libname: with(MBsymba):
Variables
>
x(t),y(t),z(t),
center of mass coordinates (point G)
psi(t),
yaw angle
phi(t),
roll angle
theta(t);
spin angle
Definition of Frames
frame for the wheel in vertical position with the z axis pointing downward
> TSAE := translate(x(t),y(t),z(t)) * rotate('Z',psi(t));
wheel frame (without spin rotation) where the x rotation represents camber angle
> TW := TSAE * rotate('X',phi(t));
wheel-fixed frame (spin rotation included) where the y rotation represents wheel spin
> TWS := TW * rotate('Y',theta(t));
Kinematics
wheel center
> G := origin(TW): show(G);
unit vector v (points from wheel center towards point of contact)
> v := make_VECTOR(TW,0,0,1): #show(v);
position of the contact point, where rho is the tire radius
>
C := G + rho*v:
show(C);
sliding velocity of the contact point
> VC := velocity(C,'absolute'): #show(VC);
> VC := project(VC,TSAE): show(VC);
> VS := Xcomp(VC); forward velocity
> VN := Ycomp(VC); lateral velocity
rolling velocity (differentiating theta with respect to time multiplied by the wheel radius i.e. vertical component of the contact point position)
> VR := diff(theta(t),t)*evalm(Zcomp(C));
longitudinal slip (SAE definition: 1 plus the ratio of the rolling velocity over the contact point foward velocity)
> kappa := 1+VR/VS;
sideslip angle (SAE definition: arctangent of the negative contact point lateral velocity over the foward velocity)
> lambda := arctan(-VN/VS);