双加权最小二乘法拟合S-N曲线(Matlab)
简介
本文的数据和算法思想均来自于《结构疲劳寿命分析》第二章——金属材料的疲劳性能。我借助Matlab实现了这个算法并绘制出了S-N曲线。
算法
双加权最小二乘法的拟合步骤如下:
-
给出 S 0 S_0 S0的初始值 S 0 ^ ≤ S e \hat{S_0}\leq S_e S0^≤Se,可以取 S e S_e Se为 S 0 S_0 S0的迭代初始值。
-
计算第 i i i组的试验数据的对数寿命均值 y i ˉ \bar{y_i} yiˉ和标准差 δ i \delta_i δi。
-
计算第 i i i组试验数据的对数寿命均值置信区间长度:
d i = 2 t α / 2 ( m i − 1 ) σ i m i d_i=2t_{\alpha/2}(m_i-1)\frac{\sigma_i}{m_i} di=2tα/2(mi−1)miσi
计算各应力水平下的权重系数:
ω i = 1 d i × ∑ j = 1 n 1 d j \omega_i=\frac{1}{d_i\times\sum_{j=1}^n\frac{1}{d_j}} ωi=di×∑j=1ndj11
写出加权矩阵:
W = [ ω 1 ⋯ 0 ⋮ ⋱ ⋮ 0 ⋯ ω n ] W=\begin{bmatrix} \omega_1&\cdots&0\\ \vdots&\ddots&\vdots\\ 0&\cdots&\omega_n \end{bmatrix} W= ω1⋮0⋯⋱⋯0⋮ωn
其中 σ i \sigma_i σi为对数寿命样本标准差, t α / 2 t_{\alpha/2} tα/2为t分布百分位数, m i m_i mi是应力 S m a x i S_{maxi} Smaxi时的疲劳试验样本数。 -
计算拟合曲线参数的列向量 a = { a 1 , a 2 } T a=\{a_1,a_2\}^T a={ a1,a2}T:
a = ( G T W G ) − 1 G T W Y a=(G^TWG)^{-1}G^TWY a=(GTWG)−1GTWY
a = { a 1 , a 2 } T Y = { y 1 , y 2 , ⋯ y n } T