1. 程式人生 > >Matlab 的 Fuzzy 工具箱實現模糊控制(rulelist的確定)

Matlab 的 Fuzzy 工具箱實現模糊控制(rulelist的確定)

用 Matlab 的 Fuzzy 工具箱實現模糊控制- -

用 Matlab 中的 Fuzzy 工具箱做一個簡單的模糊控制,流程如下:

1、建立一個 FIS (Fuzzy Inference System ) 物件,

a = newfis(fisName,fisType,andMethod,orMethod,impMethod, aggMethod,defuzzMethod)

一般只用提供第一個引數即可,後面均用預設值。

2、增加模糊語言變數

a = addvar(a,'varType','varName',varBounds)

模糊變數有兩類:input 和 output。在每增加模糊變數,都會按順序分配一個 index,後面要通過該 index 來使用該變數。

3、增加模糊語言名稱,即模糊集合。

a = addmf(a,'varType',varIndex,'mfName','mfType',mfParams)

每個模糊語言名稱從屬於一個模糊語言。Fuzzy 工具箱中沒有找到離散模糊集合的隸屬度表示方法,暫且用插值後的連續函式代替。

引數 mfType 即隸屬度函式(Membership Functions),它可以是 Gaussmf、trimf、trapmf等,也可以是自定義的函式。

每一個語言名稱也會有一個 index,按加入的先後順序得到,從 1 開始。

4、增加控制規則,即模糊推理的規則。

a = addrule(a,ruleList)

其中 ruleList 是一個矩陣,每一行為一條規則,他們之間是 ALSO 的關係。

假定該 FIS 有 N 個輸入和 M 個輸出,則每行有 N+M+2 個元素,前 N 個數分別表示 N 個輸入變數的某一個語言名稱的 index,沒有的話用 0 表示,後面的 M 個數也類似,最後兩個分別表示該條規則的權重和個條件的關係,1 表示 AND,2 表示 OR。

例如,當“輸入1” 為“名稱1” 和 “輸入2” 為“名稱3” 時,輸出為 “ 輸出1” 的“狀態2”,則寫為:

[1 3 2 1 1]

5、給定輸入,得到輸出,即進行模糊推理。

output = evalfis(input,fismat)

其中 fismat 為前面建立的那個 FIS 物件。

一個完整的例子如下:

clear all;

a = newfis('myfis');

a = addvar(a,'input','E',[0 7]);

a = addmf(a,'input',1,'small','trimf',[0 1 4.333]);

a = addmf(a,'input',1,'big','trimf',[1.6667 6 7]);

a = addvar(a,'output','U',[0 7]);

a = addmf(a,'output',1,'small','trimf',[0 1 4.333]);

a = addmf(a,'output',1,'big','trimf',[1.6667 6 7]);

rulelist = [1 1 1 1;

2 2 1 1];

a = addrule(a,rulelist);

u = evalfis(4,a)

其結果為:

u = 4.221

相關推薦

MatlabFuzzy 工具箱實現模糊控制(rulelist確定)

用 Matlab 的 Fuzzy 工具箱實現模糊控制- - 用 Matlab 中的 Fuzzy 工具箱做一個簡單的模糊控制,流程如下: 1、建立一個 FIS (Fuzzy Inference System ) 物件, a = newfis(fisName,fisT

4步教你學會使用matlab模糊控制工具箱

====================================================================================== MATLAB功能強大,很多同學用其做控制演算法的模擬  但是其中的fuzzy logic controller剛開始用常常容易出錯

樸素貝葉斯分類器:MATLAB工具箱實現

MATLAB工具箱的statistic toolbox中有naivebayes的類,可以直接使用。 使用預設的高斯分佈和混淆矩陣: >> load fisheriris >> O1 = fitNaiveBayes(meas,species); 生成

PMSM控制01-在MATLAB/sinmulink模擬實現-計時器比較法輸出SVPWM波形

由於本人轉入新能源汽車電機控制行業,因此日後會陸續更新汽車電機、控制器、控制演算法、電路等的文章。當然別的DIY文章也會繼續更,工作、興趣、生活,該有的都得有。 以下正文: simulink中實

基於Matlab的BP神經網路--原始碼與工具箱實現

    因為最近專案要使用BP神經網路來做一些飛行預測,所以今天從圖書館借來了《Matlab神經網路30個案例分析》,這本書很不錯推薦給大家,然後研究了下程式碼,使用語音分類這個例子做了原始碼實現與工具箱實現,原始碼實現過程中進行了小小的改變,工具箱用起來非常方便,但是手寫

matlab使用FULLBNT工具箱實現貝葉斯網路

N = 4; %四個節點 分別是cloudy,sprinkler,rain,wetgrass dag = zeros(N,N); C = 1; S = 2; R = 3; W = 4; dag(C,[R S]) = 1; %節點之間的連線關係 dag(R,W) = 1; dag(S,W) = 1; discr

利用matlab進行三維曲線擬合(cftool工具箱實現

一.matlab是一個功能強大的整合軟體,其繪圖功能十分強大,在繪製三維空間網格點圖的時候,只需要使用cftool工具箱就能實現三維空間繪圖。 二.cftool工具箱就是應用程式中的Curve Fitting應用。 三.用頁面展現實現過程 四.預測類題目解法   

MATLAB自帶工具箱實現PCA降維程式碼,著重介紹實現方法

最近專案中需要進行PCA降維,環境是MATLAB,但是在網上找了很多都是介紹PCA原理的,的確介紹的很仔細,但是我是一個工科狗,只是想最快查到用程式碼實現降維的方法而已,網上的對我來說太多了,因此在此做一個總結,出於對知識的 尊重,插兩篇介紹的不錯的PCA 原理文章,只是想實

如何結合IbatisNet的LIST遍歷實現模糊查詢

mov earch home 輔助 iba pda person list() rate 我仿照Java的Spring+Ibatis+Struct用Castle+IBatisNet+Asp.net的開發框架的DAO的基類:BaseSqlMapDao內定義了一個內部類來輔助模

實現模糊查詢

根據 def art 所有 cnblogs sse 建立 prop bsp QureyFind的find按鈕中when-button—pressed 進行字符串的拼接 在Controller塊中建立一個item,將其長度屬性改的大一些。、 QureyFind的fin

10 行 Python 代碼實現模糊查詢/智能提示

import 3.5 django title gif function 項目 正則表達 裏的 10 行 Python 代碼實現模糊查詢/智能提示 1、導語: 模糊匹配可以算是現代編輯器(如 Eclipse 等各種 IDE)的一個必備特性了,它所做的就是根據用戶輸入

利用正則實現彩色控制臺輸出

返回 otto get onos soft turn nowrap itl 背景 近期忙了一陣less的二次開發的工作,期間遇到了不少須要向控制臺輸出彩色文字的需求。翻了下曾經同事的代碼,發現要麽自己拼轉義字符串,要麽使用一些不太好用的第三方庫。總之都不是非常合

潤乾報表實現模糊查詢

技術 潤乾 com 潤乾報表 png 技術分享 alt log .cn 潤乾報表實現模糊查詢

CentOS 下 Apache + Subversion 實現版本控制

apr-util tex quest 進入 httpd utl 初學 md5 stat 首先要說明一點的是Apache並不是必須安裝的,如果你只用在CentOS下本地實現版本控制的話,否則你至少要選擇一種服務器與SNV配合使用才能實現遠程版本控制,比較推崇使用Apache,

顯著性檢測(saliency detection)評價指標之KL散度距離Matlab代碼實現

mean enc gray SM tla function cor 代碼 ati 步驟1:先定義KLdiv函數: function score = KLdiv(saliencyMap, fixationMap) % saliencyMap is the saliency

【滑稽】用 blog 實現版本控制

隨筆 一派胡言 黑科技 版本控制 函數式 (實現方法和scheme中的鏈表思想幾乎完全相同——不過版本控制本身就是一堆指針,參考 鏈接:git教程 - 廖雪峰的官方網站)  博客提供兩個接口:寫博客,可以在博客裏放任何內容不限量評論評論可以刪除  博客常常可以修改。但是這個功能有副作用:修

華為ACL控制協議實現流量控制

流量控制 ping 界面 ima lte bound des 利用 登錄密碼 一、網絡拓撲:二、實驗內容:實現ACL控制流量的相關操作三、實驗步驟:1、新建拓撲,添加三臺路由器,兩臺PC機,並連線。 2、按照下圖配置相關節點的IP地址,利用RIP協議配置路由器之間的動態路由

樂鑫esp8266的 基於Nonos移植紅外線1883,實現遙控器控制

查詢 lock bit ddr https 描述 read 博文 out 代碼地址如下:http://www.demodashi.com/demo/12613.html 一、前言。 距離上篇的8266進階博文有那麽一段時間了,那麽本文帶來的是基於Nonos的紅外線H

Mybatis實現模糊查詢

con concat 框架 color SSM框架 數據庫 sql ble table 在使用SSM框架實現後臺功能的過程中,有可能需要對數據庫中的某一個字段實現模糊搜索,使用sql語句就是: SELECT * FROM [TABLE NAME] WHERE u_name

【轉】pymongo實現模糊查詢

python article 匹配 light net details regex 使用 模糊匹配 pymongo 模糊匹配查詢在mongo中這樣實現 {‘asr‘:/若琪/}    使用pymongo 兩種實現方式 1.import re