天天看點

[MATLAB]初探模糊推理系統-MyFIS所需工具FIS-Fuzzy Logical Designer搭建仿真系統-Simulink

所需工具

MATLAB

是進行科學研究常用軟體,上面也搭載了很多常用的APP。雖然本人科研99%時間都是用

Python

,但因課程需要,也初步摸索以備後用。(下面開始菜鳥級表演)

1. Simulink

該工具是建立仿真系統的必備工具,一般下載下傳安裝

MATLAB

時會預設(大概會)安裝。在指令視窗鍵入

simulink

開啟,界面如圖:

[MATLAB]初探模糊推理系統-MyFIS所需工具FIS-Fuzzy Logical Designer搭建仿真系統-Simulink

2. Fuzzy Logical Designer

該工具是建立模糊推理系統的必備工具,在指令視窗鍵入

fuzzy

開啟,界面如圖:

[MATLAB]初探模糊推理系統-MyFIS所需工具FIS-Fuzzy Logical Designer搭建仿真系統-Simulink

By the way,如果沒有安裝上述兩個包,無需再重新下載下傳

MATLAB

重選一次,在這裡可以下載下傳并安裝。

[MATLAB]初探模糊推理系統-MyFIS所需工具FIS-Fuzzy Logical Designer搭建仿真系統-Simulink

工具有了,就可以開工了!以一個3階系統為例。

FIS-Fuzzy Logical Designer

首先,我們要确定模糊推理系統(Fuzzy inference system, FIS)的輸入、輸出以及模糊規則等。這裡,我以誤差 e e e、誤差變化率 d e de de 為輸入,經過FIS得到控制輸出 u u u。

[MATLAB]初探模糊推理系統-MyFIS所需工具FIS-Fuzzy Logical Designer搭建仿真系統-Simulink

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

一些預設參數,一般不需修改。

[MATLAB]初探模糊推理系統-MyFIS所需工具FIS-Fuzzy Logical Designer搭建仿真系統-Simulink

目前界面鎖定在Input, 可以通過點選

Edit->Add Variable

來添加輸入變量;點選藍色output同樣可以添加變量。直接在Name修改變量名;

Edit->Membership Function

定義隸屬函數,可以對每個隸屬函數進行編輯,也可以在

Edit->Add MFs

一次性輸入多個MF,預設為三角隸屬函數,注意: Params、Range要定義,别忘了對output隸屬函數進行定義。

[MATLAB]初探模糊推理系統-MyFIS所需工具FIS-Fuzzy Logical Designer搭建仿真系統-Simulink

傳回FIS首界面,

Edit->Rules

定義模糊規則。這個比較麻煩,不像MF還可以一次定義多個,一個 e e e和 d e de de對應一個 u u u,再點選Add rule就完成了一步,然後一個一個對應吧(本人未找到其他lazy方法)。

[MATLAB]初探模糊推理系統-MyFIS所需工具FIS-Fuzzy Logical Designer搭建仿真系統-Simulink

最後需要定義去模糊化方法:Defuzzification. 聰明的你一定發現了,該選擇在FIS首頁界面下方,預設方法為重心法

Centroid

,可改選。然後,

File->Export->To File/Workspace

,建議To File,先儲存到本地磁盤,然後再輸出到工作區以備接下來Simulink使用。

搭建仿真系統-Simulink

從首界面點選Blank Model,建立model。點選設定按鈕旁邊的Library Browser進行元件選擇,在收縮框内輸入名稱即可,拖拽元件到主界面進行系統搭建。此處,在 e e e、 d e de de、 u u u後分别放置了三個scope用以觀察輸出值大小,因為前面設定了range,是以需要保證輸出值在輸入範圍内。比如 e e e的輸出值在-10~10之間變化,但是range為[-1, 1],是以在其後加入一個比例為0.1的gain元件,其他同理。元件Fuzzy Logic Controller with Ruleviewer裡面需要定義FIS,也就是你export到workspace裡面的FIS檔案的變量名字。然後在Simulation裡面的configuration裡面修改一個地方:

Algorithm-Adaptive

.

最後便是一些調參(比例系數等等)工作,同時觀察示波器的輸出,看超調量、上升時間、穩态誤差是否符合要求啦!

[MATLAB]初探模糊推理系統-MyFIS所需工具FIS-Fuzzy Logical Designer搭建仿真系統-Simulink
[MATLAB]初探模糊推理系統-MyFIS所需工具FIS-Fuzzy Logical Designer搭建仿真系統-Simulink
[MATLAB]初探模糊推理系統-MyFIS所需工具FIS-Fuzzy Logical Designer搭建仿真系統-Simulink

結果展示:

FIS工作

[MATLAB]初探模糊推理系統-MyFIS所需工具FIS-Fuzzy Logical Designer搭建仿真系統-Simulink

Output

[MATLAB]初探模糊推理系統-MyFIS所需工具FIS-Fuzzy Logical Designer搭建仿真系統-Simulink

e

[MATLAB]初探模糊推理系統-MyFIS所需工具FIS-Fuzzy Logical Designer搭建仿真系統-Simulink

完結,睡覺 zzzzzz

繼續閱讀