You posted the following question:
> I'm interested in a (really) fast algorithm for the defuzzification
> on a microcontroller system (8051). The problem is, that the general
> division algorithm for the big division at the end of the COG-method
> (16 Bit value divided by an 8 bit value) is quite time consuming and
> all the implementations I know use a hardware based division.
>
> A speed up by the factor 5 to 10 would be enough (instead of 600
> Microsec only 100 microsec or less ...)
You are perfectly right. The final division consumes most of the
computational effort on 8051-type MCUs. In a joint research project
with the developers of the 8051 between the companies Intel and
Inform, we have developed a code generator for fuzzy logic in the 8051
that is capable of generating fuzzy logic systems that run in a
millisecond (including fuzzification and rule inference) and consume
only about 1/2 KB of ROM space. One key to this was the implementation
of the COG defuzzification with a special division method.
We are convinced that it is impossible to significantly improve the
efficiency of the code our development environment for the 8051
produces. If you are interested in benchmarks and details, refer to
the fuzzyTECH Home Page at http://www.fuzzytech.com.
By the way, in a straightforward implementation of the
defuzzification in 8 bit computational resolution the 16/8 division
does not suffice as the computation of the COG requires to sum a
number of 8x8bit multiplication results (which may be more than
16bit), and divide it by the sum of a number of 8 bit variables (which
may be more than 8 bit). Thus the 16/8 bit division will not suffice
for a straightforward implementation.
Constantin
Constantin von Altrock
e-mail: cva@inform-ac.com
INFORM GmbH
Pascalstrasse 23
D-52076 Aachen, GERMANY
WWW: www.fuzzytech.com
Phone: +49-2408-945680
Fax: +49-2408-945685
Constantin von Altrock
e-mail: cva@inform-ac.com
INFORM GmbH
Pascalstrasse 23
D-52076 Aachen, GERMANY
WWW: www.fuzzytech.com
Phone: +49-2408-945680
Fax: +49-2408-945685