24小时热门版块排行榜    

Znn3bq.jpeg
查看: 720  |  回复: 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 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 295分求调剂 +6 ?要上岸? 2026-04-17 6/300 2026-04-21 08:18 by Equinoxhua
[考研] 085600材料与化工调剂 5+3 孜孜不倦2002 2026-04-19 6/300 2026-04-20 21:25 by babero
[考研] 320求调剂 +6 深郊akm 2026-04-17 6/300 2026-04-20 18:57 by fs26jie
[论文投稿] 期刊推荐 +3 材料研究生 2026-04-15 5/250 2026-04-20 16:02 by 豆豆7758
[考博] 申博 +3 Xyyx. 2026-04-18 3/150 2026-04-20 10:44 by YuY66
[考博] 湖南大学刘巧玲课题组2026年第二批次博士研究生招生信息 +3 南风观火 2026-04-18 5/250 2026-04-20 10:13 by 南风观火
[考研] 通信工程求调剂!!! +7 zlb770521 2026-04-14 7/350 2026-04-19 20:56 by Equinoxhua
[考研] 297,工科调剂? +11 河南农业大学-能 2026-04-14 11/550 2026-04-19 20:07 by Equinoxhua
[考研] 294求调剂 +8 淡然654321 2026-04-17 9/450 2026-04-19 19:51 by Equinoxhua
[考研] 304求调剂 +8 castLight 2026-04-16 8/400 2026-04-19 17:14 by 中豫男
[考研] 求调剂推荐 +9 小聂爱学习 2026-04-14 9/450 2026-04-19 17:03 by 中豫男
[考研] 291求调剂 +12 关忆北. 2026-04-14 13/650 2026-04-19 16:50 by 中豫男
[考研] 求调剂 +6 苦命人。。。 2026-04-18 7/350 2026-04-19 16:27 by 中豫男
[考研] 307中医考研调剂 +9 于以采蘩 2026-04-14 9/450 2026-04-19 08:41 by 烟雨流涯
[考研] 接受任何调剂 +6 也就是栗子 2026-04-17 7/350 2026-04-18 17:20 by 涵竹刘
[考研] 297,工科调剂? +5 河南农业大学-能 2026-04-14 5/250 2026-04-18 15:17 by Equinoxhua
[考研] 收到复试调剂但是去不了 +8 小蜗牛* 2026-04-16 8/400 2026-04-18 11:15 by zixin2025
[考研] 260求调剂 +4 Zyt1314520.. 2026-04-17 5/250 2026-04-18 08:28 by babysonlkd
[考研] 急需调剂 +9 绝不放弃22 2026-04-15 10/500 2026-04-18 08:09 by chixmc
[有机交流] 二苯甲酮酸类衍生物 50+3 小白爱主人 2026-04-17 6/300 2026-04-17 18:47 by kf2781974
信息提示
请填处理意见