In a classical negative control scheme where we have a plant and controller in series and no disturbance. The system is designed such a way to make output is equal to input no matter what problems occurs in the system. Let's say output of the system is equal to reference point or set point or input. Steady state error term becomes 0 and it is multiplied by controller making its output 0 which is multiplied by plant making output 0. Then, as I reckon, error term blows up to reference input(as output is zero) and we got non-zero output. The weird thing is I think output oscillates between 0 and reference input at all times. Can you help me understand what is going on? is not the purpose of the control scheme to make output equal to input at all times in the presence of noise and disturbance? What is the problem in my thinking?
A simple P (proportional) controller will, in general, NOT track a set point exactly. As you correctly point out, there must be an error in order for the controller to have a non-zero output.
To track a set point so that the error goes to zero (after some time) it is necessary to add an integral term to the controller, giving a PI controller (proportional and integral). (Or, as Spehro Pefhany points out in his answer, the integral term may be in the plant, rather than the controller).
With a PI controller, if there is a non-zero error, that error will be integrated, and that integrated signal will eventually become large enough to move the plant so that there is zero error. When the error becomes zero, the integral signal stops growing. The input error is zero, but the controller output is non-zero. It is whatever it takes to ensure the plant is at the set-point.
If set point and output values are same, i.e., error is zero. If zero error is provided to controller, the output of controller can be zero ( in case of P controller) or non-zero ( in case of any controller other than P, such as PI etc). Now let's talk about P controller when its instantaneous output is zero. Zero input to plant can not make plant output to go zero. Reasons:
- Non-zero initial conditions: ( for ex. You controller wants to drive the car at 60 km/h. If output matches with 60, the error input to the P controller is 0, the P controller output will be zero. That means No input will be provided to the car at that instant. Even in that situation the car output will not come the zero suddenly due to non-zero initial conditions. It will drive at speed less than 60 km/h).
- In the next sampling update, the non-zero error will be provided and P controller will generate some non-zero input to be provided to the plant.
In conclusion, the output will not go to zero, even the error is zero.
Note: The above discussion considers non-zero set point. In case of set point is zero, then we intentionally want zero output. The controller could do that.
The controller and the plant each have some transfer function. If both are just multiplication then you'll get a persistent error that is inversely proportional to the gain of the controller. If the plant has a gain of 1 and the controller has a gain of 100 then at 50% setpoint you'll require an input of 0.5 and the error will have to be 0.005 or 1% of setpoint.
In a more realistic situation the plant output will not change instantaneously and too high gain can result in instability depending on the transfer function.
If either the controller or the plant integrates the input then you can have zero steady-state error.