Skip to content

PyIT2FLS 0.9.0

Latest

Choose a tag to compare

@Haghrah Haghrah released this 04 Aug 18:06
  • Support for the IEC 61131-7 Fuzzy Control Language (FCL) standard, through the new FCL class (pyit2fls.FCL): parses the core Mamdani subset of FCL (FUNCTION_BLOCK/VAR_INPUT/VAR_OUTPUT/FUZZIFY/DEFUZZIFY/RULEBLOCK) into a runnable T1Mamdani system, and exports a system back out as FCL text.
  • The IEEE 1855 Fuzzy Markup Language (FML) support (FML class, pyit2fls.FML) has been completed:
    • The rule base's andMethod/activationMethod now actually select the underlying fuzzy inference engine, instead of always defaulting to Product.
    • Clause-level negation (FML's NOT="true", FCL's IS NOT) is now supported.
    • Rules whose antecedent clauses are OR-connected now raise a clear error instead of being silently (and incorrectly) combined with AND — the underlying T1Mamdani/T1TSK engines only support AND-combined antecedents; model an OR relationship as two separate rules sharing the same consequent instead.
    • A new FML.export_fml method serializes a system back out as FML XML.
  • Introduction of a GUI for facilitating system design: the PyIT2FLS Designer, a PyQt5 application for building, simulating, and saving/loading Type 1 Mamdani fuzzy systems as FML or FCL files. Launch it with the pyit2fls-designer console script (after installing the optional GUI extra, pip install pyit2fls[gui]), or with python3 -m pyit2fls.designerui. See markdown docs/DesignerGUI.md for a tutorial.
  • A new points_mf membership function (arbitrary piecewise-linear point list), the native term representation used by FCL.