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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
%基于 BP 神经网络的 PID 控制
3 m6 s9 o. O) \, Fclear all;: p" u- Z. k) b; I/ Y, A
x1=0.3;a1=0.07;
! R( r4 Y  `2 U# d" U$ A/ NS=1; %信号类型
! Y6 d6 {2 x( `6 ]In=4;h=5;Out=3; %神经网络结构' z6 R& D& y3 p1 o1 W# Z; ?! K* j
if S==1, %阶跃信号
0 |' U  o* }* k9 A6 S" Lwi=[-0.6394 -0.2696 -0.3756 -0.7023;+ U+ d3 c! B  K- J6 u$ x
-0.8603 -0.2013 -0.05024 -0.2596;# T" `5 S; E9 v( Y% q9 c9 W" h
-1.0749 0.5543 -1.6820 -0.5437;
2 v0 `' J8 H3 `  [-0.3625 -0.0724 -0.6463 -0.2859;3 L2 F5 |# c2 A% G
0.1425 0.0279 -0.5406 -0.7660];; x, N9 G7 s8 A" U  G
%wi=0.50*rands(h,In);: n2 w* o9 n3 Q7 h( `( m" O
wi1=wi;wi2=wi;wi3=wi;- e' `: B3 L5 {5 {6 h
wo=[0.7576 0.2616 0.5820 -0.1416 -0.1325;
3 _9 ^  }  A" ?-0.1146 0.2949 0.8352 0.2205 0.4508;
' {8 @$ @6 S7 a2 N+ k" |. C0.7201 0.4566 0.7672 0.4962 0.3632];* V8 S& X, [( M! x
%wo=0.50*rands(Out,h);2 y; i# q/ W6 x, p, s5 W' t
wo1=wo;wo2=wo;wo3=wo;
9 [3 J/ I$ w7 _, |0 s% d4 o3 v5 x" s8 ?+ cend
7 z  B" T" M+ t, q- V8 F9 e% hif S==2 %正弦信号8 Q$ |  F% ~8 t0 Q4 Q
wi=[-0.2846 0.2193 -0.5097 -1.0668;
. Z8 |# k) r7 T% G  g2 s7 w0 e-0.7484 -0.1210 -0.4708 0.0988;9 \7 n( p9 A+ Q
-0.7176 0.8297 -1.6000 0.2049;
" X, m' V+ Y! D0 v; I-0.0858 0.1925 -0.6346 0.0347;
8 u: q+ S; V6 m& R2 L# I# S: o5 z0.4358 0.2369 -0.4564 -0.1324];
0 f, C9 o- l" y8 `/ i, j! f- {%wi=0.50*rands(h,In);, b9 ^+ \0 f" k
wi1=wi;wi2=wi;wi3=wi;+ v/ V. `) O- m( G) S" W1 f' c
wo=[1.0438 0.5478 0.8682 0.1446 0.1537;! w4 `' D+ M  }( Z+ P: \. b8 s
0.1716 0.5811 1.1214 0.5067 0.7370;
! g: b; ]; ]. C! i* ^6 Y0 C1.0063 0.7428 1.0534 0.7824 0.6494];
  t: u: i" g& C7 ?' _6 T5 b%wo=0.50*rands(Out,h);
( X- z7 n6 c0 ]) G7 }! t7 V# owo1=wo;wo2=wo;wo3=wo;4 h2 h, I; z3 I: ]& K% n( a
end
- }& Z+ J8 |; a  R* ]( `x=[0,0,0];+ h5 i, i- _" `# G
u1=0;u2=0;u3=0;u4=0;u5=0;+ A4 K$ V0 `8 [1 `7 a0 h
y1=0;y2=0;y3=0;; _: e) P2 d" t" s/ R4 ]2 u
oh=zeros(h,1); %神经网络中间层输出0 B( c" L' V$ \) g6 _
I=oh;%神经网络中间层输入
5 z2 S' M& z: x9 b& Derror1=0;
; ]* Q, ~% `/ F7 e: {4 Merror2=0;% k, y+ o; a6 ^8 N3 q  j: B
ts=0.003;" g9 C% m# J7 o+ [6 E5 V
for k=1:1:1000,
$ e" Y9 l* ]: L( Gtime(k)=k*ts;
3 m( I$ s. s9 ~: {( e, d  y: h0 cif S==1,5 ~, Z! j1 G9 F0 X
rin(k)=1.0;* b6 e. J+ v) p" ~' z' ~  [0 O
elseif S==2,
9 x( u. I5 @; ~# Q4 crin(k)=sin(1*2*pi*k*ts);# d* Z: e, ~4 n3 \
end
# t  |5 y0 Z$ x% o%非线性模型
8 B& W5 |; M2 z, o7 Ha(k)=1+0.15*sin(k*pi*ts/25);
8 I4 i' I. o. A; r% Iy(k)=(a(k)*y1+u1)/(1+y1^2)+u1;
7 ?- x# Y8 h& H* z+ ?error(k)=rin(k)-y(k);
( |  i: y5 X1 o8 h5 `( Oxi=[rin(k),y(k),error(k),1];
; k$ u' J+ [- kx(1)=error(k)-error1;6 _; K) K. n5 P  L
x(2)=error(k);
' b! j+ m6 J$ r( c* s. w: gx(3)=error(k)-2*error1+error2;
& P* E. K& p! D0 {3 G. a5 @; ged=[x(1);x(2);x(3)];, c) N* S9 W7 f) `  ~, M6 _
I=xi*wi';
, @+ ~- \* m$ q  cfor j=1:1:h
1 f0 I2 h/ D, O( M( A& z3 G6 Ooh(j)=(exp(I(j))-exp(-I(j)))/(exp(I(j))+exp(-I(j)));
8 ~5 Q+ I7 v: b! C- J/ {end& a3 v) W6 U5 B1 F7 n1 ?; Q
K=wo*oh; %输出层
- h4 O: V$ @5 [" X! R0 qfor j=1:1:Out
! a/ x, \! s5 P; r/ p8 P, H# uK(j)=exp(K(j))/(exp(K(j))+exp(-K(j))); %求 kp,ti,td
- a9 ~% v  O- ?1 D/ }" A& ]end
, d7 R+ R* Q# }( |' l: L9 nkp(k)=K(1);ti(k)=K(2);td(k)=K(3);- Z) Z! x+ H' Y( A) w; @' s4 p9 r
Kd=[kp(k),ti(k),td(k)];
& Q( p0 L( j0 s* X  Qdu(k)=Kd*ed;
5 h2 S+ I2 m1 q) Qu(k)=u1+du(k);
" ]( }( H& B( Q9 {- G8 eif u(k)>=10, %限制控制器输出" U: u- A( ?" R1 K8 U
u(k)=10;
- l8 c/ `8 n0 _9 j% _, mend
5 F$ p/ ]/ j! q1 @5 |$ Kif u(k)<=-10,5 k  K# M5 R7 [6 i3 r6 S& i
u(k)=-10;
- B1 ^8 g( {/ _' ?: ]3 W  e& Gend# |. K- p0 {  Z$ f
dyu(k)=sign((y(k)-y1)/(u(k)-u1+0.0000001));. G/ t$ Q" H% t0 T! F8 |, D) U
for j=1:1:Out,. F& L; Z. D+ u2 \7 n: b
dK(j)=2/(exp(K(j))+exp(-K(j)))^2;3 D3 a2 A' u7 x! S
end: J& o# ~# ?2 f) P
for i=1:1:Out,; W& ^3 R- x6 t( @$ b# R0 k1 v6 H6 A
de3(i)=error(k)*dyu(k)*ed(i)*dK(i);* y: v0 x/ z6 c% c9 d9 V$ _$ t
end
5 x9 b5 _  L8 {6 @' E( Rfor j=1:1:Out,3 R0 u$ ]/ ^% V: F/ Q( h
for i=1:1:h,: R. W+ a+ Y1 W5 C) O
dwo=x1*de3(j)*oh(i)+a1*(wo1-wo2);
% i+ {  V, S- x( Z( M' s! aend
" d3 M8 ^; O2 `2 b! n. p. G, F9 dend
5 \' n; `$ K3 D' y: w6 H2 hwo=wo1+dwo+a1*(wo1-wo2);
$ q; `3 |  s) a%隐含层: m8 y+ B4 G! z5 z- s# l0 ~3 H( e
for i=1:1:h,( V, ^1 m+ o6 w$ v4 @
dO(i)=4/(exp(I(i))+exp(-I(i)))^2;
6 R2 W; A" r3 L+ M( x: A' mend
1 ^0 d0 K! h0 P( n. _: u1 ]% H- Vseg=de3*wo;# T% O5 n, |9 z! x; n3 }$ @9 |
for i=1:1:h9 J2 q: W" k7 p6 ?$ j
de2(i)=dO(i)*seg(i);( \3 R- r! [" U& w( C# U4 p
end$ w; R8 v: V2 U% K6 I7 R7 Z
dwi=x1*de2'*xi;
% M% z6 s1 |1 a# x% pwi=wi1+dwi+a1*(wi1-wi2);
, ~8 Y$ N) }" s' z) p/ L) ]%参数更新
: r( ^+ z2 V1 D% B  Hu5=u4;u4=u3;u3=u2;u2=u1;u1=u(k);3 e$ T" t+ g2 l5 j" F2 e
y2=y1;y1=y(k);
; r! W+ J" {9 N: X; P" X4 Vwo3=wo2;wo2=wo1;wo1=wo;
1 e! Z# C9 l2 G8 zwi3=wi2;wi2=wi1;wi1=wi;
8 Y4 s6 T9 V" N% [4 R$ Yerror2=error1;4 P9 Z4 T7 e9 }% n1 V
error1=error(k);
2 v9 V+ X, L9 G1 |+ h/ Eend9 x1 C# n  p" G* ~
figure(1);
& \" c2 F7 E$ W" cplot(time,rin,'r',time,y,'c');* f. q# l/ k" E2 P4 I7 M$ w* z0 M
xlabel('时间(秒)');ylabel('输出跟踪输入的响应曲线');
9 m9 h+ W" U" ~6 e3 p! a* `figure(2);! Q; T0 o+ W; U$ q
plot(time,u,'r');
1 f8 [6 I# Q' ^xlabel('时间(秒)');ylabel('控制信号 u(k)的变化曲线');
5 Y  ]0 S: w+ z8 }) B  Nfigure(3);6 d4 U! W- P5 v+ I/ g$ M
subplot(311);1 L0 ]9 s$ H+ Q% h. o3 o- o9 x% M
plot(time,kp,'r');
8 F7 j* S( g- J  H& u# E/ Ixlabel('时间(秒)');ylabel('参数 kp');
4 F* ?! [6 _4 Dsubplot(312);' n: i+ l( I4 N9 }+ C' l' n
plot(time,ti,'r');
& k7 ^) f: f/ i- Q+ ?; @xlabel('时间(秒)');ylabel('参数 ki');/ s- D0 k3 S7 ?# |: i* k
subplot(313);" O0 `2 C% {' @3 D
plot(time,td,'r');" Z+ h) E7 P2 W2 ^; P: g
xlabel('时间(秒)');ylabel('参数 kd');4 ?+ U: U/ c8 l3 e& M

8 _$ a% }4 ~; b9 t5 c9 e. W3 J% A; M3 \* x( S$ x8 K
目标值不能过大怎么解决4 B/ A- h9 n4 z9 n4 e

该用户从未签到

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

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-10-31 11:32 , Processed in 0.187500 second(s), 23 queries , Gzip On.

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

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

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