Our motorsport library development originated from the need for real-time capable suspensions models to support hardware, software and driver-in-the-loop simulations in motorsport. To enable this innovative aggregate joint models were developed which are specifically designed idealised joints for real-time applications. Featuring a different concept of force and angle calculation, aggregate joints are more efficient computationally than standard multibody joints. These aggregate joints feature in suspensions models in both the VeSyMA – Suspensions and VeSyMA – Motorsports libraries. When using suspensions including the aggregate joints there are additional parameters, such as solution selection, that need to be defined, and in this post I will look at how this is done.
Figure 1 – Driver-in-the-loop simulator platform
Aggregate joints typically combine 2 or 3 multibody joints together. A significant problem to be overcome for suspension models to be able to simulate in real-time was the non-linear systems of equations that were formed when using the standard individual revolute, universal or spherical joints. Aggregate joint models provide analytical solutions to the suspensions degrees of freedom which allow the suspensions to be implemented without these non-linear systems of equations. For more information on the approach used for multibody modelling in the Modelica Standard Library, including aggregate joints, see this paper.
Solution Selection Parameters
The aggregate joints featured in the Claytex suspensions incorporate revolute joints, where there are two possible solutions for the initial angle of the revolute joint which meet the length constraint applied to the aggregate joint. Figure 2 shows the difference between the initialisation of a double wishbone suspension with the correct and incorrect solution selection applied.
Figure 2 – Comparison of a rear double wishbone suspension initialisation with correct and incorrect solution selection, where the upper wishbone is red and the toe link is green
Aggregate joint featuring a revolute includes an algorithm which is used at initialisation to calculate which of the two solutions to use based on a guess angle. In the Claytex implementation, there is a manual override of the solution selection algorithm in the revolute joint used in aggregate joint, which removes the solution selection from the initialisation calculation. The override of the solution selection is essential to ensure steady state initialisation of the suspension mechanisms in all circumstances.
If you look at a suspension model using the Claytex aggregate joints in comparison to one without, you will see additional Boolean parameters for the solution selection; as shown for the rear double wishbone linkage in VeSyMA – Suspensions below. By using the manual override and selecting the solution branch used to determine the initial angle of the revolute, the initialisation calculation is simplified and the solution used ensured.
Figure 3 – The additional solution selection parameters when using aggregate joints, in Suspensions.QuarterCar.Rear.DoubleWishboneRT
Determining The Correct Solution
When creating a new suspension which includes aggregate joints, the correct solution selection settings need to be found for the model. This can easily be done by performing a half car kinematic test with the manual override disabled; this is because the solution selection algorithm will always select the correct solution due to the additional constraints applied by the half car kinematic rig.
For the VeSyMA – Suspensions rear double wishbone example I’ve been using, aggregate joints are used in the anti-roll bar, left and right linkages so the manualOverride parameters are set to false in each of these subsystems in the half car kinematic test. Once the kinematic test has simulated, search for the positiveBranch values in the results; these Booleans are the solutions selected by the algorithm in the joint models. These can be shown by using the search field in the Variable Browser and deselecting the Show Start Value option, as shown below.
Figure 4 – Kinematic test of a rear double wishbone suspension, showing solutions selection (positiveBranch) values from the algorithm
These positiveBranch values then need to be applied in the corresponding solution selection parameter in the suspension model. In the suspension models the manualOverride parameter is set to true, forcing the solution selection parameter setting to be used.
The same approach of manually overriding the solution selection in the aggregate joints is also used in the VeSyMA – Motorsports library, the only difference being where the parameters are stored. There is a single manualOverride parameter at the suspension level to control whether the solution selection algorithm is used. The solution selection parameters are stored in the suspension setup record.
This is one small example of the ways in which models in the Claytex libraries have been optimised to improve the performance of the simulation.
Written by: Hannah Hammond-Scott – Modelica Project Leader
Please get in touch if you have any questions or have got a topic in mind that you would like us to write about. You can submit your questions / topics via: Tech Blog Questions / Topic Suggestion