📄 10.htm
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0044)http://www.jgchina.com/ednns/ednnsbk/5.2.htm -->
<HTML><HEAD><TITLE>2.2 神经网络控制器与学习</TITLE>
<META http-equiv=Content-Type content="text/html; charset=gb2312">
<META content="MSHTML 6.00.2800.1106" name=GENERATOR>
<META content=FrontPage.Editor.Document name=ProgId><LINK
href="10.files/style.css" type=text/css rel=stylesheet></HEAD>
<BODY bgColor=#ffffff leftMargin=0 topMargin=0>
<TABLE height=2787 cellSpacing=0 cellPadding=0 width="100%" border=0>
<TBODY>
<TR>
<TD width="100%" height=15>
<P><A
href="http://www.jgchina.com/ednns/ednnsbk/director.htm">回目录</A>
<A
href="http://www.jgchina.com/ednns/ednnsbk/5.htm">上一页</A>
<A href="http://www.jgchina.com/ednns/ednnsbk/5.3.htm">下一页</A></P></TD></TR>
<TR>
<TD width="100%" height=10>
<P align=center>2.2 神经网络控制器与学习</P></TD></TR>
<TR>
<TD width="100%" height=465>
<P>在神经网络控制系统中,有时需要对对象进行仿真;所以,在系统中设置有神经对象仿真器NPE(Neural Plant
Emulator);同时,在系统中还有神经控制器NC(Neural
Controller)。不论对象仿真器PC,还是神经控制器NC,都需要学习;而对于控制系统中,联机学习是最重要的。在这一节中,介绍对象仿真器,神经控制器,学习训练的结构,联机学习方法及算法。
</P>
<P>2.2.1 对象仿真器及神经控制器</P>
<P>在控制中,大量采用多层前向神经网络。多层神经网络MNN(Multilayer Neural
Network)可以认为是一个有映射学习能力的结构。基于映射能力,得到两种通用的神经控制结构:即对象仿真器PE和神经控制器NC。</P>
<P>对于一个单输人单输出的过程,从数字控制技术可知有如下离散数学模型:</P>
<P>y(k+1)=f[y(k),y(k-1),......,y(k-P+1),u(k),u(k-1),......,u(k-Q)]
(2.15)</P>
<P>其中:y是输出,u是输入,k是离散时间系数,P,Q是正整数.f[·]是函数。</P>
<P>在很多情况中,对象的输入信号u是在幅度上范围有限的;既存在下限u<SUB>m</SUB>和上限u<SUB>M</SUB>对于任何k,有</P>
<P>u<SUB>m</SUB><SPAN
style="FONT-SIZE: 10.5pt; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">≤u(k)≤u<SUB>M
</SUB></SPAN>(2.16)</P>
<P>在描述对象的式(2.15)中,对应P,Q的估计值分别用P,q表示。</P>
<P>一、对象仿真器PE</P>
<P>对象仿真器PE的作用和意义如图2—7所示。其中,图2—7(a)表示PE在按制系统和对象之间的关系;图2—7(b)表示PE的框图。在图中u(k)Z<SUP>-1</SUP>和u(k-1)是一样的.z<SUP>-1</SUP>是延时算子,其意义是延时一拍,即延时一个采样周期。</P>
<P>从图中看出,用多层神经网络MNN组成的PE有p+q+1=m个输入,一个输出。它可以用于对式(2.15)描述的对象进行仿真。PE的映射功用<SPAN
style="FONT-SIZE: 10.5pt; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">Ψ</SPAN><SUB>E</SUB>(.)表示,输出用y<SUB>E</SUB>表示当输入为m维向量X<SUB>E</SUB>(k),且 </P>
<P>X<SUB>E</SUB>(k)=[y(k),......,y(k-p+1),u(k),......,u(k-q)]<SUP>T
</SUP>(2.17)</P>
<P>则仿真器PE有输出</P>
<P>y<SUB>E</SUB>=<SPAN
style="FONT-SIZE: 10.5pt; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">Ψ</SPAN><SUB>E</SUB>(X<SUB>E</SUB>)
(2.18)</P>
<P>对仿真器进行训练,应使仿真误差e<SUB>E</SUB></P>
<P>e<SUB>E</SUB>=y(k+1)-y<SUB>E</SUB></P>
<P><SUB>达到最小。</SUB></P>
<TABLE cellSpacing=0 cellPadding=0 width="95%" align=center border=0>
<TBODY>
<TR>
<TD align=middle width="50%"><IMG height=307
src="10.files/5.2.ht1.gif" width=403 border=0>
<P align=center>(a)</P></TD>
<TD align=middle width="50%"><IMG height=269
src="10.files/5.2.ht2.gif" width=282 border=0>
<P align=center>(b)</P></TD></TR></TBODY></TABLE></TD></TR>
<TR>
<TD width="100%" height=18>
<P align=center>图2-7 对象仿真器PE</P></TD></TR>
<TR>
<TD width="100%" height=501>
<P>二、神经控制器NC </P>
<P>神经控制器NC的作用和意义如图2-8所示。图2-8(a)是NC在系统中的位置,图2-8(b)是NC框图。</P>
<P>假定由式(2.15)所描述的过程对象是可逆的,则会存在函数g[·],并且有</P>
<P>u(k)=g[y(k+1),y(k),......,y(k-p+1),u(k-1),u(k-2),......,u(k-Q)]
(2.19)</P>
<P>以神经网络可实现式(2.19)所描述的对象逆模型。并且,输入为m维向量X<SUB>c</SUB>,输出为U<SUB>c</SUB>,则输出输入关系表示为</P>
<P>U<SUB>c</SUB>=<SPAN
style="FONT-SIZE: 10.5pt; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">ψ</SPAN><SUB>c</SUB>(X<SUB>c</SUB>)
(2.20)</P>
<P>其中:ψ<SUB>c</SUB>为输入输出映射。<BR>如果ψ<SUB>c</SUB>(·)的输出逼近g(·)的输出.则逆模型的神经网络可以看作是控制器。在k时刻,假设输入x<SUB>c</SUB>(k)为</P>
<P>Xc(k)=[r(k+1),y(k),......,y(k-p+1),u(k-1)...,u(k-q)]<SUP>T</SUP>
(2.21)</P>
<P>在上式(2.21)中,以给定输入r(k+1)取代未知的y(k+1);p和q分别是P和Q的估计值。</P>
<P>根据式(2.20),则神经网络控制器NC有输出</P>
<P>u<SUB>c</SUB>(k)=<SPAN
style="FONT-SIZE: 10.5pt; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">ψ</SPAN><SUB>c</SUB>[r(k+1),y(k),...,y(k-p+1),u(k-1),...,u(k-q)]
(2.22)</P>
<P>在神经网络控制器NC的训练结果足以使输出偏差e(k)=r(k)-y(k)保持为一个很小的值时.则有</P>
<P>X<SUB>c</SUB>(k)=[r(k+1),r(k),...,r(k-p+1),u(k-1),...,u(k-q)]<SUP>T</SUP>
(2.23)</P>
<P>在上式中,是以r(t)取代y(t);这个式子明显突出了神经网络控制NC的前馈特性。</P>
<TABLE cellSpacing=0 cellPadding=0 width="95%" align=center border=0>
<TBODY>
<TR>
<TD align=middle width="50%"><IMG height=231
src="10.files/5.2.ht3.gif" width=487 border=0>
<P align=center>(a)</P></TD>
<TD align=middle width="50%"><IMG height=272
src="10.files/5.2.ht4.gif" width=243 border=0>
<P align=center>(b)</P></TD></TR></TBODY></TABLE></TD></TR>
<TR>
<TD width="100%" height=208>
<P align=center>图2-8 神经控制器NC</P>
<P>2.2.2学习训练的结构</P>
<P>在神经网络控制器的训练中,一般要求对象输出的偏差e(k)=r(k)—y(k)所定义的偏差函数J最小化。为了能采用梯度法进行学习,同时还需考虑J对NC输出的微分,即<SPAN
style="FONT-SIZE: 10.5pt; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">δ=</SPAN>—3J/Juc。有S之后,通过BP算法就可以改善NC的权系数。在这种基础上,考虑直接逆控制,直接适应控制和间接适应控制的训陈结构。直接逆控制中的神经网络控制器NC是对象的逆模型。因此,可以通过图2-9所示的结构训练逆模型。</P>
<P align=center><IMG height=301 src="10.files/5.2.ht5.gif" width=555
border=0></P>
<P align=center>图2-9 直接逆控制训练结构</P></TD></TR>
<TR>
<TD width="100%" height=473>
<P>在K+1时刻,设神经网络控制器NC的学习输入为X<SUB>c</SUB><SUP>*</SUP>(k)
<P>X<SUB>c</SUB><SUP>*</SUP>(k)=[y(k+1),y(k),...,y(k-p+1),u(k-1),...,u(k-q)]<SUP>T</SUP>
(2.24)</P>
<P>则神经网络控制器NC有输出U<SUB>c</SUB>(k)</P>
<P>u<SUB>c</SUB>(k)=<SPAN
style="FONT-SIZE: 10.5pt; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">ψ</SPAN><SUB>c</SUB>[X<SUB>c</SUB><SUP>*</SUP>(k)]
(2.25)</P>
<P>即有</P>
<P>u<SUB>c</SUB>(k)=<SPAN
style="FONT-SIZE: 10.5pt; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">ψ</SPAN><SUB>c</SUB>[y(k+1),y(k),...,y(k-p+1),u(k-1),...,u(k-q)]
(2.26)</P>
<P>对于NC而言,有训练输出偏差e<SUB>c</SUB></P>
<P>e<SUB>c</SUB>(k)=u(k)一u<SUB>c</SUB>(k)
(2.27)</P>
<P>定义偏差函数J为</P>
<P>J(k)=0.5[e<SUB>c</SUB>(k)]<SUP>2</SUP>=0.5[u(k)—u<SUB>c</SUB>(k)]<SUP>2</SUP>
(2.28)</P>
<P>则J对u<SUB>c</SUB>的导数为<SPAN
style="FONT-SIZE: 10.5pt; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">δ<SUB>k</SUB></SPAN></P>
<P><IMG height=22 src="10.files/5.2.ht6.gif" width=323 border=0>(2.29)</P>
<P>很明显,这种训陈结构用BP算法是十分方便的。</P>
<P>二、直接适应控制训练结构</P>
<P>直接适应控制中,神经网络控制器NC是通过对象的输出偏差e(k)=r(k)-y(k)来实现训练效果判别和训练的执行的。显然,这和逆模型的训练不同。这种训练结构如图2—10所示。</P>
<P align=center><IMG height=251 src="10.files/5.2.ht7.gif" width=611
border=0></P>
<P align=center>图2-10 直接适应控制训练结构</P></TD></TR>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -