24小时热门版块排行榜    

查看: 2322  |  回复: 4

leooja

铁虫 (初入文坛)

[求助] 关于王济老师《Matlab在振动信号处理中的应用》书中第八章8.3节 程序8.2a的问题

如题用该方法识别结构自振模态,总会提示:“??? Error using ==> qr
Complex sparse QR is not yet available.”
程序原代码如下:
%随机信号谱分析
%%%%%%%%%%%%%%%%%%%%
clear
clc
close all hidden
format
global mn
%%%%%%%%%%%%%%%%%%%
%打开数据文件
[filename,pathname]=uigetfile('*.xls','selectfile','MultiSelect', 'on');
l=length(filename);
fun=input('function type');         %(谱分析类型,1=自谱,2=互谱,3=频响,4=相干)
windos=input('windos type');        %(窗函数类型,1=矩形,2=汉宁,3=海宁,4=布莱克曼)
sf=input('simpling frequency');          %(采样频率)
N=input('lenght of fft');            %(FFT长度)
f0=[4,4.17,5,12.5,14.29,16.68];      %(模态频率初始值,估计情况确定)
d0=[0.05,0.05,0.05,0.05,0.05,0.05];   %(模态阻尼比初始值)
mn=6;
%建立输出矩阵
outmodex=zeros(l,18);
outmodey=zeros(l,18);
for ii=1:l;
    openpath=strcat(pathname,filename{ii});
    [data,text]=xlsread(openpath);   
    [m,n]=size(data);
    tt=0:1/sfm-1)/sf;
    tt=tt';
    %消除趋势项
    for jj=4:n
        p3=polyfit(tt,data(:,jj),3);
        data(:,jj)=data(:,jj)-polyval(p3,tt);
    end   
    x1=data(:,2);                    %(x为输入激励)
    x2=data(:,3);
    y1=data(:,4)-data(:,2);          %(y为相对时程)
    y2=data(:,5)-data(:,3);
    %频率向量
    f=0:sf/Nsf/2-sf/N);
    switch windos
        case 1                      %(矩形窗)
            w=boxcar(N);
        case 2
            w=hanning(N);          %(汉宁窗)
        case 3
            w=hamming(N);          %(海宁窗)
        case 4
            w=triang(N);           %(三角窗)
        otherwise
            w=boxcar(N);
    end
    switch fun
        case 1                      %(自谱)
            z1=spectrum.psd(y1,N,sf,w,N/2);
            z2=spectrum.psd(y2,N,sf,w,N/2);
        case 2                      %(互谱)
            z1=csd(x1,y1,N,sf,w,N/2);
            z2=csd(x2,y2,N,sf,w,N/2);
        case 3                      %(频响)
            z1=tfestimate(x1,y1,w,N/2,N,256);            
            z2=tfestimate(x2,y2,w,N/2,N,256);
        case 4
            z1=cohere(x1,y1,N,sf,w,N/2);
            z2=cohere(x2,y2,N,sf,w,N/2);
        otherwise            
    end
    figure(ii)                     %(可附加逻辑判断决定绘制及输出数据)
    nn=1:N/4;
    subplot(2,2,1);
    plot(f(nn),real(z1(nn)));
    xlabel('Hz');
    ylabel('real');
    subplot(2,2,2);
    plot(f(nn),imag(z1(nn)));
    xlabel('Hz');
    ylabel('imag');
    subplot(2,2,3);
    plot(f(nn),real(z2(nn)));
    xlabel('Hz');
    ylabel('real');
    subplot(2,2,4);
    plot(f(nn),imag(z2(nn)));
    xlabel('Hz');
    ylabel('imag');
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%55
    %最小二乘法计算模态,阻尼比及模态系数
    ff=0:0.5*sf/(length(z1)):0.5*(length(z1)-1)*sf/(length(z1));   
    ww=2*pi*ff;
    W0=2*pi*f0;
    for j=1:mn;
        L=4*(j-1);
        X0(L+1:L+4)=[-W0(j)*d0(j),W0(j)*sqrt(1-d0(j)^2),1,1];
    end     
    z1=z1';
    z2=z2';
    X1=lsqcurvefit('fun82',X0,ww,z1);
    X2=lsqcurvefit('fun82',X0,ww,z2);
    for j=1:mn;
        L=4*(j-1);
        %X向模态分析
        C1=X1(L+1)+1i*X1(L+2);
        D1=X1(L+3)+1i*X1(L+4);
        outmodex(ii,j)=abs(C1)/(2*pi);%模态频率
        outmodex(ii,j+6)=-real(C1)/abs(C1);%模态阻尼
       outmodex(ii,j+12)=D1;               %负振型系数
        %Y向模态分析
        C2=X2(L+1)+1i*X2(L+2);
        D2=X2(L+3)+1i*X2(L+4);
        outmodey(ii,j)=abs(C2)/(2*pi);
        outmodey(ii,j+6)=-real(C2)/abs(C2);
        outmodey(ii,j+12)=D2;
    end
    outmode=[outmodex;zeros(1,18);outmodey];
    modepath=strcat(pathname,'model',filename{ii});
    [status,message]=xlswrite(modepath,outmode);
end
其中“fun82”代码如下:
function M=fun82(X,W)
%通过模态参数计算拟合频响函数
%输入参数
%X-复模态参数向量
%W-频率变量向量
%输出参数
%M-拟合频响函数
global mn
M=zeros(1,length(W));
for K=0:mn-1;
    L=4*K;
    X1=X(L+1);%特征值实部
    X2=X(L+2);%特征值虚部
    X3=X(L+3);%特征值向量实部
    X4=X(L+4);%特征值向量虚部
    M=M-W.^2.*((X3+1i*X4)./(W*1i-(X1+1i*X2))+(X3-1i*X4)./(W*1i-(X1-1i*X2)));
end
全部为按照书中代码编程,为什么运行不了,望大神帮忙!
附件为原时程信号,方便大家试运行。
回复此楼

» 本帖附件资源列表

  • 欢迎监督和反馈:小木虫仅提供交流平台,不对该内容负责。
    本内容由用户自主发布,如果其内容涉及到知识产权问题,其责任在于用户本人,如对版权有异议,请联系邮箱:xiaomuchong@tal.com
  • 附件 1 : w1.xlsx
  • 2014-09-04 15:59:58, 4.08 M
  • 附件 2 : w2.xlsx
  • 2014-09-04 16:00:37, 4.08 M

» 猜你喜欢

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

hytao2012

铁杆木虫 (正式写手)

木头虫子

换一个高一点的版本的Matlab试试?
2楼2014-09-04 16:12:56
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

surrounding8

铜虫 (初入文坛)

书上源程序不是这样的吧
3楼2014-09-22 20:55:45
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

pdikang

新虫 (小有名气)

先马回头学到再看
4楼2014-11-23 21:13:49
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

wanlingstar

新虫 (正式写手)

王济那本书中的源程序确实存在问题,你可以看他数组的赋值都乱了

发自小木虫Android客户端
5楼2017-01-15 23:51:13
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 leooja 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[基金申请] 感觉是下周放榜了 +4 angus9576 2026-08-17 8/400 2026-08-17 17:26 by angus9576
[基金申请] filecode=后面第一个是大写字母 +8 wangze12014 2026-08-14 10/500 2026-08-17 17:05 by xter9665
[考博] 售SCI一区T0P文章,我:8O.55.1.O.54,科目全,可伽急 +3 i7NFEVbjQMM5 2026-08-16 5/250 2026-08-17 16:38 by CBFiACZS7HAK
[基金申请] 欢迎发来filecode的Mz6后的代码验证其规律 +34 医学老男孩 2026-08-13 81/4050 2026-08-17 16:20 by yudaoqian88
[基金申请] 哪位老哥知道今年的国自然具体哪一天放榜? +12 Ldrop2023 2026-08-13 15/750 2026-08-17 15:02 by 小豌豆_发芽
[考研] 售SCI文章,我:8O5.5.1.O.54,科目齐全,可+急 +3 EWi2p09MOOv8 2026-08-16 6/300 2026-08-17 14:02 by EYK67XJMj64E
[考博] 售一区SCI文章T0P,我:8O.551.O54,科目全,可十急 +3 6GojgJvkDudM 2026-08-16 4/200 2026-08-17 13:49 by EYK67XJMj64E
[基金申请] 今天系统多次维护,明天很可能放榜! +8 zju2000 2026-08-16 9/450 2026-08-17 12:20 by lmz0216
[硕博家园] 售SCI一区T0P文章,我:8O.55.1.O.5.4,科目齐全,可+急 +3 i7NFEVbjQMM5 2026-08-16 4/200 2026-08-17 12:10 by 4GBAYCdVQoK3
[教师之家] 售SCI一区T0P文章,我:8.O.55.1.O.5.4,科目全,可+急 +3 6GojgJvkDudM 2026-08-16 3/150 2026-08-17 09:49 by xLVPIRuSvCUe
[论文投稿] 岩土工程学报什么时候才能终审完呐 25+3 yeager111 2026-08-10 4/200 2026-08-16 20:42 by tfang
[基金申请] 时间戳又变了8-15 +13 archvillain 2026-08-15 25/1250 2026-08-16 20:13 by zhaosm1982
[基金申请] 2027广东省杰青 +3 奶牛小黑 2026-08-15 6/300 2026-08-16 20:07 by 奶牛小黑
[基金申请] 快农历七夕节了,轻松一下,男人悄悄话,女施主请不要进来。 +3 Tide man 2026-08-14 3/150 2026-08-16 17:47 by jurkat.1640
[基金申请] 咱们一起用铁证分析2026国家社科基金中标与否 +7 启萌科技 2026-08-12 26/1300 2026-08-16 12:35 by 启萌科技
[基金申请] 重要来源:本周末出结果 +10 瞬息宇宙 2026-08-12 10/500 2026-08-13 15:46 by likettle
[基金申请] 不应该看fileCode +7 且听虎啸 2026-08-12 9/450 2026-08-13 14:27 by flydreamws
[基金申请] Filecode 又变了,巨变 +3 WH3796 2026-08-12 4/200 2026-08-13 14:13 by 小木虫6752397
[基金申请] 结合人工智能,周易传统文化,filecode打分制来了,3分以上希望很大。 +3 Tide man 2026-08-12 4/200 2026-08-13 08:35 by ZJTJZ
[基金申请] 2019年青年基金涵评意见,大家看看几个A,几个B? +11 Tide man 2026-08-11 11/550 2026-08-13 07:35 by 撸猫猫
信息提示
请填处理意见