Module 4.scilab
Module 4.scilab
Module 4.scilab
1 13
Scilab Ninja
Control Engineering with Scilab
Like
Share
Share
(1)
http://scilab.ninja/study-modules/scilab-control-engineering-basics/mod... 11/11/2016
2 13
and plant output. We see that the control variable is a function of 3 terms: P (proportional to error), I (time
integral of error), and D (derivative of error), with corresponding control parameters
(integral time), and
(proportional gain),
(2)
with the transfer function of PID controller
(3)
(4)
In this form, the controller gains are distributed to each of the PID terms separately, with its transfer function
(5)
For our discussion of PID controller, we focus on the form (4) and (5). Nevertheless, it is easy to convert
between parameters of (1) and (4) by the relations
(6)
Ex. 1: To get started with Xcos simulation of a PID feedback system, download file pid_feedback.zcos . This
launches an Xcos diagram in Figure 1. This diagram can easily be constructed using Xcos standard palettes. It
requires only a step_function, clock_c (from Sources palette), PID and CLR blocks (from Continuous time
systems palette), SUMMATION (from Mathematical operations palette), MUX (from Signal Routing palette),
and CSCOPE (from Sinks palette). The plant transfer function is a robot joint driven by DC motor model
from module 1, with
and
http://scilab.ninja/study-modules/scilab-control-engineering-basics/mod... 11/11/2016
3 13
is a dominant quantity that normally has some nonzero value. The integral gain
helps eliminate
steady state error but too high value could introduce overshoot and oscillation. The derivative gain
could
help the response to reach steady state faster but could amplify high frequency noise, and could affect stability
if set too high.
When the plant model is not known, adjusting these 3 gains to achieve good response could be problematic
for an inexperienced user. Later we discuss a tuning procedure. Commercial PID controller products usually
have auto-tuning functions for user convenience.
Ex. 2: To experiment with the tracking and disturbance attenuation performance of PID control, we setup a
feedback diagram in Figure 2.
http://scilab.ninja/study-modules/scilab-control-engineering-basics/mod... 11/11/2016
4 13
which can be constructed as an Xcos model pid_dist.zcos in Figure 3. The joint inertia and friction are set to
and
, respectively. The step disturbance at the plant input is active at t = 2 sec, with step
value of 80.
and
that
error.
To elaborate, it is shown in [2] that when
polynomial is described by
(7)
which gives
(8)
For example, suppose we select a critical-damped closed loop system
. From (8), this yields
and
160
80
640
160
12
1440
240
Table 1
and
Using these 3 sets of gain values, we simulate the step responses. The results are shown in Figure 4. As
expected, the higher the natural frequency, the faster the response. We also see that the steady-state error from
step disturbance cannot be eliminated with the PD controller.
http://scilab.ninja/study-modules/scilab-control-engineering-basics/mod... 11/11/2016
5 13
(9)
(10)
Applying Routh-Hurwitz criteria to (10), it can be concluded that, given all positive PID gains, the feedback
system is stable if
(11)
The same Xcos diagram in Figure 3 can be used by putting some positive integral gain in the PID block. Let
us fix
and
http://scilab.ninja/study-modules/scilab-control-engineering-basics/mod... 11/11/2016
6 13
http://scilab.ninja/study-modules/scilab-control-engineering-basics/mod... 11/11/2016
7 13
signals and system parameters, say, maximum motor torque and current. Another common saturation is the
input limit of servo amplifier. An industrial servo amp might allow input voltage command in the range
volts, for example.
Effect from saturation is more pronounced when integral term is used in PID. The response could have
excessive overshoot due to error accumulation in the integral term. This is known as integrator windup. See
[1] for more detail.
Ex. 3: To see an effect from input saturation, construct an Xcos model as in Figure 7, or download
pid_ilim.zcos. It represents a comparison of two closed-loop systems, which are basically the same except
that the lower one has its input bounded between
units.
the step responses in Figure 8, and the control variables (controller output) in Figure 9. We see that input
saturation causes significantly larger overshoot and also worsens disturbance response.
http://scilab.ninja/study-modules/scilab-control-engineering-basics/mod... 11/11/2016
8 13
. We crank
At this point, the plant output will swing in a constant sinusoid motion, not growing and not dying out.
Write this value down on a paper as
.
Measure the period of oscillation. Write it down as
Controller
Form
P
PI
PID
http://scilab.ninja/study-modules/scilab-control-engineering-basics/mod... 11/11/2016
9 13
From the above procedure, we could observe a drawback of the basic ZNFD method: the system must
oscillate at some point of gain setting before it becomes unstable. This implies the Nyquist plot must cross the
negative real axis at some point. For the DC motor model we are using, the gain margin is infinity. Hence it is
difficult to find the oscillating point and the
value.
There is some trick to get around such limitation, but this is beyond the scope of this module. For our basic
study, we simply modify the DC motor robot joint by adding some dynamics to it, so that the Nyquis plot of
crosses the negative real axis.
Ex. 4: Let us assume that the PID output is passed through a LPF with cutoff frequency 500 Hz before
feeding the plant input. Using the filter design guide from module 1, we have the LPF transfer function as
(12)
To simulate, construct an Xcos model in Figure 10, or download pid_znfd.zcos. With this model, we are
ready to perform the ZNFD tuning procedure described above. Click on the PID block to set the I and D gains
to zero. Then start increasing the P gain until the output oscillates. This is what you must do in a real
application when the plant model is not known.
value that
causes output oscillation can be found, for example, using the method from Module 2. First from the loop
transfer function containing the plant, LPF, and PID controller with
-->kp = 1;
-->ki = 0;
-->kd = 0;
-->s=poly(0,'s');
-->P=syslin('c',1/(10*s^2+0.1*s));
-->H = syslin('c',1/(1+0.0003*s));
-->C=syslin('c',kp + ki/s + kd*s);
-->L = C*H*P; // loop t.f
// plant
// filter
// controller
Then find the gain where the closed-loop pole touches the
axis.
->[kmax,s]=kpure(L)
s =
5.7735027i
http://scilab.ninja/study-modules/scilab-control-engineering-basics/mod... 11/11/2016
10 13
kmax =
333.33433
resulting in
Verify this by setting the P gain to 333 in PID block. This yields the desired oscillatory response as shown in
Figure 11. The oscillation period can be roughly measured from the plot to yield
sec.
http://scilab.ninja/study-modules/scilab-control-engineering-basics/mod... 11/11/2016
11 13
Ki gain would bring the overshoot down. Figure 13 shows the response from original PID gains (green),
compared with the case when Ki is reduced to 300 (blue), and 200 (magenta).
The distance of this point to the critical point is 0.5. So the sensitivity peak is at least 2. This explains the high
overshoot in the step response.
http://scilab.ninja/study-modules/scilab-control-engineering-basics/mod... 11/11/2016
12 13
Summary
PID is a simple control structure that is still used widely in various industrial applications. It is a close relative
to the lead-lag compensator explained in module 2, except that its functionality may be more user-friendly.
With some knowledge and practice, an engineer or technician would be able to tune and operate a plant
equipped with PID control.
In this module we discuss the basics of PID feedback systems, with emphasis on Xcos simulations to show
how the responses are related to three control parameters, as well as effect from input saturation that could
worsen the response. Without some good starting values, tuning the PID gains can be cumbersome for a
novice. So at the end, we mention a manual tuning procedure known as the Ziegler-Nichols frequency domain
method. Some auto-tuning scheme of a commercial PID controller, such as the relay feedback method, is
based on the ZNFD manual tuning.
References
1. K.J. Astrom and T.Hagglund. PID Controllers, 2nd ed., Instrument Society of America, 1995.
2. M.W.Spong, S. Hutchinson and M. Vidyasagar, Robot Modeling and Control. John Wiley & Sons. 2006.
3. V. Toochinda. Digital PID Controllers, a previous online document available at controlsystemslab.com.
2009.
4. V.Toochinda. Robot Analysis and Control with Scilab and RTSX. Mushin Dynamics, 2014.
Comments
Module 4: PID Control 2 Comments
http://scilab.ninja/study-modules/scilab-control-engineering-basics/mod... 11/11/2016
13 13
http://scilab.ninja/study-modules/scilab-control-engineering-basics/mod... 11/11/2016