最后怎么和 Miner 法则结合的?
最后怎么和 Miner 法则结合的?
这是频域疲劳计算最核心的一步:把 Dirlik 得到的应力幅值分布,和 S-N 曲线、Miner 法则结合起来,算出总损伤和寿命。下面从逻辑、数学、代码、直观理解四个层面讲清楚。
一、Miner 法则的本质
Miner 线性累积损伤法则说:
如果材料在应力幅值 ( S_i ) 下能承受 ( N_i ) 次循环才失效,那么实际作用 ( n_i ) 次,就消耗了 ( n_i / N_i ) 的寿命。所有幅值的损伤线性叠加,当总和 ( D = 1 ) 时失效。
数学表达:
连续化(幅值连续分布):
其中:
- ( n(S) ):应力幅值 ( S ) 实际发生的循环次数
- ( N(S) ):应力幅值 ( S ) 下材料能承受的循环次数(由 S-N 曲线给出)
关键问题:在频域里,我们不知道每个幅值 ( S ) 具体出现多少次,只知道它的概率分布 ( p(S) ) 和总循环数 ( \nu_p T )。
二、频域里怎么得到 ( n(S) )?
1. 总循环数
单位时间的循环数 = 峰值率 ( \nu_p )。时间 ( T ) 内的总循环数:
2. 各幅值的循环数
幅值落在 ( [S, S+dS] ) 的比例是 ( p(S) dS ),所以:
这就是 "总循环数按概率密度分配到各幅值" 的过程。
直观理解:
总循环数 νp·T
│
├── 幅值 5 MPa 占 p(5)dS → n(5) = νp·T·p(5)dS
├── 幅值 10 MPa 占 p(10)dS → n(10) = νp·T·p(10)dS
├── 幅值 20 MPa 占 p(20)dS → n(20) = νp·T·p(20)dS
└── ...
三、代入 Miner 法则
1. 每个幅值贡献的损伤
2. 总损伤(积分)
3. 代入 S-N 曲线
S-N 曲线:
代入:
4. 疲劳寿命
当 ( D = 1 ) 时失效:
四、物理图像:Miner 法则的"记账"
把疲劳计算想象成寿命预算的消耗:
| 概念 | 类比 |
|---|---|
| S-N 曲线 ( N(S) ) | 每个幅值对应的"寿命预算"(能承受多少次) |
| 循环数 ( n(S) ) | 每个幅值的"消费次数" |
| 损伤 ( n(S)/N(S) ) | 每个幅值消耗了预算的比例 |
| 总损伤 ( D ) | 所有幅值消耗的预算总和 |
| ( D = 1 ) | 预算花完,失效 |
| ( T_f = T/D ) | 按当前消耗速率,预算能撑多久 |
具体例子:
假设总循环 ( \nu_p T = 1000 ) 次,Dirlik 分布给出:
| 幅值 ( S ) | 占比 ( p(S)dS ) | 循环数 ( n(S) ) | ( N(S) = C S^{-k} ) | 损伤 ( n/N ) |
|---|---|---|---|---|
| 5 MPa | 0.5 | 500 | ( 10^9 ) | ( 5\times 10^{-7} ) |
| 10 MPa | 0.3 | 300 | ( 10^6 ) | ( 3\times 10^{-4} ) |
| 20 MPa | 0.2 | 200 | ( 1.25\times 10^3 ) | ( 0.16 ) |
| 合计 | 1.0 | 1000 | — | ( D \approx 0.16 ) |
结论:( D = 0.16 ),说明寿命还剩 ( 1/0.16 \approx 6.25 ) 倍,即 ( T_f = T/0.16 = 6.25T )。
注意:幅值越大,虽然循环次数少,但对损伤的贡献可能压倒性(因为 ( N(S) ) 随 ( S ) 急剧下降)。
五、代码实现对应
回顾代码中的关键几行:
nu_p = np.sqrt(m4 / m2) # 峰值率
pdf_vals = dirlik_pdf(S_vals, m0, D1, ...) # p(S)
S_eq_vals = S_vals / (1 - sigma_m / sigma_u) # Goodman 修正
integral = trapz(pdf_vals * S_eq_vals**k / C, S_vals) # ∫ p(S) S^k / C dS
D = nu_p * T * integral # Miner 总损伤
T_f = T / D # 疲劳寿命
逐行对应:
| 代码 | 数学含义 |
|---|---|
nu_p |
( \nu_p ):单位时间循环数 |
pdf_vals |
( p(S) ):幅值概率密度 |
S_eq_vals |
( S_{\text{eq}} ):Goodman 修正后的等效幅值 |
S_eq_vals**k / C |
( \dfrac{1}{N(S)} = \dfrac{S^k}{C} ) |
trapz(...) |
( \displaystyle \int_0^\infty \frac{p(S)}{N(S)} dS ) |
D = nu_p * T * integral |
( D = \nu_p T \displaystyle\int \frac{p(S)}{N(S)} dS ) |
T_f = T / D |
( T_f = T/D ) |
六、完整链条回顾
应力 PSD S_σ(f)
│
├─► 谱矩 m0, m2, m4
│ │
│ ├─► νp = √(m4/m2) → 每秒循环次数
│ │
│ └─► Dirlik 参数 D1,D2,D3,R,Q
│ │
│ └─► p(S) → 各幅值概率分布
│
▼
总循环数 νp · T
│
▼
按 p(S) 分配到各幅值: n(S) = νp·T·p(S) dS
│
▼
结合 S-N 曲线 N(S) = C S^{-k}:
│
▼
Miner 损伤积分: D = ∫ n(S)/N(S) dS = νp T ∫ p(S)/N(S) dS
│
▼
疲劳寿命: T_f = T / D
七、关键理解点
1. 为什么要用概率密度?
因为频域法不知道每个幅值的具体时间序列,只知道它的统计分布。所以用 ( p(S) ) 代替具体的循环计数。
2. 为什么积分能代替求和?
Miner 法则原本是离散求和 ( D = \sum n_i / N_i )。当幅值连续变化时,求和变成积分:
3. 为什么是 ( \nu_p ) 而不是 ( \nu_0 )?
因为疲劳循环由应力峰值决定,每个峰对应一次循环,所以用峰值率 ( \nu_p )。窄带时 ( \nu_p \approx \nu_0 ),宽带时 ( \nu_p > \nu_0 )。
4. Goodman 修正在做什么?
S-N 曲线通常基于对称循环(( R = -1 ))。如果实际有平均应力 ( \sigma_m ),需要把实际幅值 ( S ) 等效为对称循环下的幅值 ( S_{\text{eq}} ):
然后用 ( S_{\text{eq}} ) 查 S-N 曲线。
八、一句话总结
Miner 法则把"总循环数 ( \nu_p T )"按概率密度 ( p(S) ) 分配到各个应力幅值,得到每个幅值的循环数 ( n(S) = \nu_p T , p(S) dS );再用 S-N 曲线算出每个幅值能承受的循环数 ( N(S) );两者相除得到该幅值的损伤 ( n/N );所有幅值积分求和得到总损伤 ( D ),最后 ( T_f = T/D ) 就是疲劳寿命。
浙公网安备 33010602011771号