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

#技术风云榜#给大家分享一段PID代码(人家写好的)

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2020-11-23 15:33 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

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

x
clear all;
+ ~" A/ M+ I# [/ T2 _; xclose all;: f3 ?. @) S; F' W2 _; G

& j  L7 ]. i) ^' N+ [% 初始化神经元输入信号
' Z& x. w" n/ k1 wx=[0,0,0]';9 x' v% e1 ~1 _1 j1 r
5 o, e- a( A/ ^3 K, {$ ?  ?
% 初始化学习率参数9 x# Q" I9 _, g$ r* E6 p
xiteP=0.5; xiteI=0.6; xiteD=0.5;
* Q) E, G/ p% n  F, J- L3 @( O& {! G- @. Z. I% }" u" I
%初始化kp,ki,kd# O% [2 j! n( @# E
wkp_1=0.1; wki_1=0.1; wkd_1=0.5;. ~( f" f; Q8 G* H& W

. o6 W9 E" ^: s5 [4 r% 初始化前两个时间单元的误差信号% C9 R) ^- @% \9 a' ?0 e- E
error_1=0; error_2=0;  Z: s- W# T0 H, A5 S
, R8 M6 }, M! G4 U9 \7 G- D$ A
% 初始化前三个时间单元的输出信号
( T: E" [2 V* Vy_1=0;y_2=0;y_3=0;7 {: j, {5 M' D
% 初始化前三个时间单元的控制信号
9 p+ }5 E0 F$ ~/ M+ W9 E$ Wu_1=0.0;u_2=0.0;u_3=0.0;; B' N0 e2 L! x
% 初始化采样时间! Y' C. b' Z) C" S; n6 C2 C
ts=0.001;3 Q: j: n6 }3 R7 ^$ K

' i8 [8 i5 t. x3 I2 [% sys=tf(300,[1,20,0]);
. R" E. O, K- ~6 ~- B8 d4 U' S2 X% dsys=c2d(sys,ts,'z');
* ^  }6 y3 k3 V5 `" C9 L; }8 |% [num,den]=tfdata(dsys,'v');
- o0 }4 L' `# U$ x% x=[0,0,0]';
; T: f" h6 J* Q4 O- _/ w; `
  ]. ?; c  _( q' hfor k=1:1:10009 _2 Y4 q. w2 w" q5 g. n
    time(k)=k*ts;
2 c6 [3 {+ |( |6 |( ~! B" ]: T    rin(k)=0.5*sign(sin(2*2*pi*k*ts));
- ?! S& y. B; J& L    yout(k)=1.5*y_1-0.7*y_2 + u_1+ 0.5*u_2;
% q4 {6 q$ J( K- P$ ^' ^    error(k)=rin(k)-yout(k);
9 c( u' _; [' C0 ^: @4 c7 W$ d3 Z" @' R$ j+ T! `( f3 b1 ^
    % 根据M的不同,选择不同的算法
% o' L! |' o3 h! l/ K% k* b5 v+ ?! L        wkp(k)=wkp_1+xiteP*u_1*x(1);
7 {, U. x1 I! i$ r- S) o0 W6 }% Z        wki(k)=wki_1+xiteI*u_1*x(2);
5 B' l1 S- c- K$ v        wkd(k)=wkd_1+xiteD*u_1*x(3);
. a) Z1 d+ S! `2 Q+ e2 E        K=0.06;
7 K7 B+ {6 ^" m7 R0 M; e! h  W2 f( S7 g* I0 @! L+ O
    x(1)=error(k)-error_1;5 D. }$ K0 A: n" _7 {! P7 n, J
    x(2)=error(k);
& S0 @. o* l2 p3 K2 u    x(3)=error(k)-2*error_1+error_2;) Q. M  N9 ]+ l$ }' @8 |
    wadd(k)=abs(wkp(k))+abs(wki(k))+abs(wkd(k));3 R. @7 x2 J& v/ U
    w11(k)=wkp(k)/wadd(k);
* v! H6 }& ^4 j& @    w22(k)=wki(k)/wadd(k);
" |# p9 Q  v9 w9 r( K5 Q    w33(k)=wkd(k)/wadd(k);+ h: d: P( H0 k' b9 m. W# Y- X
    w=[w11(k),w22(k),w33(k)];& K2 m* R% Y* B. [
) \/ b8 U! ~2 j5 h6 S
    u(k)=u_1+K*w*x;2 W6 z- V4 K: Z" y. o* s
    if u(k)>108 h  Y* N% c  x$ f$ ~& V, B
        u(k)=10;9 d# g0 z9 Y0 s+ x. x1 T% a" M( i
    end
$ ]3 i7 y9 Q2 U% u6 B    if u(k)<-10
1 {& z6 ]! e# a4 j        u(k)=-10;+ H/ @: r$ h5 J6 m9 A
    end;, W$ F" {$ V7 u# `9 Q/ v- I# l: W, R
    error_2=error_1;( F6 w) s5 g) I$ Q, J5 M% p: g
    error_1=error(k);2 t1 i- p/ ]4 a! c3 s$ c6 j
    u_3=u_2;u_2=u_1;u_1=u(k);
0 c5 z! b8 A7 ?' e/ E    y_3=y_2;y_2=y_1;y_1=yout(k);5 B2 D5 k0 w$ @: P5 W
    wkp_1=wkp(k);3 \3 ^* B1 a% ~( Y+ B1 W9 ]
    wki_1=wki(k);
$ T# T( |. O: Q2 Q4 n    wkd_1=wkd(k);  
# l/ j5 |) `6 h& S6 D8 d, I# W. nend/ _( ^; c9 I; Q( ?: q; u: a4 Y7 x

6 K9 ~0 t' t- h9 E  s: z# wfigure(1);
- |9 i1 ^+ j' T$ L9 r8 i+ xplot(time,rin,'b',time,yout,'r');
9 J/ d$ \1 V5 h" K' k$ u3 _' @9 U+ ]xlabel('t/s');ylabel('rin,yout');
, `1 \3 t' t2 z8 B& Z+ ufigure(2);; x+ ?7 O- L0 k( g1 W  Y% l  {
subplot(311);
& F  z, L5 P. }5 ^3 [4 a' Oplot(time,wkp,'r');7 O" k0 u0 v6 P5 g$ ~, U4 W
xlabel('t/s');ylabel('wkp');
. Z1 o! U/ x. r; F' n! d- Ssubplot(312);
2 y1 [" a. H9 v( v8 {plot(time,wki,'r');
. y, ~: G9 W$ Y5 |1 `xlabel('t/s');ylabel('wki');) t6 F" d" {- A$ O3 u0 t
subplot(313);
4 u5 I* ^$ r5 H! `/ }  t0 Q  P1 cplot(time,wkd,'r');4 Q6 z; W! e3 B3 `  r+ |+ c
xlabel('t/s');ylabel('wkd');
# b3 r$ ~1 B( r2 a
; @. e1 [8 S1 l; l  j: v
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-11-2 14:59 , Processed in 0.156250 second(s), 24 queries , Gzip On.

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

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

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