150 CHAPTER 4. FUZZY CONTROL
velocity is set up as a constant that feeds a signal to a summer. Since this
is a reference signal, we designate the signal input as positive. This signal is
summed with the output of the plant model that is designated as a negative
input to the summer. The resulting error signal serves two purposes, namely,
it gives clear indication whether the plant output is above or below the desired
value (10 meters/second in this case),and allows us to compute the derivative
of the error to determine if the error is increasing or decreasing in time. Both
the error signal and its derivative are fed to a multiplexer (Mux) that provides
input to the fuzzy controller. The output signal of the fuzzy controller is then
fed to a state-space model of the system. Matlabprovides a convenient way
to set up the elements of the state-space model. All signals desired as outputs
can be monitored using a variety of output devices. For convenience, it is
desirable to provide a ìVariable Initializationî block so that all variables at the
beginning of a simulation can automatically be set to zero. This only assures
that we are starting the simulation with the plant at rest. In cases where
there are multiple outputs from the controller and/or the plant, we will need
a demultiplexer (Demux) to channel the vector of outputs to the appropriate
devices.
The scope outputs for velocity error, acceleration, fuzzy controller output,
and actual velocity are depicted in Figure 4.7.
Figure 4.7. Simulated output of automobile cruise control
It is clear from the simulated outputs that rapid prototyping of the controller
is possible. However, the membership functions will have to be ìtunedî to yield
the desired output characteristics ñ that is, the parameters of these functions
will need to be adjusted. When the membership functions are tuned, this will
change the shape of the control surface and affect the behavior of the closed-loop
control system. Some tuning techniquesare included in the following example.