0

I've created a Dymola model. It has an empty tank, which is connected to the output of sweptVolume component via a static pipe. Input to the sweptVolume is a constant force, with the help of which I would like to transport water from the hydraulic cylinder to the tank.

I've assumed the cross sectional area of the piston. I've calculated the force that is needed to displace the water in the cylinder assuming the pressure to be atmospheric (101.325kPa). But, somehow I see the water is not getting displaced and the volume is remaining constant without filling the tank.

Please suggest, what type of input should be given for the sweptVolume element (position,move etc.), in case the given input constant force is wrong.

I would like to thank you for your time and interest.

  • It might help if you posted the actual model, instead of just a picture of the model. – Adam Apr 25 '16 at 20:31
  • Yep post some code... otherwise my best answer to the question title is with really small cups. :) – Scott G Apr 25 '16 at 23:48
  • Hi Mr. Adam and Mr. Scott G! I've updated the link with the real model. Thank you. – Gurubasav Yellur Apr 26 '16 at 07:10
  • 1
    @GYellur In the future, for short codes like that its probably best to paste the code in your question... links to download stuff is scary (to me at least :[ ). Anyways, a couple things: 1. It seems you never specified the position s of the piston. You probably need the force on a mass which then goes to the sweptVolume (for example `Modelica.Mechanics.Translational.Examples.SignConvention`). 2. The ambient pressure is equal to piston pressure (look at system p_ambient), don't know if that was on purpose. – Scott G Apr 26 '16 at 21:24
  • @ScottG I'll keep that in mind in the future to paste the code, when it is short. 1.I set the stroke (`s.start = 1`). Using mass helped me to actually transfer the fluid from sweptVolume to tank. 2. I agree that the pressure difference between the piston and atmosphere is zero, so I thought to increase the piston pressure compared to atmospheric pressure, so that the difference in pressure multiplied by the area of the piston would give the force. – Gurubasav Yellur Apr 27 '16 at 10:30
  • @ScottG why does `s.start = 1` not work in Dymola but works in openmodelica. What is the suitable code to initiate the stroke of sweptVolume? – Gurubasav Yellur Apr 28 '16 at 06:13

1 Answers1

1

the way to setup initial conditions it is only a matter of GUI, just add "flange(s(start=1, fixed=true))" in add modifiers tab of the sweptVolume parameter dialog in Dymola. To get your model work just invert the sign of the force, the sign convention for the force block is displayed by the arrow, so to compress the piston and fill the tank have to set the const value to minus something. Check the fluid volumes since you will get the model to stop when tank overflows or when piston stroke reaches the end (negative value of s). So you have to setup correctly the forces, or the tank and piston volumes or place some kind of stop to the mechanic part of the piston. The model can work fine even without masses added to the piston.

Hope this helps, Marco

Marco Romanoni
  • 471
  • 2
  • 9