📄 10.htm
字号:
<TD width="100%" height=335>
<P>神经网络控制器NC在这时的状态用NC<SUP>9</SUP>表示.则其映射用<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><SUP>9</SUP>,根据式(2.21)(2.22)从而有控制输出u<SUB>c</SUB>(8):
</P>
<P>u<SUB>c</SUB>(8)=ψ<SUB>c</SUB><SUP>9</SUP>[X<SUB>c</SUB>(8)]</P>
<P>对象仿真器PE这时的状态用PE<SUP>9</SUP>表示,则其映射用ψ<SUB>E</SUB><SUP>9</SUP>表示,这时有X<SUB>E</SUB>(8)</P>
<P>X<SUB>E</SUB>(8)=[y(8),y(7),y(6),uc(8),u(7),u(6)]<SUP>T</SUP></P>
<P>从而有PE输出y<SUB>E</SUB>(9)</P>
<P>y<SUB>E</SUB>(9)=ψ<SUB>E</SUB><SUP>9</SUP>[X<SUB>E</SUB>(8)]</P>
<P>利用偏差e<SUB>E</SUB>.即e<SUB>E</SUB>=r(9)—y<SUB>E</SUB>(9),取偏差函数J<SUB>E</SUB></P>
<P>J<SUB>E</SUB>=0.5[r(9)-y<SUB>E</SUB>(9)]<SUP>2</SUP></P>
<P>则可以对NC进行训练学习。</P>
<P>2.预测输出误差逼近训练学习</P>
<P>直接逆控制误差逼近是以神经网络控制器NC输出的控制信号uc和期望控制信号u的误差进行逼近训练的。预测输出误差逼近的训练方法与之不同,它是以对象仿真器PE的输出yE和期望给定r的误差进行训练的,训练的对象是神经网络控制器NC。预测输出误差逼近训练学习的系统结构框图如图2—14所示。</P>
<P align=center><IMG height=230 src="10.files/5.2.ht19.gif" width=587
border=0></P>
<P align=center>图2-14 预测输出误差逼近训练的结构</P></TD></TR>
<TR>
<TD width="100%" height=309>
<P>从图2—14所示结构可知:NC接收输入向量X<SUB>c</SUB>,从而产生u<SUP>*</SUP>输出;而PE接收输入向量x<SUB>E</SUB>,x<SUB>E</SUB>由u*,y形成,从而产生输出y<SUP>*</SUP>。最后有
</P>
<P>e<SUB>E</SUB>=r-y<SUP>*</SUP></P>
<P>则可用于构成偏差函数J,用于训练。</P>
<P>假定在k+1采样周期内,给定值r有t个值存贮于存贮器中.即有</P>
<P>r(k+1-i) i=0,1,......,t-1</P>
<P>即是 r(k+1),r(k),......,r(k+2-t)</P>
<P>对象输出y有包括y(k+1)在内的p+t个值存于存贮器中,即有</P>
<P>y(k+1),y(k),y(k-1),......,y(k+2-p-t)</P>
<P>控制器输出u的先前q+t个值也存于存贮器中,即有</P>
<P>u(k-1),u(k-2),...,u(k-q-t)</P>
<P>从式(2.21)和式(2.23)可知在存贮器中等于存放了x<SUB>c.i</SUB>(k-i)</P>
<P>X<SUB>c,i</SUB>(k-i)=[r(k+1-i),y(k-i),...,y(k-p+1-i),u(k-1-i),u(k-2-i),...,u(k-q-i)]<SUP>T</SUP></P>
<P><SUP>或者</SUP></P>
<P>X<SUB>c,i</SUB>(k-i)=[r(k+1-i),r(k-i),...,r(k-p+1-i),u(k-1-i),u(k-2-i),...,u(k-q-i)]<SUP>T</SUP></P>
<P>在进入k+1采样周期时,神经网络控制器NC的状态为NC<SUP>k+1,1</SUP>,故其映射表示为<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><SUP>k+1</SUP>;对象仿真器PE不执行学习,其状态表示为PE<SUP>k+1</SUP>,映射表示为<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><SUP>k+1</SUP>。</P>
<P>首先,在有输入向量x<SUB>c.i</SUB>(k-i)时,NC产生输出u<SUP>*</SUP></P>
<P>u<SUP>*</SUP>(k-i)=ψ<SUB>c</SUB><SUP>k+1</SUP>,i[X<SUB>c,i</SUB>(k-i)]
(2.45)</P>
<P>很明显,则在对象的输入形成向量X<SUP>*</SUP><SUB>E,i</SUB>(k-i)</P>
<P>X<SUP>*</SUP><SUB>E,i</SUB>(k-i)=[y(k-i),...,y(k-p+1-i),u<SUP>*</SUP>(k-i),...,u<SUP>*</SUP>(k-q-i)]<SUP>T</SUP>
(2.46)</P>
<P>随后,则由对象仿真器PE输出预测值y<SUP>*</SUP></P>
<P>y<SUP>*</SUP>(k+1-i)=ψ<SUB>E</SUB><SUP>k+1</SUP>[X<SUP>*</SUP><SUB>E</SUB>,i(k-i)]
(2.47)</P>
<P>最后,则可以得到预测偏差e<SUB>E</SUB></P>
<P>e<SUB>E</SUB>=r(k+1-i)-y<SUP>*</SUP>(k+1-i) (2.48)</P>
<P>取偏差函数J<SUB>E</SUB>为</P>
<TABLE cellSpacing=0 cellPadding=0 width="80%" align=center border=0>
<TBODY>
<TR>
<TD width="65%"><IMG height=40 src="10.files/5.2.ht18.gif" width=352
border=0></TD>
<TD width="35%">(2.49)</TD></TR></TBODY></TABLE></TD></TR>
<TR>
<TD width="100%" height=1460>
<P>神经网络控制器NC训练过程可以理解如下:把NC和PE看成一个单一的多层神经网络MNN,在k+1采样周期中,每一个输入向量X<SUB>c.i</SUB>(k—i),i=0,1,…,t-1;都会产生相应的预测偏差如式(2.48)所示。训练的目的就是使式(2.49)所示的偏差函数JE最小化。
</P>
<P>神经网络控制器KC的预测输出误差逼近方法进行训练学习的过程中,考虑k采样时刻的输入向量X<SUB>c,i</SUB>(k-1-i)</P>
<P>X<SUB>c,i</SUB>(k-1-i)=[r(k-i),y(k-1-i),...,y(k-p-i),u(k-2-i),...,u(k-q-1-i)]<SUP>T</SUP>
(2.50)</P>
<P>或者</P>
<P>X<SUB>c,i</SUB>(k-1-i)=[r(k-i),r(k-1-i),...,r(k-p-i),u(k-2-i),...,u(k-q-1-i)]<SUP>T</SUP>
(2.51)</P>
<P>在结构中,把NC和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>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>E</SUB>)表示。则BP算法用下式表示</P>
<P>BP(ψ<SUB>c</SUB>+ψ<SUB>E</SUB>,X,r,y<SUP>*</SUP>)</P>
<P>其中:ψ<SUB>c</SUB>+ψ<SUB>E</SUB>为NC和PE组成的单一网络,x为输入学习向量,r为给定值即期望值,y*为预测输出。<BR>NC的训练算法步骤如下:</P>
<P>Step 1:READ y(k)</P>
<P>Step 2:{NC通过预测误差逼近训练}</P>
<P>i——t-1</P>
<P>REPEAT</P>
<P>j——0</P>
<P>REPEAT</P>
<P>u<SUB>j</SUB><SUP>*</SUP>——ψ<SUB>c</SUB>(X<SUB>c,i+j</SUB>)</P>
<P>j——j+1</P>
<P>UNTIL(j>q)</P>
<P>{产生PE的输入向量}</P>
<P>X<SUP>*</SUP><SUB>E,i</SUB>——[y(k-1-i),...,y(k-p-i),u<SUB>0</SUB>*,u<SUB>1</SUB>*,...,u<SUB>q</SUB>*]<SUP>T</SUP></P>
<P>{产生预测输出}</P>
<P>y*——E(X<SUP>*</SUP><SUB>E,i</SUB>)</P>
<P>BP(ψ<SUB>c</SUB>+ψ<SUB>E</SUB>,X<SUB>c,i</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>i</SUB>r(k-i),<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>i</SUB>y*)</P>
<P>i——i-1</P>
<P>UNTIL(i=0)</P>
<P>Step 3:{用最新数据训练}</P>
<P>BP(ψ<SUB>c</SUB>+ψ<SUB>E</SUB>,X<SUB>c,0</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>i</SUB>r(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>i</SUB>y(k))</P>
<P>Step 4:{数据移动}</P>
<P>i——t+q+1</P>
<P>REPEAT</P>
<P>Xc,i——Xc,i-1</P>
<P>i——i-1</P>
<P>UNTIL(i=0)</P>
<P>Step 5:{产生控制信号}</P>
<P>X<SUB>c,0</SUB>=[r(k+1),y(k),...,y(k+1-p),u(k-1),...,u(k-q)]<SUP>T</SUP>
or [r(k+1),r(k),...,r(k+1-p),u(k-1),...,u(k-q)]<SUP>T</SUP></P>
<P>u(k)——ψ<SUB>c</SUB>(X<SUB>c,0</SUB>)</P>
<P>Step 6:用u(k)去控制对象,并持续T。</P>
<P>Step 7:k—k+1</P>
<P>Step 8:转回Step 1</P>
<P>下面给出一个用预测输出误差逼近方法训练NC的例子:假定现行采样周期为k=9,则有对象输出y(k),取P=2,q=3,t=3;则在存贮器中存有先前输出值y共(p+t-1)=4个,即y(8),y(7),y(6),y(5)</P>
<P>同时,有(q+t)=5个先前控制值u,即</P>
<P>u(7),u(6),u(5),u(4),u(3)</P>
<P>根据式(2.50),则有</P>
<P>x<SUB>c.0</SUB>(8)=[r(9),y(8),y(7),u(7),u(6),u(5)]<SUP>T</SUP></P>
<P>x<SUB>c.1</SUB>(7)=[r(8),y(7),y(6),u(6),u(5),u(4)]<SUP>T</SUP></P>
<P>x<SUB>c.2</SUB>(6)=[r(7),y(6),y(5),u(5),u(4),u(3)]<SUP>T</SUP></P>
<P>参考图2—14所示的学习结构,则学习过程如图2—15中所示。</P>
<P align=center><IMG height=299 src="10.files/5.2.ht20.gif" width=532
border=0></P>
<P align=center>(a)</P>
<P align=center><IMG height=364 src="10.files/5.2.ht21.gif" width=547
border=0></P>
<P align=center>(b)</P></TD></TR>
<TR>
<TD width="100%" height=13>
<P align=center>图2—15 预测输出误差逼近训练NC</P></TD></TR>
<TR>
<TD width="100%" height=12>
<P align=right><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></TBODY></TABLE></BODY></HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -