您好,欢迎来到爱站旅游。
搜索
您的当前位置:首页模糊逻辑系统的C语言实现方法

模糊逻辑系统的C语言实现方法

来源:爱站旅游
模糊逻辑系统的C语言实现方法

贺维,江汉红,王海峰,张朝亮 (武汉海军工程大学 湖北 武汉 430033)

摘要:本文首先介绍了三种专门用于模糊逻辑控制系统设计的软件系统。详细地介绍了

利用软件进行模糊逻辑控制系统设计的基本原理以及模糊控制器的软件程序设计方法。实验表明,模糊逻辑系统的C语言实现方法是完全可行的,并且能够大大减少工作量。

关键词:模糊逻辑 C语言

C Language Realize Method of Fuzzy Logic System

HE-wei JIANG Han-hong WANG Hai-feng ZHANG Chao-liang

(Naval University of Engineering, Wuhan 430033, China)

Abstract: This paper presents three special software systems for the the design of hardware

circuit of Fuzzy Logic control system. The paper introduced the composing and working principle in detail . The way of designing and programming of Fuzzy Logic control system is also presented in detail in the paper. In the end the results of experiment shows that C Language realize method is completely viable,and can reduce lots of workload.

Key words: Fuzzy Control C Language

1.引言

对于模糊控制的实现是模糊控制在实际应用中的一个重要环节。由于Matlab软件工具提供了强大的数学工具,一般模糊控制仿真在MATLAB/Simulink/Fuzzy Logic Toolbox下进行的。但是往往在实际应用之中,Matlab的程序就不能完成提供强大的功能了。在本文的无刷直流电机的DSP控制实验中,Matlab的程序与DSP的应用程序并不兼容,因而我们需要设计的智能控制器就变得有些复杂了,因而我们需要一种能快速解决模糊控制器的设计及应用的方法。文章中提出了以下三种有效的设计方案。

2.Matlab工具

对于实际模糊控制系统,由于在高级语言中模糊控制程序的实现比较复杂,因此引入模糊控制存在一定的困难,程序代码的过于复杂也会严重影响模糊控制系统的开发周期。而Matlab系统及其工具箱中提供了一些能够完成某些Matlab功能的C/C++库函数,这些库函数可以直接应用到C/C++平台中,脱离系统完成Matlab某些功能,极大的方便了实际应用。Matlab Fuzzy Logic 工具箱的C代码就是一个这样的C语言库[1]。

的C代码模糊推理引擎函数库fis.c位于Matlab目录下的toolbox\\fuzzy\\fuzzy目录中,它包含了在C语言环境下调用Matlab Fuzzy Logic工具箱建立的模糊推理系统的数据文件(*.fis)进行模糊逻辑推理的一系列C函数,其基本原理是利用C代码实现Matlab中的模糊推理系统(FIS)功能。该目录下还有一个C代码程序fismain.c,它实际上是利用fis.c库函数来实现模糊推理系统的一个实例。

正确地熟悉了fis.c库函数中的函数定义,在应用程序中正确调用,即可实现模糊推理系统功能。例如,从Matlab的模糊推理系统文件(*.fis)读入系统数据,可用下面的语句:fisMatrix=returnFismatrix(fis_file,&fis_row_n,&fis_col_n);建

立基于C代码的模糊推理系统,可用下面的语句: fisBuildFisNode(fis,fisMatrix,fis_col_n,MF_POINT_N)。

但是需要说明的是,在C代码函数库fis.c中只定义了Matlab Fuzzy Logic工具箱的11种隶属函数以及AND、OR、IMP和AGG四种逻辑操作函数。所以在利用Matlab的模糊逻辑工具箱建立用于C代码引擎的模糊推理系统时,不允许采用自定义的隶属度函数和逻辑操作函数来设计系统,除非修改fis.c函数库[2]。

设计基于的C代码模糊推理引擎的模糊控制程序主要有以下两个步骤: (1) 利用Matlab的模糊逻辑工具箱建立一个模糊推理系统,并将系统存

为扩展名为fis的数据文件。注意只能使用Matlab定义的隶属度函数和逻辑操作函数,

在C语言应用程序中实现Matlab中定义的模糊推理系统功能。两者之间的接(2)

口就是C代码模糊推理引擎函数库fis.c。

2. FuzzyTECH 5.55c

利用德国INFORM公司的模糊系统工程软件FuzzyTECH 5.55c、INFORM公司的模糊系统工程软件FuzzyTECH 5.55c是专门针对于模糊控制的应用设计的工程类软件。该软件提供了强大的技术支持。在FuzzyTECH 5.55c软件下完成了模糊控制算法的编程后,利用FuzzyTECH中的代码生成器产生与DSP TMS320系列完全兼容的标准C代码[3]。模糊控制编程如图1。

图1 FuzzyTECH 5.55的模糊控制编程

设计基于FuzzyTECH 5.55c的模糊控制器的过程有两个步骤:

(1) 利用FuzzyTECH 5.55c强大的模糊逻辑工具箱建立一个模糊推理系统。

(2) 在FuzzyTECH 5.55c 的工具栏中直接生成与DSP TMS320完全兼容的C程序代码,并且也能生成M_file、java、VB++和VC++等等[4]。如图2所示。

图2 代码生成

3.WinFact 6软件

FS-Fuzzy模糊控制开发软件是Windows环境下的图形化模糊控制系统开发工具,它支持整个模糊控制开发周期,从而使得复杂的模糊控制系统设计开发、调试变得简单方便[5]。

FS-Fuzzy模糊控制开发软件的一个显著的特点是开放的软件接口:FS—Fuzzy可与许多其它常规控制软件产品相连接和集成,支持许多工业标准接口(DLL,OLE,ANS-c),可与当今 (Simulink,Intouch, Excel, VisualBasic)流行软件进行紧密的集成[6]。

(1) 在FLOP程序中编写的模糊控制程序,并可以在其界面下进行修改模糊规则以及其他的参数,最后将理想的结果存为(BLDCM.FUZ)文件。如图4.所示。

(2) 在FALCO界面下打开在第一步已经存好的BLDCM.FUZ文件打开,再

将其中的代码生成器就会得到C代码了。其中包括BLDCM_F4.c和BLDCM_F4.h.两个文件。

图3 WinFact 6的模糊控制编程

4. 结论

由于模糊控制策略的实现过程的复杂,文章提出了三种方法的测试,可以快速对模糊控制系统进行建模。

本文的创新点在使模糊控制语言能够在较短的时间内实现,大大减少了模糊逻辑系统设计工作量,提高了工作效率,三种方法的优点是可迅速、容易地设计

模糊逻辑系统原型。无论在理论还是实践方面都带来了很大的便利,具有一定的理论和实践意义。

5.参考文献:

[1] 杨智,杨李成.在MATLAB语言中间接实现C语言链接.甘肃工业大学学

报.1998(12):56-60.

[2] 吴晓莉,林哲辉.MATLAB辅助模糊系统设计.西安电子科技大学出版

社.2002.

[3] FuzzyTECH5.3 User’s Manual.1999.

[4] FuzzyTECH-MP. User’s Manual.Microchip Technology Incorporated,1994. [5] 飞天通用智能自动化系统技术手册.北京智能谷科技有限公司.

[6] 张朝亮,江汉红,陈少昌,王海峰.基于WinFact的模糊PID控制器设计.

微计算机信息.2006.10

作者简介:

贺维(1978-)女(汉),湖南人,硕士研究生,专业控制理论与控制工程。 江汉红(1960-)男(汉),湖北武汉人,博士,硕士生导师,副教授,主要从事网络测控与

智能控制的研究

通信地址:武汉海军工程大学电气与信息工程学院智能工程系 (贺维)收

海军指令性科研基金项目

海军工程大学 江汉红

我的联系方式:

E-mail:2003jianghh@163.com Pcd:430033

Add:武汉市大道717#海军工程大学电气与信息工程学院

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- azee.cn 版权所有 赣ICP备2024042794号-5

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务