MATLAB Answers

Usint integration to calculate the cylinder/rotary actuator flow rate instead of the derivative block

1 view (last 30 days)
Amir Khan
Amir Khan on 27 Mar 2012
Hi,
I have a simulink model comprises of several subsystems. One of the subsystem represents a double acting hydraulic actuator. The actuator displacement (m^3/rad) is known and is a design variable. The outputs of this subsystem are the shaft torque (N.m), pressure (N/m^2) and shaft angle (rad). Now, I want to find the flowrate (m^3/sec) and I know that if I take the derivative of the shaft angle (this would give me the angular velocity of the shaft in rad/sec) and multiply it with the actuator displacement, I could get the flowrate. But I dont want to use the derivative block and am trying to use some other alternative.
Another problem I have is with the double acting hydraulic cylinder subsystem. The outputs of this block are the pistion position (stroke), whereas the only known parameter is the cylinder area(design variable). Again, if I take the derivative of the stroke, I can get the rod velocity and multyplying it with the area will give me the flow rate, but I dont want to use the derivative block here as well.
Can anyone suggest me anything to get round this and avoid using the derivates to find the flow rates of both the roary actuator and the cylinder? Any help will be much appreciated.

  0 Comments

Sign in to comment.

Answers (1)

Jarrod Rivituso
Jarrod Rivituso on 27 Mar 2012
I assume you are using SimHydraulics, correct?
Perhaps I am misunderstanding the question, but shouldn't you be able to use a Hydraulic Flow Rate Sensor block from the Simscape -> Foundation Library -> Hydraulic -> Hydraulic Sensors library? This should allow you to get the flow rate anywhere in your model (just remember to hook it up in series)
They do something similar in the demo model
sh_cylinder_da_flexible_clamping
well, at least for the pressure (but you could take a similar approach with the Hydraulic Flow Rate Sensor block).
Similarly for the mechanical domain - I'd expect you to be able to use a Translational Motion Sensor as they've done in that demo model to get position or velocity.
I apologize if I'm way off base and don't understand what you are asking.

  3 Comments

Amir Khan
Amir Khan on 28 Mar 2012
Thanks Jarrod, its my mistake that I forgot to mention things clearly. Actually, I have modelled all the hydraulic components in simulink and not used the simhydraulics, because my model comprises ofa machine that is run by hydraulics. I wasnt able to connect simhydraulic's components to the machince block due to the fact that all the simhydraulics components utilie "hydraulic conserving ports" and I could not connect these ports to my mechanical model.
Jarrod Rivituso
Jarrod Rivituso on 28 Mar 2012
OK, it will be difficult to say anything precisely without knowing the details of the model. However, let me give you a thought based on something that you said...
"the actuator displacement is known and is a design variable"
This leads me to believe that the actuator displacement is an input to your model. If this assumption is true, then it seems like your inputs are prescribing the kinematics of your model. In these situations, my understanding is that you have to do some form of differentiation to arrive at the velocity or acceleration terms.
The alternative approach if if your model sets the forces of your system, and then you use Newton's 2nd law to calculate accelerations. In those instances, you can use the Integrator block to obtain position and velocity from the acceleration term.
Again, apologies if I'm way off for some reason, but I thought this might help continue the discussion.
Is there a reason for your aversion to the Derivative block?
Amir Khan
Amir Khan on 29 Mar 2012
Thanks for your valuable suggestions! Unfortunately I can't use the integrator block because I dont have any acceleration data, otherwise it would've made the life easier. The only reason I dont want to use the derivative block is due to the inaccuracies associated with it. So there are only two optioins left, either use the derivative block, or alter the model equaitons so as to avoid the differentiation in the first place. Im trying to work on the later approach now, lets see what happens. Anyways, I really appreciate your help and will let you know the progress. Cheers

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!