Fluid inertia in Simscape hydraulic

Hi,
I have had the impression that Simscape does not account for the fluid inertia in an hydraulic cylinder.
For example when the piston is at the end of its stroke, does Simscape account for the effect of inertia forces on the piston caused by the deceleration of the fluid?
I saw there is a "Fluid Inertia" block but it seems specific for fluid aceleration/deceleration in pipes.
Any help is much appreciated.

Answers (2)

Yifeng Tang
Yifeng Tang on 24 Jun 2024
Hi Amodio,
I don't think the actuator blocks model the inertia of the fluid inside. The "cushion" can be used to model some end-of-stroke behavior from flow restriction devices, but not the fluid inertia itself.
That said, I think there may be a trick we can play to mimic some effect from the mass of the fluids inside the cylinder. How about adding the mass of the fluid to a mass/inertia block attached at the R port, where the piston mass/inertia is usually also attached to? Something like this:
The piston position is used to calculate the fluid mass (*area*density), and it's added to the total mass at the R end. It assumes the fluids inside is moving at the same velocity of the piston (good assumption?).
Do you think this may work? I'm not sure what a good test case would be so I can't verify.

6 Comments

Amodio
Amodio on 24 Jun 2024
Edited: Amodio on 24 Jun 2024
Hi Yifeng,
thanks for your reply.
Your suggestion could be good to replicate the inertia forces acting on the piston. However, I imagine the reaction of the piston on the fluid will not be caught.
Basically the fluid is pushing the piston and travelling with a certain flow rate. Then, when the piston reaches the end of the stroke, the flow rate will suddenly decrease causing the deceleration of the entire fluid mass (in the cylinder head and in the pipeline leading to it). Even with incompressible fluid, such flow deceleration would cause a pressure increase in the fluid --> nothing else than the reaction of the piston to the flow.
I am afraid this phenomenon would not be represented, am I correct?
Here is another idea, but it'll require some coding in Simscape language to customize a component.
If you use a "Translational Mechanical Converter (IL)" block to model the cylinder, you have access to the Simscape code that defines all the equations. Note this block assumes that "the flow resistance between the inlet and the interior of the converter is negligible", i.e. the pressure at the A port (A.p) is the same as the pressure inside the cycliner (P_I). If the pressure change and momentum balance due to the fluid inertia is to be considered, A.p and P_I need to be different by a term that is proportional to the fluid acceleration d(mdot)/dt. Below is the equation used in the Pipe (IL) block when inertia is on, and a similar formulation can applied to this converter block I think.
Any reference case, hopefully simple, that can be used to test either of these two ideas?
Hi Yifeng,
thanks for the suggestion. I am actually using an "Hydraulic" circuit where, for example, the pipe is represented by the object "hydraulic pipeline" (here I cannot switch on the inertia). Do you recommend using the Isothermal blocks rather than hydraulic library ones?
Thanks
This one I can answer with certainty, lol. YES, Isothermal is better. See here and here.
If your model isn't huge yet, definitely switch to isothermal and continue. There is a conversion tool you can use.
Hi Yifeng
thanks a lot for the useful advice. I have now converted the model and finally can add fluid inertia in the pipes.
Once enabled the Fluid Inertia in each pipe, then I have a problem when a valve is being opened/closed the fluid pressure falls locally and very sharply causing the simulation to crash with the following error:
Error:An error occurred while running the simulation and the simulation was terminated
Caused by:
['*/Solver Configuration1']: At time 0.175692, one or more assertions are triggered. See causes for specific information.
Pressure at port B must be greater than or equal to Minimum valid pressure. The assertion comes from:
Block path: */*/*/* *
Assert location:
o (location information is protected)
o (location information is protected)
Any idea how to avoid this.
Many thanks!
need to see the model to give suggestions :)

Sign in to comment.

Amodio
Amodio on 28 Jun 2024
Understand. However I cannot share it for confidentiality.
Any chance you can give me some guidelines on potential sources for this error?
I have the suspect that when I activate the fluid inertia and the poppet valve opens, then in the pipe adjacent to it the flow goes from zero speed to a certain speed very quickly and the pressure drops sharply (ultimately going negative) --> this cause the run to crash.

1 Comment

That will be very difficult :(
Wild guesses and things to try:
(1) does the poppet valve has an opening dynamics option? If yes, enable it and use a reasonable time constant.
(2) use a fluid property block and make the entrained air fraction non-zero, e.g. 0.005.
(3) replace a long pipe with a few shorter pipes, to capture the propagation of pressure wave.
Do you have access to MathWorks' account team at your company/university/institute? If there is an NDA in place, you may share the model with MathWorks' application engineering team for more relevant advice. You can also try Tech Support, if you don't know who to reach out to initially.

Sign in to comment.

Products

Release

R2023b

Asked:

on 21 Jun 2024

Commented:

on 28 Jun 2024

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!