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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
%基于 BP 神经网络的 PID 控制
+ ?& G1 K$ f3 w5 ]; ?5 p7 Fclear all;) x$ m# i, I$ l- E$ S& C
x1=0.3;a1=0.07;) J" ?5 ?5 a9 L) A3 m; c
S=1; %信号类型
, D1 W$ q- _/ Y, C% ~% A8 A  _In=4;h=5;Out=3; %神经网络结构
6 j5 a4 N7 z  T) x! ~. dif S==1, %阶跃信号1 O. l" [; I$ H5 y( x  d
wi=[-0.6394 -0.2696 -0.3756 -0.7023;
' E2 \; r5 p. ?! D3 L! c& f-0.8603 -0.2013 -0.05024 -0.2596;
. Q: b9 w2 W- l7 K& b# ~-1.0749 0.5543 -1.6820 -0.5437;+ l0 `- \9 v3 x, F. y& B/ W
-0.3625 -0.0724 -0.6463 -0.2859;/ \" K$ C8 L1 i3 V
0.1425 0.0279 -0.5406 -0.7660];1 Y1 P2 L1 r, w; \
%wi=0.50*rands(h,In);2 i1 c9 F( L% m
wi1=wi;wi2=wi;wi3=wi;
1 |7 U0 I5 y' E' {" K2 vwo=[0.7576 0.2616 0.5820 -0.1416 -0.1325;
6 n9 H0 I. Y- ]& d6 K  n+ i-0.1146 0.2949 0.8352 0.2205 0.4508;
: f# ]* E! i' X  z$ B& P6 R, t0.7201 0.4566 0.7672 0.4962 0.3632];7 L' ]' ~/ Q% ?- [* R' M& S
%wo=0.50*rands(Out,h);
# F2 n3 _+ G3 q$ Awo1=wo;wo2=wo;wo3=wo;+ w: `7 _" d% r4 M+ h* P; Y) h
end" K+ ^1 h# n) n& E  `
if S==2 %正弦信号
0 O& `( l0 Y% h3 j- @3 \8 n- rwi=[-0.2846 0.2193 -0.5097 -1.0668;
, P. Z, O, H1 W  b% r# X& W$ B6 G-0.7484 -0.1210 -0.4708 0.0988;
, K/ V0 a6 m' R: ~& I7 b/ b0 Q* e-0.7176 0.8297 -1.6000 0.2049;
) p& \  V# ?5 w  R3 S3 b: D-0.0858 0.1925 -0.6346 0.0347;9 b. a$ B/ Q5 _2 A
0.4358 0.2369 -0.4564 -0.1324];) {0 @+ G& E4 G/ ^5 a& e
%wi=0.50*rands(h,In);# `, J1 D* }: g4 |" G- p. M  D
wi1=wi;wi2=wi;wi3=wi;
7 g% Z- p9 |8 T, m/ \# H" Q# P5 R6 hwo=[1.0438 0.5478 0.8682 0.1446 0.1537;
' F' a" e2 Z7 O) T& [- E/ B( }0.1716 0.5811 1.1214 0.5067 0.7370;6 J. T' j7 ^2 ~- U4 _8 A
1.0063 0.7428 1.0534 0.7824 0.6494];9 z; [% L  q' P
%wo=0.50*rands(Out,h);
$ [6 {) J6 a' b1 mwo1=wo;wo2=wo;wo3=wo;5 Y5 L/ X4 E) @- _
end
, V8 f* y+ ^. xx=[0,0,0];
. P( ^' |! r9 R( tu1=0;u2=0;u3=0;u4=0;u5=0;- X# F2 L* I" S% _& L
y1=0;y2=0;y3=0;* v. B' }. o# ?) B* k- L
oh=zeros(h,1); %神经网络中间层输出
6 l& ~# y5 {# N+ H: iI=oh;%神经网络中间层输入
7 S6 N# T& g3 J' _- v0 Q0 m* d7 Merror1=0;  Z) m0 x' D6 s4 M: O0 C8 M
error2=0;1 V& a( }0 n' S  b9 h. W6 E8 @9 T3 n
ts=0.003;
" z0 ]; F3 s0 Q' f2 ofor k=1:1:1000,  D# `. t5 z% i) v. n4 [
time(k)=k*ts;3 D( Z$ f# H! K8 Y. D
if S==1,
! e0 B' x) q% R) y8 x& brin(k)=1.0;* N$ u# q4 `3 ?% g9 J; `# S1 ^/ v
elseif S==2,
. k. _2 m" X& r& G% [rin(k)=sin(1*2*pi*k*ts);
6 m) h1 k3 I1 b" k6 H- \- I9 d& p5 Gend
* T4 {. a2 ?& T%非线性模型: o# H" _9 D1 I
a(k)=1+0.15*sin(k*pi*ts/25);' N9 k, K8 w+ _6 r- ~" M& Q7 O
y(k)=(a(k)*y1+u1)/(1+y1^2)+u1;. @- |6 P8 M* ~: l- R! O' f  s4 G3 _
error(k)=rin(k)-y(k);+ }/ [; U+ L& `. \3 T4 c
xi=[rin(k),y(k),error(k),1];" O5 p) ?' i7 n2 j
x(1)=error(k)-error1;2 T) p! w. D- i. V
x(2)=error(k);
+ o3 `& G2 ^) B; X$ @x(3)=error(k)-2*error1+error2;. N7 |( [- a- p9 x* T/ _
ed=[x(1);x(2);x(3)];. S9 j% x' ?, K" z: D3 g, X  X
I=xi*wi';
$ K/ l! y0 `) p: q- w, H* {$ @1 A, u% vfor j=1:1:h
: N1 {- @/ _. m. O0 K/ Ooh(j)=(exp(I(j))-exp(-I(j)))/(exp(I(j))+exp(-I(j)));: F" t6 Q6 V0 P6 P
end; z$ c  {4 X' f
K=wo*oh; %输出层3 K; @& ^6 _- Y6 o8 {6 `1 u. Z8 y( L
for j=1:1:Out& s) q% u- C; ~/ J& A1 R: N
K(j)=exp(K(j))/(exp(K(j))+exp(-K(j))); %求 kp,ti,td
! U" [" Q3 |1 H% u+ H5 B2 l( bend
# T# T. K" [6 r. t5 o! G2 B  gkp(k)=K(1);ti(k)=K(2);td(k)=K(3);
1 T9 C5 r" k6 a! S/ }8 }  q% _Kd=[kp(k),ti(k),td(k)];
/ L9 H% h  h8 rdu(k)=Kd*ed;
7 r4 @9 V) L) K, J! ~5 f( \u(k)=u1+du(k);9 N/ f' T3 p& Q; G+ f9 t
if u(k)>=10, %限制控制器输出0 z9 V8 t3 _* b8 }! ?1 F
u(k)=10;$ I0 u7 R' L; b$ n) ^( z+ K4 `
end
5 @- Z1 a* O' y6 l5 Sif u(k)<=-10,
! T# ?* {' p- j/ t+ v9 ju(k)=-10;
+ n9 a; ], a5 b$ {end2 U* G1 x  s- o# J& C
dyu(k)=sign((y(k)-y1)/(u(k)-u1+0.0000001));
; G( @; M: t' E; k0 c4 ]for j=1:1:Out,/ h+ D( U1 h$ u- w* `6 P
dK(j)=2/(exp(K(j))+exp(-K(j)))^2;# O* e9 B+ \  `5 K3 S6 O8 F
end. t* _. v" n0 \% B
for i=1:1:Out,
& s7 I) H, X" _: O( V. |de3(i)=error(k)*dyu(k)*ed(i)*dK(i);
3 f! ~% i& m* g/ m& n; x4 Kend3 V3 V" x) y( N) R! A$ {
for j=1:1:Out,
' r4 N7 {" b1 \6 Ufor i=1:1:h,
6 D3 x# ?7 ]- V. Hdwo=x1*de3(j)*oh(i)+a1*(wo1-wo2);
5 E7 U2 f# N6 [end3 e& @: L% I4 w5 T: ?
end
6 \" i0 l4 c$ F! x1 ~wo=wo1+dwo+a1*(wo1-wo2);
# b" A) y  M* z, ~+ v%隐含层
# m5 Q$ W- [& I0 gfor i=1:1:h,# }5 q% u6 f' f2 w$ w9 U
dO(i)=4/(exp(I(i))+exp(-I(i)))^2;
& E! {4 k$ p' i1 ?end+ H1 `7 D2 z5 {
seg=de3*wo;! K! W) q8 i8 n& \4 G
for i=1:1:h
) m2 W' T6 [# @, U8 ~5 E. ?de2(i)=dO(i)*seg(i);8 Q) s4 R$ Y+ w6 K
end
$ E7 E( j; k) O$ V0 V+ Cdwi=x1*de2'*xi;
; @% Q; ^" g( H+ `$ Nwi=wi1+dwi+a1*(wi1-wi2);" M* `8 [; p6 x3 Z( j5 r; \/ i
%参数更新
% \" t: d; h" l* U7 z: B8 D+ i" g) A1 J/ Zu5=u4;u4=u3;u3=u2;u2=u1;u1=u(k);
  `, C, A) q6 F- G( ^y2=y1;y1=y(k);
& Y* U) b- A1 N% b- `; |: vwo3=wo2;wo2=wo1;wo1=wo;1 \) d+ X9 f# \- P2 Y4 M
wi3=wi2;wi2=wi1;wi1=wi;
8 g# l% Q5 d: {0 x. B! Eerror2=error1;
) k# U. X7 E- y+ L) G: [3 A) V& B7 Merror1=error(k);1 _4 j1 E9 H% m' b& |% C6 j
end
: Q0 I, l, ~1 r2 xfigure(1);/ C& h- z( q/ {$ U$ X2 y* k
plot(time,rin,'r',time,y,'c');# h- _- H5 t& R7 ?
xlabel('时间(秒)');ylabel('输出跟踪输入的响应曲线');
: j. B& s6 t" T3 E6 Dfigure(2);* `  U- B. a& b: J" B- w
plot(time,u,'r');2 y5 V6 O) B8 D4 U% R  h
xlabel('时间(秒)');ylabel('控制信号 u(k)的变化曲线');
/ ?; d% `4 V9 e& ]figure(3);$ t, H' R2 `! I  w5 _) [7 \  m
subplot(311);! E& `$ }  w" g! n" B  R0 ]
plot(time,kp,'r');
6 j, p" {1 p0 Z: `! ~xlabel('时间(秒)');ylabel('参数 kp');) \" K" }- H+ j' N6 z( S$ ^
subplot(312);7 W# N5 y1 g  Z9 {
plot(time,ti,'r');
5 M# a7 d& w0 `  K% A7 {xlabel('时间(秒)');ylabel('参数 ki');
8 y2 q' v$ B6 w6 }subplot(313);
3 R( e# p2 c$ b, x# Splot(time,td,'r');$ t9 D! d, r& {2 k# S  n5 ^  H
xlabel('时间(秒)');ylabel('参数 kd');- H- e; G1 c% k6 |
+ O. ?0 w2 U8 O1 m% ?* k
; y% U: I9 [8 g0 ]& J6 ^" o
目标值不能过大怎么解决
$ ?4 `' r$ D; d

该用户从未签到

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

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

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

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

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

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