声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 16062|回复: 52

[编程技巧] 随机子空间模态参数识别法问题

  [复制链接]
发表于 2010-4-24 10:20 | 显示全部楼层 |阅读模式

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

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

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

[ 本帖最后由 huazi071783 于 2010-4-24 11:59 编辑 ]
回复
分享到:

使用道具 举报

发表于 2010-4-24 15:54 | 显示全部楼层
同求!同求!希望以前编过这个算法的前辈多帮忙
szwwww@163.com
我也写过一个,和楼主一样不成功,我的程序算出来的结果完全不靠谱
发表于 2010-4-26 17:17 | 显示全部楼层
同求,想要用下随机子空间处理数据,苦于不会编写程序
 楼主| 发表于 2010-4-30 09:54 | 显示全部楼层

随机子空间法程序共享

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


% 2n1是hankel矩阵的行数数,  n2是hankel矩阵的列数,  d是采样频率
load('strainsig4.mat');                                              %strainsig是1024长度的15通道动应变响应
h=strainsig4; [r,c]=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;
[u s v]=svd(pref); [ud sd vd]=svd(pref1); [r1 c1]=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);
%模态识别
[v,z]=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 编辑 ]

评分

2

查看全部评分

发表于 2010-10-13 08:27 | 显示全部楼层
楼主问题解决了吗?我现在研究应变参数识别,用SSI,可是用程序算出来的振型不对呀,fr解出来好多数,也不知我的程序对不对,希望能帮忙解答一下,我的邮箱clwu@jlu.edu.cn
发表于 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


随机子空间程序修正版.part1.rar

195.31 KB, 下载次数: 446

随机子空间程序修正版.part2.rar

149.05 KB, 下载次数: 405

评分

1

查看全部评分

发表于 2010-10-20 09:47 | 显示全部楼层
谢谢LS !!!!
发表于 2010-11-17 15:35 | 显示全部楼层
System order 是什么?为什么要取4
发表于 2010-12-29 15:45 | 显示全部楼层
非常感谢啊!!!!!!!!!!!!
发表于 2010-12-31 15:53 | 显示全部楼层
用过了,但还没辨识出来
发表于 2011-1-15 19:29 | 显示全部楼层
谢谢楼主了
发表于 2011-4-18 23:05 | 显示全部楼层
顶一个,不错啊啊
发表于 2011-4-24 22:22 | 显示全部楼层
回复 6 # happy 的帖子

下载了四遍,依旧是下载不了,体能都耗费完了,还是下载不了。。
可以发一份到我的邮箱吗?taozhenghua910@163.com  不胜感激!最近在做辨识,ssi程序一直搞不好。再次谢谢
发表于 2011-4-24 23:43 | 显示全部楼层
回复 13 # taozhenghua910 的帖子

现在体能很容易取得的!
发表于 2011-5-6 10:38 | 显示全部楼层
回复 14 # ChaChing 的帖子

谢谢啦   真的不是体能的问题,就是下载不。有体能但是就是还是下载不了啊。。。郁闷啊
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

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

GMT+8, 2024-11-10 15:40 , Processed in 0.064744 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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