LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

acceleration, velocity, and position control

Hello To all,
        I am working on a project that involves a hydraulic cylinder (does that sound familiar or what), I use LabView Realtime 8.5 with the cRIO-9012 hardware, a positional transducer, and a basic proportional valve (when I say basic I mean it does not have built in PID functionality, only CMD inputs and Spool position feedback).  I have to say that I am very satisfied with the progress I have made so far, but I want make sure that I am taking full advantage of what this system can do.   

   Using the PID VI I operate the cylinder by switching between modes (with a case structure around the setpoints and Gains) to positional control, or velocity control.   With positional control the linear transducer input is the Process Variable, a position value is the Setpoint, and the output is the desired spool position.   I found that cascading another PID VI with the desired spool position as the setpoint and Spool position feedback as the process variable results in more stable positioning.   

   Velocity control is what I'm not absolutely sure about though my method does produce results.    I take the position value, do a point by point differentiation to get a velocity value then use that value to feed to my PID VI as the process value.   It works but its not as responsive as I would like it to be.   I've pretty much worn out all possible combinations of PID parameters so I'm hoping there is a faster more responsive way of doing this.   Shift registers in FPGA?   Thats my first question.

   Next I want to know how to control position, velocity, and acceleration with my present hardware setup simultaneously without having to switch modes.    
  
Any feedback would be greatly appreciated.  
0 Kudos
Message 1 of 3
(4,009 Views)
Hi FWalker,
How do you currently have your position readings and PID setup in your loop (i.e. how are your shift registers and loops wired up)? A screenshot of your code would be helpful here.

And what kind of loop rate and response time do you currently have, and what loop rate and response time are you looking to achieve?
0 Kudos
Message 2 of 3
(3,958 Views)
FWalker,
 
What you are asking for is trajectory control.  Velocity, Position, time and Acceleration are all related...  To control each of these parameters requires the solution to an ordinary differential equation.  v=ds/dt, a=dv/dt....etc.  if you don'' feel like breaking out the the old dynamics text book, setting up the equation and doing the integration, then you may take a look at the NI Soft Motion package that will do the trajectory generation for you.  It works great, although it does require quite a bit of FPGA overhead.
SteveA
CLD

-------------------------------------
FPGA/RT/PDA/TP/DSC
-------------------------------------
0 Kudos
Message 3 of 3
(3,946 Views)