In the year 2000, I worked with 2 colleagues (Antoine Duchâteau and Edy Bertolissi) on the European LTR projet FAMIMO (FAMIMO stands for "Fuzzy Algorithms for the Control of Multi-Input, Multi-Output Processes"). The main goal of this project was to see if the fuzzy control is a viable alternative to the classical PID control. Apparently the answer is no. During the project, we develloped the NLMIMO toolbox. The NLMIMO toolbox is composed of two main modules:
The first module has been implemented by Antoine
Duchâteau. The second module has been mainly programmed by myself. The
controller is from a GPC type (global predictive control). GPC controllers
simulate the process to control in the future using prediction/identification
techniques. Based on this simulation, we can calculate the error E
between the setpoints and the real ouput of the process. This error E
is a function depending on the control signals u
generated by the controller. These signals u
themselves depend on the parameter w
of the fuzzy rules inside the controller. Thus, we will try to find the value
of w which minimize the error
GPC controllers have often some difficulties with minimum phase systems. In
these kind of systems, we must first increase the error E,
in order to reach the setpoint. One example of such system is the well known
inverted pendulum system.

The red box underneath is a roller cart controlled by a motor that pulls
it to the left or right according to the controller's command. A blue pendulum
is attached on top of the roller cart. The goal of the controller is to use
the motor to keep the pendulum in balance (vertical) and the roller cart at
a precise x* position. If
the current position is x,
than the current regulation error is
You can see an example of control of an inverted pendulum in the java applet above. The blue line is the current x position of the cart. The green line is the control signal u (that is: the torque applied on the wheels). It is interesting to notice the typical pattern present in the non minimum phase systems: At each set point change, the system starts in the opposite direction with respect to the current value of the reference signal.
The regulator develloped in IRIDIA is able to simulate the behavior of the process to control using (fuzzy/ lazy learning/ classical linear) predictors (or a mix of them, one different predictor for each output of the system to control). The lazy learning predictor can be trained on-line as illustrated in the figure below (manifold pressure control in a Gasoline Direct Injection engine(GDI)). The TAKSUG line stands for Takagi Sugeno fuzzy sets predictor. The LAZY line stands for the lazy learning predictor.

Another example is the control of this simple toy problem:
.
The result is the following:

Once again, note the typical pattern present in the non minimum phase systems
"Edy Bertolissi, Antoine Duchâteau, Hugues Bersini, Frank Vanden Berghen. Direct Adaptive Fuzzy Control for MIMO Processes, Accepted to the FUZZ-IEEE 2000 conference, San Antonio, Texas, 7-10 May, 2000" is downloadable here.
"Edy Bertolissi, Antoine Duchâteau, Hugues Bersini, Frank Vanden Berghen.
Direct Adaptive Fuzzy Control for MIMO Processes, Accepted to the FUZZ-IEEE
2000 conference, San Antonio, Texas, 7-10 May, 2000" is downloadable
here.
A chapter of a book
in french on fuzzy control is downloadable here.
An internal IRIDIA report describing in more depth the algorithm is available
here
(only in French).
A paper describing the identification modules of the NLMIMO toolbox is here.
The latest version of the NLMIMO toolbox (july 2000) is here.
You must have matlab 5.0, 5.1 or 5.2 to have all functionalities. In matlab
5.3, the control modules are not functioning. In matlab 6.0, nothing works
(there is a conflict between the name of the new function called 'system'
in matlab and the name of the 'system' class).
An on-line
book on control theory with many examples in java applets.
A revolutionary methodology for optimal control : the Q-learning.
R. Babuska. Fuzzy
Modeling for Control. Kluwer Academic Publishers, Boston, 1998.
HANUS, Raymond ; BOGAERTS, Philippe, Introduction à l'automatique.
1, systèmes continus
Bruxelles : De Boeck Université 1996, 312 p.ISBN: 2-8041-2108-9 is
an excellent french book. You can order it here.
HANUS, Raymond ; BOGAERTS, Philippe , Introduction à l'automatique.
2, systèmes discrets et échantillonnés
Bruxelles : De Boeck Université 2000, 296 p. ISBN: 2-8041-2368-5 is
an excellent french book. You can order it here.