PID Control done with poor instrumentation

celso3093

Member
Join Date
May 2021
Location
Brazil
Posts
17
Hey guys! I'm a newbie in the control area, so I'm gonna drop some thoughts here...

We want to control the opening of big silos (about 1900 tons).


  • The opening is done by a motor that is controlled by a VFD.

  • Then the product (coffee beans) goes to a transporter.

I was thinking about using a PID control in which the process variable would be the current of the transporter.
And the Control Variable would be the position of the valve.
The control would run in a 1756-L62 ControlLogix.

The problem is: I don't have a position sensor to give me the exact position of the valve. We use inductive sensors that indicate if the valve is fully closed or fully opened (this one is not reached in a common operation).

So, my thinking is to estimate the opening of the valve based on the time passed opening and closing it in a way that I could use the result of the PID control (assuming that the output of the PID Control should be the position of the valve).

Could it work or would it be more like and endless road?

Thank you all!!
 
I think you may have to use timed proportional control where the PID CV is used to calculate a "bump time" and direction for the motor.

You may be just as well off to skip the overhead of the PID instruction and just use straight ladder logic to:
1) constantly calculate the error (difference between SP and PV conveyor amps)
2) at an adjustable interval, use that error result to calculate an amount of time to move the valve
3) if the amount error is negative engage the motor in the reverse direction

You could also calculate the VFD command based on the magnitude of the error. but if I understand properly, the VFD will be stopped when the error is within a tolerance and the flow of material is creating the desired load. So the VFD speed command is likely to need to be scaled between the minimum value required to get motion from the valve and the maximum rate you want the valve to move

Without having a feel for your actually equipment, I am not sure if this is the best approach. I give this advice solely based on past experience with systems with similar control and feedback elements.
 
Last edited:
What OkiePC offers is essentially an I-controller.
The recurrent form of the I-term:
U(i) = U(i-1) + ki * dt * error(i)

Recurrent form of OkiePC, I-controller:
U(i) = current(i) + k * error(i)
(k = ki * dt)
Such an implementation does not have the I-term "overflow" problem.

Applying a PID instruction often causes scaling problems (you can look at the relevant threads).

Beware!!! Math!!!

By approximating the plant TF W(s) = k

Setpoint TF W(s) = k * ki / (s + k * ki)
Disturbance TF W(s) = k * s / (s + k * ki)

I.e. in the absence of significant dynamic errors (lag, dead time), this is a good solution. How significant dynamic errors you will know when you run a closed loop. )))


Conclusion:
Summarizing the above, I would suggest that you take the advice of OkiePC
 

Similar Topics

I have S7 1512C controler for controlling 48 PID temperature loop, the output is PWM. Please I need the best, most efficient way to write the...
Replies
13
Views
611
Hi all, I'm having trouble solving a problem I've been working on for several months, and thought you might like a stab at it. The machine runs...
Replies
22
Views
958
How can I connect PID Output to a valve. In ladder logic program is there any logic do I want to add between valve and PID? PV=SP What will be the...
Replies
7
Views
421
I am setting up control for Hypochlorite dosing. The easy part is the dosing calculation for flow pacing but I would also like to setup trimming...
Replies
8
Views
950
Hi, I started off my career in PLC programming doing water/wastewater on AB around 20 years ago, but then moved overseas a few years later and...
Replies
57
Views
12,081
Back
Top Bottom