声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 2697|回复: 7

[振动控制] [求助]急啊,:用arx()系统辨识!!

[复制链接]
发表于 2006-10-12 10:18 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
这是个系统辨识方面的,先用resample()对数据长度进行了一致化,之后零均值

化,然后应用Arx(),但是为什么拟合的效果这么差呢?
还采用了armax(),及相关分析-最小二乘法,都不理想,而且,相关分析-最

小二乘过程中,还出现了反相的现象,求助高人指点啊? 急啊:)

Zww.mat 是 原始数据
zww.m是 程序

可以直接运行的。
回复
分享到:

使用道具 举报

 楼主| 发表于 2006-10-12 14:34 | 显示全部楼层

这是源程序:

clear;
clf;
load zww.mat;       % 导入原始数据
%out=pressure_out;     % 蒸汽压力
%out=tangwen_out;      % 炉膛温度
out=t_zhenqi;          % 蒸汽温度

%--------------------------------------------------------------------
% in,out是原始的输入输出数据,长度和采样间隔可能不匹配,
% 以长度大的为基准重采样,
% in1,out1是重采样后,数据长度匹配的数据
%--------------------------------------------------------------------
if length(in)~=length(out)
    if length(in)<length(out)
        in1=DataResample(in,length(in),length(out));  % match both demision
        out1=out;
    else
        out1=DataResample(out,length(out),length(in));% 以长度大的为基准重采样
        in1=in;
    end
else
    in1=in;
    out1=out;
end


%--------------------------------------------------------------------
% 对in1,out1采用Dtrend分段趋势化方法,作零均值化处理,
% in2,out2为处理后的数据
%--------------------------------------------------------------------
t=[1:length(in1)]';     % 对in1作趋势化处理

clf;
plot(t,in1,'r');        % the inital output figure
hold on;            
in2=dtrend(in1,1,[258 300]);     % 分段线性趋势化[258,300]--2 []--1  []--3
plot(t,in2,'b');          % 消除趋势后的数据           
hold on;
plot(t,in1-in2,'k:');      % 趋势值
            
           %----------------------------------------------------
clf;                    % 对out1作趋势化处理
plot(t,out1,'r');        
hold on;            
out2=dtrend(out1,1,[280]);     % 分段线性趋势化[258,300]--2 []--1  []--3
plot(t,out2,'b');          % 消除趋势后的数据           
hold on;
plot(t,out1-out2,'k:');      % 趋势值


%-----------------------------------------------------------------
na=10;     
nb=na;       % A B的阶次
nk=5;       % 纯延迟
nc=10;        % 噪声模型阶次

%--------------------------------------------------------------
% 对in2,out2使用arx模型建模,得出二次多项式m_arx
% 使用函数arx(),基于最小二乘估计的ARX模型辨识
%--------------------------------------------------------------
if 0
z0=iddata(out2,in2,14);
m_arx=arx(z0,[na nb nk]);
y_model=sim(m_arx,in2);
v_fpe=fpe(m_arx);
end

%---------------------------------------------------------------
% 对in2,out2使用armax模型建模,得出二次多项式m_armax
% 使用函数armax(),估计ARMAX或ARMA模型的参数
%---------------------------------------------------------------

if 0
    z0=iddata(out2,in2,14);
    m_armax=armax(z0,[na nb nc nk]);   
    y_model=sim(m_armax,in2);
    v_fpe=fpe(m_armax);
end

%---------------------------------------------------------------
% 对in2,out2使用cor_ls模型建模,得出二次多项式m_cor_ls
% 使用函数xcorr()及arx()或armax(),基于相关分析-最小二乘的方法
%---------------------------------------------------------------
if 1
    u1=xcorr(in2,in2);
    y1=xcorr(in2,out2);
    z1=[y1,u1];      
    m_cor_ls=arx(z1,[na nb nk]);
    y_model=sim(m_cor_ls,in2);       %相关分析
    v_fpe=fpe(m_cor_ls);
   
end

%---------------------------------------------------------------
%
%---------------------------------------------------------------
t=1:1:length(out2);
clf;
plot(t,out2,'b',t,y_model,'k:');  % 显示拟合的函数图形

if 0
hold on;
y1=out2-y_model;
plot(y1,'r');
plot(xcorr(y1));        % 显示残差的自相关函数图形
end
发表于 2006-10-13 08:33 | 显示全部楼层
1) 你的附件中只是数据啊?最好程序也放于其中,并且数据好像被破坏了,load不了。
2)问题可能是:[na nb nk]几个值的选择,这与系统模型的结构有直接联系,可能试凑看看!
                              如果数据很多毛刺,做个低通滤波吧!输入输出数据本身是否确保无误?

评分

1

查看全部评分

 楼主| 发表于 2006-10-14 10:26 | 显示全部楼层
你把你的路径设一下就可以了
 楼主| 发表于 2006-10-14 10:28 | 显示全部楼层
好的,我重新弄一下
 楼主| 发表于 2006-10-14 10:33 | 显示全部楼层

现在是.m 和.mat文件都打包在一起了

谢谢cao啊,麻烦再帮我看看啊!!!!!!!
发表于 2006-11-17 22:20 | 显示全部楼层
1)我还读不了你的数据文件,是否是MATLAB版本问题,我的为6.5.总提示文件被破坏!
2)恳请其他朋友帮忙试试!
3)zhang_2wei 是否已经解决了问题?

至今才给您回复,本人恳请原谅!(前段时间由于电脑出了问题,MATLAB等程序无法安装.)
发表于 2007-6-12 10:39 | 显示全部楼层

求助限定记忆法的matlab程序!!

本人现急需用限定记忆法估计模型参数的程序,有哪位能人帮帮我吧,在此深表谢意!!
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-7-3 17:52 , Processed in 0.051624 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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