显示标签为“小波/模态”的博文。显示所有博文
显示标签为“小波/模态”的博文。显示所有博文

2007年9月27日星期四

连续小波变换应用于密集模态参数识别

我的第一篇文章:
柳小勤,岳林,朱如鹏. 连续小波变换应用于密集模态参数识别. 南京航空航天大学学报,2007,39(4),496-500.
并没有很好地解决问题,惭愧。参数拟合区间始终是个大问题。文中没有提到,因为我不知道该怎么比较好地解决。

又见:
http://lxq0xxx0.blog.163.com/blog/static/2587419420078275315470

2007年9月12日星期三

MATLAB中的振型动画工具:ModeVibra


ModeVibra是一个简单的模态分析工具,用来查看结构的振型动画。还可以对节点重新排序和生成测量自由度表。
本工具使用MATLAB的GUI平台开发,提供源代码,用户可以自由使用并可以根据自己的需要修改代码。
详细说明说明及下载:http://groups.google.com/group/liuxq-works/web/modevibra?hl=zh-CN

2007年4月10日星期二

ANSYS数据导出:节点、单元、振型

又参考了一下ANSYS帮助文件中的APDL编程部分,以及网上的一些意见,可以有更方便地得到节点坐标,单元内的节点列表的方法。在一个文本文件中写几条命令就可以了。而且可以指定输入写入的格式,不会出现两个数据首尾相接,在MATLAB中无法区分的问题。
得到节点坐标和单元内包含的节点的程序如下,可以在ANSYS的帮助中找到每一个命令的详细解释。将下面的程序拷贝到一个文本文件中filename.txt,保存,去掉后缀名TXT,再拷贝到工作目录下。在命令提示符下输入*use filename,生产一个geomfile.txt文件,打开可以看到里面的数据
! Get the coordinates of each node
! Get the node list of each element
! By:LiuXiaoqin(liuxqsmile@gmail.com), at nuaa,
*get,nodenum,node,,num,max ! 获得节点的数目
*dim,nodepos,array,nodenum,3 ! nodepos存放节点的坐标
*do,i,1,nodenum,1
*get,nodepos(i,1),node,i,loc,x !获得节点的X坐标
*get,nodepos(i,2),node,i,loc,y
*get,nodepos(i,3),node,i,loc,z
*enddo

*get,elemnum,elem,,num,max !得到单元的总数目
*dim,elemlist,array,elemnum,6 !单元包含的节点列表,指定每个单元包含6个节点,根据情况修改
*do,i,1,elemnum,1
*do,ii,1,6,1
*get,elemlist(i,ii),elem,i,node,ii !获得节点编号
*enddo
*enddo

*cfopen,geomfile,txt !打开文件,写入数据
*vwrite,0
(F8.0,' Coordinates of each node')
*vwrite,sequ,nodepos(1,1),nodepos(1,2),nodepos(1,3)
(F8.0,3e16.8)

*vwrite,0
(F8.0,' Nodes No. of each element')

*vwrite,sequ,elemlist(1,1),elemlist(1,2),elemlist(1,3),elemlist(1,4),elemlist(1,5),elemlist(1,6)
(F8.0,6f8.0)

*vwrite,0
(F8.0)
*cfclos

获得振型的方法也类似,首先获得模态的个数,然后读取每一阶模态的频率和每个节点的便宜量
!从ANSYS中导出模态频率及振型数据
!By:LiuXiaoqin(liuxqsmile@gmail.com), at nuaa,
*get,nodenum,node,,num,max

*set,tempvar,0
*set,modenum,0
!获得模态的阶数
*do,i,1,100,1
*get,tempvar,mode,i,freq
*if,tempvar,LT,0.0001,THEN
*if,modenum,LT,0.0001,THEN
*set,modenum,(i-1)
*endif
*endif
*enddo

!*dim,modefqda,array,modenum,2
*dim,modeshp,array,nodenum,3

*cfopen,modefile,txt

*do,i,1,modenum,1
*get,modefq,mode,i,freq
*get,modeda,mode,i,damp
*vwrite,modefq,modeda
(2e16.8)
set,1,i
!获得每个节点的位移
*do,ii,1,nodenum,1
*get,modeshp(ii,1),node,ii,u,x
*get,modeshp(ii,2),node,ii,u,y
*get,modeshp(ii,3),node,ii,u,z
*enddo

*vwrite,sequ,modeshp(1,1),modeshp(1,2),modeshp(1,3)
(F8.0,3e16.8)
*vwrite,0
(F8.0)
*enddo

*cfclos

2007年3月8日星期四

连续小波变换及其重构的具体算法

本文详细介绍了两种连续小波变换(Continuous Wavelet Transform, CWT)算法及其重构的具体实施。
方法一:根据小波变换的定义,直接卷积积分;
方法二:根据FT的卷积定理,利用FFT来得到时域的卷积。
详细见http://liuxqsmile.googlepages.com/CWT_Reconstruct.pdf
2007-8-17,修正了该文档中的一个错误,加入了MATLAB中CWT算法的原理说明。