柔性钙钛矿薄膜应力应变载流子动力学分析【附模型】
✨ 本团队擅长数据搜集与处理、建模仿真、程序设计、仿真代码、EI、SCI写作与指导毕业论文、期刊论文经验交流。✅ 专业定制毕设、代码✅如需沟通交流可以私信或者点击《获取方式》1弯曲状态下应力应变场建模与XRD衍射数据反演为定量获取柔性MAPbI3薄膜在不同弯曲曲率下的应力与应变分布搭建了集成精密圆弧夹具的原位XRD弯曲测试装置。薄膜被固定在可调曲率半径为5 mm至120 mm的圆柱形模具上通过Co Kα射线透射模式采集110和220衍射峰的峰位偏移。利用改进的Sin^2ψ方法同时引入各向异性弹性常数计算C1142.1 GPaC1216.3 GPaC4412.8 GPa计算应力张量。薄膜在退火冷却后存在约70 MPa的残余拉应力对应0.19%的拉应变。将凹弯曲一侧定义为负曲率凸弯曲为正曲率。凹弯曲半径为20 mm时残余拉应力释放至15 MPa而凸弯曲半径为20 mm时拉应力增大至112 MPa。通过有限元模拟验证了弯曲时中性面向基板侧偏移约0.7 μm使得薄膜大部分区域处于拉应力状态。该定量关系为后续载流子动力学分析提供了输入。2双通道时间相关单光子计数荧光衰减测量与载流子寿命提取搭建双通道TCSPC荧光寿命测量系统采用皮秒脉冲激光器波长470 nm重复频率5 MHz激发检测波长为770 nm附近的带边发射。将样品弯曲至不同曲率测量荧光衰减曲线。原始衰减曲线由仪器响应函数反卷积后采用双指数动力学模型进行拟合I(t)A1·exp(-t/τ1)A2·exp(-t/τ2)其中τ1归因于表面复合分量τ2归因于体复合分量。提取平均荧光寿命τ_avg。在平坦状态下τ12.3 nsτ28.7 ns凹弯曲半径15 mm时τ_avg从6.4 ns增加到9.1 ns表明非辐射复合受抑制凸弯曲半径15 mm时τ_avg降至4.8 ns。进一步通过转变速率方程分析得到载流子扩散长度由平坦时的1.2 μm变化为1.8 μm凹和0.7 μm凸。3压缩因子粒子群算法优化载流子动力学参数拟合为了从荧光衰减曲线中提取扩散系数和表面复合速度构建包含载流子扩散和复合的漂移-扩散模型使用有限差分法数值求解。拟合参数包括扩散系数D、顶部表面复合速度Stop、底部表面复合速度Sbottom。为了高效拟合提出带压缩因子的随机漫步粒子群算法。个体位置X_i表示参数向量[D, Stop, Sbottom]速度更新引入压缩因子χ0.729并添加自适应变异当全局最优停滞超过15代对种群中30%的个体施加Lévy飞行扰动。惯性权重从0.9线性递减至0.4。适应度函数为模型预测曲线与实测荧光衰减的残差平方和。在Intel i9平台上拟合收敛时间从传统PSO的72秒缩短至18秒R-square均大于0.996。结果显示凹弯曲半径10 mm时D从平坦态的0.012 cm^2/s增至0.019 cm^2/sStop从4.3×10^3 cm/s降至2.1×10^3 cm/s表明弯曲导致的晶格压缩增强了载流子传输并钝化了表面缺陷与极化子束缚能降低相一致。import numpy as np from scipy.integrate import solve_ivp from scipy.interpolate import interp1d # 1. 弯曲应力应变计算 def stress_strain_bending(curvature_radius, film_thickness0.5e-6, substrate_thickness1.0e-4): # 复合材料中性面偏移 E_film, E_sub 42.1e9, 70e9 # 模量 h_f, h_s film_thickness, substrate_thickness z_neutral (E_film * h_f**2 E_sub * h_s * (h_f h_s/2)) / (E_film * h_f E_sub * h_s) # 薄膜表面应变 strain (h_f - z_neutral) / curvature_radius if curvature_radius 0 else -abs(h_f - z_neutral) / abs(curvature_radius) stress E_film * strain return strain, stress # 2. 双指数荧光衰减拟合 def biexp_decay(t, A1, tau1, A2, tau2): return A1 * np.exp(-t / tau1) A2 * np.exp(-t / tau2) def fit_lifetime(t, decay_curve, p0): from scipy.optimize import curve_fit popt, _ curve_fit(biexp_decay, t, decay_curve, p0p0, maxfev5000) A1, tau1, A2, tau2 popt tau_avg (A1*tau1 A2*tau2) / (A1 A2) return tau_avg, popt # 3. 漂移-扩散模型数值求解 def carrier_dynamics_model(t, y, D, Stop, Sbottom, thickness): # y[0] n(z,t) 简化的一维扩散方程 dz 1e-9 z np.arange(0, thickness, dz) n y.reshape(len(z), 1) # 扩散项 d2n_dz2 np.gradient(np.gradient(n, dz, axis0), dz, axis0) dn_dt D * d2n_dz2 # 边界条件: 表面复合 dn_dt[0] - Stop * n[0] / dz dn_dt[-1] - Sbottom * n[-1] / dz return dn_dt.flatten() def simulate_decay(D, Stop, Sbottom, thickness5e-7, t_span(0, 2e-8), n01e15): # 初始均匀分布 z np.linspace(0, thickness, 100) y0 n0 * np.ones(len(z)) sol solve_ivp(carrier_dynamics_model, t_span, y0, args(D, Stop, Sbottom, thickness), methodLSODA, t_evalnp.linspace(t_span[0], t_span[1], 500)) intensity np.trapz(sol.y, axis0) # 总粒子数代表荧光强度 return sol.t, intensity # 4. 压缩因子粒子群优化 def pso_fit_decay(decay_data_t, decay_data_I): # 参数边界 [D, Stop, Sbottom] lb np.array([0.001, 1e2, 1e2]) ub np.array([0.1, 1e5, 1e5]) n_particles 30 pos np.random.uniform(lb, ub, (n_particles, 3)) vel np.zeros_like(pos) p_best pos.copy() p_best_cost np.full(n_particles, np.inf) g_best pos[0] g_best_cost np.inf chi 0.729 w_start, w_end 0.9, 0.4 for gen in range(100): w w_start - (w_start - w_end) * gen / 100 for i in range(n_particles): D, Stop, Sbottom pos[i] _, sim_I simulate_decay(D, Stop, Sbottom) # 插值到实验时间点 cost np.mean((sim_I - decay_data_I)**2) if cost p_best_cost[i]: p_best_cost[i] cost; p_best[i] pos[i].copy() if cost g_best_cost: g_best_cost cost; g_best pos[i].copy() # 速度更新 r1, r2 np.random.rand(3), np.random.rand(3) vel chi * (w * vel 2.05 * r1 * (p_best - pos) 2.05 * r2 * (g_best - pos)) pos vel pos np.clip(pos, lb, ub) # 自适应变异 if gen 0 and gen % 15 0: mask np.random.rand(n_particles) 0.3 pos[mask] np.random.standard_cauchy(size(mask.sum(), 3)) * 0.1 pos np.clip(pos, lb, ub) return g_best, g_best_cost⛳️ 关注我持续更新科研干货