智能控制神经网络的自适应PID控制器综述
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
HUNAN UNIVERSITY
2016 年6 月 25 日
课程 智能控制理论
题
目 基于神经网络的自适应PID
控制器的设计
学生姓名 学生学号 专业班级 学
院
名
称
基于神经网络的自适应PID控制器的设计
摘要
神经网络由于其固有的自学习、自适应、自组织和大规模并行处理能力,已经在控制及其优化领域取得了广泛的应用。
利用神经网络来可以处理控制系统的非线性、不确定性和逼近系统的辨识函数等问题并取得了大量研究成果。
PID控制是最经典的控制算法,其简单、稳定、高效的性能使其在工业控制领域具有绝对的统治地位。
但是面对现代控制系统规模大,复杂度高的情况,单纯使用传统的PID控制已经无法满足要求。
本文结合神经网络与PID两者的优势,提出了一种基于神经网络的自适应PID控制器的设计的方法。
实验证明该方法具有一定的实际应用价值。
近年来,智能控制在工业领域的应用受到了广泛的关注,硬件性能的不断提高与硬件成本的不断降低起到了至关重要的作用。
目前在工业中单纯使用传统的控制方法具有一定的局限性,在面对复杂系统与大规模控制的情况下不能保证在任何时刻都提供准确无误的控制信号,将传统的PID控制方法结合智能控制中的神经网络控制可以克服信息的不完备性和不确定性,更加准确地控制被控对象,从而做出正确的判断和决策。
1.神经网络控制
神经网络用于控制系统设计主要是针对系统的非线性、不确定性和复杂性进行的。
资料显示,国内外将神经网络用于控制系统设计的方式和结构还未有一种统一的分类方法。
目前,对神经网络控制系统比较公认地研究方向可以分为监督控制、神经自适应控制、预测控制和逆控制,这时根据控制系统的结构划分的。
本文利用到的就是神经自适应控制。
本文结合神经网络自适应控制与PID控制,提出了一种有效的控制器设计方法,并在在MA TLAB中进行控制系统仿真。
2.控制器原理
根据当前产生误差的输入和输出数据,以及误差的变化趋势作为神经网络的输入条件,神经网络将根据当前PID控制器的误差情况以及过去所有进行的PID控制历史数据,共同作为样本数据,重新进行神经网络的参数的训练,得到神经网络内部传递函数的新的表达式,之后PID参数调整将依据新的神经网络进行自动的控制和调整,从而以实现PID控制器具备自适应调节的能力。
图2-1 单神经元自适应PID控制实现原理图
为此设计了PID控制器实现原理图,如图2-1所示。
从图2中可以看出PID控制器在完成正常PID功能之外设计了基于神经网络的PID参数调整模块。
模块依照前期生成的神
经网络对PID 的控制参数进行自动化的调整,而在设计的神经网络也不是固定不变的,神经网络的一端将连接该PID 过去一段时间内的历史累计控制数据,而且该历史数据还将随着PID 控制器在新环境下的实际应用不断添加新的输入和输出的数据,从而确保历史数据所保存的数据关系都是PID 最近一段时间内的输入输出关系数据,此后,神经网络每进行下一的PID 参数调整之前都将启用这一阶段内的所有历史数据对神经网络的各个控制系数进行重新训练,生成最符合当前历史数据规律的神经网络传递系数。
由于设计的HD 控制器其参数调整依赖的是神经网络,因此可确保对PID 参数调整的准确性。
而神经网络又是依赖于最近一段时间PID 累计的历史数据进行控制,因此确保了设计的PID 控制器具有自适应参数调节的能力。
3.控制器设计
采用单神经元自适应PID 控制。
由具有自适应和自学习能力的神经元结构构成单神经元自适应智能PID 控制器,结构简单,并且可以使用环境变化,具有较强的鲁棒性。
单神经单元自适应PID 控制结构图如图2-1所示。
图3-1 单神经元自适应PID 控制结构图
图3-1所示转换器的输入反映被控过程及控制设定状态。
设in r 为设定值,out y 为输出值,经过转换器后转换为神经元的输入量,1x 、2x 、3x 等分别为
);
()()()();2()1(2)()();()();()(321k e k y k y k z k e k e k e k x k e k x k e k x r =-=-+--=∆==
设)3,2,1)((=i k u i 为对应于)(k x i 输入的加权系数,K 为神经元的比例系数,K>0。
单神经元的自适应PID 控制算法为
∑==∆3
1
)()(i i i k x u K k u
in
r 1x
2x 3x
u ∆对象 z
out
y +
k
1
-∑
在神经元学习过程中,权系数)(k u i 正比于递进信号)(k r i ,)(k r i 随过程进行缓慢衰减。
权系数学习规则如下:
)()()1()1(k r k u b k u i i i λ+-=+ (8-5)
)()()()(k x k v k z k r i i = (8-6)
式中,b 为常数,b>0;λ为学习速率,λ>0;)(k z 为输出误差信号,是教师信号。
)()()(z k y k y k r -= (8-7)
将式(8-6)带入(8-7)后,有 )]()()()([)(k x k v k z b
k u b k u i i i λ
--=∆ (8-8)
式子中:
)
()1()(k u k u k u i i i -+=∆
如果存在一个函数)](),(),(),([k x k v k z k u f i i i ,则有
)](),(),([)(k x k v k z b
k u u f i i i i i γλ
-=∂∂ 则(8-8)可写为
)
()(k u f k u i i
i ∂∂-
=∆ (8-9)
式(8-9)表明,)(k u i 加权系数的修整按函数)(∙i f 对应于)(k u i 的负梯度方向进行搜索。
应用随机逼近理论可以证明,当c 充分小时,使用上述算法,)(k u i 可收敛到某一稳定值,且其与期望值的偏差在允许范围内。
为了保证上述单神经元自适应PID 控制学习算法的收敛性与鲁棒性,可对学习算法进行如下规范化处理:
);
()()()()1();()()()()1();()()()()1(;
)
()
()();
()()1()(33322211113
1
3
1
k x k v k z k u k u k x k v k z k u k u k x k v k z k u k u k u k u k u k x k u k k v k v D P i i i i i i λλλ+=++=++=+=
+-=∑∑==
式中,I λ、P λ、D λ为积分、比例、微分的学习速率。
)2()1(2)()()();()();()(2321-+--=∆=∆==k e k e k e k k x k e k x k e k x
单神经元自适应PID 算法的运行效果与可调参数K 、I λ、P λ、D λ的选取有关。
4 仿真与测试
为了能够对设计的自适应HD 控制器的性能进行评估,通过Matlab 仿真工具建立了PID 控制器模拟仿真条件,并实现对神经网络训练过程以及神经网络的控制的参数调整控制过程进行了模拟仿真,仿真过程中重点测试PID 控制器对阶跃信号的响应能力,以及PID 控制器自适应的调整能力,测试结果如下所示:
实验1,当参数设定为K=1.0,P λ=200,I λ=0.35,D λ=0.40时,系统阶跃响应如图4-1所示,系统阶跃误差变化如图4-2所示。
图4-1 系统阶跃响应 图4-2 系统阶跃误差变化
实验2,当参数设定为K=1.0,P λ=200,I λ=0.8,D λ=0.40时,系统阶跃响应如图4-3所示,系统阶跃误差变化如图4-4所示。
图4-3 系统阶跃响应 图4-4 系统阶跃误差变化
可调参数K,P λ,I λ,D λ密切的影响着单神经元PID 学习算法的运行效果,在通过大量的实验进行仿真分析后发现K 是系统最敏感的参数。
K 值的变化,相当于P 、I 、D 这三项系数同时变化,实验时候应该谨慎选择K 的参数,若K 过大,则会出现较大超调,且会出现多次正弦衰减现象,这时就应首先减小K 的值。
对阶跃输入,若超调在允许范围内然而被控对象出现多次正弦衰减现象,则应该减小P 的值,其他参数不变。
实验3,当参数设定为K=3.0,P λ=200,I λ=0.8,D λ=0.40时,系统阶跃响应如图4-5所示,系统阶跃误差变化如图4-6所示。
图4-5 系统阶跃响应 图4-6系统阶跃误差变化
实验4,当参数设定为K=1.0,P λ=200,I λ=0.8,D λ=0.40时,系统阶跃响应如图4-7所示,系统阶跃误差变化如图4-8所示。
图4-7 系统阶跃响应 图4-8系统阶跃误差变化 四组使用的系统阶跃响应的比较如图4-9所示:
实验1 实验2
实验3 实验4 由于设计的PID控制器其参数调整依赖的是神经网络,因此可确保对PID参数调整的准确性。
而神经网络又是依赖于最近一段时间PID累计的历史数据进行控制,因此确保了设计的PID控制器具有自适应参数调节的能力。
将PID控制器应用在四个不同的应用环境,检测PID控制器输出结果的稳定性,实验过程中采取PID控制器产生的误差作为衡量PID控制器稳定的指标,如图4-9所示。
从图可以看出在四个不同应用环境中,PID控制器从一个应用环境进入到另一个应用环境时,只要K的值选取准确,超调量可以控制在合理的范围,很快PID控制器根据应用环境产生的误差自动的调整神经网络的相关系数,并实现对PID控制器的精确调整,从而使得误差在此趋近于0,因此这一实验也表明所设计的PID控制器具有很强的自适应能力。
5 总结
神经网路通过模拟大脑的思维过程,因此具有很强的智能化程度,而且随着计算机和各种嵌入式设备的计算能力越来越强,使得应用神经网路来解决各种非线性问题在复杂度上成为可能,设计的基于神经网络的自适应PID控制器,利用神经网络内部大量的线性方程式来模拟非线性应用领域中的各种现实问题,能够做到对PID控制器参数的自适应调整,而且仿真测试也验证了应用神经网络实现PID控制参数具有很强的自适应能力,在今后的研究过程中,将可以考虑应用中间层数和节点数更为庞大的神经网络,以提高神经网络的控制精度,进一步提高自适应PID控制器的综合性能。
参考文献
[1] 王敬志,任开春,胡斌.基于BP神经网络整定的PID控制[J].工业控制计算机,2011,24(3):72-73.
[2] 彭燕.基于BP神经网络的PID控制在温室控制系统中的应用[J].农机化研究,2011,33(6):163-167.
[3] 张义,左为恒,林涛.BP神经网络PID控制在空调系统中的应用[J].计算机仿真,2011,28(4):149-151.
[4] 陈益飞.RBF神经网络的PID控制研究与仿真[J].计算机仿真,2011,28(4):212-215.
附录
为证明本文原创性与实验结果的真实性,放上本文提出的神经网络自适应PID控制器的源代码。
function outRes = ANN_PID(input )
%ANN_PID Summary of this function goes here
% Detailed explanation goes here
if input>0
outRes=0;
else
clear all;
close all;
ts=1;
sys=tf(10,[37156.3,810.2,1]);
dsys=c2d(sys,ts,'z');
[num,den]=tfdata(dsys,'v');
x=[0,0,0]';
xiteP=400;%P
xiteI=0.8;%I
xiteD=0.4;%D
wkp_1=0.10;
wki_1=0.10;
wkd_1=0.10;
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=1;
for k=1:1:5000
time(k)=k*ts;
rin(k)=1;
yout(k)=-den(2)*y_1-den(3)*y_2+num(2)*u_1+num(3)*u_2;
error(k)=rin(k)-yout(k);
wkp(k)=wkp_1+xiteP*u_1;
wki(k)=wki_1+xiteI*u_1;
wkd(k)=wkd_1+xiteD*u_1;
K=1;%K是系统最敏感的参数
x(1)=error(k)-error_1;
x(2)=error(k);
x(3)=error(k)-2*error_1+error_2;
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+K*w*x;
if u(k)>K
u(k)=K;
end
if u(k)<-K
u(k)=-K;
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);
wkd_1=wkd(k);
wki_1=wki(k);
end
figure(1);
plot(time,rin,'r',time,yout,'b');
xlabel('时间/sec');
ylabel('rin,yout');
figure(2);
plot(time,error,'r');
xlabel('时间/sec');
ylabel('偏差');
figure(3);
plot(time,rin,'r');
xlabel('时间/sec');
ylabel('u');
outRes=1;
end。