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.