I'm building a machine that operates over 20 orders of magnitude with logarithmic process characteristics. I have tried regular PID and also all sorts of variations of PID and did not get good results. What other alternatives to PID I have?
I start with 21% oxygen in a closed vessel (at high temperature) and pump it out ion by ion down to log10(pO2)=-20 of original amount. I have sensitive enough sensor, pump and power supply for it. This part all works great if I set pump currents by hand or babysit the process. To go up in concentration I just lower the pump current and leakage takes care of adding oxygen.
But as you see, in context of trying to automate the control with PID, what works well at one region is completely unsuitable at another region. It does not help that the full loop of measurements takes about 10 seconds.
I have limited the current used to 500mA, and at worst conditions the current needed to cope with the leakage is 700µA, so the range for the current is not so huge. Nor is the range for sensor voltage, which is about 100mV to -1V.
Maybe I could control pump voltage instead of pump current. Current results directly to change in amount of oxygen (which is logarithmic). The resistance of the pump depends on temperature, and most of all the oxygen gradient, and would yield much more linear and automatically regulated response.