huazi071783 发表于 2010-4-24 10:20

随机子空间模态参数识别法问题

我做了一个简支刚拱的模态实验,测量各个节点的应变响应,然后用随机子空间识别法来识别钢拱的模态参数,但出现很多问题,哪位有随机子空间识别法的MATLAB程序,能否发给我参考一下,可否发到我邮箱,谢谢!
xiaonie071783@163.com

[ 本帖最后由 huazi071783 于 2010-4-24 11:59 编辑 ]

fkts2007 发表于 2010-4-24 15:54

同求!同求!希望以前编过这个算法的前辈多帮忙
szwwww@163.com
我也写过一个,和楼主一样不成功,我的程序算出来的结果完全不靠谱

小林落叶 发表于 2010-4-26 17:17

同求,想要用下随机子空间处理数据,苦于不会编写程序

huazi071783 发表于 2010-4-30 09:54

随机子空间法程序共享

以下是我写的随机子空间法模态识别法的程序,信号是15通道长度为1024的动应变响应,识别出拱的应变模态和频率及阻尼比,得到的结果和实际的差异很大,得到的应变振型是一个150*150的复数矩阵,而不是实数矩阵,我现在不知道怎么来提取应变模态振型,请高手指点,谢谢!!


% 2n1是hankel矩阵的行数数,n2是hankel矩阵的列数,d是采样频率
load('strainsig4.mat');                                              %strainsig是1024长度的15通道动应变响应
h=strainsig4; =size(h);
% r=1024; c=15   ;
n1=10; n2=1000; d=2000;
for j=1:n2, for i=1:2*n1
       hankel1(c*(i-1)+1:c*i,j)=h(i+j-1,:)';                               % generate Hankel matrix
end; end
hankel1= hankel1/n2^0.5;
% generate Hankel-matrix from R-matrix
yp=hankel1(1:c*n1,:); yf=hankel1(c*n1+1:c*2*n1,:);
yp1=hankel1(1:c*(n1-1),:); yf1=hankel1(c*(n1-1)+1:c*2*n1,:);
pref=yf*yp'*pinv(yp*yp')*yp; pref1=yf1*yp1'*pinv(yp1*yp1')*yp1;
=svd(pref); =svd(pref1); =size(s);
for i=1:r1
    ss(i)=s(i,i); ssd(i)=sd(i,i); n=find(ss); nd=find(ssd); n=max(n); nd=max(nd);
end
u1=u(:,1:n); s1=s(1:n,1:n); u1d=ud(:,1:nd); s1d=sd(1:nd,1:nd);
v1=v(:,1:n); oi=u1*s1^0.5; oii=u1d*s1d^0.5;
xi=pinv(oi)*pref; xii=pinv(oii)*pref1;
%compute A C
A=xii*pinv(xi); Yii=hankel1(n1*c+1:(n1+1)*c,:); C=Yii*pinv(xi);
%模态识别
=eig(A); dis=C*v;                                          
Ph=180*(abs(angle(dis))-pi/2)/pi;                  %计算相位角
Mdis=abs(dis).*sign(Ph);                           %应变振型矩阵               
z1=diag(z); z2=log(z1);
fr=abs(z2)*d;                                       %系统圆频率
damp=real(z2)./fr*d;                              %系统阻尼比
fr=fr/(2*pi);                                       %频率
figure(1); plot(ss,'*'); xlabel('阶数');ylabel('奇异值')

[ 本帖最后由 ChaChing 于 2010-5-28 23:41 编辑 ]

charlinew 发表于 2010-10-13 08:27

楼主问题解决了吗?我现在研究应变参数识别,用SSI,可是用程序算出来的振型不对呀,fr解出来好多数,也不知我的程序对不对,希望能帮忙解答一下,我的邮箱clwu@jlu.edu.cn

happy 发表于 2010-10-19 17:18

随机子空间程序修正版
据朋友测试,改成程序是没有问题的
附件中包含有实例
大家参照着做吧~

               Subspace Identification
               -----------------------

This diskette goes together with the book:

    Subspace Identification for Linear Systems
    Theory - Implementation - Applications
    By Peter Van Overschee and Bart De Moor
    Kluwer Academic Publishers, 1996

It contains all algorithms described in the book.


Installation
------------

All algorithms in the book have been implemented in separate M-files.
The research however culminated in the function subid.m which
implements deterministic, stochastic and combined subspace
identification.This function is an excellent place to start with.

After you have copied the files from the diskette to your
computer (for instance in the directory c:\subspace), you should
include the directory ;subfun' in your path:

   > path(path,'c:\subspace\subfun');

Now change your directory to the 'examples' directory and
run the demo file 'sta_demo.m':

   > cd c:\subspace\examples
   > sta_demo

You will get a clear impression of what subspace identification
algorithms can do.

Now you are ready to rerun some of the applications.To run for
instance the application of the flexible robot arm, do:

   > cd c:\subspace\applic
   > appl5

This will guide you through the demo and reproduce the results of the
book.Now that you are at it, you could run some other applications
in this directory.

\nin You are now ready to try out your own problem.You could just
use one of the subspace identification functions (for instance
'subid.m'.Alternatively, you could also copy and adapt one of the
application M-files.

Overview:
---------

For practical applications, only the function 'subid' is of
importance.The other subspace identification functions that are
included, are more of an academic nature:

Deterministic Identification: det_stat, det_alt, intersec, project / subid
Stochastic Identification:    sto_stat, sto_alt, sto_pos         / subid
Combined Identification:      com_stat, com_alt                  / subid

For more information on the stochastic identification, see the file
examples/sto_demo.m.

Notes:
------

It should be noted that there is still room to improve the speed and
the memory usage of the algorithms, using for instance displacement
structure algorithms for the RQ decomposition and Lanczos algorithms
for the SVD.The algorithms that have been implemented on this
diskette only use basic MATLAB commands (and no fancy optimized
C-code).Feel free to improve, and let me know what you think:

    peter.vanoverschee@esat.kuleuven.ac.be

332127480 发表于 2010-10-20 09:47

谢谢LS !!!!

moon555sss 发表于 2010-11-17 15:35

System order 是什么?为什么要取4

wuluo 发表于 2010-12-29 15:45

非常感谢啊!!!!!!!!!!!!

ze_wang 发表于 2010-12-31 15:53

用过了,但还没辨识出来

风追 发表于 2011-1-15 19:29

谢谢楼主了

zhouli19860517 发表于 2011-4-18 23:05

顶一个,不错啊啊

taozhenghua910 发表于 2011-4-24 22:22

回复 6 # happy 的帖子

下载了四遍,依旧是下载不了,体能都耗费完了,还是下载不了。。
可以发一份到我的邮箱吗?taozhenghua910@163.com不胜感激!最近在做辨识,ssi程序一直搞不好。再次谢谢

ChaChing 发表于 2011-4-24 23:43

回复 13 # taozhenghua910 的帖子

现在体能很容易取得的!

taozhenghua910 发表于 2011-5-6 10:38

回复 14 # ChaChing 的帖子

谢谢啦   真的不是体能的问题,就是下载不。有体能但是就是还是下载不了啊。。。郁闷啊
页: [1] 2 3 4
查看完整版本: 随机子空间模态参数识别法问题