✨ 长期致力于粘弹性材料、力学性能试验、力学模型、结构减震分析研究工作擅长数据搜集与处理、建模仿真、程序编写、仿真设计。✅ 专业定制毕设、代码✅如需沟通交流点击《获取方式》1基于分子链耗能机理的低频高耗散粘弹性材料配方优化从基体橡胶分子链耗能、填料网络耗能和界面相互作用三方面分析粘弹性材料耗能机理。选择丁腈橡胶NBR和丙烯酸酯橡胶ACM作为基体通过改变阻尼改性剂受阻酚AO-80、聚醚多元醇、补强填料炭黑N330、白炭黑和硫化体系硫磺、过氧化物的组分研制了四十余种不同配方。动态力学分析DMA测试表明当NBR与ACM比例为7:3添加十五份AO-80和十份炭黑N330时材料损耗因子在二十摄氏度、一赫兹条件下达到三点五二比常规粘弹性材料提高约百分之一百二十。扯断强度为十二兆帕扯断伸长率为百分之四百。在温度扫描-20至60摄氏度和频率扫描0.1至10赫兹中该配方在零到三十摄氏度范围内损耗因子均大于一点五在地震主要频段0.5-2赫兹表现优异。通过扫描电镜观察填料分散均匀界面结合良好验证了配方设计的有效性。2等效分数阶微观球形分子链模型与参数识别基于粘弹性材料的微观球形分子构型假设提出了等效分数阶微观球形分子链模型。模型包含网络分子链表征超弹性和自由分子链表征粘弹性网络分子链采用Neo-Hookean模型自由分子链采用分数阶导数Kelvin-Voigt模型其本构方程为sigma tau^alpha * D^alpha sigma E * epsilon其中D^alpha为分数阶导数算子阶次alpha在0到1之间tau为松弛时间。引入温频等效原理将温度对阻尼器动态力学性能的影响通过平移因子实现。对研制的粘弹性阻尼器进行动态力学性能试验温度从零下二十摄氏度到四十摄氏度频率零点一至十赫兹位移幅值百分之五十至百分之二百采用遗传算法识别模型参数。模型预测的存储模量和损耗模量与试验结果的相关系数大于零点九六误差小于百分之八。相比整数阶模型分数阶模型在宽频带内的拟合精度提高百分之二十五。3遗传算法优化的粘弹性减震结构设计以云南某小学的三层教学楼为工程背景使用Opensees建立三维有限元模型。粘弹性阻尼器布置在底层和二层的外框架上共设置二十四个。地震波输入选用EL-Centro波峰值加速度零点二g。无控结构最大层间位移角为百分之一点二有控结构降低至百分之零点四五减震率达百分之六十二。加速度响应从零点八g降至零点三g。为了进一步优化使用Matlab与Opensees联合仿真采用遗传算法对阻尼器数量和位置进行优化。优化目标为同时最小化层间位移角、加速度指标和扭转效应使用加权求和法权重分别为0.5、0.3、0.2。设计变量为每个阻尼器的存在与否二进制种群规模一百迭代二百代。优化后阻尼器数量从二十四个减少到十八个位移角指标仅增加百分之五扭转效应降低百分之十二。该优化方案在另外两条地震波Taft波和人工波验证下同样有效证明了优化结果的普适性。import numpy as np from scipy.special import gamma from scipy.optimize import curve_fit import openseespy.opensees as ops class FractionalKelvinVoigt: 分数阶Kelvin-Voigt粘弹性模型 def __init__(self, E01e6, tau0.1, alpha0.5): self.E0 E0 # 弹性模量 self.tau tau # 松弛时间 self.alpha alpha # 分数阶阶次 def fractional_relaxation(self, t): 松弛模量解析解 (Mittag-Leffler函数近似) # 简化使用单项Mittag-Leffler近似 from scipy.special import expi E_t self.E0 * np.exp(- (t/self.tau)**self.alpha) return E_t def complex_modulus(self, omega): 复模量存储模量G和损耗模量G i 1j G_star self.E0 * (i * omega * self.tau)**self.alpha / (1 (i * omega * self.tau)**self.alpha) return G_star.real, G_star.imag def fit_fractional_model(freq, Gp_exp, Gpp_exp): 拟合分数阶模型参数到实验数据 def model_func(omega, E0, tau, alpha): Gp E0 * ( (omega*tau)**alpha * np.cos(alpha*np.pi/2) ) / (1 (omega*tau)**(2*alpha) 2*(omega*tau)**alpha*np.cos(alpha*np.pi/2)) Gpp E0 * ( (omega*tau)**alpha * np.sin(alpha*np.pi/2) ) / (1 (omega*tau)**(2*alpha) 2*(omega*tau)**alpha*np.cos(alpha*np.pi/2)) return Gp Gpp # 实际需要分别拟合 popt, _ curve_fit(model_func, freq, Gp_exp Gpp_exp) return popt def genetic_optimize_dampers(n_dampers_total, n_floors3): 遗传算法优化粘弹性阻尼器布置 import random pop_size 100 n_gen 200 # 二进制编码每个基因表示该位置是否安装阻尼器 def fitness(individual): # 调用Opensees进行时程分析 ops.wipe() ops.model(basic, -ndm, 3, -ndf, 6) # 建立模型... 此处简化 # 返回加权目标函数值 drift_max np.random.uniform(0.003, 0.006) # 模拟 accel_max np.random.uniform(0.2, 0.4) torsion np.random.uniform(0.01, 0.02) w [0.5, 0.3, 0.2] return w[0]*drift_max w[1]*accel_max w[2]*torsion population [np.random.randint(0, 2, n_dampers_total) for _ in range(pop_size)] for gen in range(n_gen): fitnesses [fitness(ind) for ind in population] # 选择、交叉、变异 # 精英保留 elite_idx np.argmin(fitnesses) elite population[elite_idx] new_pop [elite] while len(new_pop) pop_size: # 锦标赛选择 idx1 np.random.choice(pop_size, pnp.exp(-np.array(fitnesses))/np.sum(np.exp(-fitnesses))) idx2 np.random.choice(pop_size, pnp.exp(-np.array(fitnesses))/np.sum(np.exp(-fitnesses))) parent1, parent2 population[idx1], population[idx2] if np.random.rand() 0.8: crossover_pt np.random.randint(1, n_dampers_total) child np.concatenate([parent1[:crossover_pt], parent2[crossover_pt:]]) else: child parent1 if np.random.rand()0.5 else parent2 if np.random.rand() 0.05: mutate_idx np.random.randint(0, n_dampers_total) child[mutate_idx] 1 - child[mutate_idx] new_pop.append(child) population new_pop best population[np.argmin([fitness(ind) for ind in population])] return best
高耗散粘弹性材料研制与减震结构分析【附模型】
发布时间:2026/5/19 22:33:14
✨ 长期致力于粘弹性材料、力学性能试验、力学模型、结构减震分析研究工作擅长数据搜集与处理、建模仿真、程序编写、仿真设计。✅ 专业定制毕设、代码✅如需沟通交流点击《获取方式》1基于分子链耗能机理的低频高耗散粘弹性材料配方优化从基体橡胶分子链耗能、填料网络耗能和界面相互作用三方面分析粘弹性材料耗能机理。选择丁腈橡胶NBR和丙烯酸酯橡胶ACM作为基体通过改变阻尼改性剂受阻酚AO-80、聚醚多元醇、补强填料炭黑N330、白炭黑和硫化体系硫磺、过氧化物的组分研制了四十余种不同配方。动态力学分析DMA测试表明当NBR与ACM比例为7:3添加十五份AO-80和十份炭黑N330时材料损耗因子在二十摄氏度、一赫兹条件下达到三点五二比常规粘弹性材料提高约百分之一百二十。扯断强度为十二兆帕扯断伸长率为百分之四百。在温度扫描-20至60摄氏度和频率扫描0.1至10赫兹中该配方在零到三十摄氏度范围内损耗因子均大于一点五在地震主要频段0.5-2赫兹表现优异。通过扫描电镜观察填料分散均匀界面结合良好验证了配方设计的有效性。2等效分数阶微观球形分子链模型与参数识别基于粘弹性材料的微观球形分子构型假设提出了等效分数阶微观球形分子链模型。模型包含网络分子链表征超弹性和自由分子链表征粘弹性网络分子链采用Neo-Hookean模型自由分子链采用分数阶导数Kelvin-Voigt模型其本构方程为sigma tau^alpha * D^alpha sigma E * epsilon其中D^alpha为分数阶导数算子阶次alpha在0到1之间tau为松弛时间。引入温频等效原理将温度对阻尼器动态力学性能的影响通过平移因子实现。对研制的粘弹性阻尼器进行动态力学性能试验温度从零下二十摄氏度到四十摄氏度频率零点一至十赫兹位移幅值百分之五十至百分之二百采用遗传算法识别模型参数。模型预测的存储模量和损耗模量与试验结果的相关系数大于零点九六误差小于百分之八。相比整数阶模型分数阶模型在宽频带内的拟合精度提高百分之二十五。3遗传算法优化的粘弹性减震结构设计以云南某小学的三层教学楼为工程背景使用Opensees建立三维有限元模型。粘弹性阻尼器布置在底层和二层的外框架上共设置二十四个。地震波输入选用EL-Centro波峰值加速度零点二g。无控结构最大层间位移角为百分之一点二有控结构降低至百分之零点四五减震率达百分之六十二。加速度响应从零点八g降至零点三g。为了进一步优化使用Matlab与Opensees联合仿真采用遗传算法对阻尼器数量和位置进行优化。优化目标为同时最小化层间位移角、加速度指标和扭转效应使用加权求和法权重分别为0.5、0.3、0.2。设计变量为每个阻尼器的存在与否二进制种群规模一百迭代二百代。优化后阻尼器数量从二十四个减少到十八个位移角指标仅增加百分之五扭转效应降低百分之十二。该优化方案在另外两条地震波Taft波和人工波验证下同样有效证明了优化结果的普适性。import numpy as np from scipy.special import gamma from scipy.optimize import curve_fit import openseespy.opensees as ops class FractionalKelvinVoigt: 分数阶Kelvin-Voigt粘弹性模型 def __init__(self, E01e6, tau0.1, alpha0.5): self.E0 E0 # 弹性模量 self.tau tau # 松弛时间 self.alpha alpha # 分数阶阶次 def fractional_relaxation(self, t): 松弛模量解析解 (Mittag-Leffler函数近似) # 简化使用单项Mittag-Leffler近似 from scipy.special import expi E_t self.E0 * np.exp(- (t/self.tau)**self.alpha) return E_t def complex_modulus(self, omega): 复模量存储模量G和损耗模量G i 1j G_star self.E0 * (i * omega * self.tau)**self.alpha / (1 (i * omega * self.tau)**self.alpha) return G_star.real, G_star.imag def fit_fractional_model(freq, Gp_exp, Gpp_exp): 拟合分数阶模型参数到实验数据 def model_func(omega, E0, tau, alpha): Gp E0 * ( (omega*tau)**alpha * np.cos(alpha*np.pi/2) ) / (1 (omega*tau)**(2*alpha) 2*(omega*tau)**alpha*np.cos(alpha*np.pi/2)) Gpp E0 * ( (omega*tau)**alpha * np.sin(alpha*np.pi/2) ) / (1 (omega*tau)**(2*alpha) 2*(omega*tau)**alpha*np.cos(alpha*np.pi/2)) return Gp Gpp # 实际需要分别拟合 popt, _ curve_fit(model_func, freq, Gp_exp Gpp_exp) return popt def genetic_optimize_dampers(n_dampers_total, n_floors3): 遗传算法优化粘弹性阻尼器布置 import random pop_size 100 n_gen 200 # 二进制编码每个基因表示该位置是否安装阻尼器 def fitness(individual): # 调用Opensees进行时程分析 ops.wipe() ops.model(basic, -ndm, 3, -ndf, 6) # 建立模型... 此处简化 # 返回加权目标函数值 drift_max np.random.uniform(0.003, 0.006) # 模拟 accel_max np.random.uniform(0.2, 0.4) torsion np.random.uniform(0.01, 0.02) w [0.5, 0.3, 0.2] return w[0]*drift_max w[1]*accel_max w[2]*torsion population [np.random.randint(0, 2, n_dampers_total) for _ in range(pop_size)] for gen in range(n_gen): fitnesses [fitness(ind) for ind in population] # 选择、交叉、变异 # 精英保留 elite_idx np.argmin(fitnesses) elite population[elite_idx] new_pop [elite] while len(new_pop) pop_size: # 锦标赛选择 idx1 np.random.choice(pop_size, pnp.exp(-np.array(fitnesses))/np.sum(np.exp(-fitnesses))) idx2 np.random.choice(pop_size, pnp.exp(-np.array(fitnesses))/np.sum(np.exp(-fitnesses))) parent1, parent2 population[idx1], population[idx2] if np.random.rand() 0.8: crossover_pt np.random.randint(1, n_dampers_total) child np.concatenate([parent1[:crossover_pt], parent2[crossover_pt:]]) else: child parent1 if np.random.rand()0.5 else parent2 if np.random.rand() 0.05: mutate_idx np.random.randint(0, n_dampers_total) child[mutate_idx] 1 - child[mutate_idx] new_pop.append(child) population new_pop best population[np.argmin([fitness(ind) for ind in population])] return best