Hi all
I am new to this forum. I am posting because, I have struggled with a problem for some time new and need some inputs. I hope will help me.
I have a water turbine (kind of) system that I need to control.
- The speed of the turbine is adjusted by a ball valve. The ball valve opening is controlled by a DC gear motor without any feedback.
- It takes approx 4 seconds to do a full opening (or closing) of the valve. I can easily power the motor for e.g. only 0.5s to open/close it a bit.
- I can detect fully open and fully closed but nothing in between.
- The turbine is connected to a gearbox that reduces the speed drastically.
- I measure the speed/RPM of the output shaft by a reed switch and an encode wheel with magnets.
- The system is very slow at operating speed, so I only receive a pulse every 20-40s.
- I am calculating the RPM in counts pr hour, 3600000/(delta_pulse[ms] )
My objective is to control the speed of the output shaft to a given speed (90 - 180 pr. hr), but setting a set point. The system will start from zero, closed valve = no feedback. The system can go quite fast (relatively), around 1000 pr. hr, so I prefer not to operate there to long.
I have tried with a PID (only the P so fare) and I am struggling with when to compute. I have tried:
1. Constant update time (e.g. every minute)
2. Variable update time, changing according to last feedback (e.g. change to 20s if last delta_pulse was 20s)
3. Compute only then the readings are steady (e.g. diff between the two last pulses of 5%)
The main problem is reducing the speed. With 3, I had the problem of closing the valve an awaiting inf for a new update (I have not used fully open / closed inputs in the control algorithm, perhaps this is the solution.). With 2. I risked using non-steady readings as input. Option 1. is just very slow and does not seem optimal.
I cannot change/add any hardware, but I have full control over the control software.
Any suggestions / comments or pointers some literature on similar system.
Bare in mind, I am a Mechanical Engineer, not a Control Engineer, so this might be trivial for some (I hope)
I am new to this forum. I am posting because, I have struggled with a problem for some time new and need some inputs. I hope will help me.
I have a water turbine (kind of) system that I need to control.
- The speed of the turbine is adjusted by a ball valve. The ball valve opening is controlled by a DC gear motor without any feedback.
- It takes approx 4 seconds to do a full opening (or closing) of the valve. I can easily power the motor for e.g. only 0.5s to open/close it a bit.
- I can detect fully open and fully closed but nothing in between.
- The turbine is connected to a gearbox that reduces the speed drastically.
- I measure the speed/RPM of the output shaft by a reed switch and an encode wheel with magnets.
- The system is very slow at operating speed, so I only receive a pulse every 20-40s.
- I am calculating the RPM in counts pr hour, 3600000/(delta_pulse[ms] )
My objective is to control the speed of the output shaft to a given speed (90 - 180 pr. hr), but setting a set point. The system will start from zero, closed valve = no feedback. The system can go quite fast (relatively), around 1000 pr. hr, so I prefer not to operate there to long.
I have tried with a PID (only the P so fare) and I am struggling with when to compute. I have tried:
1. Constant update time (e.g. every minute)
2. Variable update time, changing according to last feedback (e.g. change to 20s if last delta_pulse was 20s)
3. Compute only then the readings are steady (e.g. diff between the two last pulses of 5%)
The main problem is reducing the speed. With 3, I had the problem of closing the valve an awaiting inf for a new update (I have not used fully open / closed inputs in the control algorithm, perhaps this is the solution.). With 2. I risked using non-steady readings as input. Option 1. is just very slow and does not seem optimal.
I cannot change/add any hardware, but I have full control over the control software.
Any suggestions / comments or pointers some literature on similar system.
Bare in mind, I am a Mechanical Engineer, not a Control Engineer, so this might be trivial for some (I hope)