1.課題概述
PID控制器和模糊PID控制器透過Simulink建模實現,在matlab中程式設計實現模糊控制規則,PID控制器引數計算。執行simulink模型之後,將2個控制器的控制響應曲線進行對比得到模擬結果。
2.系統模擬結果
將PID控制器的控制響應曲線和模糊PID控制響應曲線放一起對比,結果如下:
可以看到,模糊PID控制器收斂速度更快,且超調更小。
3.核心程式與模型
版本:MATLAB2022a
Simulink模型如下:
模糊規則透過MATLAB程式設計實現,核心程式如下:
% 新增輸入變數E及其隸屬度函式 FIS = addvar(FIS,'input','E',[-100 100]); % 新增E的負向隸屬度函式 FIS = addmf(FIS,'input',1,'Negative','gaussmf',[70 -100]); % 新增E的正向隸屬度函式 FIS = addmf(FIS,'input',1,'Positive','gaussmf',[70 100]); % 新增輸入變數CE及其隸屬度函式 FIS = addvar(FIS,'input','CE',[-100 100]); % 新增CE的負向隸屬度函式 FIS = addmf(FIS,'input',2,'Negative','gaussmf',[70 -100]); % 新增CE的正向隸屬度函式 FIS = addmf(FIS,'input',2,'Positive','gaussmf',[70 100]); % 新增輸出變數u及其隸屬度函式 FIS = addvar(FIS,'output','u',[-200 200]); % 新增u的最小值常量函式-200(min)函式負向端點是-200,正向端點是-200。 FIS = addmf(FIS,'output',1,'Min','constant',-200); % 新增u的零點常量函式,正向端點是0,負向端點是0 FIS = addmf(FIS,'output',1,'Zero','constant',0); % 新增u的最大值常量函式,正向端點是200,負向端點是200 FIS = addmf(FIS,'output',1,'Max','constant',200); %模糊規則 ........................................................... FIS = addrule(FIS,ruleList); 0001
4.系統原理簡介
基於模糊PID的直流電機控制系統是一種先進的控制策略,它結合了模糊邏輯和傳統PID控制器的優點,以提供更優的控制效能。這種控制系統在許多領域,特別是在直流電機控制中,得到了廣泛的應用。
模糊PID控制器是一種將模糊邏輯與常規PID控制器相結合的智慧控制器。它利用模糊邏輯的推理能力,根據不同的輸入值,動態調整PID控制器的引數,以達到更好的控制效果。
在模糊PID控制系統中,首先透過模糊化模組將輸入的誤差和誤差變化率轉換為模糊量。然後,根據模糊推理規則,對這些模糊量進行推理,得出相應的控制輸出。最後,將這個模糊控制輸出轉換為實際的控制輸出,實現對被控物件的控制。
4.1 PID控制器
比例-積分-微分(PID)控制是工業中最常用的控制演算法,在工業控制中已被普遍接受。 PID 控制器的流行部分歸因於它們在各種操作條件下的穩健效能,部分歸因於它們的功能簡單性,這使工程師能夠以簡單、直接的方式操作它們。
PID演算法由三個基本系陣列成; 比例,積分和微分,它們是變化的以獲得最佳響應。 本文討論了閉環系統、經典 PID 理論和調節閉環控制系統的效果。 還討論了 LabVIEW 中的 PID 工具集以及這些 VI 的易用性。
PID 控制器是一種線性控制器,它根據給定值與實際輸出值構成控制偏差。將偏差的比例§、積分(I)和微分(D)透過線性組合構成控制量,對被控物件進行控制,故稱 PID 控制器,原理框圖如圖所示。
4.2模糊化模組
在模糊PID控制系統中,誤差和誤差變化率是輸入量。它們可以透過相應的函式轉換為模糊量。通常,誤差和誤差變化率可以使用以下公式進行計算:
誤差:e = r - y
誤差變化率:ec = (e(t) - e(t-1)) / T
其中,r是參考輸入,y是被控物件的輸出,T是取樣時間。
4.3 模糊推理模組
模糊推理模組是模糊PID控制系統的核心部分。它根據不同的輸入模糊量,透過模糊推理規則得出相應的控制輸出。在模糊PID控制系統中,通常使用以下模糊推理規則:
IF e is A and ec is B THEN u is C
其中,A、B和C是模糊集合,u是控制輸出。這些模糊集合可以根據實際情況進行定義。
4.4 解模糊模組
解模糊模組是將模糊控制輸出轉換為實際控制輸出的模組。它通常使用中心平均法或最大值法進行解模糊操作。中心平均法是透過計算每個可能輸出值的中心平均值來得出實際輸出值。最大值法是透過選擇所有可能輸出值中的最大值來得出實際輸出值。