資源簡介
本程序基于PD神經網絡實現了自整定PID功能,可移植到嵌入式系統。效果良好,整定迅速
代碼片段和文件信息
clear?all;
clc
x?=?[000]‘;?%定義輸入矩陣
xiteP?=?0.4;??%定義學習速率
xiteI?=?0.35;?
xiteD?=?0.4;
wkp_1?=?0.1;?%初始化權重
wki_1?=?0.1;
wkd_1?=?0.1;
erro_1?=?0;?%初始化誤差
erro_2?=?0;
y_1?=?0;y_2?=?0;y_3?=?0;?%初始化被控對象模型
u_1?=?0;u_2?=?0;u_3?=?0;
ts?=?0.001;?%定義時間步長
for?k=111000?%循環迭代
????time(k)?=?kts;?%時間為Kts總時間也就是1
????yd(k)?=?1;?%目標值
????if?k==100
????????y(k)?=?0.368y_1+0.264y_2+0.1u_1+0.632u_2+0.2;?%當迭代到100次加入擾動0.2
????else
????????y(k)?=?0.368y_1+0.264y_2+0.1u_1+0.632u_2;?%被控對象模型
????end
????erro(k)?=?yd(k)-y(k);?%獲取誤差
????
????wkp(k)?=?wkp_1+xitePerro(k)u_1x(1);?%更新權重
????wki(k)?=?wki_1+xiteIerro(k)u_1x(2);
????wkd(k)?=?wkd_1+xiteDerro(k)u_1x(3);
????K?=?0.12;?%定義比例系數
????
????x(1)?=?erro(k)-erro_1;?%給輸入矩陣賦值
????x(2)?=?erro(k);
????x(3)?=?erro(k)-2erro_1+erro_2;
????
????wadd(k)?=?abs(wkp(k))
- 上一篇:最小二乘支持向量機程序代碼
- 下一篇:一維光子晶體透射率
評論
共有 條評論