求一谢Matlab的编程例题,是关于BP神经网络的PID温度控制。 请发送到xlx1988@163.com中。

 我来答
胡谷柔
2011-05-14 · TA获得超过890个赞
知道小有建树答主
回答量:654
采纳率:0%
帮助的人:0
展开全部
其实只需要PID参数能够顺利确定就行了,这里有个程序,你试试看
close all
clear all
clc
tic
%初始化
x=[0;0;0];
xiteP=0.4;
xiteI=0.3;
xiteD=0.4;
K=0.15;%很关键,越大,快速性越好,但超调量大,甚至不稳定。
wkp_1=rand;
wki_1=rand;
wkd_1=rand;
error_1=0;
error_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=1:1000
time(k)=k*ts;
rin(k)=1.0*sign(sin(2*2*pi*k*ts)); %参考信号rin(k)=1.0*sgn(sin(4*pi*t))
yout(k)=0.368*y_1+0.26*y_2+0.1*u_1+0.632*u_2;%被控对象y(k)=0.368y(k-1)+0.26y(k-2)+0.1u(k-1)+0.632
error(k)=rin(k)-yout(k);
%偏差和控制量求取
x(1)=error(k)-error_1; %P
x(2)=error(k); %I
x(3)=error(k)-2*error_1+error_2; %D
wkp(k)=wkp_1+xiteP*error(k)*u_1*(2*error(k)-error_1);
wki(k)=wki_1+xiteI*error(k)*u_1*(2*error(k)-error_1);
wkd(k)=wkd_1+xiteD*error(k)*u_1*(2*error(k)-error_1);
wadd(k)=abs(wkp(k))+abs(wki(k))+abs(wkd(k));
w11(k)=wkp(k)/wadd(k);
w22(k)=wki(k)/wadd(k);
w33(k)=wkd(k)/wadd(k);
w=[w11(k),w22(k),w33(k)];
u(k)=u_1+0.15*w*x;
%输入限幅
if u(k)>10
u(k)=10;
end
if u(k)<-10
u(k)=-10;
end
%更新参数
error_2=error_1;
error_1=error(k);
u_3=u_2;
u_2=u_1;
u_1=u(k);
y_3=y_2;
y_2=y_1;
y_1=yout(k);
wkp_1=wkp(k);
wki_1=wki(k);
wkd_1=wkd(k);
end
figure
plot(time,rin,'b',time,yout,'r')
title('跟踪效果图');
xlabel('time(s)');
ylabel('rin,yout');
figure
subplot(2,1,1);
plot(time,error)
title('偏差曲线');
xlabel('time(s)');
ylabel('error');
hold on
subplot(2,1,2);
plot(time,u)
title('控制曲线');
xlabel('time(s)');
ylabel('u');
hold on
toc
迪凯特科技(北京)有限公司
2023-07-28 广告
单片机串口通信的原理是利用单片机的串口通信模块,通过把数据转化为一位一位的用时序方式传送数据,实现单片机与外部设备之间的数据通信。 串口通信的概念非常简单,串口按位(bit)发送和接收字节。尽管比按字节(byte)的并行通信慢,但是串口可以... 点击进入详情页
本回答由迪凯特科技(北京)有限公司提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式