Open and closed loop Systems Examples
- Ramp Input (() = 1 / ^2):
(4)
- Parabolic Input (() = 1 / ^3):
(5)
When we design a controller, we usually also want to compensate for disturbances to a system. Let's say that we have a system with a disturbance that enters in the manner shown below.
We can find the steady-state error due to a step disturbance input again employing the Final Value Theorem (treat () = 0).
(6)
When we have a non-unity feedback system we need to be careful since the signal entering () is no longer the actual error (). Error is the difference between the commanded reference and the actual output, () = () - (). When there is a transfer function () in the feedback path, the signal being substracted from () is no longer the true output (), it has been distorted by (). This situation is depicted below.
Manipulating the blocks, we can transform the system into an equivalent unity-feedback structure as shown below.
Then we can apply the equations we derived above.
System type and steady-state error
If you refer back to the equations for calculating steady-state errors for unity feedback systems, you will find that we have defined certain constants (known as the static error constants). These constants are the position constant (Kp), the velocity constant (Kv), and the acceleration constant (Ka). Knowing the value of these constants, as well as the system type, we can predict if our system is going to have a finite steady-state error.
First, let's talk about system type. The system type is defined as the number of pure integrators in the forward path of a unity-feedback system. That is, the system type is equal to the value of when the system is represented as in the following figure. It does not matter if the integrators are part of the controller or the plant.
Therefore, a system can be type 0, type 1, etc. The following tables summarize how steady-state error varies with system type.
Step Input | Ramp Input | Parabolic Input | |
Steady-State Error Formula | 1/(1+Kp) | 1/Kv | 1/Ka |
Static Error Constant | Kp = constant | Kv = 0 | Ka = 0 |
Error | infinity |
Kp = infinity | Kv = constant |
Kv = infinity | Ka = constant |
Example: Meeting steady-state error requirements
Consider a system of the form shown below.
For this example, let () equal the following.
(7)
Since this system is type 1, there will be no steady-state error for a step input and there will be infinite error for a parabolic input. The only input that will yield a finite steady-state error in this system is a ramp input. We wish to choose such that the closed-loop system has a steady-state error of 0.1 in response to a ramp reference. Let's first examine the ramp input response for a gain of = 1.
s = tf('s'); G = ((s+3)*(s+5))/(s*(s+7)*(s+8)); T = feedback(G, 1); t = 0:0.1:25; u = t; [y, t, x] = lsim(T, u, t); plot(t, y, 'y', t, u, 'm') xlabel('Time (sec)') ylabel('Amplitude') title('Input-purple, Output-yellow')
The steady-state error for this system is quite large, since we can see that at time 20 seconds the output is approximately 16 as compared to an input of 20 (steady-state error is approximately equal to 4). Let's examine this in further detail.
We know from our problem statement that the steady-state error must be 0.1. Therefore, we can solve the problem following these steps:
(8)
(9)
(10)
Let's see the ramp input response for = 37.33 by entering the following code in the MATLAB command window.
K = 37.33 ; s = tf('s'); G = (K*(s+3)*(s+5))/(s*(s+7)*(s+8)); sysCL = feedback(G, 1); t = 0:0.1:50; u = t; [y, t, x] = lsim(sysCL, u, t); plot(t, y, 'y', t, u, 'm') xlabel('Time (sec)') ylabel('Amplitude') title('Input-purple, Output-yellow')
In order to get a better view, we must zoom in on the response. We choose to zoom in between time equals 39.9 and 40.1 seconds because that will ensure that the system has reached steady state.
axis([39.9, 40.1, 39.9, 40.1])
Examination of the above shows that the steady-state error is indeed 0.1 as desired.
Now let's modify the problem a little bit and say that our system has the form shown below.
In essence we are no distinguishing between the controller and the plant in our feedback system. Now we want to achieve zero steady-state error for a ramp input.
From our tables, we know that a system of type 2 gives us zero steady-state error for a ramp input. Therefore, we can get zero steady-state error by simply adding an integrator (a pole at the origin). Let's view the ramp input response for a step input if we add an integrator and employ a gain = 1.
s = tf('s'); P = ((s+3)*(s+5))/(s*(s+7)*(s+8)); C = 1/s; sysCL = feedback(C*P, 1); t = 0:0.1:250; u = t; [y, t, x] = lsim(sysCL, u, t); plot(t, y, 'y', t, u, 'm') xlabel('Time (sec)') ylabel('Amplitude') title('Input-purple, Output-yellow')