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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
%基于 BP 神经网络的 PID 控制; S3 r& k8 h4 I; G/ e* A& ]
clear all;. U( v+ n: i' R% ^/ M! V, P- X* Y
x1=0.3;a1=0.07;& X- V" Y+ R! w4 t% ~$ d( M  h
S=1; %信号类型
9 U9 Q8 w+ d0 N" U( n( I7 qIn=4;h=5;Out=3; %神经网络结构
) O" P" C6 e7 sif S==1, %阶跃信号. v  C9 R0 B$ A2 x1 ^4 @- O
wi=[-0.6394 -0.2696 -0.3756 -0.7023;; S, w% S$ T- `+ _% \& x
-0.8603 -0.2013 -0.05024 -0.2596;! N% o* r' o8 ^2 }! s6 C" G
-1.0749 0.5543 -1.6820 -0.5437;
: a1 N& N' O. N7 v9 g-0.3625 -0.0724 -0.6463 -0.2859;
- z2 ?1 P5 A# J7 ?+ G: u. ]0.1425 0.0279 -0.5406 -0.7660];  s0 W& ~4 ]8 `% h+ W: _
%wi=0.50*rands(h,In);
; |6 e7 \" Z; R9 p+ r( lwi1=wi;wi2=wi;wi3=wi;
% p# a, o6 Z4 {4 x& Nwo=[0.7576 0.2616 0.5820 -0.1416 -0.1325;
$ @; q8 U+ N2 w6 I( X" W! r- M) ?4 F-0.1146 0.2949 0.8352 0.2205 0.4508;# w8 U% |' j; G2 m' ~% P
0.7201 0.4566 0.7672 0.4962 0.3632];  D# v- X2 G# z. q6 ?
%wo=0.50*rands(Out,h);. F- B/ ]/ X: M3 Z
wo1=wo;wo2=wo;wo3=wo;9 n$ i3 {2 c3 W( |2 z) Q- c
end
; ^, ^7 J# P; z- M& l' mif S==2 %正弦信号
8 b9 U; R1 q) C; Ywi=[-0.2846 0.2193 -0.5097 -1.0668;
) O* T& u1 k, p' J3 q- @! o-0.7484 -0.1210 -0.4708 0.0988;
1 v/ ~, Z- O) t# {+ V: M-0.7176 0.8297 -1.6000 0.2049;4 e) F: j9 T' N8 c7 V% E3 D! J
-0.0858 0.1925 -0.6346 0.0347;
( r( A# [0 s  W' B4 U) \: i0.4358 0.2369 -0.4564 -0.1324];9 L2 W7 ]5 F" X4 X1 Z- m! @
%wi=0.50*rands(h,In);
. w5 L+ H. u* K! s$ `wi1=wi;wi2=wi;wi3=wi;4 q+ y/ y& e: e7 i  N/ Z
wo=[1.0438 0.5478 0.8682 0.1446 0.1537;, t! `3 D/ H  }
0.1716 0.5811 1.1214 0.5067 0.7370;
: J; O3 Q1 i' w/ z1.0063 0.7428 1.0534 0.7824 0.6494];
: _2 W1 b* I4 C% t%wo=0.50*rands(Out,h);
/ X& ^1 ?! B: m: a  @6 Ewo1=wo;wo2=wo;wo3=wo;
4 Y1 I& j$ \) V8 S" \( E2 n% F. m1 D+ {end
7 `' C) j2 p$ f5 C4 L% A6 x8 M4 cx=[0,0,0];
# ~4 A. o7 E+ s0 `( K" S0 ]u1=0;u2=0;u3=0;u4=0;u5=0;
! X7 ?8 u$ m. t% b+ U# Gy1=0;y2=0;y3=0;
; x/ T- d( X9 e2 s& Coh=zeros(h,1); %神经网络中间层输出* C. u9 U9 T: e0 [3 b& T+ T* H  H% [& ^
I=oh;%神经网络中间层输入
5 n4 K$ V9 f- S! b  m$ Qerror1=0;2 f/ s( Q+ t) Z( }* a! O9 c' p* O
error2=0;
# e$ Y3 ?' l+ L# }ts=0.003;, U: k& r5 }* c$ W0 P5 a
for k=1:1:1000,
- S3 W1 O! ?4 w" I/ ~% _7 htime(k)=k*ts;$ _3 T6 c7 A5 m. U$ _* S$ e
if S==1,8 ?$ H5 ]& j6 N2 L& t& f
rin(k)=1.0;5 ^" }+ U# D$ k$ j3 h% \
elseif S==2,8 W  D" G6 w$ Q# h3 y
rin(k)=sin(1*2*pi*k*ts);
& y5 H" L* X* w9 U8 Q* {7 ~end
/ R! |0 J! t7 H1 o6 \; \%非线性模型" z( _2 i! O2 w( C" B
a(k)=1+0.15*sin(k*pi*ts/25);8 ?, _# i" R* z0 \5 n! m# ~# \. c
y(k)=(a(k)*y1+u1)/(1+y1^2)+u1;% g6 X: K% E( E0 D
error(k)=rin(k)-y(k);) h  D2 O4 u2 j, o; {: ~6 J
xi=[rin(k),y(k),error(k),1];& I8 e9 q9 a1 W8 H' h
x(1)=error(k)-error1;1 H2 t0 C0 I8 o" V7 P& x. [
x(2)=error(k);, o$ Y) a: ?+ Y
x(3)=error(k)-2*error1+error2;
9 p: f- v/ t, d5 @; ?- G% @ed=[x(1);x(2);x(3)];5 a# |, Z  S0 p* l8 m( Q& \
I=xi*wi';* J9 Z  L. V+ B- A# U
for j=1:1:h; v% G/ e; f) J, l# q" Y
oh(j)=(exp(I(j))-exp(-I(j)))/(exp(I(j))+exp(-I(j)));8 d5 i1 K$ a5 j
end3 c" N+ r6 I5 c5 ?
K=wo*oh; %输出层
9 R, d: s2 V, w$ P7 k8 V9 pfor j=1:1:Out
1 F# i" V. }3 K  u+ y% bK(j)=exp(K(j))/(exp(K(j))+exp(-K(j))); %求 kp,ti,td
$ e( c+ D$ O7 F- i6 Xend
# u9 F8 V) s' y; s8 T) Kkp(k)=K(1);ti(k)=K(2);td(k)=K(3);" e/ T& q  E  [
Kd=[kp(k),ti(k),td(k)];, K$ c6 u! H1 ?. _& j
du(k)=Kd*ed;
  S( O# @+ _+ ^$ I" m! j$ Uu(k)=u1+du(k);: _) G: ^  K; }
if u(k)>=10, %限制控制器输出
5 i0 c' m7 g8 d$ B  T0 `9 Y/ pu(k)=10;  p- `. y& B" g6 l, E( z
end2 d* u+ d. p  g* t! X3 Z8 v$ I4 t( i" z
if u(k)<=-10,
' l' C) o' l; R6 ^; I2 V" Iu(k)=-10;
# a3 f  g. r2 D4 x: |7 Lend7 u+ p: N' X9 j) z" j- n% T. L
dyu(k)=sign((y(k)-y1)/(u(k)-u1+0.0000001));$ f% m* I% v( j' J# t) ?- M
for j=1:1:Out,' S, S. {$ j1 z9 v
dK(j)=2/(exp(K(j))+exp(-K(j)))^2;
' m" I, j1 e7 k7 T: tend
+ U- u3 i( H0 B3 P6 P" Z5 Kfor i=1:1:Out,
) s  p2 l7 O0 @& ?+ s4 {de3(i)=error(k)*dyu(k)*ed(i)*dK(i);7 z/ ~8 L! N' u* L2 P. H  }. E% u1 n
end0 F5 v! z- @0 w* ?- ?0 h
for j=1:1:Out,
1 u6 U3 B8 }2 t- wfor i=1:1:h,2 |7 k4 _( ]0 M" f, o
dwo=x1*de3(j)*oh(i)+a1*(wo1-wo2);
# J! M$ v/ D- V, A7 K2 Tend
, c1 D* E' `# Uend
! }7 b( B8 X" W8 w+ J9 Fwo=wo1+dwo+a1*(wo1-wo2);
1 U3 n1 |0 [4 C  v$ i%隐含层! D" e" U, u) p" L2 U8 T9 h
for i=1:1:h,
- q( n5 x% k0 T, t- }2 W6 L/ ]" N, MdO(i)=4/(exp(I(i))+exp(-I(i)))^2;% I% M/ L; i. n! x0 L
end2 n" ]1 X( ]$ U. f
seg=de3*wo;* l9 ?( j8 g7 F7 z3 O1 \! ~  ^
for i=1:1:h! }! g6 _- y, K8 t
de2(i)=dO(i)*seg(i);7 N6 _' r' L2 F2 Y6 J% t, ]7 c
end9 R+ ^2 y- L  |9 y: J
dwi=x1*de2'*xi;/ J' @. G; Q+ z% H' i; \
wi=wi1+dwi+a1*(wi1-wi2);
; s# T( t" C& a%参数更新
9 y9 ^8 n6 h: {* X& v, Uu5=u4;u4=u3;u3=u2;u2=u1;u1=u(k);3 F3 a+ h0 e% k5 u+ M
y2=y1;y1=y(k);
( L9 V# Y. N" V( U' m! U5 pwo3=wo2;wo2=wo1;wo1=wo;
5 z5 |, ^( r" m0 i; R) W' awi3=wi2;wi2=wi1;wi1=wi;
# ^; c( g+ S0 @* Xerror2=error1;
( i# k4 O: Y- }8 _! werror1=error(k);3 |$ f  [& m. f* x
end+ ], N- q( B, L$ v; Z  n7 n
figure(1);7 [: i' \2 y8 D
plot(time,rin,'r',time,y,'c');
- ~6 c: J( C% O9 a* s+ i- Wxlabel('时间(秒)');ylabel('输出跟踪输入的响应曲线');" a6 ~' z$ l! z5 }! D: ~
figure(2);+ ~; I2 p+ y9 f: E6 I3 d" m* I
plot(time,u,'r');3 L4 q& e; ]: T' Q2 H
xlabel('时间(秒)');ylabel('控制信号 u(k)的变化曲线');( }8 v8 O3 I* F' y) x
figure(3);& v: T2 g" X9 N/ w
subplot(311);4 v- g5 y4 `6 r* v8 f+ @
plot(time,kp,'r');
$ }+ i9 S; i0 D/ vxlabel('时间(秒)');ylabel('参数 kp');
( _% E; d; c4 m4 H) _subplot(312);7 J5 j1 a5 W( K* Z! t. j
plot(time,ti,'r');; B8 w' l% n& B( q
xlabel('时间(秒)');ylabel('参数 ki');7 a4 W& j. X/ q: W. B  ~
subplot(313);$ k1 K& t8 i* L
plot(time,td,'r');5 d& \) z% O2 ]
xlabel('时间(秒)');ylabel('参数 kd');
/ G, r8 d6 [6 d3 F0 h: Q6 P0 B* |7 o) g3 h* i

- I' d4 o) p& J% f& U目标值不能过大怎么解决) N) v4 W7 D4 V9 X" [! l. A1 N# B8 C

该用户从未签到

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

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

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

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

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

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