每天一點演算法 模糊控制器的設計

2021-09-21 17:48:58 字數 1763 閱讀 3174

概述

模糊控制器是以模糊集合論、模糊語言變數、模糊邏輯推理為基礎的一種智慧型控制方法。關於這三個方面的基礎知識,不知道的,自己去補充。

模糊集合理論:

一種描述模糊現象的方法,隸屬度函式是它的核心概念。

模糊語言變數:

主要有四個方面內容,定義變數名稱、定義變數論域、定義語言值(實質是模糊集合)、定義每個語言的隸屬度函式。

模糊蘊含關係:

兩個語言變數之間存在的模糊關係,這種模糊關係的求解可以有多種方法,常見的有zadeh法、mamdani法。

模糊邏輯推理:

有模糊關係、以及輸入後,如何得到輸出。

正文模糊控制器的設計主要分為如下步驟:

1、模糊控制器結構的確定:幾個輸出變數?幾個輸出變數?分別是什麼變數?

2、定義輸入輸出變數模糊集:確定各個變數的論域、語言值、各個模糊集合的隸屬度函式。

3、構建模糊控制規則表,這個表由專家經驗所得。

4、求解模糊蘊含關係:利用模糊規則表結合對應的推理機來得到模糊蘊含關係,常用的有zadeh法、mamdani法。

5、總結模糊查詢表

6、解模糊得到輸出值:常用的方法有最大隸屬度法、重心法、加權平均法。

這樣說得可能比較抽象,下面我們以乙個matlab中的simulink例項來講解模糊控制器的設計與**

首先明確我們是為什麼設計的模糊控制器,這是我們選擇專家經驗的前提,這裡我們設計的是乙個以偏差e和偏差變化率ec為輸入的模糊控制器,類似於pid控制器。

一、設計模糊控制器

1、選擇輸入輸出變數及其個數,這裡我們選擇的是偏差e和ec(注意,在真實系統中,這兩個量是要經過量化因子處理後才能送給模糊控制器的,因為模糊控制器的論語通常在(-6, 6)這個範圍內,但是實際系統的輸入輸出值卻不是在這個範圍,所以我們需要對其進行比例換算,但是這裡由於是**,我們就不處理了)。

2、為模糊變數設計論域,選擇語言值、確定每個語言值對應的隸屬度函式

3、設計規則

到這裡乙個模糊控制器就設計完成了,接下來我們把這個模糊控制器儲存到我們的某個目錄下面,然後在matlab主介面下跳轉到這個目錄下,使用》a2=readfis(『fuzzf.fis』)這個命令來將模糊控制器讀取到工作空間中,用來後面呼叫。

二、搭建simulink**模型

模糊控制器引數

**結果

在這個案例中,我們使用了49條規則,我嘗試著將規則減少,但是發現這樣做會嚴重影響控制器的跟蹤效果,還有就是這種控制規則是需要專家經驗來設定的,如果專家經驗不合適也會造成控制器的跟蹤效果不好。

模糊控制器的優缺點

每天一點積累(一五) 類繼承的載入

之前我們講過 class在jvm 載入要經過 載入 驗證 準備 解析 初始化五個階段。現在以類繼承為例來看一下類的載入。先寫乙個父類。public class father public static void aa static public void bb 子類繼承於父類 public clas...

模糊邏輯控制器的粒子群演算法 含Matlab原始碼

電動汽車混合動力儲能系統模糊控制器的粒子群優化 該 提出了用於城市電動汽車中混合動力儲能系統 hess 的模糊邏輯控制器 flc 的粒子群優化演算法。sugeno型模糊推理系統已被應用於在電池和超級電容器儲能系統之間分配功率,以及管理超級電容器中儲存的能量。所描述的模糊邏輯控制器的兩個輸出訊號代表每...

每天一點產品思考 4 如何設計404頁面?

昨天阿白花了整整一天時間設計乙個關於 問題詳情 的原型,今天早上美滋滋的交付給開發,開發看了一眼,問了一句,如果我開啟的頁面不存在,not found 怎麼搞呢?阿白一臉疑惑,問 啥是not found?開發一臉鄙視,就是你平常看到的 404 頁面,阿白有點不好意思,哦哦,404啊,我還真忘了,我這...