matlab二重积分代码-fuzzylite:C++中的模糊逻辑控制库

  • h0_787268
    了解作者
  • 2.4MB
    文件大小
  • zip
    文件格式
  • 0
    收藏次数
  • VIP专享
    资源类型
  • 0
    下载次数
  • 2022-05-02 13:44
    上传日期
matlab二重积分代码Fuzzylite:registered:6.0 C ++中的模糊逻辑控制库 作者:,博士。 已发行:2017年3月20日 分支 的Unix 视窗 目录 fuzzylite 6.0已根据许可。 强烈建议您购买的许可证,以支持FuzzyLite库的开发。 是最新的(很可能是)最好的图形用户界面,可用于轻松地实时设计和直接操作模糊逻辑控制器。 它可用于Windows,Mac和Linux,其目标是显着加快模糊逻辑控制器的设计,同时提供非常有用,功能强大且美观的用户界面。 请下载它,并在进行免费检查。 fuzzylite是一个免费的开源模糊逻辑控制库,使用C ++编程,可用于多个平台(例如Windows,Linux,Mac,iOS)。 是Java和Android平台的等效库。 它们一起是用于模糊逻辑控制的FuzzyLite库。 FuzzyLite库的目标是按照面向对象的编程模型轻松设计和有效操作模糊逻辑控制器,而无需依赖外部库。 参考 如果您使用的是FuzzyLite库,请在您的文章中引用以下参考: 胡安·拉达·维莱拉(Juan Rada-Vilela)。 Fuzzylite:模糊逻辑控制库
fuzzylite-release.zip
内容介绍
fuzzylite&reg; 6.0 ================== <img src="https://raw.githubusercontent.com/fuzzylite/fuzzylite/release/fuzzylite.png" align="right" alt="fuzzylite"> A Fuzzy Logic Control Library in C++ ------------------------------------ By: [Juan Rada-Vilela](https://www.fuzzylite.com/jcrada), Ph.D. Released: 20/March/2017 [![License: GPL v3](https://img.shields.io/badge/License-GPL%20v3-blue.svg)](http://www.gnu.org/licenses/gpl-3.0) [![Coverity Status](https://scan.coverity.com/projects/5759/badge.svg)](https://scan.coverity.com/projects/5759) | Branch | Unix | Windows | |--------|------|---------| | [release](https://github.com/fuzzylite/fuzzylite/tree/release) | [![Build Status](https://travis-ci.org/fuzzylite/fuzzylite.svg?branch=release)](https://travis-ci.org/fuzzylite/fuzzylite) | [![Build status](https://ci.appveyor.com/api/projects/status/065g596yxdhkt2se/branch/release)](https://ci.appveyor.com/project/jcrada/fuzzylite/branch/release) | | [master](https://github.com/fuzzylite/fuzzylite/tree/master) | [![Build Status](https://travis-ci.org/fuzzylite/fuzzylite.svg?branch=master)](https://travis-ci.org/fuzzylite/fuzzylite) | [![Build status](https://ci.appveyor.com/api/projects/status/065g596yxdhkt2se/branch/master)](https://ci.appveyor.com/project/jcrada/fuzzylite/branch/master) | *** ### Table of Contents [License](#license) <br/> [Introduction](#introduction)<br/> [Features](#features)<br/> [Example](#example) <br/> [Compile, Link, and Execute](#compile-build-execute)<br/> [Bulding from Source](#building)<br/> [Binaries](#binaries) <br/> [What's new](#whatsnew)<br/> [What's next](#whatsnext) <br/> *** ### <a name="license" rel='nofollow' onclick='return false;'>License</a> `fuzzylite 6.0` is licensed under the [**GNU General Public License (GPL) 3.0**](https://www.gnu.org/licenses/gpl.html). You are **strongly** encouraged to support the development of the FuzzyLite Libraries by purchasing a license of [`QtFuzzyLite 6`](https://www.fuzzylite.com/downloads). [`QtFuzzyLite 6`](https://www.fuzzylite.com/downloads/) is the new and (very likely) the best graphical user interface available to easily design and directly operate fuzzy logic controllers in real time. Available for Windows, Mac, and Linux, its goal is to significantly **speed up** the design of your fuzzy logic controllers, while providing a very **useful**, **functional** and **beautiful** user interface. Please, download it and check it out for free at [www.fuzzylite.com/downloads/](https://www.fuzzylite.com/downloads/). *** ### <a name="introduction" rel='nofollow' onclick='return false;'>Introduction</a> `fuzzylite` is a free and open-source fuzzy logic control library programmed in C++ for multiple platforms (e.g., Windows, Linux, Mac, iOS). [`jfuzzylite`](https://github.com/fuzzylite/jfuzzylite/) is the equivalent library for Java and Android platforms. Together, they are **The FuzzyLite Libraries for Fuzzy Logic Control**. The **goal** of the FuzzyLite Libraries is to **easily** design and **efficiently** operate fuzzy logic controllers following an **object-oriented** programming model **without** relying on external libraries. #### Reference If you are using the FuzzyLite Libraries, please cite the following reference in your article: Juan Rada-Vilela. fuzzylite: a fuzzy logic control library, 2017. URL https://www.fuzzylite.com/. ```bibtex @misc{fl::fuzzylite, author={Juan Rada-Vilela}, title={fuzzylite: a fuzzy logic control library}, url={https://www.fuzzylite.com/}, year={2017}} ``` #### Documentation The documentation for the `fuzzylite` library is available at: [www.fuzzylite.com/documentation/](https://www.fuzzylite.com/documentation/). #### Contributing All contributions are welcome, provided they follow the following guidelines: - Pull requests are made to the [master](https://github.com/fuzzylite/fuzzylite/tree/master) branch, **not** the release branch - Source code is consistent with standards in the library - Contribution is appropriately documented and tested, raising issues where appropriate - License of the contribution is waived to match the license of the FuzzyLite Libraries *** ### <a name="features" rel='nofollow' onclick='return false;'>Features</a> **(6) Controllers**: Mamdani, Takagi-Sugeno, Larsen, Tsukamoto, Inverse Tsukamoto, Hybrids **(21) Linguistic terms**: (4) *Basic*: triangle, trapezoid, rectangle, discrete. (9) *Extended*: bell, cosine, gaussian, gaussian product, pi-shape, sigmoid difference, sigmoid product, spike. (5) *Edges*: binary, concave, ramp, sigmoid, s-shape, z-shape. (3) *Functions*: constant, linear, function. **(7) Activation methods**: general, proportional, threshold, first, last, lowest, highest. **(8) Conjunction and Implication (T-Norms)**: minimum, algebraic product, bounded difference, drastic product, einstein product, hamacher product, nilpotent minimum, function. **(10) Disjunction and Aggregation (S-Norms)**: maximum, algebraic sum, bounded sum, drastic sum, einstein sum, hamacher sum, nilpotent maximum, normalized sum, unbounded sum, function. **(7) Defuzzifiers**: (5) *Integral*: centroid, bisector, smallest of maximum, largest of maximum, mean of maximum. (2) *Weighted*: weighted average, weighted sum. **(7) Hedges**: any, not, extremely, seldom, somewhat, very, function. **(3) Importers**: FuzzyLite Language `fll`, Fuzzy Inference System `fis`, Fuzzy Control Language `fcl`. **(7) Exporters**: `C++`, `Java`, FuzzyLite Language `fll`, FuzzyLite Dataset `fld`, `R` script, Fuzzy Inference System `fis`, Fuzzy Control Language `fcl`. **(30+) Examples** of Mamdani, Takagi-Sugeno, Tsukamoto, and Hybrid controllers from `fuzzylite`, Octave, and Matlab, each included in the following formats: `C++`, `Java`, `fll`, `fld`, `R`, `fis`, and `fcl`. *** ### <a name="example" rel='nofollow' onclick='return false;'>Example</a> #### FuzzyLite Language ```yaml #File: ObstacleAvoidance.fll Engine: ObstacleAvoidance InputVariable: obstacle enabled: true range: 0.000 1.000 lock-range: false term: left Ramp 1.000 0.000 term: right Ramp 0.000 1.000 OutputVariable: mSteer enabled: true range: 0.000 1.000 lock-range: false aggregation: Maximum defuzzifier: Centroid 100 default: nan lock-previous: false term: left Ramp 1.000 0.000 term: right Ramp 0.000 1.000 RuleBlock: mamdani enabled: true conjunction: none disjunction: none implication: AlgebraicProduct activation: General rule: if obstacle is left then mSteer is right rule: if obstacle is right then mSteer is left ``` ```cpp //File: ObstacleAvoidance.cpp #include "fl/Headers.h" int main(int argc, char* argv[]){ using namespace fl; Engine* engine = FllImporter().fromFile("ObstacleAvoidance.fll"); std::string status; if (not engine->isReady(&status)) throw Exception("[engine error] engine is not ready:\n" + status, FL_AT); InputVariable* obstacle = engine->getInputVariable("obstacle"); OutputVariable* steer = engine->getOutputVariable("mSteer"); for (int i = 0; i <= 50; ++i){ scalar location = obstacle->getMinimum() + i * (obstacle->range() / 50); obstacle->setValue(location); engine->process(); FL_LOG("obstacle.input = " << Op::str(location) << " => " << "steer.output = " << Op::str(steer->getValue())); } } ``` #### C++ ```cpp //File: ObstacleAvoidance.cpp #include "fl/Headers.h" int main(int argc, char* argv[]){ using namespace fl; //Code automatically generated with fuzzylite 6.0. using namespace fl; Engine* engine = new Engine; engine->setName("ObstacleAvoidance"); engine->setDescription(""); InputVariable* obstacle = new InputVariable; obstacle->setName("obstacle"); obstacle->setDescription(""); obstacle->setEnabled(true); obstacle->setRange(0.000, 1.000); obstacle->setLockValueInRange(false); obstacle->addTerm(new Ramp("left", 1.000, 0.000)); obstacle->addTerm(new Ramp("right", 0.000, 1.000)); engine->addInputVariable(obstacle); OutputVariable* mSteer = new OutputVaria
评论
    相关推荐