VHDL语言求助,实验方法

VHDL语言求助,实验方法,第1张

module top(data_a,data_b,out_h,out_l)

input [3:0]data-a,data_b

outputr [3:0]out_h,out_l

wire [7:0] temp

assign temp=data_a*data_b

assign out_h<=temp/10

assign out_l<=temp%10

endmodule

第一步:打开模糊推理系统编辑器

步骤:

在Commond Window 键入fuzzy

回车

打开如下窗口,既模糊推理系统编辑器

第二步:使用模糊推理系统编辑器

本例用到两个输入,两个输出,但默认是一个输人,一个输出

步骤:

1、添加一个输入

添加一个输出

得如下图

2、选择Input、output(选中为红框),在Name框里修改各输入的名称

并将And method 改为prod,将Or method 改为 probor

提示:在命名时’_’在显示时为下标,可从上图看出。

第三步:使用隶属函数编辑器

该编辑器提供一个友好的人机图形交互环境,用来设计和修改模糊推理系中各语言变量对应的隶属度函数的相关参数,如隶属度函数的形状、范围、论域大小等,系统提供的隶属度函数有三角、梯形、高斯形、钟形等,也可用户自行定义。

步骤:

1、双击任何一个输入量(In_x、In_y)或输出量打开隶属度函数编辑器。

2、在左下处Range和Display Range处添加取值范围,本例中In_x和In_y的取值范围均为[0 10], Out_x和Out_y的取值范围均为[0 1]

3、默认每个输入输出参数中都只有3个隶属度函数,本例中每个输入输出参数都需要用到五个,其余几个需要自己添加:

选中其中一个输入输出参数

点击Edit菜单,选Add MFS…打开下列对话框

将MF type设置为trimf(三角形隶属度函数曲线,当然你也需要选择其他类型)

将Number of MFs 设置为2

点击OK按钮

同样给其他三个加入隶属度函数

4、选中任何一个隶属度函数(携肆选中为红色),在Name 中键入名称,在Type中选择形状,在Params中键入范围,然后回车如下图:

5、关闭隶属函数辩销轿编辑器

第四步:使用规则编辑器

通过隶规则编辑器来设计和修改“斗伏IF...THEN”形式的模糊控制规则。由该编辑器进行模糊控制规则的设计非常方便,它将输入量各语言变量自动匹配,而设计者只要通过交互式的图形环境选择相应的输出语言变量,这大大简化了规则的设计和修改。另外,还可为每条规则选择权重,以便进行模糊规则的优化。

步骤:

1、打开规则编辑器

点击Edit菜单,选Rules…

打开下了对话框

2、添加规则

选中IXL2,IYL2,OXL2,none(表示不被选中任何隶属度函数),and选项,权重Weight均设为1,然后点击Add rule 添加规则,同理添加其他规则。

下图为添加所有role后:

3、关闭规则编辑器

第五步:保存并查看结果

步骤:

1、保存

保存为Test.fis

2、View->Rules打开Rule Viewer

3、View->Surface打开Surface Viewer

第二部分:将模糊逻辑添加到Simulink中

第一步:创建一个Simulink文件

步骤:

1、打开Simulink

2、点击新建按钮建立一个新的.mdl文件

第二步:添加模糊逻辑

步骤:

1、在Simulink Library Brower 的搜索框内键入Fuzzy Logic Controller找到Fuzzy Logic Controller,并将其拖拽到新建的mdl文件中

2、双击Fuzzy Logic Controller,打开如下对话框,比在其内部键入Test

3、关闭对话框

第三步:添加其他模块

如下图,都是常用模块,请自己添加

第四步:保存并运行

步骤:

1、保存为Test.mdl

2、初始化模糊逻辑控制器,即在Command Window中键入Test = readfis('Test.fis'),回车

1、运行Test.mdl

这里可以比较一下结果


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12371562.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存