常见问题

Need technical support?

How do the push- and pull-buffers work in CarMaker?

Question

Various Questions and aspects of the functionality of the buffer subsystems in combination with the kinematics module (e.g. skc-file).

Solution

Regarding the axis of the force elements defined in the kinematics:

Spring, damper and buffer do not necessarily act in the same direction.
The skc file is essentially just a look-up table which maps the degrees of freedom (q0 = compression, q1 = steering, etc) on:

  1. the position and rotation of the wheel (tx, ty, tz and rx, ry, rz)
  2. a "length" x (= lBuf, lSpring, etc) for each suspension force component, which then serves as the input value for the corresponding component "subsystem"

The values that you write in the columns lSpring, lBuf, etc could theoretically also be "non-sense" that doesn't correlate to the movements of a real suspension system. Therefore it is maybe best to not think about axes at all for a moment.
However: The direction in which the resulting forces act is determined by calculating the partial differential of the "length" x with regards to each DOF q !


Regarding the "buffer length" lBuf:

Calling lBuf the "buffer length" is a bit misleading. Firstly there are two buffers, but only one "buffer length" lBuf. So how does this work?
It is probably best to think of the push AND pull buffers together as one single subsystem. This subsystem takes lBuf as its input value x and returns a force F_Buf.

The physical meaning of "x" depends on your own choice. If, for example, you do not specify lBuf in the skc-file at all, the vertical travel tz will be used (x = -tz).

So how is the force F_Buf calculated from x?

  • If x is between x0_push and x0_pull the buffer-force is zero
  • If x < x0_push, then the force is calculated using the stiffness curve you specified for the push-buffer in the vehicle-dataset-GUI.
    The corresponding "Compression" x* is calculated as: x* = x0_push - x
  • If x > x0_pull, accordingly the stiffness curve for the pull-buffer is used with compression x* = x - x0_pul

Regarding tz0 and x0

In the vehicle data set GUI the vertical travel tz, before a buffer is reached, is specified as tz0. (see picture below)

But the buffer compression is calculated from x and x0! So how do we get x0 from tz0?

This is done in pre-processing: The wheel compression q0 is varied until tz = tz0 is reached. Then for this q0 the corresponding value lBuf is used as x0.
This is done once for the push buffer (tz0_push and x0_push) and once for the pull buffer.

Is lBuf absolute or relative?

LBuf is meant to be an absolute value.

How can I define by buffer travel gap in the traditional motorsport way:

tz0 is already defined in the "traditional motorsport way" as the "free travel gap [in absolute z-direction] before interaction with the bumpstop".
If you do not specify lBuf, negative tz will be used as the input value x for calculating the buffer force.This would correspond to buffers that are mounted strictly vertical in z-direction.

Maybe it can be also helpful for you to check the diagrams generated in the ModelCheck. If you check "suspension force elements" you can see the resulting buffer forces plotted for the "buffer length" (= x = lBuf) and also for the compression q0.

Need technical support?
  • Date: 01.08.2023
  • Product: CarMaker
  • Version: 12.0
  • Component: Vehicle Model
  • Language: English

Tags

Buffer
SKC-files
KNC
Suspension