24小时热门版块排行榜    

查看: 753  |  回复: 0

kaiyu

木虫 (小有名气)

[求助] 基于S函数的BP神经网络P I D控制器,S函数封装问题

今天看了论文《基于S函数的BP神经网络P I D控制器S i m u li n k仿真》按照论文上的步骤做总是出问题,请高手帮忙看一下!
%%m文件
function [sys,x0,str,ts]=bp_pids(t,x,u,flag,T,nh,xite,alfa,kF1,kF2)
T=0.001;
nh=5;
xite=0.25;
alfa=0.05;
kF1=1;
kF2=2;
switch flag,
  
  case 0,
    [sys,x0,str,ts]=mdlInitializeSizes(T,nh);
  
  %case 1,
   % sys=mdlDerivatives(t,x,u);
  
  %case 2,
    %sys=mdlUpdate(t,x,u);
  
  case 3,
    sys=mdlOutputs(t,x,u,T,nh,xite,alfa,kF1,kF2);
  
    case{1,2,4,9},sys=[];
   % sys=mdlGetTimeOfNextVarHit(t,x,u);
  %case 9,
    %sys=mdlTerminate(t,x,u);
  
  otherwise
    error(['Unhandled flag = ',num2str(flag)]);
end
function [sys,x0,str,ts]=mdlInitializeSizes(T,nh)
sizes = simsizes;
sizes.NumContStates  = 0;
sizes.NumDiscStates  = 0;
sizes.NumOutputs     = 4+7*nh;
sizes.NumInputs      = 7+14*nh;
sizes.DirFeedthrough = 1;
sizes.NumSampleTimes = 1;   
sys = simsizes(sizes);
x0  = [];
str = [];
ts  = [T 0];
function sys=mdlDerivatives(t,x,u)
sys = [];
function sys=mdlUpdate(t,x,u)
sys = [];
function sys=mdlOutputs(t,x,u,T,nh,xite,alfa,kFuncl,kFunc2)
wi_2=reshape(u(8:7+4*nh),nh,4);
wO_2=reshape(u(8+4*nh:7+7*nh),3,nh);
wi_1=reshape(u(8+7*nh:7+11*nh),nh,4);
wO_1=reshape(u(8+11*nh:7+14*nh),3,nh);
xi=[u([6,4,1])',1];
xx=[u(1)-u(2);u(1);u(1)+u(3)-2*u(2)];
I=xi*wi_1';
Oh=non_transfun(I,kF1);
K=non_transfun(wo_l*Oh',kF2);
uu=u(7)+K'*xx;
dyu=sign((u(4)-u(5))/(uu-u(7)+0.0000001));
dK=non_transfun(K,3);
delta3=u(1)*dyu*xx.*dK;
wO=wO_1+xite*delta3*Oh+alfa*(wO_1-wO_2)+alfa*(wO_1-wO_2);
dO=2*non_transfun(I,3);
wi=wi_1+xite*(dO.*(delta3'*wO))'*xi+alfa*(wi_1-wi_2);
sys = [uu;K;wi(;wO(];
function sys=mdlGetTimeOfNextVarHit(t,x,u)
sampleTime = 1;   
sys = t + sampleTime;
function sys=mdlTerminate(t,x,u)
sys = [];
function W1=non_transfun(W,key)
switch key
    case 1,W1=(exp(W)-exp(-W))./(exp(W)+exp(-W));
    case 2,W1=exp(W)./(exp(W)+exp(-W));
    case 2,W1=2./(exp(W)+exp(-W)).^2;  
end
文中系统仿真的是y(t)=1.2y(t-1))/(1-0.8e^(-0.1t/T))/(1+y(t-1)^2)+u(t),
出现的问题是:在M文件中是77输入,39输出,在文中mask subsystem中得到2输入,2输出的模块,
(其中输入1为给定信号与对象输出信号的误差e(k),输入2为对象输出信号y(k)。输出1为控制器的输出u(k),
输出2为kp,ki,kd-个权值的变化量。)
我用simulink做出程序,但是还是变量个数有问题?
不知文章是怎么实现的?请高手指点~
基于S函数的BP神经网络P I D控制器,S函数封装问题
NNPID.PNG



[ Last edited by kaiyu on 2013-7-15 at 20:21 ]
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 kaiyu 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[基金申请] 时间戳又变了8-15 +11 archvillain 2026-08-15 20/1000 2026-08-15 17:47 by 医学老男孩
[考研] 售SCI文章,我:8O5.5.1.O.54,科目齐全,可+急 +5 7lpolszZVXgi 2026-08-14 9/450 2026-08-15 17:46 by 7huP8NPKZCp9
[博后之家] 售SCI一区T0P文章,我:8O.55.1.O.54,科目全,可伽急 +3 HFw0lei2R37i 2026-08-14 5/250 2026-08-15 17:42 by 7huP8NPKZCp9
[基金申请] 小木虫上这么多卖论文的,真有人买论文么?感觉没必要啊 +12 Tide man 2026-08-10 13/650 2026-08-15 16:34 by 氺木
[基金申请] 欢迎发来filecode的Mz6后的代码验证其规律 +27 医学老男孩 2026-08-13 58/2900 2026-08-15 15:57 by GZUZM
[论文投稿] 售一区SCI文章T0P,我:8O.551.O54,科目全,可十急 +3 k0dTPqJtl0jt 2026-08-14 5/250 2026-08-15 15:10 by QXtWNz7PI7wZ
[硕博家园] 售SCI一区文章,我:8O5.5.1.O5.4,科目全,可伽急 +4 k0dTPqJtl0jt 2026-08-14 5/250 2026-08-15 14:58 by QXtWNz7PI7wZ
[考研] 售SCI一区T0P文章,我:8.O.55.1.O.54,科目齐全,可+急 +5 HFw0lei2R37i 2026-08-14 9/450 2026-08-15 11:33 by KxMI1BYBxWX1
[教师之家] 售SCI一区T0P文章,我:8O.55.1.O.5.4,科目齐全,可+急 +5 7lpolszZVXgi 2026-08-14 6/300 2026-08-15 09:28 by sunzitan
[公派出国] 售SCI-T0P文章,我:8O.5.5.1.O.54,科目齐全,可+急 +3 k0dTPqJtl0jt 2026-08-14 5/250 2026-08-15 07:09 by 4wMiSEwB6436
[考博] 售SCI文章,我:8O.5.5.1O.54,科目全,可十急 +4 k0dTPqJtl0jt 2026-08-14 5/250 2026-08-15 04:45 by 4wMiSEwB6436
[硕博家园] 售SCI一区T0P文章,我:8.O55.1.O.54,科目全,可十急 +3 HFw0lei2R37i 2026-08-14 4/200 2026-08-15 04:17 by 4wMiSEwB6436
[基金申请] 咱们一起用铁证分析2026国家社科基金中标与否 +7 启萌科技 2026-08-12 22/1100 2026-08-14 23:45 by Noways
[基金申请] 奇怪,两个人的filecode固定段从头到尾一模一样 +8 布布和一二 2026-08-10 11/550 2026-08-14 14:58 by Equinoxhua
[基金申请] FileCode能看出啥? +10 要乐观耀哥 2026-08-10 32/1600 2026-08-14 09:37 by 要乐观耀哥
[基金申请] 我的国基提前知道中了,可是同事的操作让我实在接受不了,怎么会有这样的人 +10 家与远方 2026-08-10 15/750 2026-08-14 02:08 by 绵羊哥哥
[文学芳草园] 阿姨 +4 汪汪锅 2026-08-09 4/200 2026-08-13 19:43 by arzu_hma
[基金申请] 静等基金结果 +8 gjjjzhong 2026-08-10 21/1050 2026-08-13 17:56 by 且听虎啸
[基金申请] 为什么网上很多人说本周 12号出结果 +6 瞬息宇宙 2026-08-10 7/350 2026-08-11 19:25 by Tide man
[基金申请] 什么时候出结果,有咨询渠道??? +3 Tide man 2026-08-11 3/150 2026-08-11 17:54 by kudofaye
信息提示
请填处理意见