
把电机叶片转到几千转用肉眼根本看不清叶尖在干什么。想要知道它在高速旋转时有没有变形、变形了多少传统做法是贴应变片——但那只能测得个别点的应变而且叶片一转起来贴在表面的应变片和引线能不能扛住离心力都成问题。后来我转向了双目高速数字图像相关DIC技术这套方案能非接触地测出整个叶片表面的全场三维位移和应变分布。简单说就是两台高速相机从两个角度同步拍摄叶片表面的散斑图案通过追踪散斑在图像序列中的移动重建出叶片表面每个点的三维坐标变化。这篇文章我就把从系统搭建、双目相机标定到高速旋转实验执行的全过程拆开讲一遍重点是标定中如何剔除不合格角点以及旋转工况下最容易踩的坑给想做同类实验的朋友一个可以直接参考的实操思路。1. 项目整体设计与思路拆解1.1 DIC技术原理与双目测量的必要性DIC的原理并不复杂。先在待测物体表面制作一层随机分布的散斑图案然后用相机连续拍摄变形前后的图像把图像划分成一个个小的子区通过相关匹配算法找到变形后每个子区在图像中的新位置就能得到子区内中心点的位移。全场撒上网格点之后整个表面的位移场和应变场就都出来了。单相机DIC只能测面内位移也就是物体表面在相机平面内的移动。但电机叶片在高速旋转时不仅会有面内变形一定还会伴随面外位移——叶片受力后会产生弯扭表面法线方向也会有位移。单相机面对这种情况就无能为力了因为面外位移在图像里只表现为一个缩放或模糊的变化根本无法准确解算。所以必须用双目视觉。两只眼睛看到的同一物体存在视差两个相机组成一个立体视觉系统通过三角测量重建空间点的三维坐标这和人类双眼测距原理一样。双目DIC等于把两套单目DIC的数据做立体匹配再利用双目测距的几何关系得到每一个像素点对应的真实三维坐标。有了三维坐标序列不管是面内还是面外的位移、应变都能算出来。而且双目系统对振动、环境光干扰的鲁棒性比单目强很多。旋转叶片实验中叶片表面各点会随着转动产生巨大的刚体位移。中低转速下刚体位移可能达到几十上百毫米而需要关注的变形量往往只有零点几毫米甚至更小。这就对测量系统的三维重建精度提出了很高的要求。单目方案很难把刚体位移和真实变形区分开双目系统配合合适的坐标系变换可以在后处理中把刚体位移剥离出来只留下真实变形。1.2 高速旋转实验的系统布局与硬件选型整个系统的核心由这几块构成两台高速相机、对应焦段的镜头、补光光源、转速同步触发装置、标定板以及图像采集和DIC后处理软件。先说相机的选型。高速相机的关键参数是分辨率和帧率。分辨率决定测量的空间精度帧率决定能捕捉多快的运动。做叶片旋转实验我的经验是至少需要100万像素级别常见的是2048×2048或者2048×1088这样。帧率方面要看转速后面我会用一个具体例子算一下。镜头的选择要让叶片在图像中占到足够大的比例一般占到画面高度的60%到80%比较合适。视野留太少叶片边缘会跑出画面留太多散斑的像素尺寸会被压缩测量精度下降。双相机的位置关系直接影响重建精度。两条光轴夹角太小视差不足深度方向误差会很大夹角太大两幅图像的外观差异也变大匹配困难。建议夹角在15到30度之间。相机距离叶片的距离根据镜头焦距来定一般控制在0.5到1.5米。光源部分高速摄影最大的敌人是曝光不足。旋转叶片的曝光时间通常要压到几十微秒级这一瞬间进光量很少必须用大功率补光灯持续照明。我试过用两盏LED常亮灯打光功率不够的话画面暗得没法看。后来换了大功率的COB LED灯才解决问题。金属叶片表面会有镜面反射容易过曝可以在灯前加一层柔光布或者给相机镜头装偏振镜。同步触发方面如果只是采集自由旋转过程的图像可以靠高速相机内部帧同步信号让两台相机同步曝光。如果还想把叶片转到特定角度时的图像采下来就要用转速传感器或者编码器给出触发信号让相机在设定的相位角位置开始采集。1.3 为什么选择“双目高速DIC”而不是其他方案有朋友问过我叶片变形测量也可以用激光测振仪或者应变片遥测系统为什么一定要上双目DIC激光测振仪精度确实很高但它逐点扫描测的是单点振动速度或位移想获得全场数据要花很长时间而且测旋转中的叶片激光点打在旋转面上反射信号本身就很难稳定。应变片遥测则要解决贴片位置、引线、无线供电等一系列问题更麻烦的是只能得到几个离散点的应变无法看到全场分布。双目DIC的优势在于全场、非接触、三维。一次拍摄就能获得整个叶片表面的位移场和应变场不管是稳态旋转还是瞬时转速变化都能记录下来。高速相机帧率高的时候可以捕捉到叶片通过共振区时的瞬态变形过程这是其他方案很难做到的。当然DIC也有它的局限性比如要求被测表面必须能制作散斑、环境光照必须稳定、后处理计算量比较大。但只要条件允许它是在旋转机械变形测量场景下性价比很高的方案。2. 双目相机标定精度从标定开始2.1 标定板选择与标定图像采集规范双目DIC测量精度的天花板很大程度上由标定质量决定。标定就是确定两台相机的内参数焦距、主点、畸变和外参数两个相机之间的旋转和平移关系。标定关系不对后面三维重建全是错的。标定板我推荐用陶瓷或者玻璃基底的编码标定板图案可以是圆点阵列或者棋盘格。陶瓷板平面度好、热膨胀系数低适合对精度要求高的场合。玻璃板在做背光照明时对比度很高容易提取角点。采集标定图像时有几个实用规范我踩过坑之后才总结出来标定板必须覆盖整个测量视野。如果只在视野中央拍十来张边缘区域重建出来是歪的。标定板的角度要丰富。既要近正面的图像也要有绕水平轴、垂直轴旋转15到30度的图像这对估计镜头畸变很有帮助。每拍一个位置要保证标定板在左右相机中都能完整看到。标定板的边缘切出画面角点提取就会出错。标定板表面光照要均匀。出现过曝或者阴影角点位置会偏移直接拉低标定精度。拍摄张数我一般会拍25到40组。太少参数容易过拟合太多也没必要关键是空间覆盖好。2.2 角点提取与不合格角点自动剔除机制标定图像采集完成后接下来就是对每张图像做角点提取和自动剔除不合格角点。这一步直接决定标定结果能不能用。通常做法是用亚像素角点检测算法把标定板上的标志点定位到亚像素精度。但不管算法多好总会出现一些不合格角点比如运动模糊导致的角点偏移、标定板高光导致局部过曝、背景杂物误识别为角点、遮挡导致的点位缺失。这些点位如果不剔除会作为错误约束进入标定解算把内参和畸变参数带偏。我的剔除策略分四步第一步单应性校验。对每一对标定板图像利用提取到的角点先求一个单应矩阵把左图像点投影到右图再计算实际右图像点与投影点的偏差。偏差超过阈值的点直接标为异常点。第二步极线约束校验。双目视觉里左图上任意一点在右图上的匹配点一定在极线上。如果某对角点的极线距离太大说明这一对点的立体匹配不可靠。第三步重投影误差校验。初步标定完成后把三维标定点重新投影到左右图像上计算投影点与实际提取点的像素误差。个别点误差明显大于平均值比如大于0.1像素我会把它们剔掉重新标定。第四步时间序列一致性校验。如果采集了同一位置的多帧图像可以比较这些帧之间的角点坐标明显漂移的帧也需要剔除。下面是一个我常用的剔除逻辑伪代码给有编程基础的朋友参考for each image pair: corners_left, corners_right detect_corners(...) for each corresponding pair: H compute_homography(corners_left, corners_right) projected H * corners_left error dist(projected, corners_right) if error threshold: mark_as_outlier() continue F estimate_fundamental_matrix(...) line F * corners_left distance dist_point_to_line(line, corners_right) if distance epipolar_threshold: mark_as_outlier()这套流程可以直接写成脚本实现“双目自动标定”把大量重复性的检查工作自动化省下的时间很可观。2.3 标定结果验证和常见坑标定完第一件事不是赶紧去测而是验证标定质量。检查重投影误差是不是在每个像素0.05到0.1之间。如果到了0.5像素以上说明角点提取或者剔除环节出了问题不要急着用。第二个检查是对极几何验证。在左图上画一条经过标定板平面的极线然后看右图对应的匹配点是不是分布在这条极线附近。如果系统性偏差标定板本身可能有变形或者相机采集过程中的光照变化导致角点提取系统性偏移。第三个验证是三维重建验证。把标定板放回视场中心利用标定参数重建板上点之间的距离和标定板已知的物理尺寸对比。误差应该在0.05毫米量级。这个精度达不到后续变形测量结果很难有说服力。这里要提一个我实际遇到过的坑标定板本身平整度不足。低价标定板打印在普通纸上然后贴在硬纸板上纸的褶皱会导致角点高度不一致标定出来的内参带有非常明显的错误。后来换了陶瓷标定板效果立竿见影。别省这个钱。另一个坑是标定过程中相机参数被动过。有人标定完之后觉得图像不够亮动了光圈或者焦距。焦距一变内参全变了标定就失效了。相机的光圈、焦距、安装位置一旦标定完成整个实验过程都不能再动。3. 高速采集与散斑制备3.1 散斑制备测量精度的隐形决定因素很多人在DIC上花大量时间调算法散斑却做得随意。其实散斑质量对测量精度的影响可能比算法参数更大。散斑太粗子区内灰度变化平缓匹配精度差散斑太细子区里全是噪声匹配容易跑到错误位置。理想的散斑颗粒尺寸是3到5个像素。你可以根据视场大小和相机分辨率反推散斑颗粒的真实尺寸是多少毫米。比如视场宽度100毫米图像宽度2048像素那么1个像素对应0.049毫米3到5个像素就是0.15到0.25毫米的散斑颗粒。电机叶片通常是金属表面光滑、反光直接喷漆容易掉。我的一般做法是先把叶片表面用酒精擦干净去除油脂。喷一层白色哑光底漆不用太厚盖住金属光泽就行。等底漆完全干透后用黑色哑光漆喷散斑。可以调整喷嘴距离来控制散斑颗粒大小距离近颗粒大距离远颗粒小。多喷几次每次少量直到黑白对比度合适。喷完之后拍一张图检查直方图灰度分布应该是类似双峰分布黑白分明但没有大面积纯黑或纯白区域。如果直方图集中在一侧说明对比度不够匹配精度会受影响。散斑层对实验结果有没有影响叶片表面多了油漆层理论上会改变局部刚度但在常规工况下油漆层厚度只有几十微米对整体变形影响可以忽略。3.2 高速相机参数与帧率的计算高速相机的帧率怎么定不是越快越好帧率太高数据量爆炸后处理慢帧率太低相邻帧之间叶片位移太大散斑匹配会失相关。这里分享一个我的计算思路。假设叶片长度为100毫米转速3000转/分也就是每秒钟50转。叶片尖端的线速度大约是v 2 × π × 0.1 × 50 ≈ 31.4 米/秒如果视场宽度是100毫米2048像素宽那么每毫米约20.48像素。叶片尖端每秒移动31.4米即31400毫米相当于每秒643072像素。如果相机帧率是2000帧/秒相邻帧的时间间隔是0.0005秒那么相邻帧之间叶片尖端的位移大约是643072 × 0.0005 ≈ 321像素这个位移量对DIC匹配来说还算可控但搜索范围已经不小。如果帧率降到500帧/秒相邻帧位移超过1280像素匹配就会非常吃力需要很大的搜索区域匹配错误率也会上升。所以我的经验是帧率至少要保证相邻帧图像中叶片表面最大位移不超过200到300像素。如果转速更高那么帧率也相应提高。数据量也要提前算好2048×2048分辨率2000帧/秒双相机连续采集2秒原始数据量大约2048 × 2048 × 2字节 × 2相机 × 2000帧/秒 × 2秒 ≈ 64GB存储速度和容量都得提前规划好不然采集过程中数据丢失更麻烦。曝光时间是另一个关键参数。要抑制运动模糊最大允许曝光时间取决于叶片表面在曝光期间移动了多少像素。如果允许1像素模糊那么上面的例子里曝光时间不能超过1像素 ÷ 643072像素/秒 ≈ 1.56微秒这个曝光时间太短普通光源根本不够。所以实际中往往把曝光时间放宽到10到50微秒用4到8像素的模糊换足够的光量。DIC亚像素匹配本身对轻微模糊有一定容忍度只要图像不至于糊到散斑无法辨识就行。更好的办法是用脉冲激光光源或者闪光灯在极短瞬间提供高强度照明这样既能锁住运动又能保证曝光量。3.3 DIC匹配参数的选择图像采完之后进入DIC计算阶段。常用的软件有VIC-3D、GOM Correlate、MatchID也可以自己写相关匹配算法。不管用什么软件有几个参数必须理解。子区大小subset size是关键。子区太小没有足够纹理特征匹配不稳定子区太大会把变形平均掉空间分辨率降低。金属叶片在旋转中主要是弯曲变形应变梯度不算极端一般选取21×21到41×41像素的子区比较合适。子区大小还要和散斑颗粒大小配合确保子区内包含足够多的散斑颗粒。步长step size决定计算网格的密度。步长可以小于子区尺寸让子区之间有重叠得到更密的数据点。一般设置步长为子区大小的1/4到1/2。形函数选择。普通的DIC用的是零阶或一阶形函数也就是默认子区做刚体平移或者线性变形。高速旋转时叶片表面不仅平移还有明显的旋转和弯曲最好用一阶形函数能描述子区的拉伸、剪切和旋转。如果用零阶子区稍微转个角度就会出现匹配误差。旋转工况还有一个特殊的麻烦点叶片在转过不同角度时表面光照反射情况在变化散斑图像看起来会不一样。这会导致时间序列匹配时部分区域突然失相关。我的应对办法是尽量使用均匀的光照环境避免强镜面反射也可以用多视角光源让光照变化更平缓。4. 旋转实验执行与常见问题排查4.1 从标定到采集的完整实验流程整个实验做下来流程大概是这样的第一步把叶片清理干净制作散斑。第二步把两台高速相机固定在稳定支架上调整位置、角度、焦距、光圈确保叶片在视场中央清晰成像。第三步放置标定板采集标定图像对执行标定和角点剔除验证标定精度。第四步在静止状态下拍摄一组参考图像。这组图像可以作为零变形状态后续所有变形都相对于它来计算。第五步启动电机逐步升速。在目标转速稳定后触发双相机同步采集一段图像序列。第六步保存数据导入DIC软件设置分析参数计算叶片表面的三维位移场和应变场。这个流程看似简单实际最容易出问题的就是第三步和第四步之间的衔接。有几次我标定完之后动了镜头重新调焦等于标定全部作废只能再标一次。采集时的速度策略也很有讲究。如果转速一步到位高速下叶片振动很大图像可能会糊。我习惯分档升速比如500转/分、1000转/分、2000转/分这样逐级往上每档都采一段数据。这样做一方面能观察变形随转速的变化趋势另一方面也能在低转速阶段验证整个测量链路是否稳定。要是低转速就出现失相关或者标定误差大那就先解决这些问题再往高速走。4.2 旋转实验中的常见问题与排查方法这里把我实际遇到过的典型问题整理成一个速查表方便大家排查问题现象可能原因排查与解决方法图像过曝叶片表面一片白金属镜面反射过强加偏振镜、柔光罩调整光源角度降低光源亮度图像暗散斑对比度低曝光时间不足或光功率不够增大光圈注意标定后不要乱动、增强灯光功率、缩短工作距离叶片表面模糊曝光时间过长运动模糊缩短曝光时间、使用脉冲光源提高帧率标定重投影误差大不合格角点未剔除干净、标定板不平整严格执行角点剔除流程、更换高精度标定板DIC计算大面积失相关散斑质量差、转速过快导致相邻帧位移太大、光照变化剧烈重新制备散斑、提高帧率、增大搜索范围、改用一阶形函数左右相机对应不上极线约束出问题、相机同步不准确检查标定结果、检查同步信号是否稳定叶片边缘变形云图异常边缘区域散斑不完整、子区出界边缘裁掉几个子区宽度再做分析或扩大视场留出余量排查的时候要记住一个原则先检查图像质量再做算法参数调整。图像拍得一塌糊涂再高级的DIC算法也救不回来。我在现场解决问题的顺序永远是光照→聚焦→同步→曝光→再考虑软件参数。4.3 旋转工况下后处理中的刚体位移分离技巧旋转叶片的位移场里刚体转动带来的位移量远大于真实变形量。3000转/分时叶片尖端刚体位移可能达到几百像素而真实变形引起的位移可能只有几个像素。如果直接把位移场显示出来看到的几乎全是刚性转动变形特征全被淹没。所以后处理时必须先做一个坐标系变换把测量数据从相机坐标系转换到叶片随转坐标系或者建立一个跟随叶片运动的参考基准。简单粗暴的做法是在叶片根部选取若干参考点这些点被认为变形很小基本只做刚体运动。用这些参考点的位移拟合出一个刚体旋转矩阵和平移向量表征叶片整体的转动。把整个叶片表面所有测点的位移减掉这个刚体运动剩下的就是相对变形。这个方法在叶片弯曲刚度较大或者转速不太高时非常有效。如果叶片本身柔性很大根部也可能有变形那么参考点要选得更靠近叶根或者借助有限元仿真提供参考约束。应变计算也要注意。DIC直接得到的是位移场应变是通过对位移场做数值微分得到的。位移场里的噪声会被微分放大所以通常先对位移场做平滑滤波再计算应变。滤波窗口不能太大不然真实应变峰值会被抹平。这个度需要根据数据质量不断调整我一般会试几个窗口大小对比应变云图的稳定性和细节丰富度来定。5. 转速、精度与实验边界条件的细节讨论5.1 转速对测量精度的实际影响很多人第一次做高速旋转DIC会低估转速对测量精度的杀伤力。转速影响的不只是运动模糊还有三个更深层次的问题。第一个是离心变形。转速升高叶片在离心力作用下被拉长、扭转这是我们要测量的对象。但同时也意味着叶片表面曲率会发生变化散斑在图像中的尺寸和形状也会随之变化。对DIC来说这就等于子区内的形函数需要更复杂的描述。转速越高形函数阶数不够导致的匹配误差越大。第二个是气动效应。叶片高速旋转带动周围空气流动叶片表面附近的气流会干扰图像。虽然没有风洞那么严重但转速很高时叶片表面的微振动会因为气动力变得剧烈图像序列里叶片边缘会出现轻微晃动。这种晃动会叠加到测量数据里表现为高频噪声。第三个是温升。电机长时间运行后发热热量传导到叶片叶片受热膨胀。如果实验周期长温度变化造成的热变形也会叠加到机械变形里。所以在分析结果时一定要记录实验开始和结束时叶片附近的温度分清测得的变形有多少来自离心力多少来自热膨胀。我做过一组不同转速下的对比5000转/分以下DIC结果和有限元仿真趋势对得很好转速超过8000转/分之后叶片边缘区域的应变云图开始出现明显噪点需要加大滤波窗口才能得到平滑结果。如果要在更高转速下测量就得考虑缩短曝光时间、提高光源亮度、甚至用更高帧率的相机。5.2 参考状态和坐标系一致性的重要性前面说了参考图像在静止状态拍但这里有个细节静止状态的叶片位置和旋转中的叶片位置不同如果直接拿静止图当作变形参考计算出来的位移会包含叶片因位置变化带来的视差变化。这种视差成分在双目系统里可能被误认为是面外位移。解决办法是尽量让参考图像和采集状态保持一致。比如可以这样操作在电机刚启动但转速很低时拍一组图像作为参考然后升速到目标转速再采集。低速和高速之间叶片姿态差异很小位移场中的刚体分量更容易被分离。如果实验要求严格对比不同转速下的变形我建议对每个转速单独采集一组参考图像以该转速下叶片某一特定相位角的图像作为基准与其他角度的图像做差得到的是叶片在一个旋转周期内的相对变形。这样做可以避开转速不同带来的静态姿态差异。坐标系一致性还有一个容易忽略的点标定板坐标系和电机轴坐标系的关系。如果叶片和电机轴的相对位置在安装时发生了微小错位测量时虽然测的是相对变形但剧烈旋转时不同点的离心力方向不同真实变形场本身就会体现出这种错位的影响。最好在实验前用千分表确认叶片安装位置确保弯矩分布是你要研究的状态。5.3 数据体量与存储策略高速双相机的数据量是很容易被低估的。一个2048×2048像素、16位深度的单帧图像大约是8MB双相机一帧就是16MB每秒2000帧就是32GB/s。这个写入速度普通SSD根本扛不住。我的做法是把高速相机内置内存作为缓存。大部分高速相机配置了8GB到64GB的RAM缓存采集时数据先写入缓存再慢慢导出到硬盘。但缓存容量有限比如64GB缓存按上面算的32GB/s写入速度只能录2秒。所以在正式开始前一定要算清楚单次采集时间和缓存容量规划好分段采集策略。录制时间短还有一个好处光源发热、电机温升对实验的影响相对有限。我一般把单次采集控制到1到2秒转速稳定后触发采集避免电机刚启动或者升速过程中的非稳态阶段。数据导出的时间往往比采集时间长得多。导出1分钟的数据可能要等十来分钟这时间里可以做下一组工况的准备。计划的流程要预留这些等待时间不然现场会手忙脚乱。5.4 旋转DIC结果与仿真和传统手段的对比验证实验测出来的结果光自己看着合理还不够最好做交叉验证。我拿DIC结果和两个东西对过。一个是有限元仿真结果另一个是叶片根部贴了少量应变片的测点数据。和有限元对比的时候仿真模型里要把转速、叶片材料参数、约束边界都设准确。对准的是叶片整体变形模式以及尖端的最大位移值。只要趋势一致数值偏差在10%到20%以内就说明整个DIC测量链路是可靠的。和应变片对比更有说服力但转速一高应变片引线会被甩断所以只能在较低转速档位做对比。贴应变片的位置和DIC测点尽量一致比较该点在相同转速下的应变值。两者偏差一般能控制在几十微应变以内偏差太大就要回头查设备或者数据处理流程了。没有条件贴应变片时也可以用最粗浅但有效的方式验证把叶片静止在不同的固定转角下用DIC测出叶片由于自重发生的变形看这个变形量是否在预期范围内。这个校验可以在正式实验前做能快速发现系统性的标定或计算错误成本很低但很值得做。写在最后的一些体会做了几次高速旋转叶片的DIC实验之后我最深的体会是这个实验真正的难点不在DIC算法本身而在实验设计的前期准备和细节控制。标定做得干不干净、散斑做得好不好、光照稳不稳定、同步准不准任何一个环节掉链子最终的结果都会差之千里。尤其标定这一关不合格角点如果偷懒不剔后面重投影误差大得离谱整个实验数据基本作废。我用四步校验流程把角点剔除自动化之后标定效率提升了一大截精度也稳定了很多。继续往下做的话这个方案还能往两个方向扩展。一个是做瞬态转速变化下的测量比如叶片从静止加速到目标转速的过程中变形是如何演变的这需要相机具备更高的连续采集能力。另一个是结合高速摄像和动态模态分析提取叶片在不同转速下的固有频率变化这比单看静态变形信息量更大。当然不管怎么扩展基础的散斑制备、双目标定、同步采集这套功夫始终都是绕不开的基本功。