HOME

TheInfoList



OR:

Fuzzy Control Language, or FCL, is a language for implementing
fuzzy logic Fuzzy logic is a form of many-valued logic in which the truth value of variables may be any real number between 0 and 1. It is employed to handle the concept of partial truth, where the truth value may range between completely true and completely ...
, especially fuzzy control. It was standardized by IEC 61131-7. It is a domain-specific programming language: it has no features unrelated to fuzzy logic, so it is impossible to even print " Hello, world!". Therefore, one does not write a program in FCL, but one may write ''part'' of it in FCL.


Example

RULE 0: IF (temperature IS cold) THEN (output IS low) RULE 1: IF (temperature IS very cold) THEN (output IS high)


Limitations

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.


References


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
fuzzylite
A fuzzy logic controller library written in C++.
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
pyfuzzy
open source implementation written in python. Fuzzy logic Domain-specific programming languages {{Compu-lang-stub