找回密码
 注册
关于网站域名变更的通知
查看: 671|回复: 3
打印 上一主题 下一主题

神经网络PID输出的PID参数为何被局限在0-1之间?

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2021-3-16 13:59 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
%基于 BP 神经网络的 PID 控制
" j9 u' Q' V! C+ ^- f- gclear all;4 M+ H! |7 a' B# g9 ?
x1=0.3;a1=0.07;
, ~+ S, m9 g; D% A4 T, NS=1; %信号类型
+ k2 o( ?$ D% `0 P& {5 |In=4;h=5;Out=3; %神经网络结构2 l7 u* _0 b# A# L2 U
if S==1, %阶跃信号
- ^, T4 V0 {9 k  cwi=[-0.6394 -0.2696 -0.3756 -0.7023;% M1 }) a. O  x
-0.8603 -0.2013 -0.05024 -0.2596;
$ Y- h& M7 l. i( p7 j-1.0749 0.5543 -1.6820 -0.5437;6 j6 i! t! {' v" @9 y. u$ _
-0.3625 -0.0724 -0.6463 -0.2859;
$ V7 o( C. X" z5 d8 H. v0.1425 0.0279 -0.5406 -0.7660];( |& r! J$ d+ o6 p/ E$ Y
%wi=0.50*rands(h,In);
& I% r! M, N  ?; m7 ewi1=wi;wi2=wi;wi3=wi;
6 q- y0 G0 M5 Z$ L$ nwo=[0.7576 0.2616 0.5820 -0.1416 -0.1325;
7 _4 j9 O$ ?. A5 F' u' v-0.1146 0.2949 0.8352 0.2205 0.4508;* P6 Y0 w: z: [; I3 N6 V
0.7201 0.4566 0.7672 0.4962 0.3632];+ z# M" x/ L* k) b/ }
%wo=0.50*rands(Out,h);
' d/ l2 C6 ?% t3 o' }' |$ F( Uwo1=wo;wo2=wo;wo3=wo;
8 C) c  `+ f2 aend
  @- {9 l; Y& u% o6 w$ vif S==2 %正弦信号# ^. @; O2 H# r7 t- p
wi=[-0.2846 0.2193 -0.5097 -1.0668;/ X, g4 M, b8 G* n) D1 e
-0.7484 -0.1210 -0.4708 0.0988;
2 @2 r( O( U$ z-0.7176 0.8297 -1.6000 0.2049;" _6 D; @& }" ~# W' k- d
-0.0858 0.1925 -0.6346 0.0347;  u4 j- d: r0 \9 M8 b5 p0 ?9 a7 V
0.4358 0.2369 -0.4564 -0.1324];
) t6 }3 D( F6 u) t* \%wi=0.50*rands(h,In);& n3 |! V# v  O0 D$ J) x% e* x
wi1=wi;wi2=wi;wi3=wi;
* d( W! f0 |8 M' E: {wo=[1.0438 0.5478 0.8682 0.1446 0.1537;
3 j/ ^$ p  @& r& N. X, I5 B0.1716 0.5811 1.1214 0.5067 0.7370;& ?; N/ W& [( H
1.0063 0.7428 1.0534 0.7824 0.6494];9 O6 V# v  Y: }, }3 K- i1 t
%wo=0.50*rands(Out,h);
. |' J: _% Q( T; C4 \wo1=wo;wo2=wo;wo3=wo;
. }- v3 ~1 X7 Y  qend( Q& w; x1 J0 J8 s& e* S! m
x=[0,0,0];
7 r& s, R" B3 f1 y: n! v, tu1=0;u2=0;u3=0;u4=0;u5=0;3 @+ j8 z1 s8 _$ D" z
y1=0;y2=0;y3=0;
8 _3 X* k. M' E( _oh=zeros(h,1); %神经网络中间层输出
6 L3 H5 E1 r1 ^+ N, SI=oh;%神经网络中间层输入& l/ Z, P6 h: r
error1=0;/ Z5 `+ Z$ F/ l: M
error2=0;$ B/ j/ W7 {" W
ts=0.003;
  W( X7 s, `% ifor k=1:1:1000,$ M) ?; @; r; J& D3 i9 X
time(k)=k*ts;, }# D! R5 }6 P! s" D/ h
if S==1,
) A1 A4 C7 a& W, b8 krin(k)=1.0;. @- O2 F( r* u) E
elseif S==2,2 A% B( }8 `$ U$ m( h$ H
rin(k)=sin(1*2*pi*k*ts);
& E; O" o6 y9 @4 \1 `end
  O7 E6 I! x4 ~& ?4 e%非线性模型( Q: Q: V5 y3 @0 F/ P
a(k)=1+0.15*sin(k*pi*ts/25);" ~& e# I! u" R+ ^
y(k)=(a(k)*y1+u1)/(1+y1^2)+u1;
4 U' x3 z; _$ Berror(k)=rin(k)-y(k);
- T+ Q4 b- }0 n' l1 T' Vxi=[rin(k),y(k),error(k),1];' T. g9 \. v* z9 n. [
x(1)=error(k)-error1;- i& Q, h# ^6 E* L
x(2)=error(k);8 s$ v1 q4 B* I' `- o, i* l% {: Z
x(3)=error(k)-2*error1+error2;
- E. M5 x9 O: S; Jed=[x(1);x(2);x(3)];6 h5 a8 v# L1 v
I=xi*wi';
- X& x2 f  j2 |/ V8 B( `for j=1:1:h$ }! W* \3 Z/ d8 B4 ?- [
oh(j)=(exp(I(j))-exp(-I(j)))/(exp(I(j))+exp(-I(j)));0 F4 Y  x+ g0 d# Z8 T- c
end
8 R" N: c0 C! J: b9 D, K3 uK=wo*oh; %输出层
7 ~- J% P  A+ ?5 ~$ B& D5 T2 h' F& L: pfor j=1:1:Out
. `- w. X* o% @& G; d0 @* sK(j)=exp(K(j))/(exp(K(j))+exp(-K(j))); %求 kp,ti,td
: u7 ]7 H" j. S* cend
; S' n! K3 ~- M9 P: g1 l# t- tkp(k)=K(1);ti(k)=K(2);td(k)=K(3);0 {5 x. k8 ]6 r9 C5 F, ^( j
Kd=[kp(k),ti(k),td(k)];
+ W& v, _+ D% u5 G" X5 v* edu(k)=Kd*ed;
) @) w/ [! \/ r+ vu(k)=u1+du(k);& x/ v2 Q" S* I1 l0 B
if u(k)>=10, %限制控制器输出
  C$ e& r: c2 X: T2 ^u(k)=10;, y8 ], ]: ?0 J! G  Q" R" }) x
end  A3 H# ~0 `# Y/ r% _
if u(k)<=-10,9 n8 ~& O0 A# n- Y( j. |3 ^
u(k)=-10;" ?# R' J3 b! w, o/ \: ^( X2 [
end
, L: J2 B9 j4 D  O9 xdyu(k)=sign((y(k)-y1)/(u(k)-u1+0.0000001));9 `9 G% l+ U2 l8 L+ g
for j=1:1:Out,
; D( Z9 L1 A( \dK(j)=2/(exp(K(j))+exp(-K(j)))^2;
7 X' B& f7 Q5 p) o$ G5 Rend( g) Y8 X/ F/ x  Q9 [. _' L$ W$ K; R
for i=1:1:Out,
+ o7 z* o; \% {; N" l" R, Ode3(i)=error(k)*dyu(k)*ed(i)*dK(i);: o5 O  T* J7 o1 u8 B* F
end
( S2 G  K6 O- B9 s- U6 t- Rfor j=1:1:Out,6 @% O+ L  }% K
for i=1:1:h,- m3 w- T* i  k$ x4 ?6 b) k
dwo=x1*de3(j)*oh(i)+a1*(wo1-wo2);
/ ]1 I1 m% [' @end& ~$ ~3 p5 U8 c) w
end
6 c* C" b  i% s0 T. ^wo=wo1+dwo+a1*(wo1-wo2);' ~. p+ e& R9 B! \8 z2 a
%隐含层: |5 S- ~$ G+ Q8 L
for i=1:1:h,% M5 g' J! m) Y. y% j
dO(i)=4/(exp(I(i))+exp(-I(i)))^2;
# b, _2 v$ a6 ^) Kend
: n" \. U/ A/ l9 X6 f. Fseg=de3*wo;+ V. J' a3 m' v' K
for i=1:1:h
1 B" ^# p/ h* ]# p' n2 a1 i. Zde2(i)=dO(i)*seg(i);; v% L/ e9 P0 s
end6 D. K3 W! ?# e3 n% O4 f
dwi=x1*de2'*xi;1 s% @  e" s2 K' c! M$ E5 c' {
wi=wi1+dwi+a1*(wi1-wi2);5 y! b9 L; m4 E: c- ^
%参数更新
# ?" n( d. _6 Gu5=u4;u4=u3;u3=u2;u2=u1;u1=u(k);) s8 J; o; Q% m. U' \7 ]
y2=y1;y1=y(k);
# @/ M* `: K5 q  j/ kwo3=wo2;wo2=wo1;wo1=wo;: f& @4 z+ V) Y/ h" G
wi3=wi2;wi2=wi1;wi1=wi;2 s# b) `. l3 p5 o6 @( }! x
error2=error1;8 M; L# Q# g5 r5 [7 [1 h
error1=error(k);; G! D9 W+ P. w0 U! X1 t% J6 ]
end
- V9 K9 M) Q" ?+ Ffigure(1);
, R- {0 e6 M; i$ I% J; |; @& ^& q! R- Kplot(time,rin,'r',time,y,'c');; e$ C0 G8 p( t5 `
xlabel('时间(秒)');ylabel('输出跟踪输入的响应曲线');
, P9 q+ V" s+ j2 }& O: R0 y, I, kfigure(2);+ J' s+ f+ R; t: k* y- C9 M/ `
plot(time,u,'r');* I4 Y' o! n; M* i' s2 ]
xlabel('时间(秒)');ylabel('控制信号 u(k)的变化曲线');
5 T! I, c" H, l& t; x1 xfigure(3);
+ C( R3 M: ]  U( j6 `$ e# Rsubplot(311);" t( q) ~8 \1 E# B
plot(time,kp,'r');
$ d' X9 e% f& k$ k% y& [# Q! uxlabel('时间(秒)');ylabel('参数 kp');
2 I6 @( T4 M* T. Msubplot(312);
- h0 r$ a$ B. p- [plot(time,ti,'r');0 `8 w" v5 ?* o& I7 U
xlabel('时间(秒)');ylabel('参数 ki');* S/ ^" @7 U  z  ~' v$ f
subplot(313);* P8 s, ^, p5 ]& w$ w
plot(time,td,'r');
! O& p3 v( b, m) M" Uxlabel('时间(秒)');ylabel('参数 kd');
* f7 x4 i5 I! i1 n0 S5 y6 f- B' R& r3 L
- o5 D; W6 P- y
目标值不能过大怎么解决' x' K9 K6 b: f  ^' _: J# N0 q

该用户从未签到

2#
发表于 2021-3-16 14:19 | 只看该作者
帮你顶一下

该用户从未签到

3#
发表于 2021-3-16 15:46 | 只看该作者
这个可能跟输入样本关系较大
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-11-24 00:45 , Processed in 0.156250 second(s), 23 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表