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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
%基于 BP 神经网络的 PID 控制
# I) F7 w9 [3 e$ m4 A4 Wclear all;% A. C7 ^& l" _2 P' D2 M
x1=0.3;a1=0.07;
2 I& \6 c7 Q$ U2 r1 s0 h. {S=1; %信号类型
  o* q5 O# K6 ZIn=4;h=5;Out=3; %神经网络结构
& r7 v, X3 T5 y# hif S==1, %阶跃信号7 u3 _8 N4 @+ I; I$ S
wi=[-0.6394 -0.2696 -0.3756 -0.7023;
$ S/ C( |" r) c4 d( ^; w/ {-0.8603 -0.2013 -0.05024 -0.2596;1 j, p" Z2 w8 f) I, i
-1.0749 0.5543 -1.6820 -0.5437;9 v% j% r' |  R
-0.3625 -0.0724 -0.6463 -0.2859;; }2 @9 l+ f' @& Q; l" M
0.1425 0.0279 -0.5406 -0.7660];8 p' Z. @7 t4 ~: J
%wi=0.50*rands(h,In);
3 L: T$ t2 H9 iwi1=wi;wi2=wi;wi3=wi;
5 T3 n$ A' k7 i  z8 A. Pwo=[0.7576 0.2616 0.5820 -0.1416 -0.1325;2 i  Q5 b# l) s' f
-0.1146 0.2949 0.8352 0.2205 0.4508;# Z- N# n) q: A- G( i
0.7201 0.4566 0.7672 0.4962 0.3632];
, B& C0 o" G: U%wo=0.50*rands(Out,h);
3 r5 o% D$ a( c  Qwo1=wo;wo2=wo;wo3=wo;
3 k% M. E$ K/ C9 U! {7 ~# d% Q) }end* k  b1 S) Z4 I( B8 u' w$ i
if S==2 %正弦信号
9 ?1 s4 h/ b& e; V3 L2 o9 K) owi=[-0.2846 0.2193 -0.5097 -1.0668;  ~3 R$ m! T% N' B5 u
-0.7484 -0.1210 -0.4708 0.0988;" H. C) J3 [6 D3 z+ W
-0.7176 0.8297 -1.6000 0.2049;
/ c' [- m# U7 F3 W, O. p-0.0858 0.1925 -0.6346 0.0347;, H0 [5 K1 f& P+ P4 Z: I  l
0.4358 0.2369 -0.4564 -0.1324];
- A- C8 r: V0 N1 K9 `# G! p0 e' V$ p%wi=0.50*rands(h,In);* P9 D7 [: [( i! C/ h' S: h) k
wi1=wi;wi2=wi;wi3=wi;6 }8 o5 x- `8 {7 _2 Y
wo=[1.0438 0.5478 0.8682 0.1446 0.1537;
0 M1 i, N% t/ C/ ^. `0.1716 0.5811 1.1214 0.5067 0.7370;
4 N; m8 s1 x/ f! [+ C% O! }2 W1.0063 0.7428 1.0534 0.7824 0.6494];
, K; \6 `" U4 w  |! X+ K* g%wo=0.50*rands(Out,h);
3 }& R9 H# L5 N; swo1=wo;wo2=wo;wo3=wo;
3 z4 x, I% H) Qend, O) T& _6 R& V9 {
x=[0,0,0];
6 w' r0 O, b4 lu1=0;u2=0;u3=0;u4=0;u5=0;
/ q# r8 Z8 J, c* F1 `/ {. z. J8 s! }9 }; By1=0;y2=0;y3=0;
) I& b) K9 _3 m3 Foh=zeros(h,1); %神经网络中间层输出
& l! a7 L1 A) T! P: M- m0 }: AI=oh;%神经网络中间层输入
. F* i  A, {2 J% @7 ~error1=0;/ L+ t" H, o* \1 `+ F
error2=0;
  X7 u" T$ S3 `8 M! |6 K6 Hts=0.003;) e$ S  u* H4 B
for k=1:1:1000,4 G' F* I2 g! S) \: Y# V
time(k)=k*ts;
# w# L; L1 L+ Gif S==1,- K! U( m1 p, M* I
rin(k)=1.0;
* u7 m& }  \5 T0 w* oelseif S==2,
# n' g/ R3 S. X+ b+ s: `$ d6 s7 trin(k)=sin(1*2*pi*k*ts);. v" \* B# u% p% R5 Z
end, d" g5 J& J8 E
%非线性模型
9 i. p5 Z  `; oa(k)=1+0.15*sin(k*pi*ts/25);/ p1 O4 W1 {% N' g$ X8 r
y(k)=(a(k)*y1+u1)/(1+y1^2)+u1;
/ j2 X% ?9 e, S) L/ Kerror(k)=rin(k)-y(k);
  [3 Z  `  R* M2 P* S2 f/ sxi=[rin(k),y(k),error(k),1];; }' e0 v: ~! P
x(1)=error(k)-error1;
% ^4 d5 b4 o7 C1 {/ @x(2)=error(k);
2 d) ?2 T8 H7 M; u# Z" c: Fx(3)=error(k)-2*error1+error2;
4 z9 j, V# E$ ~& f% b. m+ W- ]: Ced=[x(1);x(2);x(3)];. v, c( J: S2 j7 A
I=xi*wi';
+ ^* o5 y0 J4 ]  e. I6 c* pfor j=1:1:h
! v- l5 e3 K- b9 A6 ^9 l8 Ooh(j)=(exp(I(j))-exp(-I(j)))/(exp(I(j))+exp(-I(j)));
, C: T. L% P# `7 k* wend8 u8 z9 n( t/ M' Z9 m
K=wo*oh; %输出层
/ J/ u0 P& H. w" r! Q3 T' Ffor j=1:1:Out
# P8 G8 J& S/ E; E' I: |2 g$ G! \. T2 {K(j)=exp(K(j))/(exp(K(j))+exp(-K(j))); %求 kp,ti,td
- b6 M8 u: T3 ~# D8 u4 nend
/ t! E1 ~: A" @0 Y! J* F1 Qkp(k)=K(1);ti(k)=K(2);td(k)=K(3);* I; _% Q0 W5 U! K1 U2 A
Kd=[kp(k),ti(k),td(k)];% a5 @! f! b* W4 [) g1 p& L
du(k)=Kd*ed;5 d9 e$ S/ w3 y3 N7 G, M' |
u(k)=u1+du(k);
' N2 l6 @7 ^2 _( Z9 q4 a$ m1 @if u(k)>=10, %限制控制器输出
1 U4 x  n/ k- y" `$ J/ Du(k)=10;
, k2 C  n9 C6 Y7 k% Wend
% V! f+ p7 p% t! {& W- b1 a7 e' Hif u(k)<=-10,; w) m: e8 c3 A, _) Y/ g$ u/ k8 U
u(k)=-10;0 {7 O( z8 T1 J: m: `
end
9 y4 C- x/ Q# Odyu(k)=sign((y(k)-y1)/(u(k)-u1+0.0000001));/ c% E! x; v1 s. T5 l
for j=1:1:Out,8 Z# H+ H; w7 |
dK(j)=2/(exp(K(j))+exp(-K(j)))^2;& [# V/ X3 |8 G) E  r8 {
end& c! j  l% W; U+ K1 ~: r4 I2 Q
for i=1:1:Out,
5 b) W: |7 G  d4 i6 z$ r' u1 ode3(i)=error(k)*dyu(k)*ed(i)*dK(i);; z' t! y9 }5 I$ b
end6 t: w3 v6 _& z9 z, @" k
for j=1:1:Out,
/ G4 O! x4 e7 J2 _for i=1:1:h,
) I7 S( `" U6 _/ x& kdwo=x1*de3(j)*oh(i)+a1*(wo1-wo2);
- Z0 P. ^' z8 S" Z% fend( H$ v5 A& H/ J- b% ^
end8 \, k3 k# ?2 ]3 P
wo=wo1+dwo+a1*(wo1-wo2);" W& n; c  t: F! i
%隐含层+ @1 N2 Z9 p- R" i3 J4 v0 i. q
for i=1:1:h,/ Y9 K- H; x: B: {
dO(i)=4/(exp(I(i))+exp(-I(i)))^2;
, h  y. Z2 Q! U& Jend
/ `" k) b+ D- F% X& O, n) Q& Tseg=de3*wo;
- L" H6 O8 h4 T- A: u) sfor i=1:1:h' P1 r& ]/ x- u
de2(i)=dO(i)*seg(i);2 V0 h0 J! o  y- Z4 L3 T
end
0 \2 C# u/ x% A. A5 Udwi=x1*de2'*xi;
/ @8 u' V) C) E' r7 @! Gwi=wi1+dwi+a1*(wi1-wi2);
. E: T, ]/ @5 b% w1 @; H+ p& Q5 b%参数更新( [8 ?, Z6 X8 c
u5=u4;u4=u3;u3=u2;u2=u1;u1=u(k);( l1 \+ [' b0 c% s) _
y2=y1;y1=y(k);7 Q# g( ^; ?5 i6 e' `5 u: @: J
wo3=wo2;wo2=wo1;wo1=wo;
$ K6 _+ G: u( m4 `3 \7 m9 g( Awi3=wi2;wi2=wi1;wi1=wi;
0 V6 H, a% O. c" U- Z9 C( verror2=error1;
2 }6 |5 u) G* F/ w# a3 k9 M- ?error1=error(k);
! Q- U4 ~) C9 {- {+ ]* aend
( M5 ]$ U1 H( K6 r; A7 b; H  m3 \figure(1);* ^  x7 z+ J9 a& R! c% w- K1 e+ a
plot(time,rin,'r',time,y,'c');
0 e2 k% I( U0 ixlabel('时间(秒)');ylabel('输出跟踪输入的响应曲线');3 _( x2 i% m+ ]6 j
figure(2);( H3 X% H7 w5 C
plot(time,u,'r');5 b$ [; r8 I# t1 ^0 C
xlabel('时间(秒)');ylabel('控制信号 u(k)的变化曲线');+ U. T/ ~8 W% Z; ]
figure(3);
! h! }9 H* Z1 @% Z! msubplot(311);
4 \+ H$ I1 u) `plot(time,kp,'r');
) Q  |. _& y0 Mxlabel('时间(秒)');ylabel('参数 kp');% x4 V, v& A7 z" S- T
subplot(312);
1 G4 f/ l8 u0 H* w4 Pplot(time,ti,'r');
9 O2 G9 @0 ?% n2 l7 W7 Dxlabel('时间(秒)');ylabel('参数 ki');
! n  J. U4 Z: fsubplot(313);5 n5 v; U4 g7 v
plot(time,td,'r');; G2 C. m! e+ C
xlabel('时间(秒)');ylabel('参数 kd');; T! F' S4 B) v/ ~
+ T; a4 r1 \1 m0 F: }! k' |

2 d. \; }; q' t' y5 C9 @% x( b5 B4 P目标值不能过大怎么解决
3 [- R9 x* s" H% Q

该用户从未签到

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

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

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

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

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

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