中级会员
- 积分
- 385
- 威望
- 309
- 贡献
- 46
- 兑换币
- 0
- 注册时间
- 2009-12-6
- 在线时间
- 15 小时
|
本帖最后由 MonsterK 于 2010-6-13 18:34 编辑
由于s12xs没有了模糊指令,使单片机运用模糊控制增加了不少难度,但经过研究发现,还是可以通过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 定义的隶属度函数
和逻辑操作函数,
(2) 在 C 语言应用程序中实现Matlab 中定义的模糊推理系统功能。两者之间的接
口就是独立C 代码模糊推理引擎函数库fis.c。 |
|