コード例 #1
0
                                                rol=plz_ol,
                                                c=c_ca,
                                                m=m_ca,
                                                eta=eta)

# Alpha模型部分计算
dk_alpha_e, dkeff_alpha_e, dadn_alpha_e, alpha_e, betas, a_alpha_e = \
    closureanalysis.AlphaCalculate(fade_rate=7.2, amplitude=2/np.pi, dadn=specimen.dadn, dk=specimen.dk,
                                   kc=specimen.kc, a=specimen.a, a_range=[specimen.a_dadn_min-bias, specimen.a_alpha_end],
                                   a_amplitude=specimen.a_kc_max, stress_ratio=specimen.stress_ratio)

# 原始Wheeler模型计算,塑性区系数为Irwin
dadn_wheeler, dk_wheeler, a_wheeler, cp_wheeler = \
    overload_analysis.WheelerCalculatingBaseParis(a_wheeler=a_alpha_e,
                                                  b=specimen.thickness, w=specimen.width, ys=specimen.yield_stress,
                                                  pmax=specimen.maxload, r=specimen.stress_ratio,
                                                  aol=specimen.a_ol_applied, rol=plz_ol, plasticzonefactor=plz_factor,
                                                  m1=m1, c=c_ca, m=m_ca, eta=eta)

# Try: mix try 1
# 采用logistic sigmoid函数分配两种
# logistic sigmoid单调递增,表征crack closure
sigmas = 1 / (1 + np.exp(-kappa * betas))
dadn_mixed_1 = dadn_wheeler * (1 - sigmas) + dadn_alpha_e * sigmas

# 绘图部分
# Plotting
plt.figure(num=1, figsize=(6, 6))
plt.scatter(specimen.dk, specimen.dadn, lw=1, marker='+', label='Experiment')
if moving_average:
    plt.scatter(dk_ave, dadn_ave, lw=1, marker='*', label='Moving average')
コード例 #2
0
                                                 factor=factor)
# 高载段参数计算

m1, _ = overload_analysis.WheelerFittingBaseParis(a=a_ola,
                                                  dadn=dadn_ola,
                                                  dk=dk_ola,
                                                  rm=rm_ola,
                                                  aol=aol,
                                                  rol=rol,
                                                  c=c_ca,
                                                  m=m_ca)
# Wheeler模型指数系数m1拟合

dadn_wheeler, dk_wheeler, a_wheeler, cp_wheeler = \
    overload_analysis.WheelerCalculatingBaseParis(astart=apre, afinal=max(a_Manual),
                                                  b=thickness, w=width, ys=yield_strength, pmax=ppeak, r=stress_ratio,
                                                  aol=aol, rol=rol, plasticzonefactor=factor,
                                                  m1=m1, c=c_ca, m=m_ca)
# Wheeler模型计算

# Plotting
plt.figure(num=2, figsize=(10, 8))
plt.scatter(dk_Manual, dadn_Manual, lw=1, marker='+', label='Experiment')
plt.plot(dk_wheeler,
         dadn_wheeler,
         label='Wheeler Fitting',
         color='black',
         linewidth=2)
plt.title("FCG Rates - deltaK(Wheeler Model) with Li's factor,OLR=" +
          str(pol / ppeak))
plt.ylabel("FCG Rates/mm per cycle")
plt.xlabel("DeltaSIF/MPa.m0.5")
コード例 #3
0
# Wheeler模型指数系数m1拟合
m1, _ = overload_analysis.WheelerFittingBaseParis(a=a_ola,
                                                  dadn=dadn_ola,
                                                  dk=dk_ola,
                                                  rm=rm_ola,
                                                  aol=a_ol,
                                                  rol=rol,
                                                  c=c_ca,
                                                  m=m_ca)

# 原始Wheeler模型计算
alist = np.arange(a_fcgr_max, max(a_Manual), 0.02)
dadn_wheeler, dk_wheeler, a_wheeler, cp_wheeler = \
    overload_analysis.WheelerCalculatingBaseParis(a_wheeler=alist,
                                                  b=thickness, w=width, ys=yield_strength, pmax=ppeak, r=stress_ratio,
                                                  aol=a_ol, rol=rol, plasticzonefactor=1/math.pi,
                                                  m1=m1, c=c_ca, m=m_ca)

# 筛选出自dadN最高点往后的数据
dadn_old, dk_old, n_old, a_old = \
    mts_analysis.FCGDataSelectByThreshold(dadn=dadn_Manual, dk=dk_Manual, n=n_Manual, a=a_Manual,
                                          threshold=a_fcgr_max, target='a', keepbigger=1)

# 计算延迟结束位置(即dadN最低值对应的裂纹长度)对应的SIF
kd = mts_analysis.DeltaKCalculating(b=thickness,
                                    w=width,
                                    a=a_fcgr_max + ad,
                                    pmax=ppeak,
                                    pmin=ppeak * stress_ratio)

# 以alhpa_d为系数的延迟区域尺寸计算