栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C++实现模糊控制,借助MATLAB辅助设计和fis.c文件

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C++实现模糊控制,借助MATLAB辅助设计和fis.c文件

首先我们先从matlab生成我们的.fis文件,然后修改成后缀.txt文件。

下面的例子于两输入一输出的例子进行讲解,并在qt5.14版本进行实现。

main函数代码段

#include 
#include
int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);
    test *ads=new test;
    ads->feed_speed(0,0);
    delete  ads;
    return a.exec();
}

结果图

test类头文件

#ifndef TEST_H
#define TEST_H


#include   //这里引用库文件fis.c


class test
{
public:
    FIS *fis;
    int i, j;
    double  **fisMatrix,**outputMatrix;
    double * dataMatrix;
    char *fis_file;
    int  fis_row_n, fis_col_n;
public:
    test();
    ~test();
    double feed_speed(double input1,double input2);
};

#endif // TEST_H

test类实现

#include "test.h"

test::test()
{
        this->fis_file="F:\cncF2.txt";
        fisMatrix = returnFismatrix(fis_file, &fis_row_n, &fis_col_n);

        
        fis = (FIS *)fisCalloc(1, sizeof(FIS));
        fisBuildFisNode(fis, fisMatrix, fis_col_n, MF_POINT_N);

        outputMatrix = (DOUBLE **)fisCreateMatrix(1, fis->out_n, sizeof(DOUBLE));
        this->dataMatrix=new double(2);




}
double test::feed_speed(double input1,double input2)
{
        this->dataMatrix[0]=input1;

        this->dataMatrix[1]=input2;
        getFisOutput(dataMatrix, fis, outputMatrix[0]);

        return outputMatrix[0][0];

}
test::~test()
{

         fisFreeFisNode(fis);
         fisFreeMatrix((void **)fisMatrix, fis_row_n);
         fisFreeMatrix((void **)outputMatrix, 1);
         delete[]dataMatrix;
}

点赞关注,fis.c文件代码段这里不提供(温馨提示csdn提供的fis.c仍需修改,不然跑不动)(如需使用请在此链接下载(27条消息) fuzzy的fis.c文件-嵌入式文档类资源-CSDN文库https://download.csdn.net/download/weixin_53351797/85502651?spm=1001.2014.3001.5501),csdn已经有很多此类资源,关注点赞本博主可以怎么修改成n输入m输出的fuzzy代码实现发给你和备注发给你.

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/933944.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号