所需工具
MATLAB
是进行科学研究常用软件,上面也搭载了很多常用的APP。虽然本人科研99%时间都是用Python
,但因课程需要,也初步摸索以备后用。(下面开始菜鸟级表演)
1. Simulink
该工具是建立仿真系统的必备工具,一般下载安装MATLAB
时会默认(大概会)安装。在命令窗口键入simulink
开启,界面如图:
2. Fuzzy Logical Designer
该工具是建立模糊推理系统的必备工具,在命令窗口键入fuzzy
开启,界面如图:
By the way,如果没有安装上述两个包,无需再重新下载MATLAB
重选一次,在这里可以下载并安装。
工具有了,就可以开工了!以一个3阶系统为例。
FIS-Fuzzy Logical Designer
首先,我们要确定模糊推理系统(Fuzzy inference system, FIS)的输入、输出以及模糊规则等。这里,我以误差 、误差变化率 为输入,经过FIS得到控制输出 。
Rules
Part of the Rules 见下表:
NB | NM | NS | NZ | PZ | PS | PM | PB | |
---|---|---|---|---|---|---|---|---|
PB | PB | PM | NM | NM | NM | NL | NB | NB |
PM | PB | PM | NM | Z | … | |||
PS | PB | PM | NS | Z | … | |||
Z | PB | PM | PS | Z | … | |||
NS | … | |||||||
NM | … | |||||||
NB | … |
Input & Output
一些默认参数,一般不需修改。
目前界面锁定在Input, 可以通过点击Edit->Add Variable
来添加输入变量;点击蓝色output同样可以添加变量。直接在Name修改变量名;Edit->Membership Function
定义隶属函数,可以对每个隶属函数进行编辑,也可以在Edit->Add MFs
一次性输入多个MF,默认为三角隶属函数,注意: Params、Range要定义,别忘了对output隶属函数进行定义。
返回FIS首界面,Edit->Rules
定义模糊规则。这个比较麻烦,不像MF还可以一次定义多个,一个和对应一个,再点击Add rule就完成了一步,然后一个一个对应吧(本人未找到其他lazy方法)。
最后需要定义去模糊化方法:Defuzzification. 聪明的你一定发现了,该选择在FIS首页界面下方,默认方法为重心法Centroid
,可改选。然后,File->Export->To File/Workspace
,建议To File,先保存到本地磁盘,然后再输出到工作区以备接下来Simulink使用。
搭建仿真系统-Simulink
从首界面点击Blank Model,新建model。点击设置按钮旁边的Library Browser进行组件选择,在收缩框内输入名称即可,拖拽组件到主界面进行系统搭建。此处,在、、后分别放置了三个scope用以观察输出值大小,因为前面设置了range,所以需要保证输出值在输入范围内。比如的输出值在-10~10之间变化,但是range为[-1, 1],所以在其后加入一个比例为0.1的gain组件,其他同理。元件Fuzzy Logic Controller with Ruleviewer里面需要定义FIS,也就是你export到workspace里面的FIS文件的变量名字。然后在Simulation里面的configuration里面修改一个地方:Algorithm-Adaptive
.
最后便是一些调参(比例系数等等)工作,同时观察示波器的输出,看超调量、上升时间、稳态误差是否符合要求啦!
结果展示:
FIS工作
Output
e
完结,睡觉 zzzzzz