单自由度系统中质量、阻尼和刚度变化对频率响应函数(FRF)影响图的绘制
作者:赵兵
日期:2020-02-17
目录
单自由度系统中质量、阻尼和刚度变化对频率响应函数(FRF)影响图的绘制
1. 背景
2. VISIO绘制
3. Matlab绘制
(1) M变化时
(2) K变化时
(3) C变化时
4. 参考文章
1. 背景
写文章时需要用到几张图,下面是从PDF上截图截出来的,用来表示单自由度系统在冲击激励下的频率响应曲线,当K(刚度),C(阻尼),M(质量)变化时,频率响应曲线的变化情况。
![]() |
![]() |
![]() |
|
图 1 单自由度系统刚度,阻尼,质量影响曲线 |
||
用图1放在文章中,不太美观,一看就是影印的,要是一般的文章还好,如果用来发表的就拉下档次了。所以就尝试了下重绘,重绘有两个方案,
(1)用PPT、visio或者Adobe Illustrator等绘图工具自己绘制
(2)用matlab先得到曲线的函数,进一步把函数显示出来
2. Visio绘制
尝试了一下,质量变化影响曲线图相对还好画一些,但阻尼变化的曲线就不是那么容易画了,画出来总觉得差点意思。很难保证各曲线之间的间隔均匀;当然肯定是能做到,但自己非此方面的熟手,所以有两个解决方案,一个是尝试用Adobe Illustrator进行一定时间的专门学习,但时间成本太高;或者是淘宝上寻求供外包解决,也是能解决的;但最终我还是决定先尝试下第二种方案,先得到曲线的函数,然后用软件把函数绘出来。
|
|
图 2 Visio绘制曲线图 |
3. Matlab绘制
单自由度系统的物理模型如图 3 所示,
![]() |
|
图 3单自由度系统模型 |
它的动力学方程为

其中
$M$:质量; $C$:阻尼; $K$:刚度; $\ddot{x}$:加速度;$\dot{x}$:速度; $x$:位移; $f$:外力; $t$:时间。
这里的f(t)为脉冲激励:
使用汉宁窗生成:$ f(t<T_c)= \frac{A}{2} * cos(\frac{2*\pi* t(t<T_c)}{T_c}) $
% % 激励采用脉冲激励,脉冲激励为Hanning函数
function f = hanning_imp(t, Tc, A)
f = zeros(size(t));
f(t < Tc) = A / 2 * (1 - cos(2*pi * t(t < Tc) / Tc));
end
可以根据这个函数得到一个脉冲激励
画图此图:
dt = 0.00001;
t = 0:dt:200;
Tc = 0.001;
A = 10;
u = hanning_imp(t, Tc, A);
plot(t,u,'LineWidth',1.5 );
axis([-5 200 -0.1 10.5 ]);
xlabel('t/s')
ylabel('Amp/N')
text(75,8,'Impact Force');
|
(a)整体图 |
(b)局部放大图 |
|
|
图 4 冲击力 |
||
建立系统方程,求解频率响应函数(FRF)
function [freq_x , amp_y]=frf_bing(m,k,c) % m 质量
% k 刚度
% c 阻尼 num = 1;
den = [m c k];
sys = tf(num, den); %采样频率(Hz) 100Hz 实际并不需要这么高的采样频率,但是如果采样时间太小,hanning脉冲不完整
% 为了得到准确的响应dt一定要小,否则做出的相位可能不对
dt = 0.00001;
fs = 1/dt; t = 0:dt:200;
Tc = 0.001;
A = 10;
u = hanning_imp(t, Tc, A);
y = lsim(sys, u, t);
y = y'; N = length(u);
fy = fft(y);
fu = fft(u);
ft = fy ./ fu;
f = (0:N-1) * fs ./ N;
ft_r = real(ft);
ft_i = imag(ft); part = (f < 30);
freq_x=f(part);
amp_y= abs(ft(part)); End
(1) M变化时
取m=100,120,140,160,180,200分别绘制FRF的响应曲线。
clc;
clear;
close all; %%
k = 1000; %初始化k
c=100; %初始化c
M=100:20:200; %初始化m, 取m=100,120,140,160,180,200分别绘图 f1= figure(1);
hold on
for i= 1:length(M)
[a(:,i) , b(:,i)]=frf_bing(M(i),k,c);
end plot(a,log(b),'b');
axis([0 1 -8.2 -5.3]);
title('Log(FRF)');
xlabel('Frequency')
ylabel('Amplitude')
set(gca,'XTick',[],'YTick',[]);
text(0.3,-7,'M↑');
annotation('arrow',[0.7 0.3],[0.6 0.8]) ;
f1.Position=([ 0 0 400 300]) % 保存为emf 矢量格式
set(gcf,'unit','centimeters','position',[10 5 6.5 4.8]);
print(f1,'-dmeta','M.emf')
可以生成一幅想要的曲线,并且可以保存为矢量格式,无论放大多少倍,图片还是很清晰。
|
|
图 5 质量变化的影响 |
(2) K变化时
取K=1000,1200,1400,1600,1800,2000分别绘制FRF的响应曲线。
clc;
clear;
close all; %%
k = 1000:200:2000;
c=100;
M=100;
f1= figure(1);
hold on
for i= 1:length(k)
[a(:,i) , b(:,i)]=frf_bing(M,k(i),c);
end plot(a,log(b),'b');
axis([0 1 -8.2 -5.3]);
title('Log(FRF)');
xlabel('Frequency')
ylabel('Amplitude')
set(gca,'XTick',[],'YTick',[]);
text(0.6,-7,'K↑');
annotation('arrow',[0.4 0.8],[0.63 0.6]) ;
f1.Position=([ 0 0 400 300]) % 保存为emf 矢量格式
set(gcf,'unit','centimeters','position',[10 5 6.5 4.8]);
print(f1,'-dmeta','K.emf')
|
|
|
图 6刚度变化的影响 |
(3) C变化时
取K=1000,1200,1400,1600,1800,2000分别绘制FRF的响应曲线。
clc;
clear;
close all;
%%
fontsizevalue=18;
c=100:20:200;
f1= figure(1);
hold on
for i= 1:length(c)
[a(:,i) , b(:,i)]=frf_bing(c(i));
end plot(a,log(b),'b');
axis([0 1 -8 -5.5]);
t1=title('Log(FRF)');
xl=xlabel('Frequency')
y1=ylabel('Amplitude')
t1.FontSize =fontsizevalue;
y1.FontSize =fontsizevalue;
xl.FontSize =fontsizevalue;
set(gca,'XTick',[],'YTick',[]);
text(0.5,-7,'C↑');
annotation('arrow',[0.5 0.5],[0.9 0.5]) ;
f1.Position=([ 0 0 400 300]) % 保存为emf 矢量格式
set(gcf,'unit','centimeters','position',[10 5 6.5 4.8]);
print(f1,'-dmeta','K.emf')
![]() |
|
图 7阻尼变化的影响 |
4. 参考文章
1. CSDN博主「whoispo」文 https://blog.csdn.net/WhoisPo/article/details/46865401

单自由度系统中质量、阻尼和刚度变化对频率响应函数(FRF)影响图的绘制的更多相关文章
- 对于单页应用中如何监听 URL 变化的思考
周末开发了一个在 GitHub 中给 repo 增加自定义备注的 chrome 扩展. 开发这个扩展的原因是我在 GitHub 中所 star 的项目实在太多了(截止目前 671 个),有的项目过个几 ...
- 【转载】Ansys中的阻尼
原文地址:http://www.cnblogs.com/ylhome/archive/2009/08/26/1554195.html ANSYS动力学分析中提供了各种的阻尼形式,这些阻尼在分析中是如何 ...
- 李学斌:论复杂系统中的应用间协作V3
说明 本文主要讨论了巨型复杂业务系统的一种构建思路,力图实现决策意志的快速.准确.一致的下传并简化实施成本提供实施效率.通过全业务领域的即时流程编排,实现全网业务IT系统的快速建设与迭代.本文所讲的方 ...
- 管道设计CAD系统中重量重心计算
管道设计CAD系统中重量重心计算 eryar@163.com Abstract. 管道设计CAD系统中都有涉及到重量重心计算的功能,这个功能得到的重心数据主要用于托盘式造船时方便根据重心设置吊装配件. ...
- 《xxx系统》质量属性战术
<xxx系统>质量属性战术 可用性:重新引入 用户每填写一份表单,表单查看中即时更新所有信息. 易用性:系统主动 对于下拉框的选项较多时,用户可先进行部分输入,系统进行实时检索显示与用户输 ...
- 基于SSH的高校网上选课系统的质量属性的实现
我对于基于SSH的高校网上选课系统的质量属性的实现是从可用性.性能.安全性.可维护性.易用性五个方面进行的实现. 可用性方面: 实现方式:(1)当系统试图超出限制范围来进行课程查询或选课时必须进行错误 ...
- MIS系统中的报表测试
报表功能的基本要求,就是通过查询/统计/分析,提供用户所需的准确的数据.如果无法实现这个基本功能,则报表完全失去意义. 对于用户来说,报表可以直接影响到他们的决策,例如可能因为报表对销售和库存情况反映 ...
- Java生鲜电商平台-生鲜系统中商品订单系统售后系统设计
Java生鲜电商平台-生鲜系统中商品订单系统售后系统设计(服务订单履约系统) 说明: 电商之下,我们几乎能从电商平台上买到任何我们日常需要的商品,但是对于很多商品来说,用户购买发货后,只是整个交易流程 ...
- 一个新人如何学习在大型系统中添加新功能和Debug
文章背景: 今年七月份正式入职,公司主营ERP软件,楼主所在的组主要负责二次开发,使用的语言是Java. 什么叫二次开发呢?ERP软件的客户都是企业.而这些企业之间的情况都有所不同,一套标准版本的企业 ...
随机推荐
- Spring Boot中如何配置线程池拒绝策略,妥善处理好溢出的任务
通过之前三篇关于Spring Boot异步任务实现的博文,我们分别学会了用@Async创建异步任务.为异步任务配置线程池.使用多个线程池隔离不同的异步任务.今天这篇,我们继续对上面的知识进行完善和优化 ...
- 如何实现Orchard Core CMS的全文索引
Orchard Core提供了Lucene功能,允许您在网站上进行全文搜索.大多数情况下,在运行博客或简单的代理网站时,您可能需要在页面内容中进行搜索.在Orchard Core中,您可以使用Liqu ...
- java eclipse 使用随笔
1,无法import java.awt. 等各种文件,解决办法:(在module-info.java文件中加入requires java,desktop这句话)
- win10系统移动热点使用技巧
win10系统是自动移动热点功能,在平时测试的时候,有时需要进行手机抓包,需要手机和电脑处于同一网络当中,这时可以开启热点使用. 如何开启移动热点? 直接搜索"移动热点" 但是如果 ...
- 大型项目源码集合「GitHub 热点速览 v.21.39」
作者:HelloGitHub-小鱼干 代码,尤其是优雅规范的代码,一直都是学习编程技巧的捷径.虽然有实用的代码小片段,能拯救当前业务的燃眉之急,但是真要去提升自己的技能还是得从大型的项目,尤其是有一定 ...
- 鸿蒙内核源码分析(编译脚本篇) | 如何防编译环境中的牛皮癣 | 百篇博客分析OpenHarmony源码 | v58.01
百篇博客系列篇.本篇为: v58.xx 鸿蒙内核源码分析(环境脚本篇) | 编译鸿蒙原来如此简单 | 51.c.h.o 本篇用两个脚本完成鸿蒙(L1)的编译环境安装/源码下载/编译过程,让编译,调试鸿 ...
- equals之List
School类 package com.collection.equals; /* * 定义一个学校类 相当于一个学校模板 * 状态: 1.学校id 2.学校名称 * */ public class ...
- 分片利器 AutoTable:为用户带来「管家式」分片配置体验
在<DistSQL:像数据库一样使用 Apache ShardingSphere>一文中,Committer 孟浩然为大家介绍了 DistSQL 的设计初衷和语法体系,并通过实战操作展示了 ...
- SpringBoot+WebSocket实时监控异常
写在前面 此异常非彼异常,标题所说的异常是业务上的异常. 最近做了一个需求,消防的设备巡检,如果巡检发现异常,通过手机端提交,后台的实时监控页面实时获取到该设备的信息及位置,然后安排员工去处理. 因为 ...
- Linux系统安装MySql5.7并通过sql脚本导入数据
为了下载到的MySQL版本和目标系统相互兼容,在开启之前,最好了解目标系统的相关信息. 查询系统版本: cat /etc/issue 查看系统位数 getconf LONG_BIT 选择MySQL 根 ...







