平稳高斯随机过程:Rice 水平穿越 + 峰值期望全套推导
平稳高斯随机过程:Rice 水平穿越 + 峰值期望全套推导

适用:随机振动、汽车耐久载荷谱、疲劳极值预估;所有变量沿用前文定义
\(\(X(t)\)\):零均值平稳高斯过程;\(\dot \(X(t)\)=\frac{dX}{dt}\);\(\ddot \(X(t)\)=\frac{d^2X}{dt^2}\)
\(\sigma_X^2=E[X^2],\ \sigma_{\dot X}^2=E[\dot X^2],\ \sigma_{\ddot X}^2=E[\ddot X^2]\)
一、回顾:向上水平穿越率(Upcrossing rate)
单位时间内,信号从下往上跨过阈值\(\alpha\) 的平均次数:
零均值平稳高斯下,\(X\)与\(\dot X\)独立,联合密度:
代入\(x=\alpha\)积分,得到Rice upcrossing公式:
- \(\boldsymbol{\alpha=0}\):零点向上穿越率
\(N_0\):平均零穿越频率(单位 Hz),工程上常用来表征随机振动的平均振荡频率。
二、峰值期望率(Peak rate,单位时间平均峰值个数)
峰值定义:在时刻\(t\)满足 \(\dot \(X(t)\)=0,\ \ddot \(X(t)\)<0\)(导数为0,二阶导负,局部极大值)。
峰值期望率公式定义
\(p(\dot x,\ddot x)\):\(\dot \(X(t)\)\)和\(\ddot \(X(t)\)\)的联合概率密度;积分只取\(\ddot x<0\)(极大峰,排除谷值)。
对于零均值平稳高斯过程:
\(\dot \(X(t)\)\)同样是零均值高斯;\(\dot X\)与\(\ddot X\)相互独立(和前面\(X,\dot X\)独立道理完全一样)。
平稳,方差\(E[\dot X^2]\)不随时间变化,时间导数为0 → \(\dot X,\ddot X\)不相关,高斯变量不相关即独立。
联合密度:
峰值条件\(\dot x=0\),代入:
代入峰值率积分:
令 \(\ddot x=-u,\ u>0,\ d\ddot{x}=-du\):
积分 \(\displaystyle\int_{0}^{\infty}u\exp\left(-\frac{u^2}{2\sigma_{\ddot X}^2}\right)du=\sigma_{\ddot X}^2\)
\(N_p\):单位时间内局部极大峰值的平均数量。
三、不规则因子(Irregularity factor,非常关键!)
- \(\gamma\to1\):窄带随机过程;峰值几乎全部在零点穿越附近,峰和零点一一对应;峰值服从瑞利分布;
- \(\gamma\ll1\):宽带随机过程;一个周期内出现很多小峰,峰数量 > 零点穿越数量;疲劳计算必须考虑宽带修正(Dirlik模型就是基于这个)。
窄带:\(\gamma\approx1\),\(N_p\approx N_0\);宽带:\(\gamma<1\),\(N_p>N_0\)
四、用功率谱密度PSD表达所有量(工程最常用形式)
单边功率谱 \(S_X(f),\ f\ge0\),单位 \(\text{X}^2/\text{Hz}\)
记谱矩(Spectral moments):
则:
把上面全部公式换成谱矩形式:
Rice向上穿越率写成谱矩:
谱矩 \(m_0,m_2,m_4\) 是Dirlik、Wirsching-Light等随机疲劳应力谱模型的输入参数,耐久载荷谱里必用。
五、峰值幅值的概率分布(Rice峰值分布)
单位时间内,幅值大于\(\alpha\)的峰值期望数目:
窄带极限 \(\gamma=1\):Rice分布退化为瑞利分布:
窄带下,超过\(\alpha\)峰值个数:
物理含义:窄带,每一次向上穿越\(\alpha\),对应一个高度大于\(\alpha\)的峰值。
宽带情况:\(\gamma<1\),不能用瑞利;要用Dirlik近似,Dirlik把峰值分布拆成瑞利+两个高斯分量,是汽车振动疲劳载荷谱工业标准。
六、Python代码实现:PSD计算谱矩、\(N_0,N_p,\gamma\),Rice穿越率
import numpy as np
def spectral_moments(f, Sx, k):
"""
计算单边PSD的谱矩 m_k = ∫ (2π f)^k * Sx(f) df
f:频率向量 Hz
Sx:单边功率谱密度向量
k:谱矩阶数
"""
df = np.diff(f, prepend=f[0])
integrand = ((2*np.pi*f)**k) * Sx
mk = np.sum(integrand * df)
return mk
def rice_upcrossing(alpha, m0, N0):
"""Rice向上穿越率 N+(\(\alpha\))"""
return N0 * np.exp(-alpha**2/(2*m0))
# ========== Demo:窄带PSD示例 ==========
f = np.linspace(0, 200, 2000)
# 窄带:中心频率50Hz
Sx = np.zeros_like(f)
mask = np.logical_and(f>48, f<52)
Sx[mask] = 1.0
m0 = spectral_moments(f, Sx, 0)
m2 = spectral_moments(f, Sx, 2)
m4 = spectral_moments(f, Sx, 4)
N0 = 1/(2*np.pi)*np.sqrt(m2/m0)
Np = 1/(2*np.pi)*np.sqrt(m4/m2)
gamma = N0/Np
print(f"m0={m0:.3f}, m2={m2:.3f}, m4={m4:.3f}")
print(f"N0零点穿越率={N0:.2f} Hz")
print(f"Np峰值率={Np:.2f} Hz")
print(f"不规则因子\(\gamma\)={gamma:.3f}")
alpha = np.sqrt(m0)
Na = rice_upcrossing(alpha, m0, N0)
print(f"阈值 \(\alpha\)={alpha:.2f},向上穿越率 N+(\(\alpha\))={Na:.3f} /s")
七、扩展:Dirlik峰值分布(宽带疲劳,载荷谱雨流)
Dirlik PDF:
系数由\(\gamma\)和\(\lambda_2=\sqrt{(1-\gamma^2)}\)算出,输出雨流幅值分布,直接用于Miner线性累积损伤计算。
如果你需要,我可以:
- 单独推导Dirlik模型完整公式,含系数推导;
- 扩展代码:Dirlik PDF + Miner损伤计算;
- 或者做NCode/LMS TestLab对应的谱矩输入对照。你想继续哪一部分?
浙公网安备 33010602011771号