RM新时代网站-首页

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

MATLAB學(xué)習(xí)筆記之模糊算法2

jf_78858299 ? 來源:滑小稽筆記 ? 作者:電子技術(shù)園地 ? 2023-02-27 14:28 ? 次閱讀

1.1.6 模糊推理的運用

1.2.7 模糊控制系統(tǒng)的組成

與一般的計算機控制系統(tǒng)不同的是,模糊控制系統(tǒng)的控制器是模糊控制器,模糊控制器是基于模糊條件語句描述的語言控制規(guī)則,又稱為模糊語言控制器。

輸入輸出變量

(1)模糊控制的輸入變量通常取E或E,EC或E,EC,ER,分別構(gòu)成所謂的一維,二維,三維模糊控制器,一般選擇控制量的增量作為模糊控制器的輸出變量。

(2)描述模糊控制器的輸入,輸出變量狀態(tài):負(fù)大(NB),負(fù)中(NM),負(fù)?。∟S),零(O),正?。≒S),正中(PM),正大(PB)。

(3)描述誤差變量的詞集一般取為:負(fù)大(NB),負(fù)中(NM),負(fù)小(NS),負(fù)零(NO),正零(PO),正?。≒S),正中(PM),正大(PB)。

模糊變量E的賦值表

模糊控制規(guī)則

(1)條件語句的基本類型為:if A or B and C or D then E

例如水溫控制規(guī)則之一為:若水溫高或偏高,且溫度上升快或較快,則加大冷水流量。

用條件語句表達(dá)為:if E=NB or NM and EC=NB or NM then U=PB

1.2.8 模糊控制算法的工程實現(xiàn)

在大型的模糊控制系統(tǒng)中常采用軟件模糊推理法,模糊關(guān)系,模糊推理以及模糊判決的運算可以離線進(jìn)行,最后得到模糊控制器輸入量的量化等級E,EC與輸出量即系統(tǒng)控制量的量化等級U之間的確定關(guān)系,這種關(guān)系通常稱為控制表。

1.3 水位控制系統(tǒng)

1.3.1 控制目標(biāo)

控制模型如下圖所示,控制進(jìn)水閥S1和出水閥S2,使水箱水位保持在目標(biāo)水位O處。

1.3.2 控制規(guī)則

(1)若當(dāng)前水位高于目標(biāo)水位,則向外排水,差值越大,排水越快

(2)若當(dāng)前水位低于目標(biāo)水位,則向內(nèi)注水,差值越大,注水越快

(3)若當(dāng)前水位和目標(biāo)水位相差很小,則保持排水速度和注水速度相等

注:建立模糊控制規(guī)則的基本思想:當(dāng)誤差大或較大時,選擇控制量應(yīng)該以盡快消除誤差為主,而當(dāng)誤差較小時,選擇控制量要防止超調(diào),以系統(tǒng)的穩(wěn)定性為主要出發(fā)點。

1.3.3 控制步驟

(1)我們選擇目標(biāo)水位和當(dāng)前水位的差值e作為觀察量,選取閥門開度u為控制量。

(2)將偏差e劃分為5個模糊集,負(fù)大(NB)、負(fù)小(NS)、零(ZO)、正?。≒S)、正大(PB),e為負(fù)表示當(dāng)前水位低于目標(biāo)水位,e為正表示當(dāng)前水位高于目標(biāo)水位。設(shè)定e的取值范圍為[-3,3],隸屬度函數(shù)如下圖所示。

此時偏差e對應(yīng)的模糊表如下表所示。

-3 -2 -1 0 1 2 3
PB 0 0 0 0 0 0.5 1
PS 0 0 0 0.5 1 0.5 0
ZO 0 0 0.5 1 0.5 0 0
NS 0 0.5 1 0.5 0 0 0
NB 1 0.5 0 0 0 0 0

(3)將控制量u劃分為5個模糊集,負(fù)大(NB)、負(fù)小(NS)、零(ZO)、正?。≒S)、正大(PB),u為負(fù)表示增大進(jìn)水閥門S1的開度(同時減小出水閥門S2的開度),u為正表示減小進(jìn)水閥門S1的開度(同時增大出水閥門S2的開度)。設(shè)定u的取值范圍為[-4,4],隸屬度函數(shù)如下。

此時控制量u對應(yīng)的模糊表如下表所示。

-4 -3 -2 -1 0 1 2 3 4
PB 0 0 0 0 0 0 0 0.5 1
PS 0 0 0 0 0 0.5 1 0.5 0
ZO 0 0 0 0.5 1 0.5 0 0 0
NS 0 0.5 1 0.5 0 0 0 0 0
NB 1 0.5 0 0 0 0 0 0 0

(4)制定模糊規(guī)則:模糊規(guī)則的制定是模糊控制的核心內(nèi)容,控制性能的好壞很大程度上由模糊規(guī)則決定,目前主要是根據(jù)經(jīng)驗來制定相應(yīng)的規(guī)則

若e負(fù)大,則u負(fù)大

若e負(fù)小,則u負(fù)小

若e為零,則u為零

若e正小,則u正小

若e正大,則u正大

(6)進(jìn)行模糊決策:最終需要的控制量u即為模糊控制的輸出,u可由偏差矩陣e和模糊關(guān)系矩陣R合成得到

(7)控制量的反模糊化

我們模糊決策得到的控制量u是一個矩陣,并不能直接應(yīng)用在工程上,因此需要將u解釋為實際中的特定行為,即反模糊化操作。目前常用的反模糊化方法有以下幾種:

最大隸屬度法:應(yīng)用于計算簡單控制要求不高場合

重心法:可以使得輸出更平滑

加權(quán)平均法:工業(yè)上應(yīng)用最廣泛

1.4 模糊控制算法實現(xiàn)

1.4.1 MATLAB代碼

clc
clear
%創(chuàng)建模糊控制器
a = newfis('fuzzy tank');
%輸入變量
a = addvar(a,'input','e',[-3,3]);                           %設(shè)置變量e為輸入且定義域[-3,3]
a = addmf(a,'input',1,'NB','zmf',[-3,-1]);                  %Z型隸屬度函數(shù)
a =addmf(a,'input',1,'NS','trimf',[-3,-1,1]);               %三角形隸屬度函數(shù)
a =addmf(a,'input',1,'ZO','trimf',[-2,0,2]);                %三角形隸屬度函數(shù)
a =addmf(a,'input',1,'PS','trimf',[-1,1,3]);                %三角形隸屬度函數(shù)
a = addmf(a,'input',1,'PB','smf',[1,3]);                     %S型隸屬度函數(shù)
%輸出變量
a = addvar(a,'output','u',[-4,4]);                            %設(shè)置變量u為輸出且定義域[-4,4]
a = addmf(a,'output',1,'NB','zmf',[-4,-2]);                 %Z型隸屬度函數(shù)
a =addmf(a,'output',1,'NS','trimf',[-4,-2,0]);             %三角形隸屬度函數(shù)
a =addmf(a,'output',1,'ZO','trimf',[-2,0,2]);               %三角形隸屬度函數(shù)
a =addmf(a,'output',1,'PS','trimf',[0,2,4]);                %三角形隸屬度函數(shù)
a = addmf(a,'output',1,'PB','smf',[2,4]);                    %S型隸屬度函數(shù)
%建立模糊規(guī)則
rulelist=[1 1 1 1;
          2 2 1 1;
          3 3 1 1;
          4 4 1 1;
          5 5 1 1];
a = addrule(a,rulelist);
%設(shè)置反模糊化算法
a1 = setfis(a,'DefuzzMethod','mom');                         %采用最大隸屬度平均法進(jìn)行反模糊化
writefis(a1,'tank');                                         %保存tank文件
a2 = readfis('tank');                                        %讀取tank文件
%繪制圖像
figure(1);  plotfis(a2);                                     %繪制模糊控制器結(jié)構(gòu)
figure(2);  plotmf(a,'input',1);                              %繪制輸入隸屬度函數(shù)圖像
figure(3);  plotmf(a,'output',1);                             %繪制輸出隸屬度函數(shù)圖像
%打開模糊調(diào)試器
showrule(a);
ruleview('tank');

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 模糊控制
    +關(guān)注

    關(guān)注

    2

    文章

    261

    瀏覽量

    25500
  • 模糊算法
    +關(guān)注

    關(guān)注

    0

    文章

    16

    瀏覽量

    8740
  • 自然語言
    +關(guān)注

    關(guān)注

    1

    文章

    287

    瀏覽量

    13346
收藏 人收藏

    評論

    相關(guān)推薦

    matlabdsp學(xué)習(xí)

    matlabdsp學(xué)習(xí)
    發(fā)表于 07-05 17:20

    FCM聚類算法以及改進(jìn)模糊聚類算法用于醫(yī)學(xué)圖像分割的matlab源程序

    FCM聚類算法以及改進(jìn)模糊聚類算法用于醫(yī)學(xué)圖像分割的matlab源程序
    發(fā)表于 05-11 23:54

    算法圖解學(xué)習(xí)筆記分享

    算法圖解學(xué)習(xí)筆記03:分而治之
    發(fā)表于 06-05 17:42

    PID算法模糊PID 精選資料推薦

    這方面的需求而設(shè)計的。專家算法模糊算法都?xì)w屬于智能算法的范疇,智能算法最大的優(yōu)點就是在控制模型未知的情況下,可以對模型進(jìn)行控制。這里需要注
    發(fā)表于 07-19 06:29

    求大佬分享MatLab學(xué)習(xí)筆記

    求大佬分享MatLab學(xué)習(xí)筆記
    發(fā)表于 11-19 07:00

    PID算法學(xué)習(xí)筆記分享

    最近在學(xué)習(xí)與無人機有關(guān)的一些控制算法,在這里做一些筆記,今天學(xué)的是有關(guān)于PID的算法。什么是PID首先關(guān)于PID的定義,因為我本身不是自動控制專業(yè)出身所以對于概念這個東西比較
    發(fā)表于 01-14 06:50

    模糊PID控制及其MATLAB仿真

    模糊PID控制及其MATLAB仿真,主要是MATLAB仿真,對于研究模糊PID算法有借鑒意義
    發(fā)表于 11-12 17:15 ?0次下載

    模糊推理的Mamdani算法及其Matlab實現(xiàn)

    模糊濾波的mamdani算法及其Matlab實現(xiàn)
    發(fā)表于 11-17 18:23 ?40次下載

    基于模糊高斯學(xué)習(xí)策略的粒子群進(jìn)化融合算法

    針對粒子群優(yōu)化(PSO)算法存在的開發(fā)能力不足,導(dǎo)致算法精度不高、收斂速度慢以及微分進(jìn)化算法具有的探索能力偏弱,易陷入局部極值的問題,提出一種基于模糊高斯
    發(fā)表于 11-27 17:35 ?1次下載

    流形學(xué)習(xí)LLE算法的配套Matlab源碼匯總

    流形學(xué)習(xí)LLE算法的配套Matlab源碼匯總
    發(fā)表于 08-25 09:30 ?1次下載

    OpenStackCinder學(xué)習(xí)筆記

    OpenStackCinder學(xué)習(xí)筆記(開關(guān)電源技術(shù)教程ppt)-該文檔為OpenStackCinder學(xué)習(xí)
    發(fā)表于 09-23 12:40 ?5次下載
    OpenStack<b class='flag-5'>之</b>Cinder<b class='flag-5'>學(xué)習(xí)</b><b class='flag-5'>筆記</b>

    基于深度學(xué)習(xí)的圖像去模糊算法及應(yīng)用

    當(dāng)前,絕大部分基于深度學(xué)習(xí)的圖像去模糊算法是不區(qū)分場景的,也就是他們是對常見的自然與人為設(shè)計的場景進(jìn)行去模糊。但是,在現(xiàn)實生活中,經(jīng)常會遇到一些特定場景的圖像去
    的頭像 發(fā)表于 10-28 16:00 ?2643次閱讀

    MATLAB學(xué)習(xí)筆記模糊算法1

    所謂模糊控制,就是對難以用已有規(guī)律描述的復(fù)雜系統(tǒng),采用自然語言(如大,中,?。┘右悦枋?,借助定性的,不精確的以及模糊的條件語句來表達(dá),模糊控制是一種基于語言的智能控制。
    的頭像 發(fā)表于 02-27 14:28 ?2770次閱讀
    <b class='flag-5'>MATLAB</b><b class='flag-5'>學(xué)習(xí)</b><b class='flag-5'>筆記</b><b class='flag-5'>之</b><b class='flag-5'>模糊</b><b class='flag-5'>算法</b>1

    MATLAB學(xué)習(xí)筆記模糊算法3

    所謂模糊控制,就是對難以用已有規(guī)律描述的復(fù)雜系統(tǒng),采用自然語言(如大,中,?。┘右悦枋?,借助定性的,不精確的以及模糊的條件語句來表達(dá),模糊控制是一種基于語言的智能控制。
    的頭像 發(fā)表于 02-27 14:28 ?690次閱讀
    <b class='flag-5'>MATLAB</b><b class='flag-5'>學(xué)習(xí)</b><b class='flag-5'>筆記</b><b class='flag-5'>之</b><b class='flag-5'>模糊</b><b class='flag-5'>算法</b>3

    MATLAB學(xué)習(xí)筆記WM算法

    在現(xiàn)代智能控制算法中,模糊控制是在實際控制系統(tǒng)設(shè)計中使用比較成熟的一種方法。模糊控制可以使用在一些無法建立系統(tǒng)模型的場合,根據(jù)專家經(jīng)驗確定模糊規(guī)則,實現(xiàn)對系統(tǒng)的控制。
    的頭像 發(fā)表于 02-27 14:40 ?1311次閱讀
    <b class='flag-5'>MATLAB</b><b class='flag-5'>學(xué)習(xí)</b><b class='flag-5'>筆記</b><b class='flag-5'>之</b>WM<b class='flag-5'>算法</b>
    RM新时代网站-首页