通用门式起重机应力测试与数据处理全链路解析
简介通用门式起重机应力测试与数据处理研究是一份面向特种设备检验检测人员、起重机设计与运维工程师的专业技术文献发表于《机械工程师》2019年第2期中图分类号为TH39。内容以ME A160-40A4型160t/40m双小车通用门式起重机为对象完整梳理了测试前的准备工作包括测点选择、测试工况与载荷确定测点覆盖主梁跨中上盖板、刚性支腿侧主梁端部及支腿根部内外侧通过1.25倍额定载荷静载和1.1倍额定载荷动载等工况开展应变数据采集与强度判定并结合经纬仪挠度测量、应变片粘贴与实时监测系统完成数据处理和寿命评估。资源为1个PDF文件共7.65MB适合用作起重机检验检测、疲劳分析和剩余寿命评估的参考文献或专业指导材料。已有67人浏览学习。1. 通用门式起重机应力测试与数据处理这套方法到底在补哪块短板在港口堆场干过结构检测的工程师都有这种经历一台用了十几年的通用门式起重机要做安全评估计算书上的应力是一回事甲方更想知道的是当前实际状态。通用门式起重机应力测试与数据处理就是把应变片贴在主梁跨中、支腿连接等关键截面上让门机按额定载荷、动载、制动等工况跑一遍用应变采集仪记录下微应变随时间的完整过程再通过换算、清洗、疲劳评估这套数据处理链路输出能写进检验报告、能指导维修决策的结论。它服务于定期检验、报废评估、改造加固和结构健康监测。这篇笔记按现场贴片、数据换算、滤波清洗、疲劳评估、踩坑排查的顺序把完整链路拆开讲新手能直接照着布点熟手可以对照参数边界。2. 测什么、贴哪里、用什么测通用门式起重机应力测试的现场准备2.1 门式起重机的受力轮廓与测点选择通用门式起重机也就是常说的龙门吊的结构可以分成主梁、支腿、下横梁、大车行走机构四大块。载荷传递路径非常清晰吊重先作用在小车上小车把力传给主梁主梁再传给刚性腿和柔性腿最后通过下横梁和大车轮子落到轨道上。主梁是典型的受弯构件跨中下翼缘受拉、上翼缘受压这是全机应力水平最高的位置支腿属于压弯构件尤其是刚性腿与主梁连接的角点处弯矩和轴力叠加应力状态最复杂。因此测点布置的第一原则是沿着载荷传递路径在应力最危险的位置布点。推荐测点如下主梁跨中下翼缘上表面布单向应变片测跨中弯曲正应力主梁四分之一跨截面同理用于捕捉小车在不同位置时的应力变化刚性腿与主梁连接板的内侧或外侧沿轴向布片测压弯合成应力柔性腿铰点附近布一个辅助测点用于判断风载和温度应力的影响每个主要测点旁边留一个温度补偿片位贴在相同材料、不受力的钢块上。选点时有三个细节容易被人忽略。第一应变片要避开焊缝热影响区距焊缝边缘至少50mm不然测出来的不是结构名义应力而是焊缝附近的局部应力集中第二测点表面如果锈蚀严重打磨会改变局部厚度反而带来误差打磨到平坦即可不要磨出深坑第三如果门机带悬臂悬臂根部也要布点这个位置的应力往往被轻视。带悬臂的通用门式起重机在吊重靠近悬臂端时悬臂根部下翼缘的拉应力会迅速上升漏掉这个位置数据结论就缺了一大块。2.2 应变片选型与布片工艺应变片选型上我一般用箔式电阻应变片标距5~10mm阻值120Ω或350Ω灵敏系数出厂给出在2.0~2.2之间。标距的选择不是越大越好主梁表面应力梯度平缓10mm毫无问题如果测的是焊缝附近或者局部加强板边缘应力梯度大标距要降到3mm以下。测点方向很关键主梁下翼缘测的是沿梁轴向的正应力单向片斜着贴1°都会带来可观的误差。支腿角点处如果担心主应力方向不明确直接上45°应变花三个方向一组后期换算主应力。布片工艺直接决定数据能不能用这一步翻车的代价是后面所有数据处理全部白做。步骤按下面走打磨用电动磨光机配砂轮片把测点区域打磨至露出金属光泽再用砂纸细磨表面粗糙度控制在Ra 6.3以下清洗用丙酮或无纺布蘸酒精反复擦拭测点直到白布上不再有黑色污迹定位划线用游标卡尺和划针在贴片区画出应变片轴线位置画线深度要轻不要划出凹槽贴片在应变片底面涂一薄层快干胶如氰基丙烯酸酯胶按划线位置贴上去盖上聚四氟乙烯薄膜后用拇指或压块按压1~2分钟接线应变片引线焊接到接线端子上端子与采集仪之间用带屏蔽的导线连接屏蔽层单端接地防护在应变片和端子表面涂一层703硅橡胶等固化后检查绝缘电阻一般要求大于100MΩ。贴片表面处理不干净是最大的坑。我见过有人图省事用角磨机打完就直接上胶结果应变片贴上去不到半天就翘边数据曲线全是台阶。打磨完用手指摸一遍必须像摸玻璃一样顺滑清洗完不要用手再碰贴片区手上的油脂会让胶粘强度骤降。每贴完一片马上用万用表量一下电阻阻值偏离标称值超过0.5Ω就要撕掉重贴。2.3 采集仪参数与工况加载设计静态应变仪采样率1~10Hz适合静载试验动态应变仪采样率100Hz以上适合起升、制动、大车行走这类动态工况。通用门式起重机的应力测试一般是动静结合先做静载再做动载所以我建议直接用动态应变仪一台设备全包采样率设200Hz不要来回换仪器。桥路接法现场用1/4桥最普遍因为测点多、补偿片少如果桥盒支持半桥和全桥温度自补偿效果更好但贴片成本也更高。采集仪里几个必须确认的参数灵敏系数K值、桥压、量程、采样率。K值要和应变片出厂值一致不然就是一个系统误差源量程要覆盖最大应变门机钢材按屈服235MPa换算成微应变大约1140με量程选±5000με以上比较稳妥采样率在动态工况设200Hz静态工况可以降到10Hz以减少数据量。还要确认桥路和通道的对应关系经常有现场接错通道号回来整理数据时才发现通道标识和贴片位置对不上。工况加载设计直接决定采集数据的完整性推荐按下面顺序执行工况序号工况描述载荷小车位置记录说明1空载往返无跨中记录初值稳定段至少30秒2静载11.0Pn跨中加载后持载5~10分钟3静载21.25Pn跨中超载试验注意安全控制4动载1.1Pn跨中起升离地瞬间重点抓峰值5制动1.0Pn大车行走记录制动减速段6回程校验空载跨中检查零点回归情况每一工况开始前留30~60秒的空载记录这是后期数据处理里扣初值的依据。很多人忽略这一点等到数据分析时才发现没有零基线可用只能拿第一个点硬当零点这是我做过的项目里最常出现的问题。注意加载过程中不要让无关人员踩踏主梁也不要靠在支腿上这些额外载荷都会真实地记录进曲线里后面清洗数据时很难完全剔除。3. 从微应变到应力换算链路与修正项3.1 应变-应力换算的公式和适用边界应变片测出来的原始量是微应变με即10的负6次方要把微应变变成应力最基本的公式是σE·ε。以Q235门机主梁为例弹性模量E取2.06×10⁵ MPa实测跨中下翼缘应变200με对应的弯曲应力就是41.2MPa。这个公式成立的前提是单向应力状态测点处于构件表面、测点处没有垂直于表面的应力、主应力方向恰好沿着应变片轴线。主梁跨中下翼缘沿梁轴向受弯这三个条件基本都满足所以贴单向片、用σE·ε是最常见的做法。支腿角点就不能这么干脆。支腿是压弯构件局部还存在双向应力如果只贴一个单向片得到的仅是该方向的应力分量不能叫主应力。这时候要用45°应变花三个应变读数ε0°、ε45°、ε90°按平面应力公式先求出主应变ε1、ε2再用广义胡克定律换算主应力。主应力公式中要用到泊松比ν钢材取0.3。这个公式我建议直接写成小函数放进处理脚本里避免手算时把分母的1-ν²漏掉。用Python实现45°应变花的主应力换算也很简单import numpy as np def rosette_stress(e0, e45, e90, E2.06e5, nu0.3): # 输入为三个方向的微应变输出主应力 MPa e0, e45, e90 e0 / 1e6, e45 / 1e6, e90 / 1e6 e1 (e0 e90) / 2 np.sqrt(((e0 - e45) ** 2 (e45 - e90) ** 2) / 2) e2 (e0 e90) / 2 - np.sqrt(((e0 - e45) ** 2 (e45 - e90) ** 2) / 2) s1 E / (1 - nu ** 2) * (e1 nu * e2) s2 E / (1 - nu ** 2) * (e2 nu * e1) return s1, s2这段函数的逻辑是先由三个方向的线应变合成主应变再由广义胡克定律得到主应力。参数E和nu按钢材默认给值但不同牌号和热处理状态会有微小偏差如果现场有条件做材料拉伸标定用标定结果替换E更准。要提醒的是支腿处如果应力水平不高单向片加一个“该方向正应力”的表述也足够应付定期检验但如果是做疲劳评估或者寿命分析测点必须是主应力方向单向片的数据直接拿去做损伤评估会偏小这个边界在写报告时要写清楚。3.2 初值扣除与灵敏系数修正用 Python 批量处理采集数据不管用哪个品牌的应变仪导出格式大同小异一个时间列加若干通道列每个通道的值是微应变。几十万行的数据用Excel处理起来很痛苦而且容易误操作我一般直接用Python的pandas几秒钟就把全场数据清洗一遍。下面这段代码是每次应变测试后我都会跑的第一步。import pandas as pd # 采样数据示例第一列 time其余列是各通道微应变με df pd.read_csv(strain_raw.csv, encodinggbk) ch df.columns[1:] # 1. 取加载前 50 个点作为空载基线用均值而不是第一个点 base df.loc[:49, ch].mean() # 2. 增量应变 原始应变 - 空载基线 inc df[ch].sub(base) # 3. 灵敏系数修正仪器 K02.00应变片出厂 K2.11 K0, K_sg 2.00, 2.11 inc_corr inc * (K0 / K_sg) # 4. 换算应力自动存成 MPa E 2.06e5 stress inc_corr * E / 1e6 stress.to_csv(stress_mpa.csv, indexFalse)这段代码的逻辑是先确认时间列和通道列再取加载前50个点做空载基线减掉基线就得到了增量应变。敏感系数修正的物理含义是采集仪按K0把电阻变化折算成应变但应变片实际标定的K是2.11同样电阻变化率对应的真实应变不同所以要用比值修正。最后把微应变变回无量纲应变、乘以弹性模量得到MPa单位。参数说明K0是你在采集仪上设置的灵敏系数K_sg是应变片包装上标注的出厂值两处必须逐一核对。E的取值在Q235、Q355这类低碳钢上取2.06e5 MPa没问题实测应力法通常不区分牌号取模量因为对结果影响小于2%。这一步结束后每通道就得到一条以MPa为单位的应力时程曲线。后续不管是画图、找峰值还是做雨流计数都以这份stress_mpa.csv为源头不要再回头翻原始数据避免各算各的版本不一致。3.3 温度补偿的实际做法温度补偿在所有修正项里最容易被现场忽略因为它不会让数据明显失真而是让曲线慢慢漂移你甚至会以为那是真实的结构应力变化。原理很简单应变片敏感栅电阻会随温度改变桥路输出随之变化这部分电阻变化与机械应变无关必须抵消掉。常见做法是在被测构件附近的同一材质、不受力的钢块上贴一片相同的应变片接到同一桥路的补偿臂上这样温度变化引起的电阻增量被桥路自动相减只剩下机械应变。两个现场经验值得记下来。补偿板要放在与测点环境温差尽可能小的地方但不能被阳光直射或风吹否则补偿片和测点温度变化不同步反而引入更大的漂移。若现场没有条件做硬件补偿事后可以在数据处理里对空载段做线性或多项式拟合把趋势项扣除但这种方法只对缓慢温漂有效遇到温度突变就失效。在室外堆场做门机测试上午和下午的温度差经常超过10℃不做温度补偿的曲线会像海平面一样缓慢上涨这时候拿载荷段数值直接算应力误差可能达到10MPa以上。注意温度补偿片必须贴在和测点同材质的钢块上不能贴在被测构件本身的应力区否则补偿片也在变形桥路输出的就不是纯机械应变差。4. 应力数据的清洗与滤波把杂讯挡在评估之外4.1 先看波形再定滤波策略识别毛刺、零点漂移和真实载荷拿到stress_mpa.csv后不要急着上滤波器先画原始波形。把每个通道随时间变化的曲线画出来重点看三样东西有没有窄毛刺、有没有整体漂移、有没有明显的冲击峰。毛刺通常是电焊机、大电机启停、变频器谐波通过线缆耦合进采集系统的表现为零散的尖峰零点漂移表现为空载段逐渐上升或下降多半是温度场变化给补偿片带来的影响冲击峰则出现在吊重离地瞬间是真实的结构动态响应这个峰在后面的疲劳评估里非常重要。滤波这件事最怕的就是一刀切。我见过有人上来就做50Hz陷波把起升冲击的高频成分也带走了也有人用滑动平均窗口设到100个点曲线是光滑了但真实峰值被削平了20%。策略应该是先识别再处理有明显毛刺先做限幅有高频振动再做低通零点漂移单独判断不要一次性全上。这种先看图再定策略的习惯比任何数据处理框架都重要它决定了后面每一条曲线能不能被甲方和评审专家信任。4.2 限幅滤波与滑动平均在 Python 里的实现限幅滤波是工程上最常用、也最不容易出错的坏值剔除方法。原理是设定一个相邻两点差值的最大允许值超过这个值就认为该点是异常脉冲用插值或者前值替换。阈值怎么定先跑一遍数据的diff看正常段相邻点差的最大值是多少再放宽3~5倍作为阈值也可以按物理极限估算比如Q235钢在200Hz采样下一秒内应力变化很少超过100MPa那么相邻两点差正常应小于0.5MPa超过3MPa就值得怀疑了。但阈值不要设太严否则起升冲击瞬间的真实大斜率也会被当成毛刺。import numpy as np import pandas as pd df pd.read_csv(stress_mpa.csv) s df[CH1_MPa] # 限幅相邻两点应力差超过 5 MPa 视为毛刺 diff s.diff().abs() s[s.diff().abs() 5.0] np.nan s s.interpolate(methodlinear, limit_directionboth) # 滑动平均窗口 21 个点200Hz 采样下约 0.1 s smooth s.rolling(window21, centerTrue, min_periods1).mean() smooth.to_csv(CH1_smooth.csv, indexFalse)这段代码先计算相邻差值并取绝对值超阈值的位置用NaN标记再通过interpolate补齐毛刺的宽度通常只有一两个采样点插值不会影响周边真实波形。滑动平均用rolling加centerTrue输出窗口中心位置的值保证滤波后的信号不产生相位偏移这点对后面雨流计数很重要——相位偏移会改变循环的起止位置损伤结果也跟着变。window21在200Hz下对应0.105秒的平滑长度对500Hz以下的波形基本无伤对高频毛刺有明显压平作用采样率不同的项目按“窗口等于采样率乘0.1秒”折算不要照抄。4.3 巴特沃斯低通滤波截止频率怎么定若信号里的高频成分较多比如小车在轨道上跑出的振动叠加在应变波形上限幅和滑动平均就压不干净了。我一般再做一次低通滤波选巴特沃斯四阶用filtfilt做零相位滤波。截止频率的选取有一个工程经验值门式起重机主梁的一阶垂弯频率通常在2~10Hz起升冲击的频带在0.5~5Hz而轨道不平顺和高频模态振动集中在30Hz以上所以低通截止放在25Hz既能保留冲击峰又能把高频振动和电噪声压掉大部分。from scipy.signal import butter, filtfilt def lowpass(s, fs200.0, cutoff25.0, order4): nyq fs / 2.0 b, a butter(order, cutoff / nyq, btypelow) return filtfilt(b, a, s) clean lowpass(smooth.dropna().values, fs200.0, cutoff25.0)参数说明fs必须与采集仪设置一致否则截止频率全部错位cutoff25是经验值如果做FFT后发现频谱上冲击峰和噪声重叠先画出频谱再定不要直接抄参数order取四阶是平衡点阶数太高会产生振铃太低滤波特性不陡峭。另外filtfilt要求输入没有NaN所以前面先dropna。滤波后做一个验证把滤波前后曲线叠在一起画确认峰值没有被削掉超过5%如果超了就把cutoff往上抬。MATLAB里用designfilt和filtfilt也能做同样的事我常用Python只是因为采集仪导出的数据量比较大pandas处理起来顺手。滤波参数这里最玄学记得把每次的cutoff和窗口值记录在数据文件里否则一个月后回看数据根本不知道这条曲线是怎么来的。5. 通用门式起重机应力测试避坑清单从贴片到报告的五处翻车点5.1 应变片贴在焊缝热影响区数据全被残余应力带走现象同一截面在同一载荷下布了两片应变片数据对不上波动大加卸载后应力不回零。原因贴到了焊缝热影响区。焊缝附近有组织变化和残余应力应变片测得的是局部应变场而不是构件的名义应力这种局部值对整体评估没有参考价值。解决贴片位置与焊缝边缘保持至少50mm距离若必须测焊缝附近则用远离焊缝的测点算名义应力再按应力集中系数折算。贴片前先用酸洗或角磨机把测点处理干净观察是否有气孔、咬边表面缺陷严重的区域直接换位置。我在现场的习惯是布点平面图发到手里先核对一遍凡是落在焊缝投影区的点一律返工。5.2 通道初值没清零1.25倍静载曲线整体平移现象卸载回空载后通道应变值没有回到加载前的位置整体上移或下移了一个固定值。原因没有记录加载前的稳定空载段或采集仪零点漂移没有被处理。很多人习惯在加载前一键清零然后马上开始加载结果桥路还没稳定轻微漂移被当成初始零点录了进去。解决加载前至少记录30~60秒空载数据取均值作为初值按第3章的baseline流程扣除不要在加载后再清零如果现场无法重测数据处理时用空载段的平均值整体平移修正。平移修正只对恒定偏移有效如果漂移在加载过程中持续变化那就只能做线性趋势扣除误差会大一些。5.3 灵敏系数写错应力结果系统性偏高4%现象应力曲线形状完全正常所有通道都比预期偏高或偏低同一个比例报告里找不出其他原因。原因采集仪默认K02.00应变片出厂K值常见2.08到2.11K0与K片不一致时会在整个换算链路引入约5%的系统误差。一批片混用不同K值更容易出问题操作人员为了省事统一按一个K值设置结果就是部分通道应力整体偏移。解决贴片时把每盒片的K值抄录并逐一核对采集仪的分通道设置数据处理时按K0除以K片修正回来。修正比例只有几个百分点在应力报告里不明显但这点误差进入疲劳寿命评估后损伤结果会差出20%以上绝不能忽略。5.4 滤波截止频率卡掉起升冲击峰疲劳评估偏乐观现象滤波后的曲线很干净但和原始曲线对比时发现起升离地的峰值明显变矮用雨流计数算出的疲劳损伤变小。原因低通截止频率设太低比如5Hz把起升瞬间的真实冲击响应当成噪声滤掉了。起升离地的冲击时间短、幅值大频带能铺到20~30Hz低于这个范围的截止频率都会削峰。解决滤波参数做对比验证滤波前后峰值差超过5%就调高截止频率疲劳评估以原始峰值和滤波后的均值一起参考宁可留冲击峰也不要削峰。处理链路上建议先限幅、再滑动平均、再做低通而不是反过来否则毛刺会被滑动平均摊开混进主波形里很难再清除。5.5 动载工况采样率不够瞬态峰值被漏采现象动载工况实测应力峰值小于静载工况的1.1倍数据表现不满足常理。原因采样率只有1Hz或10Hz起升离地瞬间的冲击峰在时间轴上只占几十毫秒采样点刚好错过真实峰值根本没被采到。解决动态工况采样率不低于100Hz我一般直接设200Hz起升、下降、制动每个操作重复三次确保能抓到稳定出现的峰值抓峰值看原始未滤波数据不要看平滑后的曲线。做报告时如果拿不出重复工况的峰值评审专家一眼就能看出数据不可靠。6. 雨流计数与疲劳寿命估算把清洗后的应力谱变成剩余寿命6.1 为什么要用雨流计数上一章清洗出来的应力时程是一条连续波形疲劳评估得先把波形拆成一个个完整的应力循环一个循环由幅值、均值两个参数描述。雨流计数的作用就是把不规则的应力时程重新组织成若干循环对这是往S-N曲线和Miner线性累积损伤里送数据的标准动作。门机起升、小车移动、大车行走一段几十秒的动载数据里其实藏着成百上千次循环不拆开就没法和疲劳曲线对应。6.2 用 Python 把应力谱折算成剩余寿命import rainflow import numpy as np s clean # 已经滤波和清洗后的应力时程 cycles rainflow.count_cycles(s, ndigits1) m, C 3.0, 1.0e12 # 按钢结构设计规范取 S-N 曲线参数 damage 0.0 for rng, mean, cnt in cycles: Sa rng / 2.0 Su 400.0 Sa_eq Sa * (Su - mean) / Su if mean Su else Sa damage cnt * Sa_eq ** m / C print(f累计损伤 D {damage:.4f})count_cycles输入一维数组输出变程、均值、循环数三元组ndigits1表示把幅值四舍五入到0.1MPa避免产生无数个幅值不同的微小循环。m和C不是网上抄来的必须取对应设计规范的S-N曲线参数按焊缝细节类别和母材细节区分这个归属直接影响到最终寿命结论。Su这里取400MPa作为Q235的简化抗拉强度用于Goodman平均应力修正的上限。把单次工况的损伤D算出来后再结合这台门机的实际使用频次——每天吊多少钩、平均载荷多少推算出一年累计损伤用1除以年损伤就是剩余疲劳寿命。我在现场的习惯是每个通道留一条原始波形存档报告被质疑时原始波形比任何计算过程都有说服力。希望帮到你。本文还有配套的精品资源点击获取