PID controller for level rejuvenator controlling

PID controller


I have another question regarding PID controllers. The main reason we are using PID controllers is for level rejuvenator controlling. We use three sensors, which are: an ultrasonic sensor to get the level of asphalt after milling, encoders to get the velocity of the machine, and a flow edge sensor to say the amount of rejuvenator that is being pumped out. The PID has a setpoint and the process variable is the amount of rejuvenator that is being processed the PID by using derivates, and integers try to fix errors and make the process value similar to the set point, and after that adjust the output in percentages to get the amount in percentage. The output is adjusted by opening and closing the switch that will control the valves to open and close multiple times to deliver the amount needed, right? Please, could you advise if I understood wrong?

1 Like

Hi Phelipe,

I believe that you are correct in your description. However, I’d need to see some sort of a process flow diagram or specification sheet to be certain. In my experience, a PID loop works well with a single process variable and single control variable. In other words, based on what you’ve described, I’d only expect the level sensor and the control valve to be part of the equation. If you tie in other variables (Ex: your other two sensors), you risk either diluting your PID computation or overcompensating, which can result in unpredictable behavior in both cases.

In either case, the approach I would take is first understanding the process to be controlled and seeing if it can be solved using a single sensor / single valve. Is there a reason why you’d need to incorporate the encoder counts? Can it be a simple alarm / stop instead of being part of the PID?

Hope that helps…


1 Like

Hi VRomanov,

The formula was already incorporated to the previous program. The PID will control the result of the equation that consider just two input sensors instead of three as I have mentioned before, which are the Ultrasonic sensor to measure the Row Height Average and the other sensor will be the Encoder to get the speed, both input will be part of the equation that will be called RIGHT_TONNES_PER_MINUTE. The third sensor called flow edge sensor will not be in the formula to be controlled by the PID, it will be only used as an input to get the amount of the rejuvenator delivered and compare with the desired value, after comparing both values the program will create outputs informing the level as well as creating an ALARM informing if the level if the RIGHT_REJ_FLOW_LOW , HIGH or Under_Over.

So , the fact that the program uses two input sensors as part of the PID equation could create an unstable SET POINT that could create a problem for the PID to process the output accordingly, right ?Because the reason why they are using the Encoder is to make the output even more accurate, but as you have said it can be a problem for the PID to process. Do you have a better idea about what we can do to avoid this problem ?


Do you have any thoughts about the situation discussed above regarding the PID ? Also, could you explain more about the TOT function. In that case. we have the RIGHT_SIDE_REJ_FLOW_RATE equal 0.8807907 , what this number means ? Because we have the total as well. What looks like is that the PID will take this variable RIGHT_SIDE_REJ_FLOW_RATE as a Process Variable and the equation that will result in the Set point will take in consideration the other two sensors, which are the Encouder and the Ultrasonic Sensor. The output will be adjust adapting the P and I variables to get a better result.

1 Like

Hi Phelipe,

Yes, the fact that you’re using two sensors, it may create an unstable setpoint, depending on how they are configured.

In general, I would use the encoder as a single source of truth and rely only on the “other” sensor in case of failure. However, as I mentioned previously, I’d be hesitant to make changes before becoming more familiar with how the system currently operates. I’d have to be knowledgeable in the process to use one or the other. It’s hard to say based on the information provided.

I’ve seen and briefly played with TOT functionctions; they were used to calculate the weight of ingredients within a batch. To be honest, I’d have to review their documentation to give you a cogerent answer; you’d probably be better off reading the Rockwell manual on their configuration and figuring out what it’s doing in your specific process. They aren’ the simplest functions to deal with.

I’m sorry I can’t help you further on this; I’ll do my best to review the TOT documentation as time permits.

  • Vlad
1 Like

OK Vlad, I would appreciate it.

Hi Vlad,

Seems like the TOT will take the flow rate from sensor, because after connecting the phone to the sensor it was showing the flow rate in the app, what make me thing that TOT has a function that interpret the pulse in flow rate as well.


Set point: encoder + ultrasonic sensor are introduced in the equation that will stablish the set point. that will say the amount of oil should be delivered
PV: Will be the flow edge sensor will give the proper amount that is being delivered
CV: LEFT_REJUVINATOR_CV that will be the output in %

So, what I understood was that the PID function compare the Set Point and the PV and will make the PV approximate from the Set point curve, but the PV can be higher or lower comparing to the set point curve and the PV can be controlled by adjusting the the P and I (integer) curve to be similar to the set point. The CV will be the output in %.

Does it makes sense ?

Another thing that Is it possible to explain how the percentage output % as CV control the the solenoid valves. The percentage is the Pulse Width ,right ? In this picture I can see the percentage and the amount associated, but let say that the value is 30% using this picture as example, how much will be the output 8mA or 12mA? Also, how the PID interpret the Set point in percentage ?

Thanks in advance!

Best Regards,


Please, see that my question above was regarding the PID control