标题:基于Hebb的单神经元自适应PID控制——问题求助
只看楼主
shangwu2010
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2014-12-9
 问题点数:0 回复次数:1 
基于Hebb的单神经元自适应PID控制——问题求助
function [sys,x0,str,ts] = sj_PID1(t,x,u,flag)
switch flag,
  case 0,
    [sys,x0,str,ts]=mdlInitializeSizes;
  case 1,
    sys=mdlDerivatives(t,x,u);
  case 2,
    sys=mdlUpdate(t,x,u);
  case 3,
    sys=mdlOutputs(t,x,u);
  case 4,
    sys=mdlGetTimeOfNextVarHit(t,x,u);
  case 9,
    sys=mdlTerminate(t,x,u);
  otherwise
    DAStudio.error('Simulink:blocks:unhandledFlag', num2str(flag));

end
function [sys,x0,str,ts]=mdlInitializeSizes
sizes = simsizes;
sizes.NumContStates  = 0;
sizes.NumDiscStates  = 3;
sizes.NumOutputs     = 1;
sizes.NumInputs      = 1;
sizes.DirFeedthrough = 1;
sizes.NumSampleTimes = 1;  
sys = simsizes(sizes);
x0  = [0;0;0;];
str = [];
ts  = [-1 0];


function sys=mdlDerivatives(t,x,u)
sys = [];

function sys=mdlUpdate(t,x,u)
x(3)=x(2);
x(2)=x(1);
x(1)=u;
q1=x(1);
q2=x(1)-x(2);
q3=x(1)-2*x(2)+x(3);
sys =[q1;q2;q3];

function sys=mdlOutputs(t,x,u)
 persistent wkpl_1 wkil_1 wkdl_1 ul_1
 xiteP=700;
 xiteI=10;
 xiteD=60;
if t==0   
 wkpl_1=rand;
 wkil_1=rand;
 wkdl_1=rand;
 ul_1=0;
 end
% %有监督的Hebb学习算法的权值调整规则
 wkil=wkil_1+xiteI*x(1)*ul_1*x(1);%I
 wkpl=wkpl_1+xiteP*x(1)*ul_1*x(2);%P
 wkdl=wkdl_1+xiteD*x(1)*ul_1*x(3);%D
 waddl=abs(wkpl)+abs(wkil)+abs(wkdl);
 wlll=wkpl/waddl;
 wl22=wkil/waddl;
 wl33=wkdl/waddl;
 wl=[wlll,wl22,wl33];
 kl=7;
 ul=kl*wl*x;  %增量型
 wkpl_1=wkpl;
 wkdl_1=wkdl;
 wkil_1=wkil;
 ul_1=ul+ul_1;
sys=ul;

function sys=mdlGetTimeOfNextVarHit(t,x,u)
sampleTime = 0.01;%  Example, set the next hit to be one second later.
sys = t + sampleTime;

function sys=mdlTerminate(t,x,u)
sys = [];
搜索更多相关主题的帖子: otherwise function 神经元 
2014-12-09 16:35
shangwu2010
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2014-12-9
得分:0 
问题是:   当加入干扰时,系统并不能像预期的那样恢复到稳态和效果。。。即使不加入干扰,也不能真正实现0误差。
。。。。输入为阶跃信号1760,干扰在第5s,仿真时间为10s,干扰大小为2000,
2014-12-09 16:44



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-439757-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.107004 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved