声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

楼主: 猴王

[小波] 请各位对照我师兄的论文看看我的程序

[复制链接]
发表于 2007-7-8 19:33 | 显示全部楼层

回复 #31 VibrationMaster 的帖子

我也看到了,还没想出来为什么。加速度信号是在5000点那个地方,至于小波分解后不在5那里,可能是小波分析的问题了。不过在我们的讨论下,似乎离楼主的目标又近了一点。

个人认为楼主程序的问题主要是出在刚度K和阻尼C的数量大小上,我是因为发现他原来的K即使减小到0.05%,输出也没什么变化,这就说明K值在输出中所取的作用太小,必须加大取值。K如果太小,楼主的那个框架就成柔性的了。

[ 本帖最后由 zhlong 于 2007-7-8 19:51 编辑 ]
回复 支持 反对
分享到:

使用道具 举报

发表于 2007-7-8 20:16 | 显示全部楼层

回复 #32 zhlong 的帖子

不太可能是小波的问题。因为小波是时限(否则怎么反映时间的局部化特性)。K值自己的大小影响也不会太大,5%的改变只会影响2.5的固有频率变化.你试一下特别小的阻尼情形,但是初条件特别大,看看会有什么感觉.
发表于 2007-7-9 08:33 | 显示全部楼层
楼主的问题其实就是单自由度系统在简谐激励下的响应求解问题,可以利用解析解验证一下数值结果。
 楼主| 发表于 2007-7-9 09:56 | 显示全部楼层

十分感谢二位的大力协助!!!

我现在的程序运行的和你的结果运行的不一样,我的根本看不到你所体现出来的损伤指示信号,所以我想看看你的所有的m文件和执行文件,无论你用的我的也好,还是怎么样,我想对照一下,我的图形无法看到这样的损伤,我不知道是怎么回事,如果程序一样的话,我修改了你的数量级,但结果还是不一样,再就是我的f是20*sin(25*+30)不是100*t,所以我想看看这到底是怎么回事,请您贴出你的所有的程序编码,十分感谢,如果您不相信,我想让你运行一下我的程序,我的结果还是发不上来,不知道怎么回事,您能直接告诉我吗,到底怎么弄才能把自己的结果像您那样贴出来,红色是我和您不一样的地方,这次务必,请您把您的程序都贴出来让我比较一下:
function xdot=danziyoudukuangjia1(t,x)
   
F=20*sin(25*t+30);
  M=31.2;
  zeta=0.01;
  
  if(t<5)
     K=67.51*10^5;
  else
     K=67.51*10^5*0.95;
  end
%K=67.51;
  
% C=2*zeta*sqrt(K*M);
C=1.4*10^3;
  
  xdot=[x(2);(1/M)*(F-C*x(2)-K*x(1))];
%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%
clc;clear all;
close all;
t0=0;
te=10;
dt=0.005;%采样间隔
t=t0:dt:te;
   x0=[0,0]';
   [t,x]=ode45('danziyoudukuangjia1',t,x0);
   d=x(:,1);
   v=x(:,2);
s1=(diff(v(1:end-1))+diff(v(2:end)))/2;  %中心差分法
s1=[diff(v(1:2));s1;diff(v(end-1:end))]; %少的两个点用前向和后向差分法补齐
s1=s1/dt; %近似为导数
%T=12001;
%
%x2=zeros(1,T);
%x2(6001)=1;
s=s1+0.01*randn(size(s1));%+x2;
%subplot(311);plot(t,s);
%AXIS([0 60 -10 10]);%单层框架加速度信号输出
%下面进行离散的单尺度小波变换并生成,各尺度上的信号
[c,l]=wavedec(s,5,'bior6.8');%对第一信号进行3尺度一维离散小波分解,采用墨西哥小帽函数
%提取结构的低频和高频信号
ca3=appcoef(c,l,'bior6.8',5);%提取第三尺度系数的低频
[cd1,cd2,cd3,cd4,cd5]=detcoef(c,l,[1,2,3,4,5]);%提取第一、二、三尺度系数的高频
%重构信号的低频和高频部分
a3=wrcoef('a',c,l,'bior6.8',3);
d1=wrcoef('d',c,l,'bior6.8',1);
d2=wrcoef('d',c,l,'bior6.8',2);
d3=wrcoef('d',c,l,'bior6.8',3);
d4=wrcoef('d',c,l,'bior6.8',4);
d5=wrcoef('d',c,l,'bior6.8',5);
%显示多尺度一维信号的分解结果
subplot(611);plot(t,a3);title('信号的低频细节部分');%AXIS([0 60 -5 5]);
subplot(612);plot(t,d1);title('Detailsd1');%AXIS([0 60 -5 5]);
subplot(613);plot(t,d2);title('Detailsd2');%AXIS([0 60 -5 5]);
subplot(614);plot(t,d3);title('Detailsd3');%AXIS([0 60 -5 5]);
subplot(615);plot(t,d4);title('Detailsd4');%AXIS([0 60 -5 5]);
subplot(616);plot(t,d5);title('Detailsd5');%AXIS([0 60 -5 5]);

[ 本帖最后由 zhlong 于 2007-7-9 10:01 编辑 ]
发表于 2007-7-9 10:07 | 显示全部楼层
function xdot=danziyoudukuangjia(t,x)

F=20*sin(100*t+30);
  M=31.2;
  zeta=0.01;
  
  if(t<5)
     K=67.51*10^5;
  else
     K=67.51*10^5*0.95;
  end
%K=67.51;
  
% C=2*zeta*sqrt(K*M);
C=1.4*10^3;
  
  xdot=[x(2);(1/M)*(F-C*x(2)-K*x(1))];

close all;
t0=0;
te=10;
dt=0.005;%采样间隔
t=t0:dt:te;
   x0=[0,0]';
   [t,x]=ode45('danziyoudukuangjia',t,x0);
   d=x(:,1);
   v=x(:,2);
s1=(diff(v(1:end-1))+diff(v(2:end)))/2;  %中心差分法
s1=[diff(v(1:2));s1;diff(v(end-1:end))]; %少的两个点用前向和后向差分法补齐
s1=s1/dt; %近似为导数
%T=12001;
%
%x2=zeros(1,T);
%x2(6001)=1;
s=s1;%+0.01*randn(size(s1));%+x2;
%subplot(311);plot(t,s);
%AXIS([0 60 -10 10]);%单层框架加速度信号输出
%下面进行离散的单尺度小波变换并生成,各尺度上的信号
[c,l]=wavedec(s,5,'bior6.8');%对第一信号进行3尺度一维离散小波分解,采用墨西哥小帽函数
%提取结构的低频和高频信号
ca3=appcoef(c,l,'bior6.8',5);%提取第三尺度系数的低频
[cd1,cd2,cd3,cd4,cd5]=detcoef(c,l,[1,2,3,4,5]);%提取第一、二、三尺度系数的高频
%重构信号的低频和高频部分
a3=wrcoef('a',c,l,'bior6.8',3);
d1=wrcoef('d',c,l,'bior6.8',1);
d2=wrcoef('d',c,l,'bior6.8',2);
d3=wrcoef('d',c,l,'bior6.8',3);
d4=wrcoef('d',c,l,'bior6.8',4);
d5=wrcoef('d',c,l,'bior6.8',5);
%显示多尺度一维信号的分解结果
subplot(611);plot(t,a3);title('信号的低频细节部分');%AXIS([0 60 -5 5]);
subplot(612);plot(t,d1);title('Detailsd1');%AXIS([0 60 -5 5]);
subplot(613);plot(t,d2);title('Detailsd2');%AXIS([0 60 -5 5]);
subplot(614);plot(t,d3);title('Detailsd3');%AXIS([0 60 -5 5]);
subplot(615);plot(t,d4);title('Detailsd4');%AXIS([0 60 -5 5]);
subplot(616);plot(t,d5);title('Detailsd5');%AXIS([0 60 -5 5]);
 楼主| 发表于 2007-7-9 10:39 | 显示全部楼层

回复

在无噪声记入的时候,是一样的,但为什么早噪声加入以后,就有很大的差别,你可以看到损伤的地方,我无法看到损伤,我真的不知道这是为什么,程序一样,只是图形的y坐标不一样,但当我改了以后,还是不一样,这到底是怎么回事啊
1.GIF
 楼主| 发表于 2007-7-9 10:41 | 显示全部楼层

回复 #36 zhlong 的帖子

差别非常大,在你的含噪声的图形中,可以看到损伤,而且在detail5中的图形和我的差别太大了
 楼主| 发表于 2007-7-9 10:50 | 显示全部楼层

含噪声的图形

现在我把y坐标和你做的一样了,但差别还是这么大,请指教
2.GIF
发表于 2007-7-9 11:20 | 显示全部楼层
对于结构振动。 我们习惯取阻尼比zeta为1-5%,至于真实多少鬼知道!5%的数值意味着15个自振周期后,自由振动幅度衰减为1%。
对应的c=2*zeta*sqrt(m*k)。 Zhlong所取的c=1.4*10^3,相当于zeta=0.0482, 这是合理的.
发表于 2007-7-9 11:26 | 显示全部楼层

回复 #34 zhlong 的帖子

ode45应该没问题,经过这么多千锤百炼,有问题就早发现了.

楼主关心的问题时,结构在某个时刻的刚度减小了5%,用小波变换是否能检出来?

其实小波具有适应性,但是特异性很差,因为它没有尽量利用系统的信息.

这种看法,也是我反对所谓狗屁"神经元网络"的原因.
发表于 2007-7-9 12:06 | 显示全部楼层

回复 #41 VibrationMaster 的帖子

ode45是变步长的,那么这样得到的信号相当于不断改变采样频率采集得到的信号,会不会不合适呢?我觉得是不是应该将ode45的输出改为等步长输出,或采用4阶龙格-库塔法积分。

[ 本帖最后由 zhlong 于 2007-7-9 15:41 编辑 ]
发表于 2007-7-9 12:13 | 显示全部楼层

回复 #37 猴王 的帖子

我在25楼得到的那个图,也只是改变了那几个参数,但是当时的参数因为疏忽我没有保存下来。你可以自己调整那几个参数试试。
发表于 2007-7-9 14:37 | 显示全部楼层
输出结果应该为等步长即可。至于MATLAB自己采用什么方法解微分方程,对于这种经典的题目,差别不会很大。 不信的话,比较一下不同的输出步长的结果。
 楼主| 发表于 2007-7-9 17:21 | 显示全部楼层

回复 #43 zhlong 的帖子

我想知道,在#25那个图形的d5的调制信号,那也是只调了k,c得到吗,m 肯定是不会动的
发表于 2007-7-9 18:30 | 显示全部楼层

回复 #45 猴王 的帖子

对的,但是我现在也没有重复出#25的结果。
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

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

GMT+8, 2024-12-24 01:04 , Processed in 0.090707 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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