• 大小: 990KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-06-05
  • 语言: C/C++
  • 标签: 模糊控制  C++  VS2010  

资源简介

在VS2010环境下,建立控制台应用程序,调用经修改过的MATLAB模糊逻辑工具箱中关于模糊控制部分的C代码函数,从而在C++中方便直接地实现模糊控制算法; fisMatrixFile.txt中存放自己配置的模糊逻辑工具箱生成的fis文件, dataMatrixFile.txt中存放模糊控制算法的输入量。

资源截图

代码片段和文件信息

/*
 * Stand-alone C codes for fuzzy inference systems.
 * (This file is included in fismain.c)
 * J.-S. Roger Jang 1994.
 * Copyright 1994-2001 The MathWorks Inc. 
 */

/*
  * Copyright 1994-2005 The MathWorks Inc.
 */
//#ifndef __FIS__
//# define __FIS__


#include 
#include 
#include 
#include 
#include “fis.h“
/***********************************************************************
 Macros and definitions
 **********************************************************************/
/* Define portable printf and double */
#if defined(MATLAB_MEX_FILE)
# define PRINTF mexPrintf
# define DOUBLE real_T
#elif defined(__SIMSTRUC__)
# define PRINTF ssPrintf
# define DOUBLE real_T
#else
# define PRINTF printf
# define DOUBLE double
#endif

#ifndef ABS
# define ABS(x)   ( (x) > (0) ? (x): (-(x)) )
#endif
#ifndef MAX
# define MAX(xy) ( (x) > (y) ? (x) : (y) )
#endif
#ifndef MIN
# define MIN(xy) ( (x) < (y) ? (x) : (y) )
#endif
#define MF_PARA_N 4
#define STR_LEN 500
#define MF_POINT_N 101

/* debugging macros */
/*
#define PRINT(expr) printf(#expr “ = %g\n“ (double)expr)
#define PRINTMAT(matmn) printf(#mat “ = \n“); fisPrintMatrix(matmn)
#define FREEMAT(matm) printf(“Free “ #mat “ ...\n“); fisFreeMatrix(matm)
#define FREEARRAY(array) printf(“Free “ #array “ ...\n“); free(array)
*/

#if (defined(MATLAB_MEX_FILE) && !defined(__SIMSTRUC__))
# define FREE mxFree
#else
# define FREE free
#endif

#define FREEMAT(matm) fisFreeMatrix(matm)
#define FREEARRAY(array) FREE(array)

/***********************************************************************
 Data types
 **********************************************************************/

typedef struct fis_node {
int handle;
int load_param;
char name[STR_LEN];
char type[STR_LEN];
char andMethod[STR_LEN];
char orMethod[STR_LEN];
char impMethod[STR_LEN];
char aggMethod[STR_LEN];
char defuzzMethod[STR_LEN];
int userDefinedAnd;
int userDefinedOr;
int userDefinedImp;
int userDefinedAgg;
int userDefinedDefuzz;
int in_n;
int out_n;
int rule_n;
int **rule_list;
DOUBLE *rule_weight;
int *and_or; /* AND-OR indicator */
DOUBLE *firing_strength;
DOUBLE *rule_output;
/* Sugeno: output for each rules */
/* Mamdani: constrained output MF values of rules */
struct io_node **input;
struct io_node **output;
DOUBLE (*andFcn)(DOUBLE DOUBLE);
DOUBLE (*orFcn)(DOUBLE DOUBLE);
DOUBLE (*impFcn)(DOUBLE DOUBLE);
DOUBLE (*aggFcn)(DOUBLE DOUBLE);
DOUBLE (*defuzzFcn)();
DOUBLE *BigOutMfMatrix; /* used for Mamdani system only */
    DOUBLE *BigWeightMatrix;/* used for Mamdani system only */
DOUBLE *mfs_of_rule; /* MF values in a rule */

DOUBLE *bias; /*bias to be tuned when no rules are fired*/
int isbias;

struct fis_node *next;
} FIS;



typedef struct io_node {
char name[STR_LEN];
int mf_n;
DOUBLE bound[2];
DOUBLE value;
struct mf_node **mf;
} IO;



typedef struct mf_node {
char label[STR_LEN]; /* MF name */
char type[STR_LEN]; /* MF type */
int n

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件         42  2016-10-10 19:33  Fuzzy\Debug\dataMatrixFile.txt

     文件       1349  2016-10-10 19:35  Fuzzy\Debug\fisMatrixFile.txt

     文件      72192  2016-10-19 10:24  Fuzzy\Debug\Fuzzy_test.exe

     文件     395356  2016-10-19 10:24  Fuzzy\Debug\Fuzzy_test.ilk

     文件     445440  2016-10-19 10:24  Fuzzy\Debug\Fuzzy_test.pdb

     文件         13  2016-10-19 10:24  Fuzzy\Fuzzy_test\dataMatrixFile.txt

     文件        722  2016-10-19 10:24  Fuzzy\Fuzzy_test\Debug\cl.command.1.tlog

     文件       2298  2016-10-19 10:24  Fuzzy\Fuzzy_test\Debug\CL.read.1.tlog

     文件        444  2016-10-19 10:24  Fuzzy\Fuzzy_test\Debug\CL.write.1.tlog

     文件       5146  2016-10-19 10:24  Fuzzy\Fuzzy_test\Debug\Fuzzy_test.Build.CppClean.log

     文件        406  2016-10-19 10:24  Fuzzy\Fuzzy_test\Debug\Fuzzy_test.exe.embed.manifest

     文件        472  2016-10-19 10:24  Fuzzy\Fuzzy_test\Debug\Fuzzy_test.exe.embed.manifest.res

     文件        381  2016-10-19 10:24  Fuzzy\Fuzzy_test\Debug\Fuzzy_test.exe.intermediate.manifest

     文件         91  2016-10-19 10:24  Fuzzy\Fuzzy_test\Debug\Fuzzy_test.lastbuildstate

     文件      11369  2016-10-19 10:24  Fuzzy\Fuzzy_test\Debug\Fuzzy_test.log

     文件          0  2016-10-19 10:24  Fuzzy\Fuzzy_test\Debug\Fuzzy_test.write.1.tlog

     文件        210  2016-10-19 10:24  Fuzzy\Fuzzy_test\Debug\Fuzzy_test_manifest.rc

     文件          2  2016-10-19 10:24  Fuzzy\Fuzzy_test\Debug\link-cvtres.read.1.tlog

     文件          2  2016-10-19 10:24  Fuzzy\Fuzzy_test\Debug\link-cvtres.write.1.tlog

     文件          2  2016-10-19 10:24  Fuzzy\Fuzzy_test\Debug\link.6800-cvtres.read.1.tlog

     文件          2  2016-10-19 10:24  Fuzzy\Fuzzy_test\Debug\link.6800-cvtres.write.1.tlog

     文件          2  2016-10-19 10:24  Fuzzy\Fuzzy_test\Debug\link.6800.read.1.tlog

     文件          2  2016-10-19 10:24  Fuzzy\Fuzzy_test\Debug\link.6800.write.1.tlog

     文件       1672  2016-10-19 10:24  Fuzzy\Fuzzy_test\Debug\link.command.1.tlog

     文件       3568  2016-10-19 10:24  Fuzzy\Fuzzy_test\Debug\link.read.1.tlog

     文件        978  2016-10-19 10:24  Fuzzy\Fuzzy_test\Debug\link.write.1.tlog

     文件     127874  2016-10-19 10:24  Fuzzy\Fuzzy_test\Debug\main.obj

     文件        438  2016-10-19 10:24  Fuzzy\Fuzzy_test\Debug\mt.command.1.tlog

     文件        210  2016-10-19 10:24  Fuzzy\Fuzzy_test\Debug\mt.read.1.tlog

     文件        402  2016-10-19 10:24  Fuzzy\Fuzzy_test\Debug\mt.write.1.tlog

............此处省略27个文件信息

评论

共有 条评论