FEATURED · 精选文章

35kV真空断路器弹簧操动机构Adams动力学仿真与实测校验

发布时间 / 2026/9/20 2:05:03
来源 / 创域科博编辑部
栏目 / 资讯中心
35kV真空断路器弹簧操动机构Adams动力学仿真与实测校验 简介围绕35kV真空断路器弹簧操动机构的设计优化这份技术文档以Solidworks三维建模联合Adams运动学与动力学仿真为主线面向高压开关设备研发、机械结构仿真方向的工程师与高校研究人员。内容完整记录了机构装配模型构建、约束与运动副添加、合闸弹簧力与分闸弹簧力加载、动触头阻尼设置以及用STEP函数模拟分闸电磁铁脱扣驱动的全过程并结合样机机械特性试验对机构行程、动触头行程、合分闸时间与速度进行拟合验证还梳理了CT26机构仿真、凸轮优化等前人研究基础。压缩包共1个docx文件约17KB篇幅精炼、便于快速查阅与引用。目前已有119人学习下载适合需要了解虚拟样机建模流程、仿真参数设置与试验数据对比思路的读者参考。1. 35kV真空断路器弹簧操动机构为什么要先在Adams里跑一遍高压断路器在电网里干两件事正常运行时按需投切线路出故障时把故障段切掉。这两件事都压在几十毫秒的一个动作上而这个动作由操动机构完成。弹簧操动机构把储能弹簧的势能经凸轮、连杆、挚子逐级释放带动输出轴和绝缘拉杆最终推动动触头完成合分闸。机构输出行程、动触头行程、合闸速度、分闸速度这几个数直接决定触头预击穿时间和弹跳情况。样机试制成本高改一个凸轮型线或换一档弹簧刚度就要重新加工。这份资料走的是另一条路Solidworks建三维装配模型导入Adams做动力学仿真先把机构行程、动触头行程、合闸速度、分闸速度算出来再用机械特性仪实测数据回头校验模型。做中压开关本体设计和机构设计的工程师可以直接把它当建模与验证的对照模板。2. Solidworks装配模型转Adams虚拟样机构件合并、约束与自由度自查三维模型转进来只是第一步真正决定仿真能不能跑通的是构件划分和约束拓扑。机构零件数量往往上百螺栓、垫圈、挡圈、开口销对动力学结果贡献接近于零却会把约束数量推高最后求解器直接报冗余约束、雅可比矩阵奇异。合理做法是先做一轮装配层级上的简化再逐个确认质量属性和运动副。2.1 构件合并的判据看相对运动而不是看零件表合并的判据只有一条——同一时刻该零件与相邻件是否存在相对运动。储能轴和凸轮用键连接工作时同步转动可以直接合并成一个刚体输出拐臂与输出轴同理。而挚子、脱扣板、分闸半轴之间虽然在装配上紧贴但脱扣瞬间存在明确的相对转动必须各自建part并单独加运动副。机架、外壳、支架这类固定件常见做法是在Adams里替换成大地ground省掉整条约束链。合并会改变系统的转动惯量分布所以合并后的刚体必须重新编辑质量属性。这一步是新人最容易跳过的环节。Adams导入三维模型后按几何体积和默认密度自动算质量凸轮、输出拐臂这些带减重孔和台阶的零件自动值和称重值能差两成以上。凸轮又是弹簧能量输出的第一环它的转动惯量直接决定分闸时间的量级。! Adams/View 命令文件片段批量建立构件与运动副 ! 单位制固定为 MMKSmm / kg / N / s / deg中途不要切换 model create model_name .breaker_mech ! 凸轮质量与转动惯量按 Solidworks 质量属性报告回填 part modify rigid_body name .breaker_mech.cam mass 0.86 inertia (1.24e3, 1.51e3, 0.93e3) location (0.0, 0.0, 32.5) ! 储能轴与大地绕轴向转动 constraint create joint revolute joint_name .breaker_mech.J_cam_shaft i_marker .breaker_mech.energy_shaft.MAR_1 j_marker .breaker_mech.ground.MAR_1 ! 储能轴与凸轮键连接无相对运动 constraint create joint fixed joint_name .breaker_mech.J_shaft_cam i_marker .breaker_mech.energy_shaft.MAR_2 j_marker .breaker_mech.cam.MAR_1 ! 垂直拉杆与输出轴球面转动 constraint create joint spherical joint_name .breaker_mech.J_pullrod_output i_marker .breaker_mech.vertical_link.MAR_1 j_marker .breaker_mech.output_shaft.MAR_1这段脚本的写法是Adams/View命令语言i_marker和j_marker分别指向两个构件上已经对齐的坐标系两个marker的原点必须重合、Z轴方向一致否则旋转副会变成带偏心的万向约束动作一开始就发散。inertia三个分量是绕构件质心主轴的转动惯量单位kg·mm²直接照抄Solidworks质量属性报告里的数值即可不要按kg·m²填那会出现量级错误。机构主要零件对的约束关系归纳如下。零件对相对运动形式约束类型Adams 图标移除的自由度储能轴—凸轮无相对运动固定副Fixed Joint6储能轴—大地绕轴向转动旋转副Revolute Joint5垂直拉杆—输出轴球面转动球铰副Spherical Joint3滚子—凸轮高副接触曲线—曲线约束Curve-Curve接触约束挚子—分闸半轴绕轴转动旋转副Revolute Joint5脱扣板—分闸半轴绕轴转动旋转副Revolute Joint5分闸弹簧座—机架沿轴向移动移动副Translational Joint52.2 冗余约束排查模型能算和算得对是两回事Adams在装配完成后会给出自由度统计但如果一个刚体被两条平行路径同时约束从统计上看自由度是零实际求解时雅可比矩阵却会出现线性相关行表现为位移曲线在某个时刻突然跳变或者求解步长被压到极小、仿真卡死。排查顺序一般是这样先关掉弹簧力只留驱动跑0.05 s看机构能不能顺滑地走完全行程走得通再逐个把力加回来。哪一步出现卡顿问题就在那一步对应的约束对上。判据是冗余约束通常集中在闭合的传动链上——凸轮、滚子、连杆、输出拐臂如果形成一个四杆闭环就容易出现。常见做法是保留一条主链的完整约束把闭环中多余的一个旋转副改成接触力让约束变成单向接触冗余自然消除。提示Adams里的接触力求解代价远高于理想运动副只用在必须建模碰撞或脱扣冲击的位置闭环传动链的其余关节继续用刚性运动副。3. 载荷、阻尼与STEP函数驱动弹簧操动机构仿真参数的取值依据约束搭好只是骨架机构动起来靠的是弹簧力、阻尼和脱扣驱动这三类载荷。参数取值不能凭感觉给预紧力要靠弹簧刚度反算阻尼要靠摩擦力和电动力的量级折算脱扣时序要靠STEP函数严格描述时间窗口。3.1 弹簧预紧位移的换算资料给出的合闸弹簧刚度系数是41 N/mm、预紧力3500 N分闸弹簧同样是41 N/mm、预紧力2000 N。在Adams的spring-damper单元里能直接填的是刚度、阻尼和自由长度或预载而机构装配到位时的实际弹簧长度是一个几何确定的量所以必须先由F k·Δx反算出预紧位移再决定自由长度填多少。# 弹簧参数换算由刚度与预紧力反推预紧位移供 Adams spring-damper 单元填写 K_CLOSING 41.0 # N/mm合闸弹簧刚度系数 F_CLOSING 3500.0 # N合闸弹簧预紧力取绝对值 K_OPENING 41.0 # N/mm分闸弹簧刚度系数 F_OPENING 2000.0 # N分闸弹簧预紧力 def preload_stroke(force, stiffness): 按 F k·Δx 反算预紧位移返回 mm return force / stiffness STROKE 39.0 # mm机构输出行程仿真收敛值 for name, f, k in ((合闸弹簧, F_CLOSING, K_CLOSING), (分闸弹簧, F_OPENING, K_OPENING)): dx preload_stroke(f, k) # 行程结束时弹簧进一步变形出力上升用来判断驱动能力够不够 f_end f k * STROKE print(f{name}: 刚度 {k} N/mm, 预紧位移 {dx:.1f} mm, f行程末端出力 {f_end:.0f} N (增加 {k * STROKE / f * 100:.0f}%))运行后合闸弹簧预紧位移约85.4 mm分闸弹簧约48.8 mm。这两个值要和Solidworks装配体里弹簧座到弹簧座的实际中心距对照如果反算出的预紧位移在几何上装不进去说明刚度系数或预紧力的取值有误先查设计图纸再改仿真。行程末端出力那一列反映弹簧在机构走完全程后还剩多少驱动余量合闸弹簧从3500 N涨到接近5100 N余量接近五成分闸弹簧涨幅更大说明分闸过程后半段容易出现速度过冲缓冲设计的必要性就在这里。3.2 动触头等效阻尼的物理含义与量级核对动触头运动时的摩擦力和电动力资料采用施加阻尼的方式替代取值0.5 N·s/mm。换算到SI单位就是500 N·s/m。这个等效是否合理可以用平均速度反推合闸平均速度约0.6 m/s阻尼力约300 N分闸平均速度约1.5 m/s阻尼力约750 N。相对于合闸弹簧3500 N的预紧力阻尼力占比不到一成到两成属于合理区间。如果换成0.05 N·s/mm仿真曲线会明显比实测光滑、速度偏高反过来0.5 N·s/mm又会让合闸速度被压低资料里仿真合闸速度0.6 m/s、实测0.9 m/s的差距一部分就来自这里。注意把摩擦和电动力合并成一个速度阻尼项是工程简化它无法反映静摩擦、Stribeck效应和分闸末段的电磁反力。如果研究重点是触头弹跳或分闸末速度建议把摩擦单独建成库仑摩擦项电动力按I²·系数的时间函数单独施加。3.3 STEP函数脱扣时序拆解机构分闸时需要模拟分闸电磁铁动铁芯对分闸脱扣板的脱扣动作。资料给出的输入函数是step(time, 0.04, 0, 0.045, -80) step(time, 0.05, 0, 0.06, 80)STEP函数的定义是step(自变量, 起点, 起点值, 终点, 终点值)在两个时间点之间用三次多项式平滑过渡两端一阶导数为零。逐段拆解时间段第一项输出第二项输出合力物理含义00.04 s000分闸半轴被扣接无外力0.040.045 s0→-8000→-80建立保持力扣接状态稳定0.0450.05 s-800-80保持力持续0.050.06 s-800→80-80→0脱扣力抵掉保持力半轴释放0.06 s 之后-80800脱扣完成外力归零两段STEP叠加以后净力从-80 N平滑过渡到0脱扣板在0.050.06 s这10 ms内完成解锁。这个时间窗口要和分闸电磁铁的实测电流上升时间比对如果电磁铁实际出力建立需要15 ms仿真里就该把第二个时间窗口放宽到0.050.065 s否则仿真分闸时间会比实测偏短。3.4 求解器选择与积分步长机构仿真同时存在刚性运动副和接触属于典型的刚性微分方程组。GSTIFF是Adams里对这类系统最常用的变阶变步长积分器误差容限取1.0e-5能够兼顾精度和速度再往下调到1.0e-6步长会被迫压到1e-6 s量级仿真时间成倍增长而曲线几乎不变。整个合分闸过程不到0.3 s输出步长按3000步给相当于每0.1 ms一个结果点足以刻画脱扣冲击那一段的细节。载荷与驱动的完整参数清单如下。参数数值单位设置位置取值依据合闸弹簧刚度41N/mmspring_damper.stiffness设计给定合闸弹簧预紧力3500Nspring_damper.preload由预紧位移 85.4 mm 反算合闸弹簧施加处数2处—三相本体保留中间相分闸弹簧刚度41N/mmspring_damper.stiffness设计给定分闸弹簧预紧力2000Nspring_damper.preload由预紧位移 48.8 mm 反算分闸弹簧施加处数1处—单相本体动触头等效阻尼0.5N·s/mmspring_damper.damping等效摩擦力与电动力脱扣保持力-80NSF_trip.function分闸半轴扣接保持脱扣力80NSF_trip.function分闸电磁铁动铁芯出力积分器与误差GSTIFF / 1.0e-5—simulation set刚性系统常规取值仿真步数3000步simulate dynamic约 0.1 ms 输出间隔4. 仿真曲线与机械特性试验数据的拟合校验仿真模型对不对不是看曲线好不好看而是看它和样机实测数据对不对得上。资料用机械特性仪对真空断路器样机做了合闸、分闸特性测试生成行程曲线、断口线、线圈电流曲线再把仿真得到的动触头行程和速度两条曲线叠上去比。这个比对要做对前提是几个口径先统一。4.1 机械特性仪怎么读速度和时间仪器输出的三条曲线共用一个时间横轴横轴单位ms纵轴单位mm。行程曲线反映动触头位置随时间的变化断口线反映触头分断时刻线圈电流曲线反映脱扣线圈和合闸线圈的通流过程。选中“速度分析”功能后把标线A移到合闸行程起始点、标线B移到合闸行程终点仪器自动在分析速度显示区给出这一段区间的平均速度。把标线B再移到线圈电流发生变化的时刻横坐标差就是合闸时间。资料里用这个方法读出合闸速度0.9 m/s、合闸时间47 ms、分闸速度1.6 m/s、分闸时间20 ms。这里有个容易忽略的点平均速度是“区间位移除以区间时间”标线放的位置不同读出来的数就不同。有些仪器的默认区间是从起点到终点有些是从起点到触头刚接触两者能差出10%以上。所以仿真侧必须用完全相同的区间来定义平均速度。4.2 四条曲线的对齐方法import numpy as np import matplotlib.pyplot as plt from scipy.interpolate import interp1d # Adams 导出时间(s)、动触头位移(mm) t_sim, x_sim np.loadtxt(adams_travel.csv, delimiter,, unpackTrue) # 机械特性仪导出时间(ms)、动触头位移(mm) t_exp, x_exp np.loadtxt(test_travel.csv, delimiter,, unpackTrue) # 1) 时间单位统一到秒 t_exp t_exp * 1e-3 # 2) 位移零点各自归零抵消传感器安装基准差 x_sim x_sim - x_sim[0] x_exp x_exp - x_exp[0] # 3) 时间原点对齐以行程首次超过 0.5 mm 的时刻作为动作起点 t0_sim t_sim[np.argmax(x_sim 0.5)] t0_exp t_exp[np.argmax(x_exp 0.5)] t_sim t_sim - t0_sim t_exp t_exp - t0_exp # 4) 重采样到 0.1 ms 栅格消除两侧采样率差异带来的视觉误差 grid np.arange(0.0, 0.080, 1e-4) f_sim interp1d(t_sim, x_sim, bounds_errorFalse, fill_valueextrapolate) f_exp interp1d(t_exp, x_exp, bounds_errorFalse, fill_valueextrapolate) xs, xe f_sim(grid), f_exp(grid) # 5) 平均速度统一按“区间位移 / 区间时间”定义两侧口径必须一致 def mean_velocity(x, t): return (x[-1] - x[0]) / (t[-1] - t[0]) / 1000.0 # mm/s 转 m/s print(f仿真平均速度 {mean_velocity(xs, grid):.3f} m/s位移 {xs[-1]:.1f} mm) print(f试验平均速度 {mean_velocity(xe, grid):.3f} m/s位移 {xe[-1]:.1f} mm) # 6) 逐点相对误差用来定位偏差集中出现的时段 err (xs - xe) / np.where(np.abs(xe) 1e-3, np.nan, xe) * 100 worst np.nanargmax(np.abs(err)) print(f最大相对偏差 {err[worst]:.1f}%出现在 {grid[worst] * 1000:.1f} ms) fig, ax plt.subplots(1, 2, figsize(10, 4)) ax[0].plot(grid * 1e3, xs, labelADAMS) ax[0].plot(grid * 1e3, xe, labeltest) ax[0].set_xlabel(t / ms); ax[0].set_ylabel(travel / mm); ax[0].legend() ax[1].plot(grid * 1e3, err) ax[1].set_xlabel(t / ms); ax[1].set_ylabel(relative error / %) plt.tight_layout(); plt.savefig(travel_fit.png, dpi200)这段脚本的核心是三处对齐。时间单位统一解决横轴量纲问题位移零点归零解决传感器安装位置和模型坐标系原点不一致的问题样机上动触头的位移是靠角位移传感器或直线位移传感器换算来的两次装夹零点就不同动作起点对齐解决仿真从0 s开始、实测从上电时刻开始的时间差。三处对齐做完剩下的偏差才是模型本身的偏差。对比结果汇总如下。参数设计要求仿真值试验值判定机构输出行程37 mm39 mm—略大于设计值动触头行程22±3 mm约 30 mm与仿真趋势一致需回查几何合闸时间小于 75 ms45 ms47 ms满足平均合闸速度0.8±0.3 m/s约 0.6 m/s0.9 m/s两侧均在带内分闸时间不大于 60 ms约 20 ms20 ms满足平均分闸速度1.7±0.3 m/s1.5 m/s1.6 m/s满足4.3 偏差归因从摩擦、缓冲到接触刚度合闸侧仿真行程略高于实测、仿真合闸速度低于实测这两个偏差方向不一致说明不是单纯的比例误差。行程偏高通常是连杆几何简化带来的累积误差输出拐臂的圆心位置、绝缘拉杆的两端孔距哪怕差0.5 mm经过杠杆比放大到动触头端就能差出好几毫米。速度偏低则是阻尼等效过头把摩擦力和电动力合成一个线性阻尼项在速度上升段给出的阻力偏大所以仿真曲线比实测更平滑。分闸侧偏差出现在曲线后半段。资料明确提到仿真缓冲效果不如样机样机速度变化更舒缓。样机在分闸末段有油缓冲或弹簧缓冲装置仿真里如果没有单独建缓冲元件动触头会以接近刚体碰撞的方式到位速度曲线出现一个陡降。解决办法是在分闸弹簧座附近补一个单向弹簧阻尼单元刚度按缓冲器实测力—位移曲线拟合阻尼取临界阻尼的0.30.5倍。提示合闸侧出现“仿真行程大、速度小”时先查几何再调阻尼顺序反了会把几何误差用阻尼掩盖过去后面做参数优化时结论会跑偏。5. 把校验过的模型改成参数化算例用于弹簧刚度与凸轮相位的组合寻优模型一旦和实测对得上就可以当作设计工具用而不只是验证工具。具体做法是把需要研究的参数抽成变量模板化Adams命令文件让求解器批处理跑几十上百个算例再从结果里筛出同时满足行程、时间、速度三组约束的组合。对弹簧操动机构来说最值得扫的三个量是合闸弹簧刚度、分闸弹簧刚度和凸轮安装相位前两个决定出力大小第三个决定弹簧能量释放的时机。import csv import re import subprocess from itertools import product # 待扫参数网格 grid { K_CLOSING: [38, 41, 44, 47], # N/mm 合闸弹簧刚度 K_OPENING: [38, 41, 44], # N/mm 分闸弹簧刚度 CAM_PHASE: [-2, 0, 2], # deg 凸轮安装相位 DAMPING: [0.3, 0.5, 0.8], # N·s/mm 动触头等效阻尼 } def render_case(k_cl, k_op, phase, c, tag): 把参数写进 Adams 命令模板生成一次性算例文件 tpl open(template.cmd, encodingutf-8).read() body (tpl.replace(__K_CL__, str(k_cl)) .replace(__K_OP__, str(k_op)) .replace(__PHASE__, str(phase)) .replace(__C__, str(c)) .replace(__TAG__, tag)) path fcase_{tag}.cmd with open(path, w, encodingutf-8) as f: f.write(body) return path def run_solver(cmd_path): 批处理模式调用 Adams 求解器返回日志路径 log cmd_path.replace(.cmd, .log) # 可执行文件名按本地安装版本调整例如 adams2020 / adams2023 subprocess.run([adams2020, ru-standard, b, cmd_path, e, o, log], checkTrue, stdoutsubprocess.DEVNULL) return log def parse_log(log_path): 从求解日志里抓出关键性能指标 text open(log_path, encodingutf-8, errorsignore).read() def grab(key): m re.search(rf{key}\s*\s*([-\d.]), text) return float(m.group(1)) if m else float(nan) return {t_close: grab(T_CLOSE), t_open: grab(T_OPEN), v_close: grab(V_CLOSE), v_open: grab(V_OPEN)} rows [] for i, (k_cl, k_op, phase, c) in enumerate(product(*grid.values())): tag f{i:03d} log run_solver(render_case(k_cl, k_op, phase, c, tag)) rows.append({tag: tag, K_CLOSING: k_cl, K_OPENING: k_op, CAM_PHASE: phase, DAMPING: c, **parse_log(log)}) with open(doe_result.csv, w, newline, encodingutf-8) as f: w csv.DictWriter(f, fieldnameslist(rows[0].keys())) w.writeheader() w.writerows(rows) # 按设计要求筛选合闸时间 75 ms合闸速度 0.5~1.1 m/s分闸速度 1.4~2.0 m/s ok [r for r in rows if r[t_close] 75 and 0.5 r[v_close] 1.1 and 1.4 r[v_open] 2.0] print(f{len(ok)} / {len(rows)} 组参数同时满足设计要求)这段脚本的分工是render_case负责参数注入用占位符替换的方式保持命令模板不变run_solver负责无界面批处理求解ru-standard是Adams的标准求解器入口b表示批处理e o后面跟日志文件名parse_log负责从日志里正则提取性能指标模板里需要提前用print或测量函数把T_CLOSE、V_OPEN这些量写进日志。108个算例按单次30秒估算一小时内能跑完比做三轮样机便宜得多。筛选结果通常不会只有一个解。合闸弹簧刚度往大调合闸时间缩短、合闸速度上升但弹簧座和凸轮的接触应力同步上升凸轮安装相位提前2度能量释放更早分闸末段的速度峰值会抬高缓冲器负担加重。实际取舍时我会先按约束筛出可行域再在可行域边缘留一档余量作为设计推荐值避免样机加工公差把参数推出可行区。最后给一个实操上的量化参考把Adams输出步长压到0.05 ms对同一组参数重跑一次如果合闸时间和平均速度的变化都在1%以内说明当前步长已经收敛可以直接用于批量扫描若变化超过3%说明脱扣冲击段还没被解析清楚先回到求解器设置里把误差容限从1.0e-5收紧到1.0e-6再重新做步长收敛性检查。本文还有配套的精品资源点击获取
RELATED — 相关阅读

相关资讯

LATEST — 最新资讯

最新发布

TODAY — 本日精选

新闻

WEEKLY — 本周精选

新闻

MONTHLY — 本月精选

新闻