[医]modalfrf
频率特性进行模态分析。
库::`工程师`
语法
函数调用
-
frf,f,coh=modalfrf(_,Name,Value,out=:data)-使用参数设置其他参数,如 «名称-值» 对于前面的任何语法选项。
-
modalfrf(_,out=:plot)-绘制频率特性。 图仅限于前四个激励信号和四个响应信号。
争论
输入参数
#
财政司司长 —
抽样调查
费率+
正标量
Details
以Hz为单位的采样频率,设置为正标量。
| 数据类型 |
|
# 窗口 — 窗户
+
一个整数 | 向量资料
Details
指定为整数或向量的窗口。 使用参数 窗户 将信号分成若干段:
如果 窗户 -一个整数,然后 *modalfrf 分歧 [参数:x] 和 [参数:y] 成段长度 窗户 并将该长度的矩形窗口应用于每个分段。
如果 窗户 -矢量,然后 *modalfrf 分歧;分歧 [参数:x] 和 [参数:y] 成长度等于向量长度的段 窗户,并对每个段应用一个窗口 窗户.
如果长度为 [参数:x] 和 [参数:y] 这是不可能准确地划分成整数个段与 [参数:noverlap] 对于重叠的样本,信号相应地被截断。
例子:: 汉恩(N+1) 或 (1-cos(2*pi*(0:N)'/N))/2 窗口设置为太长 N+1.
| 数据类型 |
|
输入参数 «名称-值»
将可选参数对指定为 名称,值,在哪里 姓名 -参数的名称,以及 价值 -适当的值。 类型参数 «名称-值» 它们应该放在其他参数之后,但对的顺序无关紧要。 您可以指定多个对 «名称-值».
使用逗号分隔名称和值,以及 姓名 将其用引号括起来,或者使用等号分隔名称和值,并且 姓名 指定它不带引号。
例子: modalfrf(x,y,fs,window,"传感器","vel","估计器","H1") 或 modalfrf(x,y,fs,window,Sensor="vel",Estimator="H1") 指示输入信号由速度测量值组成并被选择为估计值。 "H1".
# 估计器 — 评级
+
"H1" (默认情况下)| "H2" | "Hv"
Details
分数设置为 "H1", "H2" 或 "Hv":
*使用 "H1" 如果噪声与激励信号不相关。
*使用 "H2" 如果噪声与响应信号不相关。 在这种情况下,激励信号的数量应该等于响应信号的数量。
*使用 "Hv" 通过最小化误差矩阵的轨迹来最小化建模的和估计的响应数据之间的差异。 价值 —这是数值的几何平均值 和 : . 测量必须是单通道(单输入/单输出,SISO)。
# 测量 — 测量配置
+
"固定" (默认情况下)| "rovinginput" | "rovingoutput"
Details
相等数量的激励和响应通道的测量配置,指定为 "固定", "rovinginput" 或 "rovingoutput":
*使用 "固定" 如果激励源和传感器位于系统中的固定点。 每一次唤醒都会影响每一次反应。
*使用 "rovinginput" 如果测量是作为可移动激励测试(或可移动锤)的结果获得的。 一个传感器位于系统的固定位置。 一个激励源被放置在几个点上,并为每个点从传感器产生一个信号。 功能输出 frf(:,:,i)=modalfrf(x(:,i),y(:,i)).
*使用 "rovingoutput" 如果测量结果是通过使用可移动传感器进行测试而获得的。 一个激励源位于系统的固定位置。 一个传感器被放置在几个点上,并在每个点上响应一个激励。 功能输出 frf(:,i)=modalfrf(x(:,i),y(:,i)).
# 订单 — 状态空间模型的顺序
+
1:10 (默认情况下)| 一个整数 | vector是一串整数
Details
状态空间模型的顺序,指定为整数或整数的向量字符串。 如果指定了整数向量,则函数从指定范围中选择最优阶数值。
| 数据类型 |
|
# 出 — 输出数据的类型
+
:剧情 (默认情况下)| :数据 | :全部
Details
输出数据的类型:
-
:剧情-函数返回一个图形; -
:数据-函数返回数据; -
:全部-函数返回数据和图形。
对于此参数,名称和值用等号分隔(=).
|
例子:
无阻尼谐振子
Details
具有单位质量和弹性常数的简单无阻尼谐振子的运动,用频率采样 ,由传递函数描述
其中分子取决于测量值:
*搬家: ;
*速度: ;
*加速: ;
让我们计算三种可能类型的系统响应传感器的频率响应。 我们使用采样频率 2 Hz和 30 000 白噪声的样本作为输入数据。
import EngeeDSP.Functions: modalfrf, filter,hann
fs = 2
dt = 1/fs
N = 30000
u = randn(N,1)
ydis = filter((1-cos(dt))*[0 1 1],[1 -2*cos(dt) 1],u)
w=hann(Int64.(N/2))
frfd,fd,coh = modalfrf(u,ydis,fs,w,Sensor="dis",out=:data)
yvel = filter(sin(dt)*[0 1 -1],[1 -2*cos(dt) 1],u)
frfv,fv,coh = modalfrf(u,yvel,fs,hann(Int64.(N/2)),Sensor="vel",out=:data)
yacc = filter([1 -(1+cos(dt)) cos(dt)],[1 -2*cos(dt) 1],u)
frfa,fa,coh = modalfrf(u,yacc,fs,hann(Int64.(N/2)),Sensor="acc",out=:data)
frfd_vec = frfd[:]
frfv_vec = frfv[:]
frfa_vec = frfa[:]
plot(fd, abs.(frfd_vec), xscale=:log10, yscale=:log10, label="dis", grid=true)
plot!(fv, abs.(frfv_vec), xscale=:log10, yscale=:log10, label="vel", grid=true)
plot!(fa, abs.(frfa_vec), xscale=:log10, yscale=:log10, label="acc", grid=true)

在所有情况下,所产生的频率响应具有对应于位移的格式。 速度和加速度测量值分别是位移测量值的第一和第二时间导数。 频率特性在系统固有频率周围的范围内是等效的。 离固有频率,频率特性变化。
单通道系统的频率响应
Details
让我们评估一个简单的单通道(单输入/单输出,SISO)系统的频率响应,并将其与定义进行比较。
一维离散振荡系统由单个质量块组成 以千克为单位,通过具有恒定弹性的弹簧附着在墙上 传感器用频率记录质量位移 赫兹。 阻尼器阻止质量的运动,在其上施加与速度成比例的力,并具有恒定的阻尼 公斤/秒。
生成 3000 时间很重要。 让我们定义采样间隔 .
import EngeeDSP.Functions: modalfit, randn, modalfrf, hann, ss2tf, freqz
Fs=1
dt=1/Fs
N=3000
t=dt*(0:N-1)
b=0.01
该系统可以使用状态空间模型来描述。:
哪里 为状态向量, 和 -分别是质量的位移和速度, -驱动力,以及 -测量输出信号。 状态空间矩阵:
哪里 -单位矩阵 ,并且连续时间中的状态空间的矩阵具有形式:
Ac = [0 1; -1 -b]
A = exp(Ac * dt)
Bc = [0; 1]
B = Ac \ (A - [1 0; 0 1]) * Bc
C = [1 0]
D = 0
在第一 2000 在几秒钟内,质量通过随机动作设置在运动中,然后允许它返回到静止状态。 我们使用状态空间模型来计算系统的时间演变,从零初始状态开始。 让我们绘制质量位移作为时间的函数。
using Random
Random.seed!(1234)
u = randn(1,N) / 2
u[2001:end] .= 0
y = zeros(N)
x = [0.0; 0.0]
for k in 1:N
y[k] = (C * x)[1] + D * u[k]
x = A * x + B * u[k]
end
t=dt*(0:N-1)
plot(t,y,grid=true)

我们来评估系统的模态频率响应。 我们使用汉纳窗口,其长度是测量信号长度的一半。 我们表明输出信号是质量的运动。
wind = hann(Int64.(N/2));
u = vec(u)
frf,f,coh = modalfrf(u',y',Fs,wind,Sensor="dis",out=:data)
离散系统的频率响应可以表示为系统在时域中的传递函数的Z变换,在单位圆上进行计算。 让我们比较一下评级 modalfrf 有了定义。
b,a = ss2tf(A,B,C,D);
ztf,fz = freqz(b,a,2048,Fs);
using Plots
frf_siso = vec(frf[:, 1, 1])
ztf_siso = vec(ztf[:, 1, 1])
plot(f, 20 * log10.(abs.(frf_siso) .+ 1e-12), label="FRF", grid=true)
plot!(fz * Fs, 20 * log10.(abs.(ztf_siso) .+ 1e-12), label="ZTF")
ylims!((-60, 40))

我们来估计给定振荡模式的固有频率和衰减系数。
fn,dr,ms,ofrf = modalfit(frf,f,Fs,1,FitMethod="PP",out=:data)
println("fn - ",fn[1])
println("dr - ",dr[1])
fn - 0.15912870854643102
dr - 0.0054516425536509875
让我们比较自然频率与 ,这是无阻尼系统的理论值。
theo = 1/(2*pi)
0.15915494309189535
文学作品
-
_动态刚度,柔度,移动性和更多_西门子,最后修改2019, https://community.sw.siemens.com/s/article/dynamic-stiffness-compliance-mobility-and-more.
-
勃兰特,安德斯。 噪声和振动分析:信号分析和实验程序。_奇切斯特,英国:约翰*威利&儿子,2011.
-
欧文,汤姆。 _频率响应函数简介_Vibrationdata,2000, https://vibrationdata.com/tutorials2/frf.pdf.
-
Vold,Havard,John Crowley和G.Thomas Rocklin。 _估计频率响应函数的新方法。_声音和振动。 卷。 18,十一月1984,pp.34-38.