I have read online help regarding this matter and understand that whenever we perform a standard event (for eg Suspension Analysis-----> Steering, which I am trying on one of the projects), the compliance matrix is calculated for every Joint and then various elements of this matrix are used for calculating different requests such as Ride rate, ride steer and a number of other parameters. The model which I have built has a number of idealized constraints (Convel, spherical, revoulte, fixed joints in the steering template). I have tried to replace as many fixed joints in the suspension templates as possible with bushes to see if it worked, but the problem still persists. There are also no redundant constraints in the model. I have also double checked the communicators that I have used and ensured that none of the parts are inadvertently connected to the ground. without the matrix, none of the requests which use this matrix are being calculated. The model I am trying to simulate is that of a tandem axle front suspension with bell-crank equalizing links and twin steering. I have also taken a look at the same assembly from the shared truck database. There seem to be quite a lot of idealized constraints in that model, but still there seems to be no issue when I simulate a similar steering event using that model. Can anybody suggest any corrections I may be able to incorporate into my model to make it work?
Hi Alexis, thanks for your prompt reply, here is the error I am getting. Yes, I have compared how the ATruck database model communicates with the rig and I have included all the communicators. As you can see in the following list of errors and warnings, once the matrix calculation fails, all the other calculations are failing. However, it continues to perform the simulation till the last step and I can also see the animation. Thanks for your time!
****** Performing Quasi-Static Simulation ******
acar/acm_cmat
**** Error:
Compliance matrix calculation failed.
acar/acm_rmvdof
*** Warning:
Singular submatrix - unable to remove DOF's
One of the DOF's may already have zero
compliance.
acar/ac_sdm_prop
*** Warning:
Failure to remove the steering travel dof from the suspension compliance mat
ISTAT = 1
acar/FVSA
*** Warning:
The left vertical deflection compliance terms are equal to zero.
Therefore, the front view swing arm angle will equal zero.
acar/FVSA
*** Warning:
The right vertical deflection compliance terms are equal to zero.
Therefore, the front view swing arm angle will equal zero.
acar/asfvsl
*** Warning:
The left side rotation is equal to zero.
Therefore, the front view swing arm length will equal zero.
acar/asfvsl
*** Warning:
The right side rotation is equal to zero.
Therefore, the front view swing arm length will equal zero.
acar/assvsa
*** Warning:
The left vertical deflection compliance terms are equal to zero.
Therefore, the side view swing arm angle will equal zero.
acar/assvsa
*** Warning:
The right vertical deflection compliance terms are equal to zero.
Therefore, the side view swing arm angle will equal zero.
acar/svsl
*** Warning:
the left side rotation is equal to zero.
therefore, the side view swing arm length will equal zero.
acar/svsl
*** Warning:
the right side rotation is equal to zero.
therefore, the side view swing arm length will equal zero.
acar/RIDE
**** Error:
The left vertical deflection compliance terms are equal to zero.
Therefore, the suspension ride rate will equal zero.
acar/RIDE
**** Error:
The right vertical deflection compliance terms are equal to zero.
Therefore, the suspension ride rate will equal zero.
acar/ROLL
**** Error:
The vertical deflection compliance terms are equal to zero.
Therefore, the suspension roll rate will equal zero.
acar/acc_rid_ste
**** Error:
The left wheel ride stiffness is too large
to compute the ride steer. The ride steer
is undefined.
acar/acc_rid_ste
**** Error:
The right wheel ride stiffness is too large
to compute the ride steer. The ride steer
is undefined.
acar/acc_rol_cen
**** Error:
Unable to calculate the roll center because:
the left contact patch is constrained.
the right contact patch is constrained.
acar/FVSA
*** Warning:
The left vertical deflection compliance terms are equal to zero.
Therefore, the front view swing arm angle will equal zero.
acar/FVSA
*** Warning:
The right vertical deflection compliance terms are equal to zero.
Therefore, the front view swing arm angle will equal zero.
acar/asfvsl
*** Warning:
The left side rotation is equal to zero.
Therefore, the front view swing arm length will equal zero.
acar/asfvsl
*** Warning:
The right side rotation is equal to zero.
Therefore, the front view swing arm length will equal zero.
acar/assvsa
*** Warning:
The left vertical deflection compliance terms are equal to zero.
Therefore, the side view swing arm angle will equal zero.
acar/assvsa
*** Warning:
The right vertical deflection compliance terms are equal to zero.
Therefore, the side view swing arm angle will equal zero.
acar/svsl
*** Warning:
the left side rotation is equal to zero.
therefore, the side view swing arm length will equal zero.
acar/svsl
*** Warning:
the right side rotation is equal to zero.
therefore, the side view swing arm length will equal zero.
acar/RIDE
**** Error:
The left vertical deflection compliance terms are equal to zero.
Therefore, the suspension ride rate will equal zero.
acar/RIDE
**** Error:
The right vertical deflection compliance terms are equal to zero.
Therefore, the suspension ride rate will equal zero.
acar/ROLL
**** Error:
The vertical deflection compliance terms are equal to zero.
Therefore, the suspension roll rate will equal zero.
The animation shows the wheels getting steered in accordance with the angular range that I mentioned in the gui of the Steering Event, nothing weird off the bat over there.
Also, how can I reduce the "tightness" of the model? I haven't mentioned that I don't currently have the exact values of mass and inertias of all the parts. Does that have a significant bearing on the matrix calculation?
Sorry, I meant that your model is too kinematic (joints + rigid parts) you may want to substitute some joints with bushes that ressemble reality bringing some level of elasticity
Adding to Alexis comments: There are multiple messages about ride stiffness being too large. I've seen two things in the past that could cause this: 1) Unrealistically high suspension spring rates. If these are too large, the suspension behaves like it's almost locked up, which causes problems with the compliance matrix calculations. 2) If the suspension spring rate is reasonable, but the rotational bushing rates are too high, then the suspension can also behave like it is locked up.
It's less likely that mass is a problem here, but it's still a good practice to put in reasonable values for mass and inertia.
As a test, I would apply vertical inputs (either force or displacement) to the wheels as a function of time, and then plot wheel vertical force vs. wheel vertical deflection, and ensure the basic wheel rate are reasonable (the slope of the force vs. deflection curve).
If you keep in mind what the compliance matrix does, then the errors are kind of self explaining.
In suspension analysis you enter the number of steps and ADAMS "pauses" in between each of these quasi-static steps.
Here the wheel is excited by a small force of "1" and the small "reactions" of the wheel displacements are stored as the "compliance matrix". If that worked, ADAMS is calculating derived results like steering axis or roll center from these compliance results and export that to the req/res files for the last step.
So if you for example use a motion driven maneuver on the wheel center, the suspension cannot travel up/down and some of the compliance matrix results don't make sense.
Another possibility is that you have a completely kinematic suspension without bushings, nrods or flex-bodies. If that mechanism is in one position you can apply infinite forces and it wouldn't move - thus the compliance matrix is zero in those directions.
If you carefully read the errors, it's exactly what they're saying.
The solution was already proposed: If you for example think you need a revolute joint, then replace it by stiff bushing in x/y/z that has a low rotational stiffness around az.
Hi Martin, I completely agree with what you are saying. I will replace as many more joints as possible with respecive bushings..but just one query, the shared truck database model which I mentioned before has quite a lot kinematic joints, yet it seems that when I simulate that model, the solver is able to calculate the compliance matrix perfectly. Is there a possible explanation for that..? Thanks in advance.
Just an update...I tried performing a small parallel wheel travel analysis on the model without the steering system. The simulation completed without any of the errors which I mentioned earlier in the conversation. So I guess, I have singled out the steering system as the cause of the error. As mentioned by Martin, the steering system does in fact have a lot of kinematic joints. So should I replace all of those joints with appropriate bushings? Thanks again..
Remember that the existing vehicle models in ACar are just demo models, a real vehicle model is usually more temperamental to get through equilibrium/dynamics and does not necessarily simulate that fast
Glad that you isolated the problem to the steering system