Fuzzy Control Language
Encyclopedia
Fuzzy Control Language, or FCL, is a language for implementing fuzzy logic
Fuzzy logic
Fuzzy logic is a form of many-valued logic; it deals with reasoning that is approximate rather than fixed and exact. In contrast with traditional logic theory, where binary sets have two-valued logic: true or false, fuzzy logic variables may have a truth value that ranges in degree between 0 and 1...

, especially fuzzy control. It was standardized by IEC 61131-7. It is a domain-specific programming language
Domain-specific programming language
In software development and domain engineering, a domain-specific language is a programming language or specification language dedicated to a particular problem domain, a particular problem representation technique, and/or a particular solution technique...

: it has no features unrelated to fuzzy logic, so it is impossible to even print "Hello, world!
Hello world program
A "Hello world" program is a computer program that outputs "Hello world" on a display device. Because it is typically one of the simplest programs possible in most programming languages, it is by tradition often used to illustrate to beginners the most basic syntax of a programming language, or to...

". Therefore, one does not write a program in FCL, but one may write part of it in FCL.

FCL allows the programmer to specify fuzzy set
Fuzzy set
Fuzzy sets are sets whose elements have degrees of membership. Fuzzy sets were introduced simultaneously by Lotfi A. Zadeh and Dieter Klaua in 1965 as an extension of the classical notion of set. In classical set theory, the membership of elements in a set is assessed in binary terms according to...

s, which are lists of points on a graph, as well as IF-THEN rules, for example:

RULE 0: IF (Temperature IS Cold) THEN (Output IS High)

FCL is not an entirely complete fuzzy language, for instance, it does not support "hedges", which are adverbs that modify the set. For instance, the programmer cannot write:

RULE 0: IF (Temperature IS VERY Cold) THEN (Output IS VERY High)

However, the programmer can simply define new sets for "very cold" and "very high". FCL also lacks support for higher-order fuzzy sets, subsets, and so on. None of these features are essential to fuzzy control, although they may be nice to have.

External links

  • fuzzyTECH, a commercial fuzzy logic development system containing the specification document for IEC1131-7 (select Fuzzy Application Library)
  • IEC 1131-7 CD1 IEC 1131-7 CD1 PDF
  • Free Fuzzy Logic Library (FFLL), an implementation library written in C++.
  • JFuzzyLogic, open source FCL + Fuzzy Logic Package (sourceforge, java)
  • AwiFuzz, open source implementation written in C++ covering all three levels of IEC 61131-7

Fuzzy Controller Language
The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK