AnyMath 文档

[医]modalfrf

频率特性进行模态分析。

库::`工程师`

语法

函数调用

  • [参数:frf],<参数:f>>,<参数:coh>>=modalfrf(<参数:x>>,<参数:y>>,<参数:fs>>,<参数:窗口>>,<参数:out>>=:数据) -计算频率传递函数矩阵 [参数:frf] 基于激励信号 [参数:x] 和响应信号 [参数:y],其采样频率等于 [参数:fs]. 输出参数 [参数:frf] 表示估计值 使用带有窗口的Welch方法计算 [参数:窗口] 进行加窗信号转换。 争论 [参数:x][参数:y] 它们必须具有相同数量的行。 如果 [参数:x][参数:y] 如果它们是矩阵,那么每列代表一个信号。

    假设系统响应为 [参数:y] 包含加速度测量值。 要根据位移或速度测量值计算频率特性,请使用参数 [参数:传感器]. 功能 modalfrf 无论传感器类型如何,它始终以动态灵活性(灵敏度)格式输出频率特性。

    该函数还返回频率向量。 [参数:f] 对应于每个频率响应,以及多个相干矩阵 [参数:coh].

  • frf,f,coh=modalfrf(_,Name,Value,out=:data) -使用参数设置其他参数,如 «名称-值» 对于前面的任何语法选项。

  • modalfrf(_,out=:plot) -绘制频率特性。 图仅限于前四个激励信号和四个响应信号。

争论

输入参数

# x — 激励信号

+ 向量资料 | 矩阵

Details

指定为矢量或矩阵的激励信号。

数据类型

Int64, 漂浮物32, 漂浮64</无翻译>

# y — 响应信号

+ 向量资料 | 矩阵

Details

响应信号指定为矢量或矩阵。

数据类型

Int64, 漂浮物32, 漂浮64</无翻译>

# 财政司司长 — 抽样调查 费率+ 正标量

Details

以Hz为单位的采样频率,设置为正标量。

数据类型

Int64, 漂浮物32, 漂浮64</无翻译>

# 窗口 — 窗户

+ 一个整数 | 向量资料

Details

指定为整数或向量的窗口。 使用参数 窗户 将信号分成若干段:

如果 窗户 -一个整数,然后 *modalfrf 分歧 [参数:x][参数:y] 成段长度 窗户 并将该长度的矩形窗口应用于每个分段。 如果 窗户 -矢量,然后 *modalfrf 分歧;分歧 [参数:x][参数:y] 成长度等于向量长度的段 窗户,并对每个段应用一个窗口 窗户.

如果长度为 [参数:x][参数:y] 这是不可能准确地划分成整数个段与 [参数:noverlap] 对于重叠的样本,信号相应地被截断。

例子:: 汉恩(N+1)(1-cos(2*pi*(0:N)'/N))/2 窗口设置为太长 N+1.

数据类型

Int64, 漂浮物32, 漂浮64</无翻译>

# 诺弗拉普 — 重叠计数数

+ 0 (默认情况下)| 一个正整数

Details

重叠样本的个数,设为正整数。

*如果 [参数:窗口] -一个标量,然后 诺弗拉普 它应该少一些 窗户. *如果 [参数:窗口] -矢量,然后 诺弗拉普 必须短于长度 窗户.

数据类型

Int64, 漂浮物32, 漂浮64</无翻译>

输入参数 «名称-值»

将可选参数对指定为 名称,值,在哪里 姓名 -参数的名称,以及 价值 -适当的值。 类型参数 «名称-值» 它们应该放在其他参数之后,但对的顺序无关紧要。 您可以指定多个对 «名称-值».

使用逗号分隔名称和值,以及 姓名 将其用引号括起来,或者使用等号分隔名称和值,并且 姓名 指定它不带引号。

例子: 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)。

# 馈通 — 状态空间模型中存在间隙

+ 错误 (默认情况下)| 真的

Details

状态空间模型中存在带宽,设置为布尔值。

数据类型

布尔</无翻译>

# 测量 — 测量配置

+ "固定" (默认情况下)| "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

状态空间模型的顺序,指定为整数或整数的向量字符串。 如果指定了整数向量,则函数从指定范围中选择最优阶数值。

数据类型

Int64, 漂浮物32, 漂浮64</无翻译>

# 传感器 — 传感器类型

+ "acc" (默认情况下)| "dis" | "vel"

Details

指定为的传感器类型 "acc", "vel""dis".

  • "acc" -表示系统的响应信号与加速度成正比;

  • "vel" -表示系统的响应信号与速度成正比;

  • "dis" -表示系统的响应信号与位移成正比。

功能 modalfrf 无论传感器类型如何,它始终以动态灵活性(灵敏度)格式输出频率响应。

有关使用此参数的示例,请参阅无阻尼谐振子

# — 输出数据的类型

+ :剧情 (默认情况下)| :数据 | :全部

Details

输出数据的类型:

  • :剧情 -函数返回一个图形;

  • :数据 -函数返回数据;

  • :全部 -函数返回数据和图形。

对于此参数,名称和值用等号分隔(=).

输出参数

# frf — 频率特性

+ 向量资料 | 矩阵 | 阵列

Details

作为向量、矩阵或阵列返回的频率特性。 论点 财务汇报局 尺寸为 ,在哪里 -频率间隔数, -响应信号的数量,以及 -激励信号的数量。

功能 modalfrf 无论传感器类型如何,它始终以动态灵活性(灵敏度)格式输出频率响应。

# f — 频率

+ 向量资料

Details

频率作为向量返回。

# coh — 多重相干矩阵

+ 矩阵

Details

作为矩阵返回的多重相干矩阵。 矩阵 coh 每个响应信号都有一列。

例子:

无阻尼谐振子

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)

modalfrf

在所有情况下,所产生的频率响应具有对应于位移的格式。 速度和加速度测量值分别是位移测量值的第一和第二时间导数。 频率特性在系统固有频率周围的范围内是等效的。 离固有频率,频率特性变化。

单通道系统的频率响应

Details

让我们评估一个简单的单通道(单输入/单输出,SISO)系统的频率响应,并将其与定义进行比较。

一维离散振荡系统由单个质量块组成 以千克为单位,通过具有恒定弹性的弹簧附着在墙上 传感器用频率记录质量位移 赫兹。 阻尼器阻止质量的运动,在其上施加与速度成比例的力,并具有恒定的阻尼 公斤/秒。

modalfit 1

生成 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)

modalfrf 2

我们来评估系统的模态频率响应。 我们使用汉纳窗口,其长度是测量信号长度的一半。 我们表明输出信号是质量的运动。

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))

modalfit 3

我们来估计给定振荡模式的固有频率和衰减系数。

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

文学作品

  1. _动态刚度,柔度,移动性和更多_西门子,最后修改2019, https://community.sw.siemens.com/s/article/dynamic-stiffness-compliance-mobility-and-more.

  2. 勃兰特,安德斯。 噪声和振动分析:信号分析和实验程序。_奇切斯特,英国:约翰*威利&儿子,2011.

  3. 欧文,汤姆。 _频率响应函数简介_Vibrationdata,2000, https://vibrationdata.com/tutorials2/frf.pdf.

  4. Vold,Havard,John Crowley和G.Thomas Rocklin。 _估计频率响应函数的新方法。_声音和振动。 卷。 18,十一月1984,pp.34-38.