FSAE Steering System

Riccardo Rampazzo – riccardo.rampazzo.2@studenti.unipd.it


The topic of the project is to model and simulate the steering system of 2017/2018 RaceUP Team combustion car, the racecar prototype of University of Padua.


The system is composed by the steering wheel connected to the upper shaft, two cardan joints that let the torque be transmitted through the main shaft to the pinion. The rack and pinion coupling converts the motion from rotational to traslational. Finally, two tie rods connect the rack with both left and right non suspended masses which can rotate about the steering axis.




The first target of the project was to develop a kinematic simulation of the system (in order to study toe and camber variation in steering, pinion rotation, rack travel, steer ratio and ackermann geometry) considering also the effect the vertical wheel travel has into steering, so a bump-rebound simulation was carried out to show bump steer phenomenon. In a second time, after I realized that the model was working correctly compared to Lotus Suspension Analysis Software’s results (software used by the team for kinematic analysis), I did a dynamic simulation in order to show pinion and rack forces exchanged during the coupling inside the steering box. In the end, two tires were added into the model to observe tire forces generated during steering at zero longitudinal velocity and to sum up the steering wheel torque the driver has to apply for this to happen.

The modelling problem

The origin of the car’s reference frame is fixed to the projection on the ground of the furthest point of the frame, while the axes are oriented as: X coincides with the longitudinal direction of the vehicle (pointing to the front) and Y axis points to the right of the car, Z axis points upward. Adams settings: MMKS, gravity along Z downward.

At the beginning key points were created in Adams, so as to simplify joints’ location later.


Bodies, Joints and Motions:

Due to the fact I’ve done different type of simulation while I was getting used with the software, changing bodies, joints and motions for different case studies, I will now report the first kinematic configuration I used, indicating further on the description how I changed the model for each different simulation.

(1st case)

  • Rocchetti and Scatola alta as ground parts (+0);
  • Cremagliera (+6);
  • Scatola bassa (+6);
  • Pignone (+6);
  • Piantone (+6);
  • Volante (+6);
  • Convergenza_dx (+6);
  • Convergenza_sx (+6);
  • MassaNS_dx (+6);
  • MassaNS_sx (+6);
  • TriangoloBassoDx (+6);
  • TiangoloAltoDx (+6).

Total: 11*6 = 66 DOF.

After several attempts, the best format used to export parts from Creo Parametric 3.0 (CAD used by the team) and to import them into Adams was “.slp” (Render). In order to simplify the model more than one bodies were united into one single part (for example brake disks, hub, uprights, rim and tires are all slashed in “MassaNS”). For each part was calculated an equivalent density, center of mass position and inertia tensor compared to the reference frame used as ground in Adams. Then, for each body were manually imported all these information. (ex. Volante is shown below):


One aspect to be careful about is the convention used by CAD to define off-diagonal terms of inertia tensor. Creo uses the opposite convention used by Adams, so a minus sign has been added ahead Ixz, Ixz, Iyz.

  • Rotazione_Volante, Revolute joint in Upper_joint_center between Volante and ground, rotation axis from Steering_wheel_center pointing to Upper_joint_center (-5);
  • Cardano_Alto, Hooke joint in Upper_joint_center between Volante and Piantone, rotation axis from Upper_joint_center pointing to Steering_wheel_center and from Upper_joint_center pointing to Lower_joint_center (-4);
  • Cardano_Basso, Hooke joint in Lower_joint_center between Pignone and Piantone, rotation axis from Lower_joint_center pointing to Upper_joint_center and from Lower_joint_center pointing to Pinion_Center (-4);
  • Rotazione_pignone, Cylindrical joint in Pinion_Center between Pignone and Scatola bassa, rotation axis from Lower_joint_center pointing to Pinion_Center (-4);
  • Traslazione_Cremagliera, Traslational joint in Rack_Center between Cremagliera and Scatola bassa, traslational axis from Rack_Center pointing to Inner_track_rod_ball_joint_sx (-5);
  • ConvergenzaSx, Hooke joint in Inner_track_rod_ball_joint_sx between Cremagliera and Convergenza_sx, rotation axis from Inner_track_rod_ball_joint_sx pointing to Outer_track_rod_ball_joint_sx and from Inner_track_rod_ball_joint_sx pointing to Rack_Center (-4);
  • ConvergenzaDx, Hooke joint in Inner_track_rod_ball_joint_dx between Cremagliera and Convergenza_dx, rotation axis from Inner_track_rod_ball_joint_dx pointing to Outer_track_rod_ball_joint_dx and from Inner_track_rod_ball_joint_dx pointing to Rack_Center (-4);
  • Scatola_bassa_fissa, Fixed joint between Scatola bassa and ground (-6);
  • Rotazione_TrBasso, Revolute joint in Lower_wishbone_front_pivot between TriangoloBassoDx and ground, rotation axis from Lower_wishbone_front_pivot pointing to Lower_wishbone_rear_pivot (-5);
  • Rotazione_TrAlto, Revolute joint in Upper_wishbone_front_pivot between TriangoloAltoDx and ground, rotation axis from Upper_wishbone_front_pivot pointing to Upper_wishbone_rear_pivot (-5);
  • Uniball_Superiore, Spherical joint in Upper_wishbone_outer_ball_joint_dx between MassaNS_Dx and TriangoloAltoDx (-3);
  • Uniball_Inferiore, Spherical joint in Lower_wishbone_outer_ball_joint_dx between MassaNS_Dx and TriangoloBassoDx (-3);
  • Rod_end_Dx, Spherical joint in Outer_track_rod_ball_joint_dx between MassaNS_Dx and Convergenza_dx (-3);
  • Rod_end_Sx, Spherical joint in Outer_track_rod_ball_joint_sx between MassaNS_Sx and Convergenza_sx (-3);
  • Rotazione_MNS_Sx, Revolute joint in Lower_wishbone_outer_ball_joint_sx between MassaNS_Sx and ground, rotation axis from Lower_wishbone_outer_ball_joint_sx pointing to Upper_wishbone_outer_ball_joint_sx (-5).

Total: 63 DOF constrained.

  • B_R (-1): Point Motion applied on the ground contact point of the wheel, it moves the wheel in bump and rebound with a sinusoidal trend and a width of 30 mm; the formulation is:


During steering simulation this DOF is blocked equal to zero.

  • Volante_rotazione (-1): Joint Motion applied on Rotazione_Volante. It controls steering wheel rotation.
  • Rack_travel (-1): Joint Motion applied on Traslazione_Cremagliera. It controls rack traslation.

During bump simulation these DOF are blocked equal to zero.

As it can be seen, in this 1st case I have not used a gear pairs to control rack traslation from pinion rotation: I added it in a second time, because in the first part of the simulation I was interested in studying the kinematic behaviour compared to Lotus, which uses rack travel  to simulate steering.

Pinion rotation can be expressed as a function of rack traslation: from PLV, if a force is applied:



Pinion primitive radius is 19.5 mm, so steering wheel angle = (rack travel/19.5) [rad].

Rack travel was fixed as a design choice at 92 mm (+- 46 mm), so steering wheel angle goes from -135° to +135° in first approximation. In Adams I have controlled the two motors using those expression. I decided to control motions in acceleration, using 5° polynomial low in order to be sure that position, velocity and acceleration will be continuos respect to time during the simulation.

7qf ad q0 are respectively 270° and -135° for the steering wheel and 92 mm and -46 mm for rack travel, while regarding T = total time to complete the movement, it was parametrized as a design variable “Tempo_di_Movimento” and used as End time for the simulation. In this way the impact of the chosen motion law might be seen in terms of velocity, acceleration and required torque for different T.


Total: 3 DOF controlled. At the end the Grubler count is:



VIDEO: Video1;

(2nd case)

The second simulation is a kinematic simulation yet. It shows how a single point coordinate can change the steering behaviour.

With the previous kinematic points, the ackermann percentage is 28%, it means that it follows a pro ackermann geometry at 28%. Below a 100% Ackermann geometry is shown: the two front wheels have the same istantaneous center of rotation and it is always along rear wheels’ rotation axis:



The Ackermann percentage is calculated by Lotus using the following expression:


It can be noticed that the expression is iterative: you must define a set of coordinate points to calculate the percentage. In the second simulation I changed only the Y value of Outer_track_rod_ball_joint dx and sx from 583.66 to 563.65 in order to obtain a parallel steering configuration (0% Ackermann). This value was extract by Lotus by changing in an iterative way the value of the coordinate as said before:



1st case configuration;


1st case configuration;


1st case configuration;

(3rd case)

The third simulation is a dynamic simulation with 1 DOF. It was deactivated rack travel motion and added rack and pinion coupling creating it into Adams.

  • Cremagliera;
  • Pignone;
  • Scatola bassa;
  • Rocchetti and Scatola alta as ground parts;

were deleted, but were created RACK_1 and PINION_1 using Machinery/Gear/Create gear pair. Six steps are required:

  • Gear type: rack;
  • Method: simplified;
  • Geometry: these parameters were introduced;


  • Material: the same information imported for the two parts in the first model are now reimported (pinion is shown);



  • Connection: “none” was selected, joints were added later;
  • Completion: finish.

Total: 60 DOF.

  • Rotazione_pignone (-5);
  • Traslazione_Cremagliera (-5);

were recreated. A new joint was added:

  • Coupling (-1);



A new marker called “Common_velocity” was created and located on the intersection between  circumference of the primitive diameter and the primitive line of the rack. In this way the joint is defined.

Total: 58 DOF constrained.


Cremagliera_Traslazione was deactivated.

Total: 2 DOF controlled.

For a kinematic simulation the Grubler count is 0, but in order to see forces exchanged during the coupling, a dynamic simulation is needed and the gear joint was deactivated. So, the final Grubler count is:


For this and the next simulation:

  • I used GSTIFF I3 solver as first attempt, than I changed for the better GSTIFF SI2 to have velocity and acceleration more stable.
  • The simulation start at equilibrium configuration.

VIDEO: Video2.

(4th case)



For the last dynamic simulation, two tires and the road were imported into the model. First of all Units were changed from MMKS to MKS, equal to units inside .tir file.


Upper and lower A arms were deleted and so also bump simulation.

Road creation: ground part.


Tires used in the model are not real tires (Hoosier R25B 13”), because several warnings and errors occurred during the simulation using that .tir file; so I decided to use “pac2002_195_65R15.tir”. Do to this fact I located the road not at (0.0,0.0,0.0), but at (0.0,0.0,-0.052), where 0.052 m is the difference between the unloaded radius of the two different tires (0.312-0.260 m).


Tires were located on the center of mass points of non suspended masses and also inertial properties are referred to NSM.

Total: 60 DOF.


Removing A armes from the model, I constrained the right non suspended mass as the left one, with a cylindrical joint about the steering axis: in this way each tire can traslate and rotate about that axis respect to the ground. In the end, two revolute joints let tires rotate along Y axis respect to non suspended masses.

Total: 54 DOF constrained.


only wheel rotation is controlled.

Total: 1 DOF controlled.

Finally, the Grubler count for the last simulation is:


5 degrees of freedom:

  • Spin and vertical displacement of sx tire;
  • Spin and vertical displacement of dx tire;
  • Coupling.

Simulations and analysis of results

(1st case)


  • Camber angle:


Positive steer travel means that the turn is on left side. Both wheels during a left turn have a positive rotation about X axis: in this way, the right wheel goes towords negative camber, the left wheel goes towords positive camber. The situation is opposite on right (negative) turns.

  • Toe angle:


Positive steer travel means that the turn is on left side. Both wheels during a left turn have a positive rotation about Z axis: in this way, the right wheel goes towords toe in, the left wheel goes towords toe out. The situation is opposite on right (negative) turns.

  • Ackermann effect:


Considering the positive X axis of the plot, when toe sx is positive (so during a left turn), the difference between toe sx and toe dx is positive while toe sx is increasing. This means that the left tire is more steered than the right one: this is called pro ackermann geometry.

  • Angular velocities:


Angular velocities had been computed in order to calculate the velocity ratio (steer ratio) between steering wheel rotation ad wheels rotation. As it can be seen, pinion and steering wheel velocities are note equal, because different angles on two hooke joints bring to a not constat velocity ratio between pinion and steering wheel. That’s not all: the subtended area of pinion velocity is smaller than the area subtended by steering wheel velocity. Simulation time is the same, so the angular space covered by the pinion must be smaller than the total space covered by the steering wheel; infact:


Areas would have been the same if the steering wheel had turned from from -180° to 180°, because only for a complete revolute the velocity ratio has an average unit value. This also means that introducing the real rack and pinion coupling in the model, for an input of 135° on steering wheel, rack travel wouldn’t be 46 mm, but a smaller value: in particular 130.91*(PI/180°)*19.5 = 44.55 mm.

  • Steer Ratios:


Obviously, due to Ackermann effect, steer ratio dx is different from steer ratio sx, apart when the two wheels has the same angle (0° of steering wheel). The average value is 4.3, so hypothetically you need to rotate 4.3*360° the steering wheel to get a complete rotation of tires.

  • Steering wheel:


In the graph above, the angular acceleration and the torque applied by the motor are shown on the steering wheel rotation axis. This plot is a function of the choosen law motion.


  • Camber angle:


During the bump phase (positive wheel travel), the right tire rolls about X positive direction (the upper part of the tire points towards the center of the car, negative camber) while in the rebound phase (negative wheel travel) it goes towards positive camber (negative direction). This behavior is good because when the car rolls, the outer tire is in bump situation and recovers the loss of camber due to the roll.

  • Toe angle:


Bump steer phenomenon: a vertical displacement of the wheel produce a toe angle different from zero. For example, in a rebound configuration for the right tire (negative wheel travel, right turn), the right tire has a positive rotation about Z axis, equal to a minimum left side steering input. As a consequence, the right tire radius of curvature is reduced.

(2nd case)


  • Camber_angle

2nd camber

There are no significant changes.

  • Toe angle:

2nd toeParallel steering means that the two wheels are equal steered during all rack travel.

  • Ackermann effect:

2nd Ack

Here can be noticed that the difference between sx and dx toe angles is negligible.

  • Steer ratios:


Equal right and left steer ratio is yet another confirmation of parallel steering.


There are no significant changes.

(3rd case)

From this point, the model was simulated only in steering.

First of all, in order to see tangential, radial and axial forces acting on helix gears, you need Adams to know you want to see them. To do that: Machinery/Gear output:


  • Camber angle:


  • Toe angle:


  • Steer ratios:


As predicted, the three plot above show the same results obtained in the first simulation, with the only difference on the total steer travel  that is smaller than +-46 mm for the reason just discussed.

  • Torque:


This plot shows, a part from the sign, that steering wheel torque and pinion torque have the same trend. From pinion torque, forces are calculated.

  • Gear forces:


Tangential and axial forces depend on torque direction, insted the radial force is always positive, infact it always tends to move forward the wheelbase between the gears.

(4th case)

  • Longitudinal slip and longitudinal force:



The model shows that longitudinal forces are negligible.

  • Lateral slip and lateral forces:



As it can be seen, at the end of the movement FyDx and FySx aren’t equal to zero, although sidslip angles are zero. This could mean that probably the origin of Fy isn’t from sidslip, but from another parameter, the turn slip, equal to the ratio between tire yaw velocity and the X component of contact patch velocity.

  • Vertical forces:

fzThe model shows that during a left turn, the left tire gain weight.

  • Aligning torque:


  • Torque:


This plot shows, a part from the sign, that steering wheel torque and pinion torque have the same trend. From pinion torque, forces are calculated. Contrary to the previous case, most of the time the torque has the same direction.

  • Gear forces:

for4Tangential and axial forces depend on torque direction, insted the radial force is always positive, infact it always tends to move forward the wheelbase between the gears. Contrary to the previous case, most of the time tangential and axial forces  have the same direction.


Untill the third simulation, it can be said that the model works correctly: kinematic analysis and forces exchanged during the coupling are well performed. The last simulation, instead, can’t be considered too reliable: first of all not the original tires were introduced into the model and than other consideration on tire models must be done. If lateral forces aren’t genereted from sidslip, it means they come out from turnslip; but, from turnslip definition, if Vcx is almost zero (and this is the case), the turnslip will tend to infinity. As a consequence, it will overcome the sliding value. The transition point from adhesion to sliding it will move towards the center of the contact patch. As a result, the rear half of the contact patch will slide in the opposite direction of the front half. This brings to Fy = 0 and to the maximum value of the self aligning torque. Unfortunately, the obtained plot of self alignng torque does not reflect the theory just mentioned. For these reasons, the last part of the simulation needs to be studied better in depth.


[1] Dynamics and optimal control of road vehicles, David J.N. Limebeer & Matteo Massaro

[2] http://www.raceup.it

Comments are closed.