The control system was built in MATLAB Fuzzy
Toolbox first, creating a fuzzy inference system by
software (FIS). As an example, suppose that we
want to implement a 2×1 fuzzy system for a DC
servo, which uses nine rules because it has three
fuzzy sets per input (position error eP: NE, ZE, PE.
position error change velocity cP: NC, ZC, PC) and
output (voltage <volts>- V: NV, ZV, PV), shown in
the Figure 7, which are the following:
IF eP is NE AND cP is NC THEN V is NV
IF eP is NE AND cP is ZC THEN V is NV
IF eP is NE AND cP is PC THEN V is NV
IF eP is ZE AND cP is NC THEN V is NV
IF eP is ZE AND cP is ZC THEN V is ZV
IF eP is ZE AND cP is PC THEN V is PV
IF eP is PE AND cP is NC THEN V is PV
IF eP is PE AND cP is ZC THEN V is PV
IF eP is PE AND cP is PC THEN V is PV
Then, it was provided a test bench which
consists of 25 values and describes several input
situations but due to space it is not explained in this
paper. Also, FLC tuning was made changing the
membership function parameters of inputs and
outputs. Table 1 shows all timing and resources in
FPGA used for every implemented module built for
DC servo FLC example. DC servo FLC needs 84 ns
to make a single inference. Then, its processing data
rate is 11.9 MFLIPS.
4 CONCLUSIONS
FLC architecture was designed using RTC
combinatorial arithmetic modules. In order to get
this, it was supplied to designer a practical approach
for FLC design, using a study case (DC servo).
Those developed modules were implemented in
FPGA and it was possible to verify the FLC
performance compared with the FIS simulated with
MATLAB. We proved that this architecture has the
capability of grow modularly. This modularity may
be approached using a FIS to VHD language
interpreter that simply generates the proper HDL
program, using the basic modules presented in this
paper, regardless the used technology, based on the
MATLAB *.fis configuration file.
ACKNOWLEDGEMENTS
Research supported by the Instituto de Ciencia y
Tecnología ICyTDF funding (award No. PICCT08-
22) and by matching funding by IPN (award No.
SIP/DF/2007/143).
Table 1: FPGA timing and resource results obtained for
DC servo control.
Algorithm Delay (ns) LUT
16 bits non-restoring division 48.50 644
Modified 8 bits non-restoring
division
28.83 208
8 bits restoring division 28.84 124
8 bits multiplication 13.17 36
Isosceles triangle MF
36.70
14.51
251
S-step MF 36.70 249
Z-step MF 36.70 251
Fuzzifier 37.42 755
Defuzzifier 41.49 677
Mamdani inference machine 19.32 242
MIN-MAX operations 9.36 16
FLC 84.01 2689
REFERENCES
Téllez, A., 2008. Fuzzy Logic Controller Architecture
using Combinatorial Logic, Instituto Politécnico
Nacional. Centro de Investigación en Computación.
Mexico City.
Patyra, M. J.; Mlynek, D.M.; “Fuzzy logic:
implementation and applications;” Wiley; 1996.
Oberman, S. F.; Flynn, M. J.; “Division Algorithms and
Implementations;” IEEE Transactions on Computers;
Aug 1997; Vol 46, No. 8; pp. 833–854.
Togai M.; Watanabe H.; “Expert system on a chip: An
engine for real–time approximate reasoning;” IEEE
Expert Syst. Mag., 1986, pp. 55–62, Volume 1.
Vasantha Rani, S.P.J.; Kanagasabapathy, P.; Sathish
Kumar, A.; “Digital Fuzzy Logic Controller using
VHDL;” INDICON, 2005 Annual IEEE, 11–13
December 2005, pp. 463–466.
Singh, S.; Rattan, K.S.; “Implementation of a fuzzy logic
controller on an FPGA using VHDL;” Fuzzy
Information Processing Society, 2003. NAFIPS 2003.
22
nd
International Conference of the North American
24–26 July 2003, pp. 110–115.
Deliparaschos, K.M.; Nenedakis, F.I.; Tzafestas, S.G.; “A
fast digital fuzzy logic controller: FPGA design and
implementation;” Emerging Technologies and Factory
Automation, 2005. ETFA 2005. 10
th
IEEE
Conference, 19–22 September 2005, Volume 1.
Gaona, A.; Olea, D.; Melgarejo, M.; “Sequential Fuzzy
Inference System Based on Distributed Arithmetic;”
Computational Intelligence for Measurement Systems
and Applications, 2003. CIMSA ’03. 2003 IEEE
International Symposium, 29–31 July 2003, pp. 125–
129.
Manzoul, M.A.; Jayabharathi, D.; “Fuzzy Controller on
FPGA Chip;” Fuzzy Systems, 1992., IEEE
International Conference, 8–12 March 1992, pp.
1309–1316.
ICINCO 2009 - 6th International Conference on Informatics in Control, Automation and Robotics
346