FISLAB - the Fuzzy Inference Tool-box for SCILAB

FISLAB - the Fuzzy Inference Tool-box for SCILAB

The present study represents “The Fislab package of programs meant to develop the fuzzy regulators in the Scilab environment” in which we present some general issues, usage requirements and the working mode of the Fislab environment. In the second part of the article some features of the Scilab functions from the Fislab package are described.


💡 Research Summary

The paper presents FISLAB, a comprehensive fuzzy inference toolbox designed for the Scilab numerical computing environment. It begins by outlining the motivation for an open‑source fuzzy logic solution, emphasizing the high cost and proprietary nature of commercial alternatives such as MATLAB’s Fuzzy Logic Toolbox. The authors then detail the system requirements—Scilab version 5.x or later and a Java Runtime Environment—and describe the package’s directory layout, which separates core modules (fis, mf, rule, defuzzify) from example scripts and documentation.

The core of the work is a step‑by‑step exposition of the FISLAB programming interface. A fuzzy inference system (FIS) object is instantiated with newfis, after which input and output variables are added via addvar. Each variable’s universe of discourse and sampling resolution are defined at this stage, influencing the granularity of subsequent membership evaluations. Membership functions (MFs) are introduced through addmf; six built‑in shapes are supported (triangular, Gaussian, trapezoidal, singleton, beta, sigmoid), and the toolbox permits user‑defined MFs by passing a function handle, thereby offering extensibility beyond the predefined set.

Rule construction is handled by addrule, which accepts a matrix encoding antecedent MF indices, logical operators (AND/OR), consequent MF indices, rule weight, and connection method. This matrix‑based representation enables compact specification of complex rule bases and facilitates weighted inference. The inference engine itself is invoked with evalfis. Upon receiving an input vector, the engine performs fuzzification, computes rule activation levels using the specified logical operators, aggregates the consequent MFs (Mamdani’s min‑max composition by default), and finally defuzzifies the aggregated output. The default defuzzification method is the Center‑of‑Gravity (COG), but alternatives such as weighted average, maximum, and minimum can be selected via optional arguments. The paper provides mathematical formulas for each method and illustrates their impact on output through plotted examples.

Two case studies demonstrate practical usage. The first models a temperature‑humidity controller with two inputs and one output. The authors define appropriate MFs, construct a concise rule base, and compare simulated outputs against expected control actions, showing close alignment. The second case study addresses vehicle speed regulation, feeding a stream of acceleration/deceleration inputs into a loop that repeatedly calls evalfis. Performance metrics reveal that, while functional, the interpreter‑based implementation incurs noticeable memory growth and execution overhead, indicating that FISLAB is best suited for offline simulation rather than hard‑real‑time control.

A comparative analysis follows, juxtaposing FISLAB with MATLAB’s toolbox across several dimensions: functionality (both support Mamdani inference, the same MF families, and similar defuzzification options), cost (FISLAB is free under an open‑source license), platform independence (runs on Linux, Windows, macOS), and community support (MATLAB benefits from extensive official documentation and a large user base, whereas FISLAB’s documentation is relatively sparse). The authors note the absence of a graphical rule‑editor in FISLAB, which may hinder adoption by users accustomed to GUI‑driven design, but they also highlight the advantage of script‑based configuration for reproducibility and version control. Compatibility with newer Scilab releases (6.x) is identified as an area needing further validation.

In conclusion, the authors assert that FISLAB provides a fully functional, cost‑effective platform for developing and testing fuzzy controllers within Scilab. They encourage the research community to contribute enhancements such as additional MF types, a visual rule‑editing interface, and integration with real‑time control loops. By doing so, FISLAB could evolve from a primarily educational and prototyping tool into a robust alternative for industrial fuzzy‑logic applications.