- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
MATLAB基于BP神经网络PID控制程序
%BP based PID Control
clear all;
close all;
xite=0.20; %学习速率
alfa=0.01; %惯性因子
IN=4;H=5;Out=3; %NN Structure
wi=[-0.6394 -0.2696 -0.3756 -0.7023;
-0.8603 -0.2013 -0.5024 -0.2596;
-1.0749 0.5543 -1.6820 -0.5437;
-0.3625 -0.0724 -0.6463 -0.2859;
0.1425 0.0279 -0.5406 -0.7660];
%wi=0.50*rands(H,IN); %隐含层加权系数wi初始化
wi_1=wi;wi_2=wi;wi_3=wi;
wo=[0.7576 0.2616 0.5820 -0.1416 -0.1325;
-0.1146 0.2949 0.8352 0.2205 0.4508;
0.7201 0.4566 0.7672 0.4962 0.3632];
%wo=0.50*rands(Out,H); %输出层加权系数wo初始化
wo_1=wo;wo_2=wo;wo_3=wo;
ts=20; %采样周期取值
x=[0,0,0]; %比例,积分,微分赋初值
u_1=0;u_2=0;u_3=0;u_4=0;u_5=0;
y_1=0;y_2=0;y_3=0;
Oh=zeros(H,1); %Output from NN middle layer 隐含层的输出
I=Oh; %Input to NN middle layer 隐含层输入
error_2=0;
error_1=0;
for k=1:1:500 %仿真开始,共500步
time(k)=k*ts;
rin(k)=1.0;
%Delay plant
sys=tf(1.2,[208 1],inputdelay,80); %建立被控对象传递函数?
dsys=c2d(sys,ts,zoh); %把传递函数离散化?
[num,den]=tfdata(dsys,v); %离散化后提取分子、分母
yout(k)=-den(2)*y_1+num(2)*u_5;
error(k)=rin(k)-yout(k);
xi=[rin(k),yout(k),error(k),1];
%经典增量式数字PID的控制算式为:
BP神经网络PID的控制算式为:
x(1)=error(k)-error_1; %比例输出
x(2)=error(k); %积分输出
x(3)=error(k)-2*error_1+error_2; %微分输出
epid=[x(1);x(2);x(3)];
I=xi*wi;% 隐含层的输入,即:输入层输入*权值
for j=1:1:H
Oh(j)=(exp(I(j))-exp(-I(j)))/(exp(I(j))+exp(-I(j))); %Middle Layer在激活函数作用下隐含层的输出
end
K=wo*Oh; %Output Layer 输出层的输入,即:隐含层的输出*权值
for l=1:1:Out
K(l)=exp(K(l))/(exp(K(l))+exp(-K(l))); %Getting kp,ki,kd 输出层的输出,即三个pid控制器的参数
end
kp(k)=K(1);ki(k)=K(2);kd(k)=K(3);
Kpid=[kp(k),ki(k),kd(k)];
du(k)=Kpid*epid;
u(k)=u_1+du(k);
if u(k)=10 % Restricting the output of controller 控制器饱和环节
u(k)=10;
end
if u(k)=-10
u(k)=-10;
end
%以下为权值wi、wo的在线调整,参考刘金琨的《先进PID控制》
dyu(k)=sign((yout(k)-y_1)/(u(k)-u_1+0.0000001));
%Output layer 输出层
for j=1:1:Out
dK(j)=2/(exp(K(j))+exp(-K(j)))^2;
end
for l=1:1:Out
delta3(l)=error(k)*dyu(k)*epid(l)*dK(l);
end
for l=1:1:Out
for i=1:1:H
d_wo=xite*delta3(l)*Oh(i)+alfa*(wo_1-wo_2);
end
end
wo=wo_1+d_wo+al
您可能关注的文档
最近下载
- 小学语文新部编版一年级上册全册教案(2025秋新版).doc
- 标准、规范、准则_BS EN 13751_2002 Foodstuffs -Detection of irradiated food using photostimulated luminescence.pdf VIP
- 2025年高考(北京卷)英语真题及答案.doc VIP
- BS EN 13751-2009 食品.用光致发光法探测辐照过的食品.pdf VIP
- 线上线下结合的医疗服务模式.pptx VIP
- 2025年中国高导热环氧塑封料行业市场分析及投资价值评估前景预测报告.docx VIP
- 第一章人工智能的前世今生.pptx VIP
- 农产品食品检验员国家职业技能标准(2019年版).docx
- GB 50010-2010 混凝土结构设计规范国家标准.pdf VIP
- 银行网点的经营与管理.ppt VIP
文档评论(0)