标题:跪求s函数编的灰色预测模块
只看楼主
wujingj3392
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2008-7-21
 问题点数:0 回复次数:2 
跪求s函数编的灰色预测模块
各位大虾谁能帮忙。
我需要用simulink 中的s函数编写灰色预测模块,我编写的程序总是不理想,且和模糊控制结合时无法预测,谁能帮帮我这可怜的孩子啊,不胜感激啊!!!!!!!
function [sys,x0,str,ts] = try_3(t,x,u,flag)

switch flag,

 
  case 0,
    [sys,x0,str,ts]=mdlInitializeSizes

 
 
 
 
  case 3,
    sys=mdlOutputs(t,x,u)


  
    case{1,2,4,9}
        sys=[];


  otherwise
    error(['Unhandled flag = ',num2str(flag)])

end


function [sys,x0,str,ts]=mdlInitializeSizes


sizes = simsizes

sizes.NumContStates  = 0;
sizes.NumDiscStates  = 0;
sizes.NumOutputs     = 1;
sizes.NumInputs      = 1;
sizes.DirFeedthrough = 1;
sizes.NumSampleTimes = 1;   

sys = simsizes(sizes);


x0  = [];


str = [];


ts  = [-1 0];

set_param(gcb,'UserData',[0 0 0] );


function sys=mdlOutputs(t,x,u)

g=get_param(gcb,'UserData');
c=u
Y=[g u];
Ym= [Y(2) Y(3) Y(4)];
set_param(gcb,'UserData',Ym);

y1=Y(1);
y2=Y(1)+Y(2);
y3=y2+Y(3);
y4=y3+Y(4);

B=[-0.5*(y1+y2),1;-0.5*(y2+y3),1;-0.5*(y3+y4),1];
N=B'*B;
if  det(N)==0;
    a=0;
else
C=(inv(B'*B));
E=C*B';
D=E*[Y(2) Y(3) Y(4)]';
m = (y1-D(2)/D(1))*exp(-D(1)*4)+D(2)/D(1);
n=(y1-D(2)/D(1))*exp(-D(1)*3)+D(2)/D(1);
a=m-n;
end
sys=a;
这是我编的程序,谁能帮忙瞅瞅啊!
搜索更多相关主题的帖子: 模块 函数 灰色 预测 
2008-07-21 13:07
leah84
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2010-8-9
得分:0 
我和楼主一样也在为同样的问题而困惑,楼主QQ号是多少呢?我的QQ是473350208,希望能交流一下
2010-08-09 17:41
leah84
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2010-8-9
得分:0 
我对这段程序输入了正弦信号即y=sinx,采样时间间隔为0.01秒。仿真结果显示输入值和预测值好像并不是正弦信号哦。有没有达人指点一下,程序到底哪里出错了?楼主所说的无法和模糊控制结合后很好的预测是指什么呢?能具体说说嘛?

[ 本帖最后由 leah84 于 2010-8-29 17:15 编辑 ]
2010-08-09 18:07



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




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

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