发动机-传动电机的转速控制(BP+PID)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
目录
一、设计题目 (1)
二、系统的工作原理 (2)
三、BP神经网络 (3)
3.1BP神经网络结构 (3)
3.2BP网络学习算法 (4)
四、基于BP神经网络的PID控制器 (6)
4.1PID控制器 (6)
4.2基于BP神经网络的PID控制器 (7)
五、程序代码及结果分析 (10)
5.1程序代码 (10)
5.2仿真结果 (13)
六、结论 (15)
一、设计题目
柴油-电力机车传动电机的转速控制
柴油机有着十分广泛的用途,它可用来驱动内燃机车的传动电机,从而保证重型列车的正常运行。
但是柴油机的工作效率对转速非常敏感,因此为了提高其工作效率,应该控制传动电机的转速。
图中给出了柴油内燃机车的电力传动模型。
图1-1 转速控制模型
移动输入电位计的游标,可设置控制阀的位置,从而设定传动电机的预期转速w r 。
负载转速w 0是受控变量,其实际值由测速机测量。
测速机由电机轴上的皮带驱动,其输出电压v 0是系统的反馈变量。
由于输入电位计提供了预期参考电压,由此可求得参考电压与反馈电压间的偏差为( v r - v 0 )。
放大器将偏差电压放大后,生成电压信号v f ,并用作直流发电机的线圈磁场电压。
在电力传动系统中,柴油机的输出转速恒为w q ,直流发电机由柴油机驱动,其输出电压V g 是电枢控制直流电机的驱动电压。
此外电枢控制直流电机的励磁磁场电流i 也保持恒定不变。
在上述条件下,由于V R 的作用,直流电机将产生力矩T ,并使负载转速w 0逐渐趋近于预期转速w r 。
已知:
● 电机的反电动势系数为Kb =31/50;
● 与电机有关的参数为J=1,b=1,La=0.2,Ra=1; ● 发电机有关的参数为励磁电阻Rf=1,励磁电感Lf=0.1,Lg=0.1,Rg=1;
柴油机 w r
v r
v 0
v d 常量
放大器
i f L f R f
i a L a R a
发电机
电机
测速机
负载w 0,J ,b
v f
V g
● 测速机增益Kt=1;
●
发电机常数Kg ,电机常数Km 自定;
二、系统的工作原理
本系统利用移动输入电位计的游标,可设置控制阀的位置,从而设定传动电机的预期转速w r ,在移动输入电位计两端加有电源,每当游标移动一定距离,电位计上输出电压也跟随变化,该变化的电压(由输入电位计提供的的预期参考电压)与电动机反馈回来的电压值v 0进行比较,得到一个电压差v r - v 0。
电压差V 1输入运算放大器K ,根据放大器“虚短”与“虚亏”方法,放大器K 的放大系数为540,电压差V 1经过放大器K 放大后输出电压信号V 2,并用作直流发电机的线圈磁场电压。
在电力传动系统中,柴油机的输出转速恒为w q ,直流发电机由柴油机驱动,其输出电压V g 是电枢控制直流电机的驱动电压,直流电机带动负载转动并由测速机测量其实际转速w 0。
测速机由电机轴上的皮带驱动,其输出电压v 0是系统的反馈变量。
此外电枢控制直流电机的励磁磁场电流i 也保持恒定不变。
其中,控制系统的被控对象是电动机,发电机;被控量是电压;系统的输入量为转速w r ,输出量为转速w 0;给定量是移动输入电位计,功率放大器K ,测速发电机。
系统模型及结构图如下:
图 2-1 系统模型
图2-2 系统结构图
1()
G s 2()G s
3()G s 4()G s 1()
G s 0(t)
系统传递函数求解:
由上述框架结构图可以看出该系统为一个四阶系统,为求解方便将其化简成一个二阶系统(除去不大的极点),其结构框图如下图2.3:
图2-3 化简后的系统传递函数结构图
简化思路如下:由于励磁电感远小于励磁电阻,故励磁电感可以忽略。
建立系统的数学模型和传递函数一般表达式:
比较电路 V1=Vr-V0;(Vr 输入电压,V1为偏差电压) 回馈电路 电机的反电动势系数为Kb =31/50; 放大电路 V 10=1.5(正常工作点);V 2=2e 3v 1 发电机电路:
0.11
Kg
S +
电机电路:
1
Km
S +
测速电路:测速机增益Kt=1; 所以系统的开环传递函数为:
5400*(10)(10.62)
Kg Km
G s s Km =
+++
系统的闭环传递函数为:
5400*()(10)(10.62)5400*Kg Km
G c s s Km Kg Km
=
++++
三、BP 神经网络
3.1 BP 神经网络结构
大脑是一部不寻常的智能机,它能以惊人的高速度解释感觉器官传来的含糊不清的信息。
它能觉察到喧闹房间内的窃窃私语,能够识别出光线暗淡的胡同中的一张面孔,更能通过不断地学习而产生伟大的创造力。
所谓神经网路系统是利
用工程技术手段模拟人脑神经网络的结构和功能的一种技术系统,它是一种大规模并行的非线性动力学系统。
严格地讲神经网络应该称为人工神经网络,为了简化起见,一般省略人工二字直接称神经网络,可简记为 NN (Neural Network )。
由于神经网络具有信息的分布存储、并行处理以及自学习等优点,所以它在信息处理、模式识别,智能控制等领域有着广阔的应用前景。
人工神经网络的着眼点不是利用物理器件来完整的复制生物体中细胞网络,而是采纳其可利用的部分来解决目前计算机或其它系统不能解决的问题,如学习、识别、控制和专家系统等。
随着生物和认知科学的发展,人们对人脑的结构和认知过程的了解越来越深入,促进了人工神经网络技术的发展,越来越多的生物特性将被利用到工程中去。
X1X3
X2Y1Y2Y3
……
…
图3-1 BP 神经网络结构图
BP 神经网络结构如图3-1所示。
由图可见,BP 网络是一种具有三层或三层以上神经元的神经网络,包括输入层、中间层和输出层。
上下层之间实现全连接,而每层神经元之间无连接。
当一对学习样本提供给网络后神经元的激活值从输入层经中间层向输出层传播,在输出层的各神经元获得网络的输入响应。
接下来,按照减少目标输出与实际输出之间误差的方向,从输出层反向经过各中间层回到输入层,从而逐层修正各连接权值,这种算法称为“误差反向传播算法”,即BP 算法。
随着这种误差逆向的传播修正不断进行,网络对输入模式响应的正确率也不断上升。
与感知器不同的是,由于误差反向传播中会对传递函数进行求导计算,BP 网络的传递函数要求必须是可微的,所以不能使用感知器网络中的硬闭值传递函数,常用的有sigmoid 型对数、正切函数或线性函数。
由于传递函数是处处可微的,所以对BP 网络来说,一方面,所划分的区域不再是一个线性划分,而是由一个非线性超平面组成的区域,它是比较平滑的曲面,因而它的分类比线性划分更加精确,容错性也比线性划分更好;另一方面,网络可以严格采用梯度下降法进行学习,权值修正的解析式十分明确。
3.2 BP 网络学习算法
设有n 个输入节点1x ,2x ……n x ;q 个输出节点1y ,……n y ;网络层的隐含节点有p 个神经元。
输入层第i 个单元至隐含层第j 个单元连接权j i w ,。
隐含层第j 个单元至输出层第t 个单元连接权t j v ,。
隐含层各单元的阈值为j θ,输出层各个单元的阈值为t γ,在训练该网络的学习阶段,设有N 组训练样本,先假定
用其中的某一固定样本k 输入输出模式对网络进行训练。
输入层:n 个输入1x ,2x ……n x ;也就是输入样本。
中间层: j n
i i j i j x w s θ+=∑, (1)
()j j s S b =;j=1,2……p (2)
输出层:
()t t s S =C ;t=1,2,……q (3)
t j p
j t j t b v L γ+=∑=1
, (4)
为了模拟生物神经元的非线性特性,激励函数常选用s 函数 ()x
e x S -11
+=
(5) S 函数不但具有可微分性,而且具有饱和非线性特性,这又增强了网络的非线性映射能力。
S 函数的微分函数为:
()x S 。
=()()()x S x S -1 (6) 单元输出闭值是为模拟神经元的闭值电位而设置的,在网络的学习过程中,它和各连接权一样不断的被修正。
阂值的作用反应在S 函数的输出曲线上,使曲线向左平移了阂值大小的单位,它起到了调节神经元兴奋水平的作用。
定义第N 个标准模式的误差函数为:
()∑==q t t t k c y E 1
2
-21 (7)
学习过程按使误差Ek 减少最快的方向调整权值系数,直到获得满意的权值为止。
根据梯度下降原则使连接权t j v ,的调整量与
t
j k
v E ,∂∂的负值称比例,连接权的修正公式如下: t
j k
t j v E v ,,-∂∂=∆η
式中t=l ,2,.……q;j=l ,2,……p;0<η<1
()()j t t t t
j t
t k t j k t j b L S C d v C C E v E v '=∂∂∂∂=∂∂=∆---,,,ηηη (8)
相应的闭值公式为:
()()t t t t
t
t k t k L S C d C C E E '=∂∂∂∂=∂∂=∆---t ηγηγη
γ (9)
若连接权值不直接作用于输出层神经元,情况就有所不同了,但仍按梯度下
降法
j
i j j j j k j i j
i w s s b b E w E
w ,,,--∂∂∂∂∂∂=∂∂=∆η
η (10) ()j j
j s S s b '=∂∂ (11)
()[]()t j t t t j t
t t q t t k j k v L S C d b L L C C E b E ,q
1
t 1--'=∂∂∂∂∂∂=∂∂∑∑== (12) 于是
()()()i j t j t q
i t t j i x s S v L S C d w ''=∆∑=,1,-η (13)
同理
()()()j t j t q
i t t j s S v L S C d ''=∆∑=,1-ηθ (14)
BP 网络学习算法计算步骤如下: (l)初始化,置所有的连接权值
j
i w ,,
t
j v ,,
j
θ,
t γ为随机数
(2)提供训练集,即给出顺序赋值的输入向量k X 和期望的输出向量k d 。
(3)计算中间层和输出层的各神经元实际输出。
(4)计算期望输出与实际输出的偏差k E 。
(5)计算t j v ,∆和t γ∆,调整中间层至输出层的连接权和闭值。
(6)计算j i w ,∆和j θ∆,调整输入层至中间层的连接权和闭值。
(7)返回2,直至误差满意为止。
四、基于BP 神经网络的PID 控制器
4.1 PID 控制器
PID 控制器是一个在工业控制应用中常见的反馈回路部件。
这个控制器把
收集到的数据和一个参考值进行比较,然后把这个差别用于计算新的输入值,这个新的输入值的目的是可以让系统的数据达到或者保持在参考值。
和其他简单的控制运算不同,PID 控制器可以根据历史数据和差别的出现率来调整输入值,这样可以使系统更加准确,更加稳定。
可以通过数学的方法证明,在其他控制方法导致系统有稳定误差或过程反复的情况下,一个PID 反馈回路却可以保持系统
的稳定。
4.2基于BP 神经网络的PID 控制器
BP 神经网络具有逼近任意非线性函数的能力,而且结构和学习算法简单明了。
通过神经网络自学习的能力,可以找到某一最优控制规律下的P 、I 、D 参数。
基于BP 神经网络的PID 控制系统结构如图3-1所示。
控制器有两部分组成:(1)经典的PID 控制器,直接对被控对象过程闭环控制,并且三个参数Kp ,Ki ,Kd 为在线整定式;(2)神经网络NN:根据系统的运行状态,调节PID 控制的参数,以期望达到某种性能指标的最优化。
即使输出层神经元的输出状态对应于PID 控制器的三个参数Kp ,Ki ,Kd ,通过神经网络的自身学习、加权系数调整,从而使其稳定状态对应于某种最优控制规律下的PID 控制参数。
图4- 1基于BP 神经网络的PID 控制系统结构图
增量式PID 控制算法描述如下:
()()()()[]()()()()[]2-1-2-1--1-k e k e k e K k e K k e k e K k u k u d i p ++++= (15)
在上式中Kp 、Ki 、Kd 分别为比例、积分和微分系数;e(k)为系统实际输出和期望值之间的误差;u(k)为控制器的输出。
BP 神经网络的输入变量个数取决于被控系统的复杂程度,输出节点对应的是PID 的三个可调参数。
由于输出不能为负,所以输出层激活函数取非负的
sigmoid 函数(()()()x
x x
e e e x x g -tanh 121+=+=)隐含层取正负对称的Sigmoid 函数(()()x
x x
x e e e e x x f ---tanh +==)。
由此,我们构造一个三层BP 网络的结构为3-8-3
所设计出的三层BP 神经网络结构如图4-2所示:
Ki
Kp
Kd
X1X2
X3
i=5
X4
图4-2三层BP 神经网络结构图
图4-2中,网络输入层的输入、输出为:
j j x =(1)O (16)
其中,将网络的输入变量作为控制器的输入,即
()()()
()()()
2-1-2-1-k e -321k e k e k e x k e x k e x +=== (17)
网络隐含层的输入、输出为:
()()
()
k net f O O w k net
i i
M
j j i j
(2)i (2)(1)
0(2),(2)(k)==∑= (18)
式中,可,为隐含层加权系数;i=l ,2,…8;上角标(l)、(2)、(3)分别代表输
入层、隐含层、输出层。
网络输出层的输入、输出为:
()()
()(
)
d
(3)3i
(3)2p
(3)1(3)(3)(2)0
3(3)K (k)K (k)K (k)g (k)=====∑=O O O k net O k O w k net
l l i Q
i li l
(19)
式中,输出层输出节点分别对应三个可调参数Kp 、Ki 、Kd 。
取性能指标函数为:
()()()()2-2
1
k y k r k E =
(20)
一般地,按照梯度下降法修正网络的权系数,即按E(k)对加权系数的负梯度方
向搜索调整,并附加一使搜索快速收敛全局极小的惯性项
()()()1--(3)
(3)(3)
li
k w w k E k w li
li
∆+∂∂=∆αη (21) 式中,叮为学习速率,a 为惯性系数。
()()()()()()()k w u u y y k E w k E li li
(3)
(3)
l (3)l (3)l (3)l (3)k net k net k O k O (k)(k)(k)(k)∂∂∂∂∂∂∂∂∂∂=∂∂ (22) 又有
()()
()k O k w li (2)i (3)
(3)l k net =∂∂ (23) 则有
()()()()()()()()()()()()3(3)
3
2(3)
2
1(3)
12-1-k 2e -1-k e -x k e k e k O k u x k e k O k u x k e k O k u =+=∂∂==∂∂==∂∂ (24)
由于
()()
k u k y ∂∂未知,可以用一个BP 网络建立一个被控对象的辨识模型,再用
此模型去训练BP 网络控制器,以解决权值修正时导数项
()()
k u k y ∂∂的计算。
本文近似用符号函数
()()⎪⎪⎭
⎫ ⎝⎛∂∂k u k y sgn 取代,从而简化计算。
由此带来计算不精确
的影响可以通过调整学习速率来补偿。
上述分析可得网络输出层加权系数的学习算法为:
()()()()()()()()()()
k net g k O k u k u k y k e k O k w k w l i
i i li li
(3)
(3)l
(3)2(3)(3)(3)
sgn 1-'∂∂⎪⎪⎭⎫ ⎝⎛∂∂=+∆=∆δ
ηδα (25) 同理可得到隐含层加权系数的学习方法
()()()
()(
)()
∑='=+∆=∆3
1
(3)(3)l
(2)i
(2)i
(1)(2)(3)(2)
1-l li
j i ij li k w
k net
f k O k w k w δ
δ
ηδα (26)
式中,()()()()x g x g g -1=•',()()21-f f x '•=。
该控制器控制算法归纳如下: (l)确定BP 网络的结构,即确定输入层节点数M 和隐含层节点数Q ,并给出
各层加权系数的初值 ()0(2)
ij w 和 ()0(3)li w ,
选定学习速率η和惯性系数α,此时k=1。
(2)采样得到()k rink 和()k yout ,计算该时刻误差()()()k yout k rink k e -=。
(3)计算神经网络NN 各层神经元的输入、输出,NN 输出层的输出即为PID 控制
器的三个可调参数KP ,Ki ,Kd 。
(4)根据式4一17计算PID 控制器的输出u(l)。
(5)进行神经网络学习,在线调整加权系数()k w ij (2)
和()k w li (3),实现PID 控制
参数的自适应调整。
(6)置k=k+l ,返回到(2)。
五、程序代码及结果分析
5.1程序代码
clear all; close all;
%%%%%%%%%%%%%%%%%%%%% 系统参数赋初
值%%%%%%%%%%%%%%%%%%%%% xite=0.000001; %学习速率 alfa=0.15; %惯性系数 IN=4;H=5;Out=3;
%wi=0.50*rands(H,IN); %神经网络权值初始化 wi=[-0.6534 -0.2842 -0.3906 -0.7250; -0.8085 -0.1476 -0.4470 -0.1870; -1.0428 0.5876 -1.6474 -0.4955; -0.2832 0.0095 -0.5620 -0.1779; 0.4151 0.3087 -0.2521 -0.4145]; wi_1=wi;wi_2=wi;wi_3=wi; %wo=0.50*rands(Out,H);
wo=[ 0.7588 0.2628 0.5832 -0.1404 -0.1313; -0.1134 0.2961 0.8364 0.2217 0.4520; 0.7213 0.4578 0.7684 0.4974 0.3644]; wo_1=wo;wo_2=wo;wo_3=wo; x=[0,0,0];
u_1=0.0;u_2=0.0;u_3=0.0;u_4=0;u_5=0; %PID 输出赋初值,为方便后面的 y_1=0.0;y_2=0.0;y_3=0.0;y_4=0;y_5=0; %输出给0值 error_1=0;error_2=0; Oh=zeros(H,1);
I=Oh; %隐含层输入赋初值%%%%%%%%%%%%%%%%%%%%%%%% 计算%%%%%%%%%%%%%%%%%%%%%%%%%%
ts=0.09
for k=1:1:500
time(k)=k*ts;
rin(k)=200;
Kg=6;Km=4;
num=[5400*Kg*Km]; %Unlinear model
den=[1,11+0.62*Km,10+(6.2+5400*Kg)*Km];
sys=tf(num,den); %传递函数G(s)离散化
dsys=c2d(sys,ts,'z');
[num,den]=tfdata(dsys,'v');
yout(k)=-den(3)*y_2-den(2)*y_1+num(3)*u_2+num(2)*u_1; %输出y离散化
error(k)=rin(k)-yout(k);
xi=[error(k),error_1,error_2,1]; %输入层给值
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)));
end %隐含层活化函数tanhx变成了欧拉形式
K=wo*Oh; %输出层节点输入
for l=1:1:Out
K(l)=exp(K(l))/(exp(K(l))+exp(-K(l))); %输出层活化函数变成了欧拉氏求解
end
kp(k)=K(1);ki(k)=K(2);kd(k)=K(3); %得到kp,ki,kd参数值
Kpid=[kp(k),ki(k),kd(k)];
du(k)=Kpid*epid; %计算U(k)
u(k)=u_1+du(k);
%%%%%%%%%%%%%%%%%%%%% 反向修正%%%%%%%%%%%%%%%%%%%%%%%%%
% 输出层
dyu(k)=sign((yout(k)-y_1)/(u(k)-u_1+0.0000001));
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); % dJ/dWo
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+alfa*(wo_1-wo_2);
%隐含层
for i=1:1:H
dO(i)=4/(exp(I(i))+exp(-I(i)))^2;
end
segma=delta3*wo;
for i=1:1:H
delta2(i)=dO(i)*segma(i);
end
d_wi=xite*delta2'*xi;
wi=wi_1+d_wi+alfa*(wi_1-wi_2);
%数据更新,循环修正
u_5=u_4;u_4=u_3;u_3=u_2;u_2=u_1;u_1=u(k);
y_5=y_4;y_4=y_3;y_3=y_2;y_2=y_1;y_1=yout(k);
wo_3=wo_2;
wo_2=wo_1;
wo_1=wo;
wi_3=wi_2;
wi_2=wi_1;
wi_1=wi;
error_2=error_1;
error_1=error(k);
end
wi %找到较为合适的权值,缩小调整范围
wo
% %%%%%%%%%%%%%%%%%%%%%%% 绘图%%%%%%%%%%%%%%%%%%%%%%%%%%%%
figure(1);
plot(time,rin,'r',time,yout,'b');
xlabel('time(s)');ylabel('rin,yout'); %被控对象y
figure(2);
plot(time,error,'r');
xlabel('time(s)');ylabel('error'); %误差
figure(3);
plot(time,u,'r');
xlabel('time(s)');ylabel('u'); %pid输出u
figure(4);
subplot(311);
plot(time,kp,'r');
xlabel('time(s)');ylabel('kp'); %kp,ki,kd值
subplot(312);
plot(time,ki,'g');
xlabel('time(s)');ylabel('ki'); subplot(313); plot(time,kd,'b'); xlabel('time(s)'); ylabel('kd');
5.2仿真结果
图5-1
time(s)
r i n ,y o u t
图5-2
图5-3
20406080100
120140160time(s)
e r r o r
time(s)
u
图5-4
由上面几幅图可以看到,BP 神经网络PID 控制系统在5s 时刻期望输出与实际输出基本吻合,误差也接近于0,在性能上要优于常规PID 控制系统。
它能使控制系统各输出值较好的跟踪给定值,从而保证高精度、高品质的控制输出。
当受到外界环境干扰时,基于传统PID 控制器的输出值不能达到输出给定值,也不能达到稳定。
可基于BP 神经网络PID 控制器仿真输出值依旧能够达到输出给定值,并持续稳定。
综上所述,BP 神经网络PID 控制系统的优点主要在于:
首先,神经网络自整定PID 控制参数可以在线整定和优化,具有较强的自适应能力和鲁棒性。
其次,它达到稳定的过渡过程时间和上升时间短。
BP 神经网络PID 控制系统达到稳定的过渡过程时间和上升时间远远短于常规PID 控制系统达到稳定的过渡过程时间和上升时间。
最后,它的自适应能力强,不容易受到外界环境变化的干扰。
常规PID 控制系统在控制一个过程对象前,必须要整定PID 参数,而且在实际中,由于系统参数等会不时的发生变化,这样常规PID 控制系统很容易发生振荡,系统很难在较短的时间里达到最佳的控制效果。
但是BP 神经网络PID 控制系统由于PID 参数的在线整定,能够很快适应系统参数等发生的变化,从而可以较好的跟踪给定值。
这些都表明BP 神经网络PID 控制可以应用到很多工程控制中,对很多现实生活中的控制系统都有很好的控制性能。
六、结论
虽然传统的PID 控制具有结构简单、稳定性好、可靠性高等优点。
但是由于
传统的PID 控制方法本身存在的问题:首先,传统的PID 控制理论是建立在数学模型的基础上。
并且,传统的PID 控制理论对非线性系统尚缺乏通用的分析和设计方法。
还有,尽管传统PID 控制器具有一定的鲁棒性和适应性,但是对
time(s)
k p
time(s)
k i
time(s)
k d
于强非线性、快速时变不确定性、强干扰等特性的对象,控制效果较差。
这样就为基于神经网络PID控制创造了条件。
因此,将PID控制和BP神经网络相结合的控制策略的研究倍受学者关注。
比例、积分和微分神经元组成的PID神经网络具有快速学习能力和良好的性能;神经网络自整定PID控制参数可以在线整定和优化,具有较强的自适应能力和鲁棒性。
能够应用到很多工程控制系统中。