# Hydraulic cylinder joint

I would like to know if Omniverse provides hydraulic cylinder joints, which I would like to simulate the drive for physical simulation modeling. Not according to the data we’ve seen so far. How can I access the source code of other joints? How about a prismatic joint, modifying its kinematics to get what I want?

No, we don’t provide any special features to support hydraulics. Can you describe specifically what it is that you need?

In particular you mention the kinematics of a hydraulic prismatic joint, but as far as I understand the kinematics (which is essentially the range of motion) should be identical for the joint whether it is driven using hydraulics or e.g. an electrical motor direct drive.

(post deleted by author)

Hello, according to what you said, I would like to know how to set stiffness and damping in the PrismaticJoint to meet the hydraulic drive effect I want

In Omniverse, you can look at the Prismatic joint demo to play with this.

Window->Simulation->Demo Scenes->Joints->Prismatic Joint

Go down to Drive panel in Property View:

Here, Target Position is where your hydraulics are trying to drive the piston.

Higher Stiffness will push harder but will also create higher frequency oscillation, like a stiff spring.

If your system is pressure limited you can drop down the Max Force.

To counteract the oscillation you can then raise the Damping. I don’t have any real life experience with hydraulics but my guess is that this should be sufficient.

1 Like

Your suggestions are very helpful to me, but I do not know what mathematical formulas they meet when setting damping, stiffness, target position and target speed so as to better simulate the lifting process of hydraulic support. In the future, I want to add joint force sensor to obtain the force provided by it. At present, although the visual effect can be simulated, it is not known whether it is accurate, and the process of hydraulic support lifting should be slow, but this obviously cannot control his speed.

1 Like

I see. All I can add is that the drive model we use is very simple, the formula is this:

force = springCoeff * (targetPosition - position) + dampingCoeff * (targetVelocity - velocity)

With the force being clamped to not exceed Max Force.

You can write e.g. a PID controller on top of this to continuously adjust the parameters to get a certain desired macro behavior.

The coefficients also get normalized by the simulation time step so that the formula is simulation frequency invariant.

Hello, can this equation be modified through physX5 source code?
force = springCoeff * (targetPosition - position) + dampingCoeff * (targetVelocity - velocity)

Well, yes, in theory absolutely everything can be modified through PhysX 5 source code, you could change it from a physics library to a video player or anything else… :)

The trouble with that is that we have so far not made the PhysX 5 source code available, and you cannot change this behavior without the source code.

I want to simulate the hydraulic drive device like MATLAB, get force, flow, speed, acceleration and other parameters

Are all parameters of physX joint drive designed according to this formula?
force = springCoeff * (targetPosition - position) + dampingCoeff * (targetVelocity - velocity)
How do I set up to meet the hydraulic drive?