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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
%基于 BP 神经网络的 PID 控制0 M8 Z. C5 i) l2 P7 O
clear all;
# x6 w  U+ ]1 L1 bx1=0.3;a1=0.07;
9 D* q4 H6 \0 k9 R' BS=1; %信号类型- S/ n" l4 G3 d8 N' Z
In=4;h=5;Out=3; %神经网络结构7 Z. k* r$ C$ x, A& z, Z0 ^3 u
if S==1, %阶跃信号! k: ~1 M% Y, u  J' G
wi=[-0.6394 -0.2696 -0.3756 -0.7023;
/ n) k8 y& F$ _. H6 N-0.8603 -0.2013 -0.05024 -0.2596;
5 H, _9 v$ F+ l0 ^* K-1.0749 0.5543 -1.6820 -0.5437;9 R& l/ x4 Y2 g8 f4 Y* k2 U
-0.3625 -0.0724 -0.6463 -0.2859;+ h; `% E$ K1 Q* g* d
0.1425 0.0279 -0.5406 -0.7660];. F( W) b- l( q+ Z" I5 G$ S
%wi=0.50*rands(h,In);' {, C& l( I) @; v2 |
wi1=wi;wi2=wi;wi3=wi;
9 n6 U$ l2 s  j! s* r) X% Hwo=[0.7576 0.2616 0.5820 -0.1416 -0.1325;' p+ ^+ f4 Q- f$ K
-0.1146 0.2949 0.8352 0.2205 0.4508;
; s# ~; \% S! n% m4 n0.7201 0.4566 0.7672 0.4962 0.3632];
# A  u$ E# z/ r! R/ Y%wo=0.50*rands(Out,h);
2 G  Z5 W# D& [" N+ s: jwo1=wo;wo2=wo;wo3=wo;9 L, v. b3 y7 f8 i1 g: J
end
7 I8 d- s9 d' ]7 _if S==2 %正弦信号2 p' g! v  _& v) L- V
wi=[-0.2846 0.2193 -0.5097 -1.0668;
/ W; n( q2 ^6 x( d4 q! F) B% q-0.7484 -0.1210 -0.4708 0.0988;
2 |: y6 M: G& @0 T3 c# M- m: C. D-0.7176 0.8297 -1.6000 0.2049;
& W% B( }9 L/ k+ S7 c. ^  g! h5 X-0.0858 0.1925 -0.6346 0.0347;
# S* Q7 T4 n+ G" h0 \0.4358 0.2369 -0.4564 -0.1324];
9 E8 }: Q4 ]8 {5 A: q%wi=0.50*rands(h,In);
/ N- z& B3 ^3 x6 x" u1 O5 ?5 Lwi1=wi;wi2=wi;wi3=wi;* T+ B# c+ g3 }6 ?5 ~: u
wo=[1.0438 0.5478 0.8682 0.1446 0.1537;
2 @* w' ~3 {& e$ t1 q  f6 |! P0.1716 0.5811 1.1214 0.5067 0.7370;! t, U/ T- ^0 V$ p! J0 y9 Y+ a0 z
1.0063 0.7428 1.0534 0.7824 0.6494];( V: W- g( h9 J  P2 p
%wo=0.50*rands(Out,h);
; R' a6 I2 _$ N3 H! G, cwo1=wo;wo2=wo;wo3=wo;
  ]2 |6 A# R' Y" {9 Jend
) h" f% n) a( l: \! |1 ^x=[0,0,0];
; `: k1 X+ K/ Q' ~  j' N$ l' f0 Eu1=0;u2=0;u3=0;u4=0;u5=0;7 }7 ]. Q) _8 }, c. G+ {
y1=0;y2=0;y3=0;
) @. ~9 L! g& D# x: t9 A- Koh=zeros(h,1); %神经网络中间层输出
( X0 C/ G  C  ]1 G# J& k: X' k5 DI=oh;%神经网络中间层输入3 s3 D8 E  y/ e
error1=0;3 |+ W6 t9 T* a- c
error2=0;. S" W; g/ H' y7 i9 U6 w
ts=0.003;& y9 x- x) d! m2 [5 s+ J
for k=1:1:1000,
7 b+ W0 G4 `' A& T5 j& b- v$ etime(k)=k*ts;
9 g1 [- v& g0 g" M7 cif S==1,# n9 ], {* i8 N: n; o
rin(k)=1.0;" t) M4 x  u6 Q8 [
elseif S==2,0 k( G: J, V, J& H) u5 {% P* d
rin(k)=sin(1*2*pi*k*ts);
5 s# A* e% N. V# {6 O1 W  n& v' W1 wend0 w5 A- z2 b9 n9 {6 z- C% k2 Y
%非线性模型
6 K# x/ k: S8 w8 x+ ya(k)=1+0.15*sin(k*pi*ts/25);
/ t4 l0 k, g; e4 l- V% a; Fy(k)=(a(k)*y1+u1)/(1+y1^2)+u1;/ |7 |/ i( s/ H
error(k)=rin(k)-y(k);: |: K/ G3 y$ z( H8 j
xi=[rin(k),y(k),error(k),1];
3 p8 F1 L8 h5 d5 U+ cx(1)=error(k)-error1;0 ^, H( J% z9 B6 \8 D. B' ~$ `$ W
x(2)=error(k);
2 S! Z0 m+ J2 Vx(3)=error(k)-2*error1+error2;' U+ r- B7 @9 O$ h3 |- W7 o
ed=[x(1);x(2);x(3)];
5 b- c/ q5 P. p5 x' c* p8 iI=xi*wi';4 A9 |. n$ ~% O" C" I" I
for j=1:1:h* }5 f  N  o5 U0 X* X4 m
oh(j)=(exp(I(j))-exp(-I(j)))/(exp(I(j))+exp(-I(j)));
& S; x% [9 o& W- z/ P% bend
  Z8 R- [: s8 u0 A3 S' R) N. Q* _K=wo*oh; %输出层4 k, [7 c( u' l0 I8 }5 Y
for j=1:1:Out8 p8 b7 g" L% J; W2 M' k
K(j)=exp(K(j))/(exp(K(j))+exp(-K(j))); %求 kp,ti,td& ?, V! I* `' \# ^5 A7 E- Q  i
end
2 G, ]1 }, T7 `4 j1 dkp(k)=K(1);ti(k)=K(2);td(k)=K(3);
, g1 F. k4 }3 n5 ~+ q! @! u& ?, t: DKd=[kp(k),ti(k),td(k)];
; B( z. F8 ~" ydu(k)=Kd*ed;6 A+ |, @9 F3 X8 U5 D" |
u(k)=u1+du(k);8 q$ f7 c4 y  g- F, x
if u(k)>=10, %限制控制器输出
7 S* W" U9 r' ^: w3 fu(k)=10;  |4 i0 ~) @, k; V& C
end$ \2 d# b! y8 @4 p7 G# ?
if u(k)<=-10,
* s/ D* t+ s& P7 iu(k)=-10;
4 Y+ K9 ~5 \& }7 u% e1 G, B9 f* send
" t1 G# ~# h( t5 i$ {; U- ddyu(k)=sign((y(k)-y1)/(u(k)-u1+0.0000001));
3 f0 S8 p; n. s7 `7 m- G! @for j=1:1:Out,
) c# I$ u0 k3 ?: C- N( X. i' _dK(j)=2/(exp(K(j))+exp(-K(j)))^2;" r, d1 s8 X5 N$ o& p0 l+ F
end
: @6 B2 f8 l' Ffor i=1:1:Out,
( j- m+ R4 ^& i: ]! U0 j# z$ S5 [de3(i)=error(k)*dyu(k)*ed(i)*dK(i);
& Z. h$ }# @5 X; H1 y4 aend
1 U  F5 c0 O4 O8 z3 Hfor j=1:1:Out,
+ f$ p( h( Q$ G' dfor i=1:1:h,5 n$ Q, _+ N. ?
dwo=x1*de3(j)*oh(i)+a1*(wo1-wo2);
& _1 D/ F9 }# ]end
. d, U* b2 y' G& v. ]( Mend
6 {$ }7 i5 M7 b! Y" Cwo=wo1+dwo+a1*(wo1-wo2);5 s: e) Y& E" S8 W1 t9 F, ~) H2 S- k
%隐含层
" U2 ]0 }! e1 Q  bfor i=1:1:h,4 F$ u! d4 i" b! k
dO(i)=4/(exp(I(i))+exp(-I(i)))^2;9 X0 d: Z! h: b' i* e
end
4 {# V8 A+ {) n6 Lseg=de3*wo;
1 _9 ^- c6 F. _" `9 h, n* v% ~2 t  Ifor i=1:1:h* a7 P3 z( ?( V; }
de2(i)=dO(i)*seg(i);2 n6 I0 w6 I  N5 R) f4 O8 V6 e
end
4 I8 t, Z$ N( Edwi=x1*de2'*xi;
' F( w; \3 d- |. p% Lwi=wi1+dwi+a1*(wi1-wi2);
! E. E! v  W' t%参数更新. k+ r7 n  V: g# ^$ Q
u5=u4;u4=u3;u3=u2;u2=u1;u1=u(k);
% W( `- K: q+ Wy2=y1;y1=y(k);
% J0 v* m( }5 Ewo3=wo2;wo2=wo1;wo1=wo;
$ K* U: |" Y1 G( i& o8 Z/ Jwi3=wi2;wi2=wi1;wi1=wi;
9 S0 H  R' g5 C* J& Z" terror2=error1;
. c6 s4 ]1 h& P8 L' R1 Serror1=error(k);, _5 P7 ?2 z9 B3 r* @
end
3 ^9 W0 v6 Q/ ?( i, lfigure(1);
: ?# P7 c6 l9 i  ]3 S" Nplot(time,rin,'r',time,y,'c');
5 r, _) C7 p; z5 r1 jxlabel('时间(秒)');ylabel('输出跟踪输入的响应曲线');' [. d( Q) F, b- T
figure(2);
5 l' h2 n) T' aplot(time,u,'r');
; y) V& A2 e- }7 c5 Q; Dxlabel('时间(秒)');ylabel('控制信号 u(k)的变化曲线');
: v0 b3 |8 a+ A& i% \. O6 Xfigure(3);/ A, h* O8 d0 q* \5 u# @
subplot(311);
7 \' r( Q2 x8 U2 T2 C$ {) jplot(time,kp,'r');
  A" H6 j: [/ p/ d" o0 F3 sxlabel('时间(秒)');ylabel('参数 kp');
/ a* m" B: i) f9 N) k. d9 N+ Msubplot(312);/ o+ L9 B; u! u+ S
plot(time,ti,'r');
7 j; ]3 l, ^1 a" L/ v' x) Hxlabel('时间(秒)');ylabel('参数 ki');3 s' ]  I0 y8 |. E% ?/ s" X# }
subplot(313);% ?8 H- N  Q( N7 d9 a: ^5 ?( l# o6 V
plot(time,td,'r');1 _, y2 p- j/ |3 s6 _( L' H
xlabel('时间(秒)');ylabel('参数 kd');
" c" @# [0 V& f+ u( w7 P& T' n
0 ^' n- T9 B) s. B5 m' g# b$ T+ ]' U; D- H/ J
目标值不能过大怎么解决2 k9 c/ a7 U4 f; u9 @. ^1 T( o

该用户从未签到

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

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-8-12 11:53 , Processed in 0.125000 second(s), 23 queries , Gzip On.

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

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

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