返修台上那颗刚被热风枪取下来的BGA,放大镜下面真的很难看出裂纹在哪。功能测试偶尔过、偶尔不过,X-Ray扫一圈也没发现明显连锡或分层,可一到高温环境就掉电。这种问题十有八九出在焊点内部的微裂纹上,位置还特别固定——不是阵列的角上,就是靠近约束边的外排焊球。与其等整板报废了再切片找原因,不如在设计阶段就用Ansys Workbench把BGA焊点最容易坏的位置提前找出来。
这篇教程我会按完整流程走一遍:先讲清楚焊点失效的物理机理,再从几何建模、材料参数、网格划分讲起,然后分别跑热循环分析和振动分析,最后教你怎么从云图里判断哪些焊球最危险、怎么把结果转化成改板建议。全程基于Ansys Workbench自带功能,不需要额外装第三方插件,适合刚接触电子可靠性仿真的结构工程师、封装工艺工程师,也适合想给BGA失效分析加一道仿真手段的硬件工程师。
1. 仿真前必须想清楚的物理问题:焊点为什么总裂在角上
1.1 热循环失效:CTE失配制造的剪切疲劳
BGA焊点是芯片和PCB之间唯一的电气和机械连接通道,但它的工作环境相当恶劣。芯片是硅,热膨胀系数只有2.6ppm/°C左右;PCB是玻璃纤维加铜箔,面内热膨胀系数大概在14到17ppm/°C;焊球本身是锡银铜合金,大约22ppm/°C。这几个数字看起来都不大,可一旦温度从-40°C拉到125°C,温差165°C,乘以封装半宽、再乘以失配系数,在阵列边缘的焊球上就能造成不小的剪切位移。
把焊球想象成两片膨胀速度完全不同的板材之间的胶水:温度一变,上下两片板往不同方向跑,胶水就被反复撕扯。BGA阵列里有个很关键的概念叫DNP,也就是"距中性点的距离"。离封装中心越远的焊球,上下表面之间的相对位移越大,受力也越大。所以热循环工况下,危险焊球几乎永远是阵列对角线最远端那几颗,尤其是角上的那一颗或者两颗。这个规律在各类文献和实验里反复出现,做仿真之前心里先有这根弦,后面看结果就不会慌。
1.2 振动失效:惯性力作用下的应力集中
振动工况的失效逻辑和热循环完全不一样。热循环是"温度变化引起的位移失配",振动则是"板子弯曲导致焊球承受惯性力"。PCB在振动激励下会像跳板一样上下弯曲,封装体相当于跳板上压着的一块重物。板子弯得越厉害,封装质量越大,焊球上分到的惯性力就越大。
这时候焊球阵列里危险的位置取决于板子的振型:如果是一阶弯曲,板中央曲率最大,中间的焊球可能受力很大;如果是高阶扭转或者局部模态,危险点又会跑到封装边缘或者靠近固定螺栓的位置。焊球和焊盘交界处是材料刚度突变的地方,应力集中天然严重,所以振动分析看到的裂纹通常沿焊球根部或IMC界面扩展。
1.3 两个危险区不重合,必须双线作战
这里有个特别容易踩的误区:很多人觉得"反正焊点最容易坏的就是角上那几颗",做一个热循环就算完事了。但实际上,振动分析发现的危险焊球可能完全不在封装角上,而是出现在靠近PCB固定点那一侧的外排焊球。所以这个项目必须把热循环和振动当作两条独立的分析线来跑,各自找各自的最大值位置,最后再放在同一张图里对照。只用一种载荷工况下结论,大概率会漏掉真正的风险点。
2. 从零搭几何模型:焊球数量多,简化策略比耐心更重要
2.1 先定模型边界:整板、局部板还是单封装
BGA焊点仿真的第一步不是急着画焊球,而是先决定模型范围。整板全阵列最真实,但一个36×36引脚的BGA就有一千多颗焊球,哪怕每颗焊球只分几百个单元,整体规模也轻松到几百万节点,普通工作站跑热循环的非线性计算会等到怀疑人生。
我常用的做法是"局部板模型":只建BGA封装所在的那一小块PCB,板的尺寸取封装外形往外扩20到30毫米,四角按真实螺栓孔位置做约束。对"找出阵列里哪个焊球最危险"这个目标来说,局部板模型已经完全够用。为什么?因为焊球之间的相对应力分布主要由封装和局部板的刚度匹配决定,板边界稍远一点,对焊球应力梯度的影响就迅速衰减了。
如果机器实在跑不动,还可以考虑1/4对称模型。这里有个前提:热循环分析可以用对称模型,因为温度载荷是均匀的,结构也基本对称;但振动分析我建议保留全模型,因为激励方向和约束点的组合会破坏对称性。你要是为了省事把振动也做成1/4对称,很可能把本该出现的反对称模态给硬生生抹掉。
2.2 焊球别用理想球体,按这个形状去切
很多初学者会在三维软件里画一个完美的球,然后放在焊盘上。这样建模特别好看,但做出来的结果往往偏保守而且网格也不好画。实际回流焊之后,BGA焊球是"上下被焊盘压扁、腰部微鼓"的截锥形状,上下表面各有一块被焊盘润湿形成的平面。精确还原这个形貌需要扫描电镜切片,工程上完全没必要。
我通常直接在SpaceClaim里用旋转体拉一个截锥:上下面直径0.33毫米,腰部最大直径0.42毫米,高度0.35毫米,上下边缘各倒一个0.03~0.05毫米的圆角。圆角一定要保留,后面热循环能不能收敛,很多时候就看这个圆角。你要是不倒圆角,焊球根部就是个90°尖角,应力在那里会随着网格加密无限增大,也就是所谓的"应力奇异",然后非线性求解器各种不收敛,最后你只能在论坛上找"为什么我的热循环算到一半就飞了"的答案。
2.3 一套可以直接用的BGA结构参数
为了方便说后面的步骤,我直接给一套我常用的参数,你可以照抄进模型里:
| 项目 | 取值 |
|---|---|
| 封装外形 | 15mm × 15mm × 1.2mm |
| 芯片尺寸 | 8mm × 8mm × 0.3mm |
| 基板厚度 | 0.36mm |
| 局部PCB尺寸 | 50mm × 50mm × 1.6mm |
| 焊球阵列 | 19 × 19(共361颗) |
| 球间距 | 0.8mm |
| 焊球高度 | 0.35mm |
| 焊球腰部直径 | 0.42mm |
| 焊盘直径 | 0.33mm |
| 焊盘厚度 | 0.03mm |
这套参数对应的是比较典型的0.8mm pitch BGA。焊球数量看着多,但每颗焊球的几何几乎一样,在SpaceClaim里画好一颗,剩下的用阵列复制,建模工作量并不大。注意阵列复制之后一定要用布尔操作把相互重叠的面清理掉,否则后面网格划分会出现一堆莫名其妙的“退化单元”。
3. 材料参数与网格划分:两个分析对模型的需求完全不同
3.1 焊料:热循环用Anand粘塑性模型,振动用线弹性就够了
BGA焊料在热循环工况下绝不是简单的线弹性材料。温度变化慢、保温时间长,焊料会发生显著的蠕变和应力松弛,这是焊点低周疲劳的主要损伤来源。这时候如果你只给一个弹性模量和泊松比,算出来的应力会比实际高很多,危险位置的判断也会失真。
所以热循环分析里,SAC305焊料要用Anand粘塑性本构模型。Anand模型能同时描述塑性变形和蠕变,参数在Ansys Workbench的材料库或者Engineering Data里可以直接输入。下面是我常用的一组SAC305 Anand参数,来自公开文献的标定结果,用于方案对比足够:
| 参数 | 符号 | 取值 |
|---|---|---|
| 初始变形阻力 | s0 | 45.9 MPa |
| 激活能/玻尔兹曼常数 | Q/R | 7460 K |
| 指前因子 | A | 4.61e6 1/s |
| 应力乘子 | ξ | 1.5 |
| 应变率敏感指数 | m | 0.0942 |
| 硬化常数 | h0 | 5840.49 MPa |
| 饱和应力常数 | ŝ | 58.3 MPa |
| 饱和应力应变率指数 | n | 0.015 |
| 硬化指数 | a | 1.86 |
这里必须提醒一句:Anand参数不是随便拼凑的,s0、A、Q/R这些参数必须来自同一组标定结果。我见过有人拿论文A的s0配上论文B的A,算出来的蠕变应变直接翻倍。如果你对材料批次没底,就留出安全系数,按偏保守的取值来。
振动工况就宽松多了,激励是高频小应变,焊料整体还处于弹性范围,用线弹性本构完全可以。我习惯在同一个模型里给焊料定义两套材料:一套弹性参数加Anand,用于热循环;一套纯弹性参数,用于模态和随机振动。切换的时候只要在模型里替换材料赋值,不需要重建几何。
3.2 其他材料的参数怎么给
除了焊料,模型里还有硅芯片、塑封料、基板、铜焊盘和PCB。这些材料的参数直接影响载荷如何传递到焊球,不能随便填。下表是我常用的常温参数:
| 材料 | 弹性模量(GPa) / 其他 | 泊松比 | CTE(ppm/°C) |
|---|---|---|---|
| 硅芯片 | 131 | 0.28 | 2.8 |
| 塑封料EMC | 20(Tg以下) | 0.30 | 15(Tg以下),Tg以上约40~60 |
| 铜焊盘 | 110 | 0.34 | 17 |
| SAC305焊料 | 51(25°C),125°C降到约35 | 0.36 | 22.5 |
| PCB(FR-4含铜层) | EX=EY=22,EZ=10,GXY=8,GXZ=GYZ=4 | NUXY=0.11,NUXZ=NUYZ=0.28 | XY向16,Z向60 |
PCB我用正交各向异性,这一点经常被忽略。FR-4板的面内刚度和厚度方向刚度差很多,如果你全都用一个各向同性的弹性模量,振动模态频率很容易算出偏差,热循环中板的翘曲趋势也会不对。Z向CTE给60ppm/°C,和面内16ppm/°C差别很大,这是为了模拟玻纤布和树脂在厚度方向上的真实膨胀特性。
还有塑封料的Tg问题。很多环氧塑封料的玻璃化转变温度在150°C左右,超过Tg之后模量会断崖式下跌,CTE也会明显上升。如果你的温度循环上限在125°C,用一组Tg以下参数没问题;如果循环上限拉到150°C以上,就必须给双段CTE和分段模量,否则高温段的应力会严重失真。
3.3 网格怎么切才能让热循环收敛、让模态不失真
焊球是模型的灵魂,网格策略必须围着它转。我的做法是:每颗焊球沿高度分4层,周向分8份,腰部圆角处局部网格尺寸0.03~0.05毫米。焊球和上下铜焊盘之间不用接触对,直接把网格节点共享,这样热循环非线性计算最稳。用接触的话,每个接触面上的状态变化都会拖慢收敛,而且接触参数没设好还会出现抖动发散。
PCB和封装体本身可以用六面体主导网格,尺寸控制在0.5~1毫米。焊球附近可以做局部尺寸控制,让网格从0.05毫米平滑过渡到1毫米。按19×19阵列算下来,整模型大概会有一百五十万到两百万个节点。热循环跑一轮可能需要三五个小时甚至更久,这取决于你的CPU核心数和内存。如果机器不够,可以退一步:只对角落和靠近约束边的焊球加密到0.05毫米,内部焊球放宽到0.1毫米,危险位置判断的精度不会损失太多。
振动分析对网格没有热循环那么敏感,因为线弹性计算收敛稳定。但要注意,模态分析的结果精度取决于整体质量分布和刚度分布,PCB的网格不能太粗,我一般控制在1毫米。这样前20阶模态的频率误差可以压到5%以内,对工程判断足够了。
4. 第一道工况:热循环分析——重点在应变范围,不是温度场
4.1 温度载荷曲线:三个循环起步
热循环分析在Ansys Workbench里用Transient Structural做。很多人上来就想做热-结构耦合,先算温度场再映射到结构上。对于BGA焊点这种小尺度结构,焊球和铜的热导率高,温度均匀性极好,整板同时升降温的假设完全合理,所以直接对所有体施加一个随时间变化的Body Temperature就行。
温度曲线我推荐按这个来:从25°C参考温度出发,以14°C/min降温到-40°C,保温15分钟;再以14°C/min升温到125°C,保温15分钟;再回到25°C。这是一个完整循环。然后把这个循环重复三次。为什么要三个循环?因为第一个循环里焊料的初始蠕变状态还没稳定,应力应变曲线会带一点"棘轮效应",从第二个循环开始才会进入稳定的滞回环。我们关心的是稳定循环里的应变范围,所以取第三个循环的数据。
分析设置里,子步控制一定要打开自动时间步。升温段和降温段的初始步长给30到60秒,最大步长不超过120秒;保温段步长可以放到300到600秒。这样既保证温度转折处捕捉准确,又不会因为时间步太小导致总步数爆炸。
4.2 边界条件只约束刚体位移
热循环分析里的边界条件是很多人翻车的地方。如果你的目的是看焊球相对应力分布,就不要把PCB四角螺栓孔全部固定死。板子受热要膨胀,你把它死死摁住,算出来的热应力全是约束反力造成的假象,焊球本体的应力分布会被严重干扰。
我的做法是:在四角螺栓孔处分别约束Z向位移,然后选其中一个螺栓孔同时约束X和Y,再选对角方向的一个螺栓孔约束另一个水平方向。这样整块板既能自由热胀冷缩,又不会产生刚体漂移。没有螺栓孔就把PCB底面的四角做同样处理。关键原则很简单:约束住刚体运动,剩下的全交还给物理。
关于大变形开关,我个人习惯先关掉NLGEOM跑通一遍。热循环虽然涉及蠕变,但焊球几何变形没有大到需要几何非线性的程度,关掉之后收敛容易很多。等模型稳定了,再试着打开NLGEOM对比一下结果,如果焊球应变范围差异小于5%,以后就可以放心关着用。
4.3 后处理:不能只看应力,要提取循环应变范围
热循环结束后,云图里最显眼的是等效应力。但我要说:判断焊点危险位置,主要别看等效应力,要看应变。焊料是弹塑性材料,应力到达屈服后基本不再增加,可塑性应变和蠕变应变却在不断累积,这才是损伤的根源。
具体操作是这样:求解完成后,插入Equivalent Total Strain结果,找到第三个循环的低温端和高温端两个时间点,分别读取应变值,两者相减得到该循环的等效应变范围Δεeq。如果你想看整个阵列的分布,那就分别导出两个时刻的云图,在结果里做减法运算。或者偷懒一点,直接看Equivalent Plastic Strain和Equivalent Creep Strain的累积云图,看哪个焊球位置数值最大。累积量虽然不能直接当循环应变范围用,但定位危险焊球的位置是完全靠谱的。
实际算出来的结果里,最大Δεeq的位置毫无悬念会在阵列角落。你还会发现,同一颗焊球上,靠近芯片一侧的根部应变往往比靠近PCB一侧更大,这是因为基板和塑封料的约束比PCB更强。这个细节后面看切片验证的时候会对得上。
4.4 一个粗略的寿命估算公式
如果你不满足于只看位置,还想大概知道焊点能活多久,可以用Coffin-Manson低周疲劳公式粗算一下。
[ N_f = 0.5 \left( \frac{\Delta \varepsilon_{eq}}{2 \varepsilon_f'} \right)^{-\frac{1}{c}} ]
对SAC305,粗取εf'=0.5,c=-0.6到-0.7。这里面不同文献取值差异很大,所以我建议你只拿它做相对寿命评估,别直接输出到测试报告里当绝对寿命。更讲究一点的做法是用Darveaux方法,提取焊球界面单元的平均蠕变应变能密度增量,再代入起裂和扩展寿命公式。那个精度更高,但后处理复杂度也上了一个台阶,初学阶段用Coffin-Manson足够。
5. 第二道工况:振动分析——模态开路,随机振动确认
5.1 为什么不能直接拿静力分析当振动分析
很多没做过振动仿真的朋友会问:我直接给封装施加一个加速度,比如30g,算一次静力不行吗?答案是不行,而且会错得离谱。振动环境的破坏力来自共振放大。如果激励频率刚好接近结构某阶固有频率,实际响应加速度可以是输入的好几倍;如果离得远,响应又可能小到可以忽略。静态30g完全无法体现这种频率相关性。
所以正确路线是两步走:先做模态分析,搞清楚结构的固有频率和振型;再做随机振动分析,把真实的功率谱密度(PSD)作为激励,得到统计学意义上的应力响应。在Ansys Workbench里,这两个分析模块是串联的,随机振动分析必须挂在模态分析下面作为子分析。
5.2 约束、PSD谱、阻尼比怎么设
模态分析的约束和热循环保持一致,在PCB四角螺栓孔加Fixed Support。提取阶数我习惯给前20阶,或者覆盖到2000Hz。对于50mm×50mm的局部板,前几阶模态一般出现在200到800Hz之间,20阶足够看到我们关心的板弯曲和扭转模态了。
随机振动的激励方向选择Z向,也就是PCB法向,这是对BGA焊球最危险的方向。面内激励会让PCB产生面内变形,但面内刚度大、响应小,初判时可以先不管。PSD谱如果你手上没有客户标准,先用平直谱0.01g²/Hz、20到2000Hz。算一下总均方根加速度大概是sqrt(0.01×1980)≈4.45g,这个量级符合很多车载电子产品的实测环境。注意单位是g²/Hz,不是g/Hz,填错之后整个应力结果都会对不上。阻尼比我取0.03,这是PCB组件常见的模态阻尼范围,取值太保守会放大共振峰,太激进又会把应力压得太低。
5.3 用RMS应力云图定位危险焊球
随机振动求解完成后,Workbench会输出1σ等效应力(RMS应力),这是统计意义上的标准差。云图里你会看到应力主要集中在PCB固定点附近和封装边缘。这时一定要把PCB和封装体隐藏掉,只看焊球层,否则你很容易被PCB上那个大大的红色区域带偏。
从经验看,1σ应力最大的焊球通常出现在靠近固定螺栓的那一侧最外排,或者在封装角部。为什么会这样?因为固定螺栓附近PCB弯曲曲率大,封装边缘又是刚度突变点,两重因素叠加让应力集中特别明显。
工程上评估高周疲劳用3σ准则:峰值应力约等于3倍RMS应力,出现概率99.73%。把3σ应力和SAC305的高周疲劳极限做对比,疲劳极限大约在20到30MPa。如果3σ应力超过这个范围,说明焊点在高周振动下存在明显的疲劳风险;如果1σ应力就超过了疲劳极限,那这个设计基本可以判定不合格。
5.4 热-振联合分析:预应力模态是不是必须做
温度会改变材料的弹性模量,也会在结构里留下热应力,而热应力会通过应力刚化效应改变结构的固有频率。原理上,最严格的做法是先把热循环最后一个时刻的温度状态作为预应力,做一次Static Structural,再把它作为预应力载荷链接到Modal里去算模态和随机振动。在Workbench里这个流程叫Pre-Stress Modal,操作上就是把Modal分析的Pre-Stress设置为Static Structural分析。
但我的实际经验是:初版本趋势评估真的没必要上预应力模态。热应力对焊球危险位置的排序影响很小,主要是让固有频率移动几个百分点。你花大半天把预应力链路搭好,最终得到的危险焊球位置和分开算几乎没有区别。我建议你先分开算两轮,等需要输出精确频率报告的时候再做预应力耦合。
6. 结果对照与工程判据:怎么判断"要坏"和"还能扛"
6.1 一个参考算例:两种工况的危险焊球不重合
下面我用一个参考算例收束前面的步骤。假设是一颗19×19、0.8mm pitch的BGA,热循环取三个循环的Δεeq云图,最大位置在左下角DNP最大的那颗焊球,靠近芯片一侧根部,Δεeq大约1.2%。振动分析采用平直PSD谱,1σ应力最大位置则出现在靠近PCB固定螺栓那一侧的最外排焊球,不在封装角上,1σ应力大约8MPa,3σ应力大约24MPa,刚好压在高周疲劳极限附近。
| 工况 | 主导失效模式 | 危险焊球位置 | 损伤指标 |
|---|---|---|---|
| 热循环 | 蠕变疲劳(低周) | 角部DNP最大球,芯片侧根部 | Δεeq≈1.2% |
| 振动 | 高周疲劳 | 螺栓侧最外排球,焊盘界面附近 | 1σ≈8MPa,3σ≈24MPa |
这个例子完美说明了为什么要两条线同时跑:如果你只做了热循环,就会得出"加强封装角部"的结论,完全漏掉螺栓侧外排焊球的风险;如果你只做了振动,又会忽略掉热循环带来的低周蠕变损伤。把两张云图叠在一起看,你才会发现这个设计真正的软肋是"角部焊球抗热循环、螺栓侧焊球抗振动",两边要分别处理。
6.2 我常用的几个工程阈值
- 热循环:Δεeq超过1%,这个焊球就要重点跟踪;超过2%,基本属于设计明显不合理,要不换材料、要不改封装、要不加底部填充。
- 振动:1σ应力低于疲劳极限的1/3,可以认为3σ应力仍低于疲劳极限,设计相对安全;1σ应力超过疲劳极限,必须整改。
- 危险位置看趋势:焊球和铜焊盘交界处因为材料突变和几何圆角,应力会表现出网格敏感性,直接用界面节点应力卡阈值不科学,要看离界面一个单元距离的焊球本体应力或应变。
大家注意,仿真给的是"相对危险程度排序"而不是"绝对寿命预言",尤其是热循环寿命公式里常数项差异很大。做研发评审时,我一般说"右上角这颗焊球损伤指标是阵列平均值的三倍,建议优先优化",工程师们马上就能理解。
6.3 怎么把仿真结论转成改板建议
热循环危险,核心思路是降低焊球承受的热失配位移。常见手段包括:减小DNP(也就是缩小焊球阵列的覆盖范围)、选用低CTE的PCB材料、给BGA底部填充underfill、或者调整焊球的合金成分和直径。底部填充对热循环的改善效果非常显著,因为underfill会把一部分剪切载荷转移到封装体上,焊球本体损伤能下降30%到50%。
振动危险,核心思路是降低焊球处的动态响应。最常见的手段是增加PCB支撑点或调整螺栓位置,让危险焊球远离固定点的高应力区;其次是增加PCB厚度,提高弯曲刚度;也可以给封装和PCB之间点胶或填充缓冲材料,提高阻尼。
如果两个工况的危险焊球刚好都在同一个位置,说明这个焊球正在承受热-振叠加的双重损伤。这种情况下只优化一个维度不行,优先考虑underfill加局部支撑的组合方案,同时把PCB的约束点调整一下,尽可能让角部焊球的振动应力降下来。
7. 这个流程里我踩过的几个坑,以及当时的排查思路
7.1 热循环算着算着就发散
热循环不收敛太常见了,尤其是第一次跑Anand模型的时候。我的排查顺序是这样的:先看约束,是不是哪个螺栓孔被固定死了;再看网格,焊球圆角处有没有出现锐角单元;最后看时间步,转折处步长是不是太大。有一次我折腾了两天,最后发现问题出在一颗焊球复制时没做布尔合并,焊球和焊盘之间隔了一层面,共节点根本没建立起来,整颗焊球在那里"自由震动"。所以建议大家建模完成后,先单独选中一颗焊球检查一下共享拓扑,确认它和上下焊盘是一体的。
7.2 模态分析出现"负频率"
模态分析前6阶频率如果接近0,那就是刚体模态,说明结构约束不够。BGA模型常见的问题是焊球和焊盘之间用了接触对而不是共节点,接触面在模态分析里没有锁紧,整个封装在振动方向上处于"半自由"状态。解决方法是把接触全部替换成Bonded或者直接共节点。如果前6阶频率是负值,这个比较少见,通常和求解设置有关,检查一下求解器是否用了默认的迭代法,必要时切到直接法。
7.3 Anand参数"看起来对"但结果整体偏大
有一段时间我图省事,从不同的论文里各取了一组Anand参数凑在一起,算出来的蠕变应变高到离谱,所有焊球都快废了。后来对回文献才发现,Anand模型的9个参数是内在耦合的,同一组标定数据下的参数才有意义。从那以后我就在本地存了一组完整的SAC305 Anand参数,每次新建项目都直接调用同一组,除非拿到焊料供应商的实测标定数据,否则不用第二套。这一点你们一定要记住。
7.4 随机振动的PSD谱单位和方向搞错
随机振动模块里,加速度谱的单位有g²/Hz和(m/s²)²/Hz两种,填错之后RMS应力会差将近100倍。我在一个项目里把0.01g²/Hz误填成0.01m/s²/Hz,算出来应力小得可怜,差点把一个实际有风险的设计判成合格。自查方法是看总Grms:填完谱之后软件会显示总均方根加速度,如果3g到10g范围还算合理,如果显示0.1g以下,大概率是单位错了。还有,PSD激励的方向要确认你加在Z向,不少人是默认加在X向的,算完一看云图特别均匀,那是因为面内刚度大、响应小,完全没反映出真实危险。
7.5 后处理时只看了总体变形云图,被板中心的红色区域带偏
随机振动结果里,总变形云图的最大值几乎都在PCB中心,因为板的一阶弯曲变形肯定中间最大。但焊球应力最大的位置未必在中心,而是在封装边缘和固定点附近。新手特别容易盯着总变形云图发半天呆,得出"板中心底下那颗焊球最危险"的结论。正确操作是在结果树里插入一个Named Selection,把所有焊球都选进去,后处理时只显示这个集合。这样你看到的永远是焊球层自己的应力,PCB中间那些大红色块就不会干扰判断了。
还有一个老生常谈的问题:焊球和铜焊盘的交界处应力有很强的网格敏感性。网格加密两倍,界面应力可能上涨30%甚至更多。所以做危险位置判断时,不要拿界面第一层节点的应力值直接卡阈值,要看焊球本体第二层单元的平均应力。虽然整个项目到最后也做不到绝对精确的寿命预测,但至少能把你的注意力从361颗焊球缩小到角部那五六颗和螺栓侧那七八颗,这就值回票价了。我后来做方案评审,必带热循环和振动两张焊球应力云图,方便直观地说明"这版设计改哪里、为什么改"——比干巴巴地念测试数据有说服力得多。