01-19-2025 07:13 PM
Hello everyone,
I'm not sure on how to properly regulate my actuators with my Labview program
I'm regulating Volume flow using a Pump and a Flow control valve, all of this through a numeric control, I can control both actors by giving digital signals through DAQ,
my pump can't go too low with it's RPM, at a certain point it won't provide steady volume flow anymore. In order to get an even lower volume flow, the Flow Control Valve starts to "close" in order to create resistance for the pump, the pump will remain at the lowest possible RPM while the valve is active.
I thought of using PID control to regulate the parameters, but my professor was convinced that the system is "too slow and sluggish" and I should instead just us (tabular values, so basically if the volume flow is set too low for the pump to handle like: volume flow = 0,4m^3/s ->Valve closes 10%)
I must say my professor isn't a LabVIEW pro just like myself and I'm not sure what to really do in this case, what do you all think would work better for this application and has anyone has a similar system?
I hope i provided sufficient information (pls dont make of me this is my first post)
Solved! Go to Solution.
01-19-2025 07:18 PM
Yes, a lookup table approach works as well. You mentioned that you drive the motor and flow control valve using digital signal, does that mean either they are on/off or do you have the ability to define fractional states or truly proportional control?
01-19-2025 07:24 PM
I'm giving them int values and my buscoupler turns them into a analog signal, with that I can manually set the RPM of the Motor and also how far the valve should close.
01-20-2025 02:22 AM
Hi Crispy,
@Crispy1170 wrote:
I thought of using PID control to regulate the parameters, but my professor was convinced that the system is "too slow and sluggish" and I should instead just us (tabular values, so basically if the volume flow is set too low for the pump to handle like: volume flow = 0,4m^3/s ->Valve closes 10%)
Once I made a control for a very similar testbench…
01-20-2025 07:17 AM
Okay thanks for the help!
How exactly did you implement the lookup table inside Labview? Are there any specific VI's or blocks that you would recommend?
01-20-2025 07:54 AM - edited 01-20-2025 07:58 AM
Hi Crispy,
you could use Interpolate1DArray with an array of points (aka cluster[x, y]) to create a simple LUT!
Like this:
(The LUT is defined as an array of clusters of [x, y]…)
X would be your flow setpoint, Y could be the valve setpoint.
01-20-2025 08:00 AM
02-02-2025 06:50 AM
Hello GerdW,
I just got one other question, does your pump stay at a constant RPM while the valve starts to close? or do you still adjust the RPM after the valve starts begins to close up?
My professor told me to let the pump regulate even lower once the valve becomes active, but I see no logical reason for that.
Thank you
02-02-2025 11:18 AM
Hi Crispy,
@Crispy1170 wrote:
I just got one other question, does your pump stay at a constant RPM while the valve starts to close? or do you still adjust the RPM after the valve starts begins to close up?
This depends on your system setup…
With your previous question the pump will still be controlled by the PID controller, so the pump RPM will change even when the valve starts to close.
I also had a different setup where I needed to keep a certain minimum RPM for the pump. In that case I also used a PID to control the valve. You could implement this by manipulating setpoints and PID output limits depending on the actual pump RPM…