JasonO (Customer) asked a question.

How to do position control with hydraulic motor and proportional valve?

Hello,

 

I'm looking for input on a current project. I'm retrofitting the controls on a older sausage stuffer. The stuffer has a fixed displacement feed rotor driven by a hydraulic motor, which is controlled by a hydraulic proportional valve. The rotor has an incremental encoder for position feedback.

 

The basic process is that the hydraulic motor needs to be ramped up to a set speed, and ramped back down again to stop at a predetermined encoder position. The positioning needs to be very accurate, because obviously the machine needs to dispense a specific volume of product based on what the operator has entered. Also, the whole operation happens relatively quickly, depending on the size of the portion being dispensed. Ideally we want a motion profile something like this: 150 milliseconds to accelerate, 200 milliseconds at full speed, and 150 milliseconds to decelerate to a stop. The customer is OK with slowing down a bit if necessary to get the accuracy we need, but for now I'm aiming at a total time of 500 milliseconds for dispensing one portion.

 

I'm hoping to control this with a BRX, using a 4-20 mA signal to a proportional valve driver, and the encoder feedback for closed loop operation. I'm thinking that the way to go about this will be to use a virtual axis and the motion control commands, with the axis CurrentVelocity scaled to the analog output, but I'm not certain on the details of how to make this work, especially to get it to ramp down to a precise stop. I've done some other motion control projects of varying complexity, but never with hydraulics.

 

Anybody have suggestions on how to go about the control?

 

Here are some videos of similar machines:

https://www.youtube.com/watch?v=fWJIxhHfxPc

 

https://youtu.be/fCQLiFiYq1A

 


  • PouchesInc (Customer)

    A BRX is perfect for this, and using the virtual axis and closed loop control sounds like a good way to do it to ensure accuracy. I think you should be able to do it just like you said, start a trapezoidal move with your motion parameters, use the encoder feedback as closed loop into the move, and use a scale instruction for the current velocity of the axis into the counts for a 4-20ma output.

     

    The PLC will maintain perfect control down to the single encoder pulse and be very accurate, however you may have to do some additional logic or shifting positions and times a bit to account for the inaccuracy introduced by the hydraulic motor, which is not as accurate

    Expand Post
    Selected as Best
  • PouchesInc (Customer)

    A BRX is perfect for this, and using the virtual axis and closed loop control sounds like a good way to do it to ensure accuracy. I think you should be able to do it just like you said, start a trapezoidal move with your motion parameters, use the encoder feedback as closed loop into the move, and use a scale instruction for the current velocity of the axis into the counts for a 4-20ma output.

     

    The PLC will maintain perfect control down to the single encoder pulse and be very accurate, however you may have to do some additional logic or shifting positions and times a bit to account for the inaccuracy introduced by the hydraulic motor, which is not as accurate

    Expand Post
    Selected as Best
    • JasonO (Customer)

      I ended up doing it this way; I just simply used the encoder to close the loop in the BRX axis setup, and it worked perfectly. I was pleasantly surprised by the performance, since the hydraulics have a certain amount of lag, and the valve output is not exactly linear, but clearly the BRX is able to compensate for this pretty well.

      • PouchesInc (Customer)

        What encoder resolution did you use that you found to be a good fit? And what is the velocity you get up to on the hydraulic motor?

         

        Were you able to hit your targets of 150 milliseconds to accelerate, 200 milliseconds at full speed, and 150 milliseconds to decelerate to a stop with this project?

  • JasonO (Customer)

    Yes, the lag of the hydraulics is what concerns me. I guess I will just have to try it and tweak it as I go.

     

    Won't the BRX closed loop control fault because of the lag of the hydraulics? ie. the encoder feedback won't be "stiff" as when coupled in a mechanical system. I read somewhere of someone using an open loop virtual axis, and a PID loop to trim the analog output based on the encoder feedback, but I'm not sure this would be fast enough?

     

    The BRX analog output has a response time of 1 millisecond, so no problem there. I'm assuming I can't update an analog output via an Interrupt on the BRX? So I'll have to keep my scan time as low as possible, because that will introduce lag between the closed loop axis and the analog output. The proportional valve also has a 15 millisecond response time to a 10% step change, so there's some more lag.

     

    I think what I'll probably end up doing is using assymetric ramps, because the acceleration doesn't need to take very long, but the deceleration will need to be long enough to hit the target accurately. I really can't have much overshoot, because I can't pull material back into the machine.

    Expand Post
  • Cap (Customer)

    It's been a few years from actively doing Motion Control on a BRX.. But I remember an 'Error Position' count.. so you can see where the Software want it to be, and where the Hardware actually is..

     

    This will let you know when things are drifting, and by How Much..

     

    Cap

    Expand Post
  • letriv (Customer)

    I’ve worked on a few motion control projects with hydraulics before. For your setup, I’d recommend using a PID controller for the proportional valve. It’s great for fine-tuning speed and position. I’ve had good results with adjusting PID parameters to get smooth acceleration and deceleration. Also, if you’re not set on BRX, there are motion control libraries out there designed specifically for hydraulic systems that might make things easier.