列车主动悬架超磁致伸缩作动器动力学【附模型】
✨ 长期致力于超磁致伸缩作动器、主动悬架、动力学建模、特性分析、Simulink仿真研究工作擅长数据搜集与处理、建模仿真、程序编写、仿真设计。✅ 专业定制毕设、代码✅如需沟通交流点击《获取方式》1非均匀磁场下的多物理场耦合建模建立包含磁致伸缩应变、涡流损耗和热效应的高精度动力学模型命名为MagNetDyn。首先通过有限元分析得到GMM棒内部的磁通密度分布发现端部磁场比中部低15%据此引入非均匀磁场修正系数。将Jiles-Atherton磁滞模型与二次畴转模型融合在磁滞回线的主环和局部回环之间加入记忆映射函数使用三次样条插值拟合实验测得的磁化曲线。动力学部分采用四阶分布参数模型将GMM棒沿轴向离散为20个单元每个单元分别计算应变和应力再通过传递矩阵法得到整体位移输出。在COMSOL中验证了该模型在0-500Hz范围内幅值误差小于3.2%。为了参数辨识设计了一种混合粒子群优化策略将待辨识的7个JA模型参数分为两组先利用遗传算法全局搜索边界再用自适应惯性权重的粒子群局部细化。实验数据来自自主搭建的GMA测试台预压力10MPa、驱动电流0-5A辨识后的模型输出力预测均方根误差为0.78N。2负载参数与时频域协同优化针对列车主动悬架的应用场景提出负载参数多目标优化方法。定义三个优化目标阶跃响应上升时间、带宽宽度峰值平坦度、以及能量转换效率。设计快速非支配排序遗传算法NSGA-III决策变量包括负载质量范围2-8kg、阻尼系数100-500N·s/m、刚度1e5-5e5N/m以及预压力5-15MPa。在Pareto前沿上选取一个折衷解负载质量4.5kg阻尼320N·s/m刚度2.8e5N/m预压力10MPa。此时阶跃响应上升时间为12ms比未优化前缩短40%。频域分析显示在20-150Hz频段内幅值响应平坦度达到±0.8dB且不存在谐振峰。进一步研究驱动电流波形对动态特性的影响比较了方波、正弦波和梯形波发现梯形波上升沿和下降沿各加入1ms斜变可抑制GMM棒内的涡流能量损耗降低18%。同时设计了一种前馈补偿器将预期的位移轨迹逆化为电流指令补偿磁滞非线性使正弦跟踪误差从5%降至1.2%。3半主动与主动切换控制策略为了使GMA主动悬架在能耗和性能之间平衡设计一种基于路面不平度估计的模式切换控制器。使用加速度传感器信号实时计算路面功率谱密度当谱密度值低于0.05m^3/cycle时判定为良好路面此时GMA切换到半主动模式——仅利用可变阻尼孔进行能量耗散作动器不主动输出力当谱密度超过阈值或检测到冲击脉冲垂向加速度峰值大于0.3g立即切换至主动模式输出控制力抵消振动。主动模式下采用滑模控制滑模面取车体垂向速度误差和位移误差的线性组合切换增益通过模糊规则调节。在Simulink中与被动悬架对比随机路面输入下主动模式使车体垂向加速度均方根值降低42%悬架动行程减少35%。而在高速公路良好路面下半主动模式的能耗只有主动模式的12%。最后将模型部署到dSPACE实时仿真平台验证了切换控制的时效性模式切换延迟小于10ms无冲击现象。import numpy as np from scipy.integrate import odeint from pyswarm import pso import matplotlib.pyplot as plt class MagNetDyn: def __init__(self, params): self.alpha, self.c, self.k, self.ms, self.a, self.ManSat, self.xi params self.N 20 # 离散单元数 def jiles_atherton(self, H, M_prev): Man self.ManSat * (np.tanh((H self.alpha * M_prev)/self.a) - (self.a/(H self.alpha * M_prev 1e-5))) dMdH (Man - M_prev) / (self.k * self.xi - self.alpha * (Man - M_prev)) return dMdH def nonlinear_magnetic_field(self, z, I): # 非均匀磁场分布: 端部系数0.85 B_center 1.2e-3 * I B_z B_center * (1 - 0.15 * (2*z - 1)**2) return B_z def strain_output(self, H, sigma_pre10e6): # 二次畴转模型 lamda_s 1000e-6 M self.jiles_atherton(H, 0) strain (3/2) * (lamda_s / self.ManSat**2) * M**2 strain sigma_pre / 2e11 # 预压力贡献 return strain def adaptive_pso_identification(measured_data): def cost_func(params): model MagNetDyn(params) sim_output [] for H in measured_data[H_seq]: s model.strain_output(H) sim_output.append(s) return np.mean((np.array(sim_output) - measured_data[strain])**2) lb [1e-5, 0.01, 10, 100, 5, 0.5e-3, 0.1] ub [1e-3, 0.5, 500, 2000, 200, 2e-3, 0.6] best, _ pso(cost_func, lb, ub, swarmsize30, maxiter100) return best def mode_switch_controller(acc_z, psd_est, modesemi): threshold_good 0.05 # 路面谱阈值 if psd_est threshold_good and np.abs(acc_z) 0.3*9.8: mode semi u_force 0 else: mode active # 滑模控制 c1, c2 1500, 100 s c1 * acc_z c2 * np.cumsum(acc_z)*0.001 u_force 2000 * np.tanh(s / 0.05) return mode, u_force
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2607711.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!