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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
%基于 BP 神经网络的 PID 控制4 ~! }' p. ^4 n8 \' R
clear all;
, N+ c0 T( z! e; {7 dx1=0.3;a1=0.07;) ~8 X$ b8 D5 y* S: _' }$ |  R, D& {. {
S=1; %信号类型
) Z& e0 G4 e! O9 Y" mIn=4;h=5;Out=3; %神经网络结构7 F* b% ?7 q2 @; J  u* T
if S==1, %阶跃信号2 o$ L5 l$ i8 g- W# I) Y
wi=[-0.6394 -0.2696 -0.3756 -0.7023;
; @# v& L" N! t) x! w. N-0.8603 -0.2013 -0.05024 -0.2596;
( \% q& o  W5 Y) l! {1 x0 f2 m/ {-1.0749 0.5543 -1.6820 -0.5437;0 v; w! P. C3 T. L: o( Z* A* Y
-0.3625 -0.0724 -0.6463 -0.2859;
! e* \' U& S5 Z" O* }0.1425 0.0279 -0.5406 -0.7660];
1 u2 @  e5 n& y. x8 F: m/ I%wi=0.50*rands(h,In);0 Y. ~' G) s( i6 d. M
wi1=wi;wi2=wi;wi3=wi;
! `2 R& l- E* n$ V3 Jwo=[0.7576 0.2616 0.5820 -0.1416 -0.1325;
) b- @9 V* j  y6 `-0.1146 0.2949 0.8352 0.2205 0.4508;
9 q: M! }9 X. ^0.7201 0.4566 0.7672 0.4962 0.3632];$ l6 _& {3 ]2 p9 P5 }
%wo=0.50*rands(Out,h);
0 N3 R" m. ^" I; I# y, @' t8 awo1=wo;wo2=wo;wo3=wo;  t' Q0 ?5 h4 z1 L- h) J
end' G  X. R! z5 A5 @" g) S% i+ u
if S==2 %正弦信号" N; t/ Y( R0 H" }( O0 K# W8 k
wi=[-0.2846 0.2193 -0.5097 -1.0668;, L+ q6 t3 s( M0 S2 K
-0.7484 -0.1210 -0.4708 0.0988;: x/ T# I$ t" Z1 s: n
-0.7176 0.8297 -1.6000 0.2049;( J! ?  I2 T- x2 g
-0.0858 0.1925 -0.6346 0.0347;
0 Z2 W+ }* N6 |0.4358 0.2369 -0.4564 -0.1324];
- B# k3 R3 A% s) F  j. G%wi=0.50*rands(h,In);9 ^8 H9 `) }3 K" f' @6 g
wi1=wi;wi2=wi;wi3=wi;* s* ]5 V$ X+ h* O
wo=[1.0438 0.5478 0.8682 0.1446 0.1537;  h# [7 `, _- P3 V! t/ `
0.1716 0.5811 1.1214 0.5067 0.7370;" q' m* Q% l9 R$ o- a/ k; Q  o
1.0063 0.7428 1.0534 0.7824 0.6494];
5 i4 c! c9 n( Z0 C% O$ C%wo=0.50*rands(Out,h);
+ s3 [$ e  n% `$ g% Wwo1=wo;wo2=wo;wo3=wo;
) V. n3 W4 K- m/ [, Zend* `7 u9 n5 o2 Z9 W6 I, N/ G
x=[0,0,0];
* n. U/ O8 r% Au1=0;u2=0;u3=0;u4=0;u5=0;8 N* d  `7 ?$ `; v3 b
y1=0;y2=0;y3=0;
' c3 v  ]/ U; Foh=zeros(h,1); %神经网络中间层输出2 ^5 h0 w( n3 u( b
I=oh;%神经网络中间层输入
3 G; M/ G9 g9 O& A8 d9 r) nerror1=0;( N; J5 z; Z; S( f' W% p( f- ?
error2=0;
! V  m7 F8 h+ w# i  _0 Zts=0.003;
* A5 I1 _4 R7 s! c) Z7 ]for k=1:1:1000,
: [& D- n2 o: s5 E7 v3 _. Ftime(k)=k*ts;5 t& i: y% g  p* O. P3 U' u
if S==1,  {. j4 t$ A# p( r7 k6 X: F
rin(k)=1.0;) W1 q, U5 d9 X0 _1 R
elseif S==2,% m7 x9 v$ m2 V, ~2 |5 H2 n% a
rin(k)=sin(1*2*pi*k*ts);
9 n! ]# S9 a. ^4 s0 h2 A: tend2 V" I: a" _8 Z+ G; L, ~6 v
%非线性模型9 P7 E! _" P& }* |6 ?/ N% m# ?
a(k)=1+0.15*sin(k*pi*ts/25);3 C# A; s1 j" e# @& A
y(k)=(a(k)*y1+u1)/(1+y1^2)+u1;9 G9 z: c. j. e) ~
error(k)=rin(k)-y(k);. x0 ^( G4 k, ^" n, g) ~  r& o' }
xi=[rin(k),y(k),error(k),1];; k: L, L6 f2 H3 q& H. o5 A6 z
x(1)=error(k)-error1;3 X: N$ }1 }) ?7 c9 E* _8 U# R& F
x(2)=error(k);! I* U* O6 n7 Q' u5 L
x(3)=error(k)-2*error1+error2;( W6 A' b: I3 Q, W, w: s
ed=[x(1);x(2);x(3)];- X. L) k+ }2 l3 d* z
I=xi*wi';
) a3 |( u% G7 Y) w/ d4 pfor j=1:1:h
/ ?+ c8 b# q. G) s; \* E; boh(j)=(exp(I(j))-exp(-I(j)))/(exp(I(j))+exp(-I(j)));
3 F# w* a4 H" W/ l0 Nend2 n. f) S" e$ Y4 Q" ~* z$ s
K=wo*oh; %输出层
, \3 T& e  F- j0 l0 f9 w3 v1 |/ t8 i  h$ pfor j=1:1:Out
+ y+ |/ r  `: b/ A" r( gK(j)=exp(K(j))/(exp(K(j))+exp(-K(j))); %求 kp,ti,td
4 }& M  q* p" X7 L- u: Q& Q, u& fend
- G  \# N7 s0 q' Xkp(k)=K(1);ti(k)=K(2);td(k)=K(3);
0 L& ^1 a3 H5 K4 {5 Y, D0 m: c4 SKd=[kp(k),ti(k),td(k)];
1 G$ l& |9 R  adu(k)=Kd*ed;
' d; m) g* r- c5 R- Xu(k)=u1+du(k);7 |5 _" e) w% Y2 Y0 h  n! v3 O9 o
if u(k)>=10, %限制控制器输出- _) I/ ]$ S0 u4 ]  r. s) x6 p' m# V' v
u(k)=10;) e# X! N9 G& t& C/ ?
end3 J& f3 O/ m  g9 J  o- }: p4 t
if u(k)<=-10,
8 q6 b5 s/ n0 h/ S! g. tu(k)=-10;
: M! O6 ~' }0 G9 Z* ]7 U& Xend' U; @, P3 N% e
dyu(k)=sign((y(k)-y1)/(u(k)-u1+0.0000001));
; k5 O5 }& W2 {4 u8 S. j# ?0 Wfor j=1:1:Out,
" Q2 R) w3 Q7 T& i! `" ~3 idK(j)=2/(exp(K(j))+exp(-K(j)))^2;
6 Q) j" c! v, c5 N: [1 Oend5 i! K$ Q+ T$ a. h( I
for i=1:1:Out,) v' f9 b$ S* Q: I: P' C
de3(i)=error(k)*dyu(k)*ed(i)*dK(i);
2 [- n3 Z- y& K7 ~end+ \7 E/ i6 y0 B& r4 Q9 C
for j=1:1:Out,
) g. F; h& `! ~* n& ofor i=1:1:h,
" y) X. L- _+ e" p7 N8 i! kdwo=x1*de3(j)*oh(i)+a1*(wo1-wo2);
9 J* M4 c; R* a( M$ jend4 p& I% y2 a4 q0 j
end8 V9 z# _% F; g& x, Y
wo=wo1+dwo+a1*(wo1-wo2);
8 M2 s! F1 M2 [+ q1 d%隐含层+ @. [# T2 s# h! K
for i=1:1:h,6 E: \: P$ I, c: c" K
dO(i)=4/(exp(I(i))+exp(-I(i)))^2;
2 y7 Z* L# Y6 D- wend
* |9 I% |- T4 n1 wseg=de3*wo;
" Z* f8 r& u* a( Z+ Vfor i=1:1:h
+ P' |9 Q4 V2 I5 Y/ t. z, Jde2(i)=dO(i)*seg(i);$ P" S' ?7 W5 Z" j  c( k
end$ f$ P, Q- N- |7 a; u& L( v
dwi=x1*de2'*xi;' }1 U" m" S& c) h* d) H
wi=wi1+dwi+a1*(wi1-wi2);/ q: ^" c2 H; C3 H# ?
%参数更新! I* j8 z2 U3 ~4 h  H, o
u5=u4;u4=u3;u3=u2;u2=u1;u1=u(k);
2 t$ P) u0 E  u7 xy2=y1;y1=y(k);
9 s2 D1 v- j4 Z$ \- @wo3=wo2;wo2=wo1;wo1=wo;
# @$ r, C: @+ S' vwi3=wi2;wi2=wi1;wi1=wi;) }& a; n. L& D2 ]# y
error2=error1;
; @4 |$ Z- \( {) p: Serror1=error(k);
, s3 }3 y/ q) f; M5 ?% w8 rend
( |; j4 r$ l! w5 Yfigure(1);
9 Q( R" [& G9 C$ I) E2 I5 B, wplot(time,rin,'r',time,y,'c');) V% }: N% m' Z/ _2 k, A
xlabel('时间(秒)');ylabel('输出跟踪输入的响应曲线');
9 _0 G' Q* a8 \5 O6 ofigure(2);" I8 e/ ~. n  [+ t. f6 d
plot(time,u,'r');
! i# Y4 P* T' k$ Q+ y% e& Q( p+ ^xlabel('时间(秒)');ylabel('控制信号 u(k)的变化曲线');
0 E& p/ _  C3 Q" Qfigure(3);4 G+ g6 J3 O4 f0 \$ b# v8 t. B
subplot(311);
: M5 F2 g& r- n- h( ]3 p1 l  Eplot(time,kp,'r');0 G& r5 t/ f4 W: y2 @9 h. |. U
xlabel('时间(秒)');ylabel('参数 kp');# p( \# l- D/ g/ z% ?5 H9 W4 p
subplot(312);
$ N/ n) V) z2 g3 ^. Mplot(time,ti,'r');+ d+ \6 J" I. }2 C5 }7 @% r
xlabel('时间(秒)');ylabel('参数 ki');/ r+ B2 E' D6 {# Z* S  ~
subplot(313);
* ^- F: q6 W5 fplot(time,td,'r');8 @) Q7 a( V, ~
xlabel('时间(秒)');ylabel('参数 kd');0 b0 w' i$ U8 z. }
: p* [5 w6 {1 }8 P$ f

/ _/ x/ ]* r' |5 y目标值不能过大怎么解决
$ w% i. @" e5 f2 d$ W* j

该用户从未签到

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

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-10-6 15:07 , Processed in 0.140625 second(s), 23 queries , Gzip On.

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

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

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