【基于FFT的自由响应非线性检测方案】使用归零早期FFT的非线性检测研究(Matlab代码实现)

news/2024/10/23 11:24:47/

目录

💥1 概述

📚2 运行结果

🎉3 参考文献

🌈4 Matlab代码及详细文章


💥1 概述

文献来源:

这项工作提出了一类检测和表征暂态响应测量非线性的时频方法。这些方法适用于响应随着响应幅度的衰减而变得越来越线性的系统。响应数据的离散傅里叶变换是在初始响应的各个部分都为零的情况下得到的。这些频率响应,被称为零早期快速傅立叶变换(ZEFFTs),获得线性频率响应函数(frf)的通常形状,因为更多的初始非线性响应被取消。因此,非线性是由一个质变的形状的ZEFFT作为初始无效部分的长度变化证明。这些光谱显示出对非线性的敏感性,即使它仅在响应的前几个周期中活跃,也能显示出它的存在,就像机械关节的宏观滑移一样。它们还提供了对非线性特性的洞察,潜在地揭示了模态之间的非线性能量传递或系统线性行为的模态振幅。在某些情况下,人们可以从后期线性响应中识别线性模型,并使用它来重建系统在以前的时间执行的响应,如果它是线性的。这表明了非线性的严重程度及其对测量响应的影响。用滑移或冲击非线性系统的分析和实验数据验证了这些方法。

原文摘要:

This work presents a class of time-frequency methods for detecting and characterizing 
nonlinearity in transient response measurements.  The methods are intended for systems whose  response becomes increasingly linear as the response amplitude decays. The discrete Fourier Transform of the response data is found with various sections of the initial response set to zero.  These frequency responses, dubbed Zeroed Early-time Fast Fourier Transforms (ZEFFTs), acquire the usual shape of linear Frequency Response Functions (FRFs) as more of the initial nonlinear response is nullified.  Hence, nonlinearity is evidenced by a qualitative change in the shape of the ZEFFT as the length of the initial nullified section is varied.  These spectra are shown to be sensitive to nonlinearity, revealing its presence even if it is active in only the first few cycles of a response, as may be the case with macro-slip in mechanical joints.  They also give insight into the character of the nonlinearity, potentially revealing nonlinear energy transfer between modes or the modal amplitudes below which a system behaves linearly.  In some cases one can identify a linear model from the late time, linear response, and use it to reconstruct the response that the system would have executed at previous times if it had been linear.  
This gives an indication of the severity of the nonlinearity and its effect on the measured response.  The methods are demonstrated on both analytical and experimental data from systems with slip or impact nonlinearities. 

📚2 运行结果

 

 

 

部分代码:

% Specify how systems are connected
    at_ns = [2,6]; % attachment happens between this pair of nodes.
    fext_ns = 5; % Node at which external force is applied
    fnl_vec = zeros(Ntot,1); fnl_vec(at_ns(1)) = -1; fnl_vec(at_ns(2)) = 1;
    fext_vec = zeros(Ntot,1); fext_vec(fext_ns(1)) = 1;
    dnodes = [1:Ntot];
    vnodes = [(Ntot+1):(Ntot*2)];
    
    % Damping Matrix    
    cfactk = 0.00003; % multiplied by K to get damping.
    cfactm = 8; % Multiplied by M to get damping
    % for k = 1:5; eval(['c',num2str(k),' = cfact*k',num2str(k),';']); end
    C1 = cfactk*K1 + cfactm*M1;
    C2 = cfactk*K2 + cfactm*M2; % proportional damping
    Ctot = [C1, zeros(size(C1,1),size(C2,2));
        zeros(size(C2,1),size(C1,2)), C2];
    
    % Linearized System Analysis %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
        % add a linear spring between attachment nodes
        Mlin = Mtot;
        Klin = Ktot;
        Klin(at_ns,at_ns) = Klin(at_ns,at_ns) + kat*[1, -1; -1, 1];
        % Linear Damping matrix:
        Clin = Ctot;
        Clin(at_ns,at_ns) = Clin(at_ns,at_ns) + cfactk*kat*[1, -1; -1, 1];

    % State Space Eigenanalysis
    Slin = [Clin, Mlin; Mlin, zeros(size(Mlin))];
    Rlin = [-Klin, zeros(size(Mlin));
        zeros(size(Mlin)), Mlin];
    Alin = (Slin\Rlin);
    [Philin,lamlin] = eig(Alin);
    lamlin = diag(lamlin);
    [junk,sind] = sort(abs(lamlin) - 0.001*min(abs(lamlin))*(imag(lamlin) > 0));
    lamlin = lamlin(sind);
    Philin = Philin(:,sind);

%         % Plot Mode Shapes
%         figure(1)
%         hls = plot([1:Ntot], imag(Philin(1:Ntot,1:2:end ))); grid on;
%         legend(hls, num2str([1:Ntot].'));
%         xlabel('X-coordinate');
%         ylabel('Im\{Mode Shape\}');

    wns = abs(lamlin);
    fns = wns/2/pi;
    zts = -real(lamlin)./abs(lamlin);
    disp('Natural Frequencies:, Damping Ratios:');
    [fns, zts]
%     DispFnZt(lamlin) - replace 2 lines abouve with this if you have the EMA Functions toolbox
    
    % Nonlinear Parameters
    NLType = 'bang'
    if strcmp(NLType,'bang');
        % Bang (Contact) Nonlinearity
        delcont = 1e-3;
        k4mult = 20; % Factor by which k4 increases: k4_contact = k4*k4mult
        c4mult = 1; % Factor by which c4 increases: c4_contact = c4*c4mult
    elseif strcmp(NLType,'cubic');
        % Cubic Spring
        katnl = 1e8;
    else
        error('NLType not recognized');
    end
    % Force paramters
        % length of half-sine force pulse
        % This is normalized in the EOM to unit area and multiplied by Afnl
        tfp = 1e-4;
        Afnl = 4e9;
        
    % Which Response to Use in evaluating Nonlinearity (i.e. x1, x2, x3..?)
    respind = 6;
    
    % Number of numerical derivatives to evaluate.  This M-file simulates
    % the displacement response of the 5-DOF system.  To simulate the
    % measurement of the velocity or acceleration response, the
    % displacement response is differentiated using finite differences
    % (i.e. Matlab's 'diff' command.)  This parameter sets the number of
    % derivatives to perform:
    nders = 2;
        % nders = 0; => use displacement

🎉3 参考文献

部分理论来源于网络,如有侵权请联系删除。

🌈4 Matlab代码及详细文章


http://www.ppmy.cn/news/979655.html

相关文章

Axios-post请求下载文件

场景背景 1.一般来说,都是使用get请求后台接口,如此后台返回文件流于浏览器,则可直接下载。 2.那么除一般情况,就有特殊情况,比如你的请求接口参数特别长,此时便不可使用get请求,get请求的参数长度是有限的。那么就使用到本文的解决方案。 废话不多说,直接撸代码!!…

【java实习评审】对小说详情模块的更新判断以及数据库的商用字段设置比较到位

大家好,本篇文章分享一下【校招VIP】免费商业项目“推推”第一期书籍详情模块java同学的文档作品。该同学来自【山西农业大学】软件工程专业。 本项目亮点难点: 1 热门书籍在更新点的访问压力 2 书籍更新通知的及时性和有效性 3 书荒:同好推荐的可能性 4…

java(ZipOutputStream)将多个文件打成zip

当想要将两个文件打包成ZIP文件时,可以使用Java的ZipOutputStream类。 ZipOutputStream是Java中用于创建ZIP文件的类,它是java.util.zip包中的一部分。通过使用ZipOutputStream,可以将多个文件压缩到一个ZIP文件中。 以下是ZipOutputStream的…

【雕爷学编程】Arduino动手做(81)--- 8位LED数码管模块2

37款传感器与执行器的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止这37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的&am…

APISIX 安全评估

背景 有大佬已经对 [apisix攻击面](https://ricterz.me/posts/2021-07-05-apache-apisix-attack- surface-research.txt)做过总结。 本文记录一下自己之前的评估过程。 分析过程 评估哪些模块? 首先我需要知道要评估啥,就像搞渗透时,我得…

QT designer的安装+PyUIC 和 PyRCC

PyQt5的安装 整个环境的搭建,主要内容为:Python PyCharm PyQt5 学习pyqt5制作界面的视频推荐网址: https://www.bilibili.com/video/BV1YT4y1r7tK?spm_id_from333.999.0.0&vd_sourceda469f8dadbc58a00f885b3f7be5ef05 配置工具&…

【ArcGIS Pro二次开发】(54):三调名称转用地用海名称

三调地类和用地用海地类之间有点相似但并不一致。 在做规划时,拿到的三调,都需要将三调地类转换为用地用海地类,然后才能做后续的工作。 一般情况下,三调转用地用海存在【一对一,多对一和一对多】3种情况。 前2种情况…

Vue中TodoList案例_编辑

nextTick: MyItem.vue 加一个编辑按钮&#xff0c;input框&#xff1a;blur失去焦点时触发事件handleBlur&#xff0c;ref获取真实dom&#xff1a; <inputtype"text"v-show"todo.isEdit":value"todo.title"blur"handleBlur(todo,$even…