📄 10.htm
字号:
border=0></P>
<P align=center>图2-12 对象仿真器PE的训练</P></TD></TR>
<TR>
<TD width="100%" height=294>
<P>根据式(2.35).对于第k时刻应有 </P>
<P>y<SUB>E,i</SUB>(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>E</SUB><SUP>k,i</SUP>[X<SUB>E,i</SUB>(k-1-i)]
(2.37)</P>
<P>从而有</P>
<P>y<SUB>E,0</SUB>(10)=<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>10,0</SUP>[X<SUB>E,0</SUB>(9)]</P>
<P>y<SUB>E,1</SUB>(9)=<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>10,1</SUP>[X<SUB>E,1</SUB>(8)]</P>
<P>y<SUB>E,2</SUB>(8)=<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>10,2</SUP>[X<SUB>E,2</SUB>(7)]</P>
<P>很明显,有</P>
<P><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>9,0</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>10,1</SUP>(.)</P>
<P>即有</P>
<P><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,0</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,1</SUP>(.)</P>
<P>在这个例子中,PE训练的情况如图2—12所示。</P>
<P>二、神经控制器NC训练学习</P>
<P>神经网络控制器NC的训练学习有两种不同的逼近方法, 一种是直接逆控制误差逼近(The Direct Inverse Control Error
Approach),另一种是预测输出误差逼近(The Predicted Output Error
Approach)。根据上述这两种不同的逼近方法其训练学习的过程不同。</P>
<P>1.直接逆控制误差逼近训练学习</P>
<P>假定在k+1采样时刻的现行输出为y(k+1);y先前的P-1+t个值,u先前的q+t个值存贮在存贮器中;有y(k)…,y(k-p+1-t);u(k)…,u(k-q-t)。</P>
<P>从图2—9所示的直接逆控制结构可知:可以用X<SUB>c</SUB><SUP>*</SUP>(k-i),u(k-i)数据对对神经网络控制器NC进行训练;其中</P>
<P>X<SUB>c</SUB><SUP>*</SUP>(k)=[y(k+1),...,y(k-p+1),u(k-1),...,u(k-q)]<SUP>T</SUP>
(2.38)</P>
<P>当取i=0,1,…,t-1,时,显然有t对X<SUB>c</SUB><SUP>*</SUP>(k—i),u(k—i);它们用于k+1时刻对NC的训练。</P>
<P>k+1时刻的第i个m维输入学习向量为</P>
<P>X<SUP>*</SUP><SUB>c,i</SUB>(k-i)=[y(k+1-i),......,y(k-p+1-i),u(k-1-i),......,u(k-q-i)]<SUP>T</SUP>
(2.39)</P>
<P>则在神经控制器NC的输出有u<SUB>c</SUB>(k—i)</P>
<P>u<SUB>c,i</SUB>(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>c</SUB>[X<SUP>*</SUP><SUB>c,i</SUB>(k-i)]
(2.40)</P>
<P>考虑偏差函数J<SUB>c</SUB>。</P>
<TABLE cellSpacing=0 cellPadding=0 width="80%" align=center border=0>
<TBODY>
<TR>
<TD width="80%"><IMG height=40 src="10.files/5.2.ht15.gif" width=351
border=0></TD>
<TD width="32%">(2.41)</TD></TR></TBODY></TABLE></TD></TR>
<TR>
<TD width="100%" height=1537>
<P>其中:1<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>0</SUB>≥λ<SUB>1</SUB>≥...≥λ<SUB>t-1</SUB></SPAN>
</P>
<P>并有<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,i</SUB>=-aJ<SUB>c</SUB>/a<SUB>uc,i</SUB></SPAN></P>
<P><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>k,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>[u(k-i)-u<SUB>c,i</SUB>(k-i)]
(2.42)</P>
<P>从式(2.41)看出,以J<SUB>c</SUB>为训练时的偏差函数并不直接涉及系统的输出y的偏差。因此,会产生神经控制器NC训练结果为零偏差,但控制性能很差的效果。所以,为了克服这种问题,一般把直接逆控制误差最小化的训练方法和其它方法,例如与对象输出误差最小化的法相结合,从而使NC训练和控制性能效果都能取得良好的结果。为了便于说明神经控制器NC的训练.考虑在采样序号为k时的m维学习向量X<SUP>*</SUP><SUB>c,i</SUB>(k-1-i)</P>
<P>X<SUP>*</SUP><SUB>c,i</SUB>(k-1-i)=[y(k-i),y(k-1-i)...,y(y(k-p-i),u(k-2-i),...,u(k-q-1-i)]<SUP>T</SUP>
(2.43)</P>
<P>在学习中,BP算法以下式表示</P>
<P>BP(<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>,X,u,u<SUB>c,i</SUB>)</P>
<P>其中:ψ为NC映射,x为输入学习向量,u为NC期望输出,u<SUB>c</SUB><SUB>,i</SUB>为NC实际输出。</P>
<P>NC的训练算法过程如下:</P>
<P>Step 1:READ y(k)</P>
<P>Step 2:{取最新数据向量}</P>
<P>X<SUP>*</SUP><SUB>c,0</SUB>——[y(k),...,y(k-p),u(k-2),...,u(k-q-1)]<SUP>T</SUP></P>
<P>Step 3:{控制器训练}</P>
<P>i——t-1</P>
<P>REPEAT</P>
<P>u<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>c</SUB>(X<SUP>*</SUP><SUB>c,i</SUB>)</P>
<P>BP(<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<SUP>*</SUP><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>u(k-1-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>u<SUB>c,i</SUB>)</P>
<P>i——i-1</P>
<P>UNTIL(i<0)</P>
<P>Step 4:{产生控制信号u}</P>
<P>X<SUB>c</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)——<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>)</P>
<P>Step 5:用u(k)去控制对象,并持续T。</P>
<P>Step 6:{数据移动}</P>
<P>i——t-1</P>
<P>REPEAT</P>
<P>X*c,i——X*ci-1</P>
<P>i——i-1</P>
<P>UNTIL(I=0)</P>
<P>Step 7:K——k+1</P>
<P>Step 8:转向Step 1</P>
<P>用直接逆控制偏差逼近法对NC训练的例子:设现行采样时刻为k=9,故对象有输出y(9);取P=2,q=3,t=3,则在存贮器中存放有(p+t-1)=4个先前输出值y,即</P>
<P>y(8),y(7),y(6),y(5)</P>
<P>同时,有(q+1)=5个先前控制值u,即</P>
<P>u(7),u(6),u(5),u(4),u(3)</P>
<P>根据式(2.43),则NC的输入学习向量在k=9时有</P>
<P>X<SUP>*</SUP><SUB>c,0</SUB>(8)=[y(9),y(8),y(7),u(7),u(6),u(5)]<SUP>T</SUP></P>
<P>X<SUP>*</SUP><SUB>c,1</SUB>(7)=[y(8),y(7),y(6),u(6),u(5),u(4)]<SUP>T</SUP></P>
<P>X<SUP>*</SUP><SUB>c,2</SUB>(6)=[y(7),y(6),y(5),u(5),u(4),u(3)]<SUP>T</SUP></P>
<P>用NC<SUP>k·1</SUP>表示NC在采样时刻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>c</SUB><SUP>k.i</SUP>表示NC<SUP>k.i</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.0</SUP><SUB>,</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><SUP>9.1</SUP><SUB>,</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><SUP>9.2</SUP></P>
<P>根据式(2.40),在第k采样周期中,有</P>
<P>u<SUB>c,i</SUB>(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>c</SUB><SUP>k+1,i</SUP>[X<SUP>*</SUP><SUB>c,i</SUB>(k-i)]
(2.44)</P>
<P>从而有映射结果:</P>
<P>u<SUB>c,0</SUB>(8)=<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,0</SUP>[X<SUP>*</SUP><SUB>c,0</SUB>(8)]</P>
<P>u<SUB>c,1</SUB>(7)=<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,1</SUP>[X<SUP>*</SUP><SUB>c,1</SUB>(7)]</P>
<P>u<SUB>c,2</SUB>(6)=<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,2</SUP>[X<SUP>*</SUP><SUB>c,2</SUB>(6)]</P>
<P>而训练NC时,有数据输入u(8),u(7),u(6)它们和u<SUB>c,0</SUB>(8),u<SUB>c,1</SUB>(7),u<SUB>c,2</SUB>(6)的偏差就组成了式(2.41)所示的偏差函数Jc。</P>
<P>在实际训练中需要把图2—10所示的直接适应控制或图2—11所示的间接适应控制方法和直接逆控制误差逼近方法相结合,才能实现取得对象输出误差最小的结果。</P>
<P>把间接适应控制的简单学习和直接逆控制误差逼近的多次学习相结合,从而在一个采样周期含有4个训练周期。这种情况如图2—13所示。</P>
<P>在图2—13中.左边3个学习训练过程是神经网络控制器NC单独学习的过程,其学习步骤在上面已经给出。而右边的1个学习训练过程是间接适应控制和直接逆控制误差逼近相结合的学习;由于这时采样时刻是k=9,故对象仿真器表示为PE<SUP>9</SUP>,神经控制器表示NC<SUP>9</SUP>在PE<SUP>9</SUP>和NC<SUP>9</SUP>相结合的学习中,输入的训练学习数据对为r(9),X<SUB>c</SUB>(8),并有</P>
<P>X<SUB>c</SUB>(8)=[r(9),y(8),y(7),u(7),u(6),u(5)]<SUP>T</SUP></P>
<P>而r(9)是采样时刻k=9时的给定输入信号</P>
<P align=center><IMG height=319 src="10.files/5.2.ht16.gif" width=578
border=0></P>
<P align=center><IMG height=261 src="10.files/5.2.ht17.gif" width=559
border=0></P>
<P align=center>(b)</P>
<P align=center>图2-13 直接逆控制误差和间接适应控制逼近NC的过程</P></TD></TR>
<TR>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -