資源簡介
項目中運用的模糊PID的算法仿真實驗和搜集的關于PID各個方向的碩士參考論文,基本包括PID的各個方向:自整定,變論域模糊PID……還有部分模糊PID的c語言源碼。

代碼片段和文件信息
%模糊pid程序
clear?all;
a=readfis(‘sanjiao‘);%讀取模糊推理的參數
%%?傳遞函數定義部分
ts=1;??%采樣周期
s=tf(‘s‘);
sys=tf(0.2048[200.91]‘inputdelay‘12.97);??%傳遞函數表達式
dsys=c2d(systs‘z‘);??%將連續的時間模型轉換成離散的時間模型
[numden]=tfdata(dsys‘v‘);??%獲得離散還建模型的分子分母矩陣
%%?模糊PID參數設定
u_1=0.0;u_2=0.0;u_3=0.0;u_5=0;u_4=0;u_6=0;u_7=0;u_8=0;u_9=0;u_10=0;u_11=0;u_12=0;u_13=0;u_14=0;??
y_1=5;??%初始環境溫度設定
y_2=0;y_3=0;
x=[000]‘;??%誤差/累加誤差/誤差積分初始化
error_1=0;??%上一時刻溫差初始化
e_1=0.0;??%誤差初始化
ec_1=0.0;??%誤差變化率初始化
%%?PID參數初值初始值
kp0=33;
ki0=0.00001;
kd0?=150;?
%%?升溫過程
for?k=1:1:1000
time(k)=k*ts;?
rin(k)=40;??%設定溫度值
%解模糊部分
k_pid=evalfis([e_1ec_1]a);??%計算模糊推理輸出KP.KI.KD參數增量
????kp(k)=kp0+k_pid(1);?%Kp解模糊結果(注釋掉解模糊結果得到普通PID)
????ki(k)=ki0+k_pid(2);?%Ki解模糊結果
????kd(k)=kd0+k_pid(3);?%Kd解模糊結果
yout(k)=den(1)*y_1+num(2)*u_13+num(1)*u_14;??%z變換后的離散對象(z變換見word注釋)
%輸入參數及使用參數計算
error(k)=rin(k)-yout(k);??%輸入溫度差
x(1)=error(k);???%x為輸入溫度差
x(2)=error(k)-error_1;??%誤差變化率計算
x(3)=x(3)+error(k);??%累計誤差計算
%%?積分分離PID開關選擇,有利于減小超調量
%M=1不使用積分分離,M=2使用分段式積分分離PID,M=3使用開關式積分分離
M=1;
if?M==3??%開關式積分分離
????if?abs(error(k)>=1)
????????beta=0;
????else?beta=0.9;
????end
end
if?M==2;??%分段式積分分離PID
????if?abs(error(k)>=30&abs(error(k)<=40))beta=0.000000001;
????elseif?abs(error(k)>=20&abs(error(k)<=30))beta=0.000001;
????????elseif?abs(error(k)>=5&abs(error(k)<=20))beta=0.00002;
????????????elseif?abs(error(k)>=0&abs(error(k)<=5))beta=0.00005;
????else?beta=0;
????end
????
else?if?M==1;??%無積分分離PID
?????????beta=1;
????end
end
%%?實時輸出功率計算
u(k)=kp(k)*x(1)+kd(k)*x(2)+ki(k)*x(3)*beta;%實時輸出功率功率
%?if?k==2000;??%增加擾動測試抗擾動性能
%?u(k)=-2000;
%?end
%?if?u(k)>1000;??%功率限幅有利于減小超調量
%?????u(k)=1000;
%?end
%%?迭代過程????????
u_14=u_13;
u_13=u_12;
u_12=u_11;
u_11=u_10;
u_10=u_9;
u_9=u_8;
u_8=u_7;
u_7=u_6;
u_6=u_5;
u_5=u_4;
u_4=u_3;
u_3=u_2;
u_2=u_1;
u_1=u(k);
y_3=y_2;
y_2=y_1;
y_1=yout(k);
e_1=x(1);
ec_1=x(2);
error_2=error_1;
error_1=error(k);?
end
%%?畫圖部分
showrule(a);
%timerin‘b‘
figure(1);
plot(timerin‘b:‘‘LineWidth‘1.5)
hold?on;
plot(timeyout‘r‘‘LineWidth‘2);
hold?on;
xlabel(‘時間/s‘);ylabel(?‘實時溫度曲線/℃‘);
legend(‘設定溫度‘‘模糊PID‘);
title(‘溫度變化曲線圖‘);
grid?on;
hold?on;
figure(2);plot(timekp‘r‘‘LineWidth‘1.5);
xlabel(‘時間/s‘);ylabel(?‘Kp值?‘);
title(‘Kp變化曲線圖‘);
grid?on;
figure(3);plot(timeki‘g‘‘LineWidth‘1.5);
xlabel(‘時間/s‘);ylabel(?‘Ki值?‘);
title(‘Ki變化曲線圖‘)
grid?on;
figure(4);plot(timekd‘b‘‘LineWidth‘1.5);
xlabel(‘時間/s‘);ylabel(?‘Kd值?‘);
title(‘Kd變化曲線圖‘)
grid?on;
figure(5);plot(timeu‘m‘‘LineWidth‘1.5);
xlabel(‘時間/s‘);ylabel(?‘輸出PWM?‘);
title(‘實時輸出功率‘)
grid?on;
figure(6);
plotfis(a);%繪制模糊推理系統的推理過程結構框圖此處可以進行模糊PID的參數修改,在第3行讀取模糊PID參數修改讀取名字即可
fuzzy?sanjiao.fis
%%?以下為響應性能指標評價
%誤差泛函數指標,4項指標越小越好
k=1:1:1000;
IAE=trapz(kabs(error(k)))?????????%?IAE?
ISE=trapz(kerror(k).^2)???????????%?ISE?
ITAE=trapz(kk.*abs(error(k)))?????%?ITAE
ITSE=trapz(kk.*(error(k).^2))?????%?ITSE
%%?傳
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2019-12-18?10:50??PID碩士期刊論文及源碼\
?????目錄???????????0??2019-12-17?23:49??PID碩士期刊論文及源碼\Matlab仿真源碼\
?????文件??????456206??2019-12-17?23:47??PID碩士期刊論文及源碼\Matlab仿真源碼\Matlab仿真程序說明.docx
?????目錄???????????0??2019-12-17?23:24??PID碩士期刊論文及源碼\Matlab仿真源碼\模糊PID\
?????文件????????4373??2019-12-17?21:57??PID碩士期刊論文及源碼\Matlab仿真源碼\模糊PID\fuzzy_PID.m
?????文件????????2342??2019-11-09?19:07??PID碩士期刊論文及源碼\Matlab仿真源碼\模糊PID\sanjiao.fis
?????文件??????493694??2019-12-17?23:18??PID碩士期刊論文及源碼\Matlab仿真源碼\模糊PID\模糊PID參數性能影響.pptx
?????文件?????????166??2019-12-17?22:27??PID碩士期刊論文及源碼\Matlab仿真源碼\模糊PID\說明.txt
?????目錄???????????0??2019-12-17?23:50??PID碩士期刊論文及源碼\Matlab仿真源碼\遺傳整定模糊PID\
?????文件????????5387??2019-12-17?23:14??PID碩士期刊論文及源碼\Matlab仿真源碼\遺傳整定模糊PID\ga_fuzzy_pid.m
?????文件????????2342??2019-11-09?19:07??PID碩士期刊論文及源碼\Matlab仿真源碼\遺傳整定模糊PID\sanjiao.fis
?????文件????????2188??2019-12-04?00:53??PID碩士期刊論文及源碼\Matlab仿真源碼\遺傳整定模糊PID\subprogram.m
?????文件?????????234??2019-12-17?23:24??PID碩士期刊論文及源碼\Matlab仿真源碼\遺傳整定模糊PID\說明.txt
?????文件??????852303??2019-12-17?23:20??PID碩士期刊論文及源碼\Matlab仿真源碼\遺傳整定模糊PID\遺傳整定PID參數影響.pptx
?????文件?????????112??2019-12-18?10:52??PID碩士期刊論文及源碼\完整項目百度網盤鏈接.txt
?????目錄???????????0??2019-12-17?23:28??PID碩士期刊論文及源碼\項目核心C源碼\
?????文件????????7642??2016-09-02?14:18??PID碩士期刊論文及源碼\項目核心C源碼\pid_fuzzy.c
?????文件?????????542??2016-09-02?14:18??PID碩士期刊論文及源碼\項目核心C源碼\pid_fuzzy.h
?????文件??????????54??2019-12-17?23:29??PID碩士期刊論文及源碼\項目核心C源碼\說明.txt
- 上一篇:C語言開發簡單的學生成績管理系統
- 下一篇:mfc實現八皇后問題
評論
共有 條評論