| 扬声器 |
抄本 |
| C惠特曼 |
好的。非常感谢大家参加我的演讲。我叫 Charlie Whitman,在 Corvo 工作,今天我将分享如何在 JMP 中使用 R 进行阶跃应力建模。 |
| |
首先,我先来介绍一下。我会简单介绍一下压力测试,它是什么,以及我们为什么要做它。 |
| |
有两种基本类型。一种是恒定压力,一种是阶跃压力;我会分别讲一下。然后,当我们从阶跃压力或恒定压力测试的结果中得出 |
| |
是模型参数的估计值。这就是我们进行预测所需要的。因此,在压力测试中,我们会对压力非常大的部分施加压力,然后利用这些数据推断实际使用情况,而我们需要模型参数来实现这一点。 |
| |
但模型参数只是故事的一半。我们还必须承认,这些估计值中存在一些不确定性,我们将利用置信区间来解决这个问题,我将讨论我用来解决这个问题的自举法。 |
| |
最终, |
| |
有了最大似然估计和引导置信区间,我们就可以创建一个所谓的安全操作区, |
| |
SOA,有点像可靠性图。你也可以把它想象成一个响应面。所以我们要做的是……找到哪些区域可以安全操作你的部件,哪些区域不安全。然后我会得出一些结论。 |
| |
那么,什么是压力测试?在压力测试中,你会对零件施加压力,直到其失效。有时你不会失败;有时你需要启动、停止测试,然后执行其他操作。 |
| |
在这种情况下,你有一个传感器数据点,但模拟中使用的最大似然法会将传感器考虑在内,因此不必担心 100% 的故障。我们可以承受某些部件不发生故障。 |
| |
所以你要做的就是根据一些设计好的实验、矩阵之类的东西,在各种条件下对这些部分进行压力测试。所以你可以运行 |
| |
您的压力可能是温度、功率、电压或类似的东西,您将在各种条件、各种压力下运行您的零件,然后获取适合您的模型的数据,然后推断使用条件。 |
| |
mu = InA + 空气/kT。 |
| |
Mu 是分布的对数均值;我们通常使用对数正态分布。它等于常数项加上温度项。 |
| |
可以看出,mu 与温度成反比。因此,温度升高,mu 下降;温度下降,mu 上升。如果我们使用对数正态分布,还会有一个额外的参数,即形状因子 sigma。 |
| |
因此,在运行测试之后,我们会在非常紧张的条件下运行几个部件,并将它们拟合到我们的模型中。然后,当你将这两者结合起来,你就可以预测使用条件下的行为,这才是真正的游戏规则。 |
| |
最常用的方法是恒定应力测试,基本上,应力在测试期间是固定的。这只是一个例子。这里有一张温度与时间的关系图。 |
| |
如果温度非常低,那么可能会出现持续性的故障……有时会持续很长时间。 |
| |
失效时间可能是随机的,同样遵循对数正态分布。如果我们将温度升高到更高的水平, |
| |
我们会得到故障时间分布的结束,但平均而言,故障时间会更短。 |
| |
如果我们进一步提高温度,情况也一样,但故障时间会更短。所以我可以做的是,如果我在不同的温度下运行一堆零件,我可以把结果拟合成一个概率图,就像这样。 |
| |
这里我绘制了最高温度下的概率与失效时间的关系。本例中温度为 330 摄氏度,我设置了一组失效时间,并将其设置为对数正态分布。随着温度越来越低,失效时间也越来越长。 |
| |
然后,我把所有这些温度数据拟合到阿伦尼乌斯模型中,并进行外推。这样,我就能在实际使用条件下得到预测结果。这就是我们想要的。 |
| |
我想指出的是,当我们进行这些加速测试时,我们必须在非常高的压力下运行,因为,例如, |
| |
即使这持续了 1000 个小时左右,我们预测该部件在使用条件下的寿命将达到 10 亿小时,而且我们不可能 |
| |
运行测试长达十亿小时。因此,我们必须在合理的时间内完成测试,这就是我们进行加速测试的原因。 |
| |
那么,什么是阶跃应力?嗯,正如你可能想象的那样,阶跃应力是指逐步增加应力 |
| |
或者某种斜坡。这样做的好处是可以节省时间。正如我在上一个图中展示的那样, |
| |
这些测试可能持续很长时间,可能长达1000小时。也就是说,测试可能需要几周甚至几个月才能结束。阶跃压力测试 |
| |
时间可能会短得多,或者你可能几个小时或几天就能完成。所以这确实能节省时间。但分析起来比较困难,我马上就会演示。 |
| |
我们在 Corvo 所做的工作,就是测试声学滤波器的可靠性,而这些滤波器是射频设备。所以,射频中的应力指的是射频功率。 |
| |
因此,我们不断加大力度,直至失败。 |
| |
所以如果我们要提高功率,我们可以用这个表达式来建模。基本上,我们有一个和阿伦尼乌斯方程相同的公式,但我们添加了另一个项,n log p。 |
| |
N 是功率加速度参数;p 是功率。因此,对于对数正态分布,会有第四个参数 sigma,即形状因子。所以,有 1、2、3、4 个参数。 |
| |
让我给你举一个简单的例子来说明它是什么样子的。 |
| |
一开始,这是功率与时间的关系。功率单位是 dBm。你从某个功率(比如 33.5 dBm)开始,一步一步,直到希望失败为止。 |
| |
我想指出的是 |
| |
功率会发生变化,随着施加到部件的功率增加,温度也会随之变化。所以,功率增加,温度也会随之变化。所以,功率和温度就混淆了。 |
| |
所以你必须以能够区分温度和功率影响的方式进行实验。我想指出的是 |
| |
有两个术语(温度和功率),所以不仅仅是我增加部件的功率,它就会变热,而是温度在驱动它。功率本身也会增加故障率。 |
| |
好的。现在我可以更详细地展示一下阶跃应力图。 |
| |
这里又是一个功率与时间的关系。我先用某个功率运行一个部件,比如说五个小时,然后增加压力,再运行五个小时,继续增加压力,直到部件失效。 |
| |
所以,正如我提到的,随着功率的增加,温度也会升高。所以我必须考虑到这一点。我必须知道 |
| |
t = T 环境 + R 第乘以 p |
| |
T ambient 是环境温度;P 是功率;R th 称为热阻抗,它是一个常数。这意味着,当我设置功率时,我知道功率是多少,然后我就可以估算出每一步的温度。 |
| |
因此,我们想要做的就是以某种方式获取从阶跃应力模式中获得的这些失效时间,并将其推断到使用条件。 |
| |
如果我只是在这里运行时间 delta t |
| |
我想推断一下,如果要使用条件,我会做的是……乘以……得到等效时间增量 t 乘以加速度因子。这是加速度因子。我有一个活化能项、温度项和一个功率项。 |
| |
所以我会把它乘以 AF。因为我是从高压力到低压力,所以 AF 大于 1,这只是为了举例说明,它并没有比 1 大很多,但你明白我的意思。 |
| |
随着我增加功率,温度和功率也在发生变化,因此 AF 也会随着每一步而变化。 |
| |
所以如果我想得到实际使用条件下的等效时间,我必须做一个加法运算。所以我得到了每个部分。 |
| |
它有自己的加速度因子,或许还有自己的时间增量。然后我做一个加法,就得到了等效时间。 |
| |
所以,如果我确切知道Ea和n,我就能用这个表达式来预测设备时间,这样我就能预测等效时间。这就是我的想法。 |
| |
所以结果……正如我所说,温度和功率是混淆的。为了估算,我们必须在两个不同的环境温度下运行 |
| |
如果环境温度足够低,那么您实际上可以分离功率和温度的影响。 |
| |
你还需要至少两个升温速率。所以至少需要一个由升温速率和环境温度组成的二乘二矩阵。 |
| |
在我做的模拟中,我选择了三种不同的速率,如下所示。我以 dBm 为单位绘制了功率与压力时间的关系 |
| |
我有三种不同的升温方式,但升温速率也不同。升温速率分别为快速、中速和慢速。实际操作中,你会让它一直持续下去,直到失败,但我只是在几个小时后随意地停止了它。你看,我这里也有一个上限。 |
| |
上限是四;因为我们发现,如果我们任意增加压力或功率,我们就可以改变故障机制。 |
| |
你要做的就是确保加速条件下的故障机制与使用条件下的故障机制相同。如果我改变 |
| |
我无法对故障机制进行推断。这种推断是无效的。 |
| |
因此,我们将这里的上限设为 34.4 dBm,甚至给自己留出一点缓冲,以确保不会接近这个值。 |
| |
因此,我们的环境温度是 45 摄氏度,我们以 33.5 dBm 的功率启动它,因此我们还会得到另一组条件 |
| |
135度。你看,这里的模式是一样的。我们有一个上限,他们有一个缓冲区,等等,只是我们的起始功率较低。所以现在低于32 dBm,而之前超过33 dBm。 |
| |
我们这样做的原因是,如果我们不降低这种较高温度下的功率,那么一不小心就会立即出现故障,然后就无法使用数据进行推断。 |
| |
好的,我们需要一个等效时间的表达式,就像我之前展示的那样。这个表达式是这样的。 |
| |
有点棘手,我不知道如何从第一原理推导出等效使用时间条件分布的表达式。所以,当遇到这种比较难的问题时,我选择使用引导法。 |
| |
那么,什么是引导? |
| |
所以,通过引导法,我们所做的就是对数据集进行多次重复采样。这意味着,从原始观测数据集中,你可以得到原始数据集的重复数据,或者某个观测数据可能不会完全出现。 |
| |
我使用的方法称为非参数方法,因为我们不假设分布。我们不需要知道数据的潜在分布。 |
| |
所以,当你生成这么多的引导样本时,你就能得到参数的近似分布,从而进行统计推断。具体来说,我们感兴趣的是设定置信区间。这就是我们需要做的。 |
| |
一个最简单的自举法例子叫做百分位数自举法。比如,假设我想要某个估计值的置信区间为 90%。 |
| |
我会做很多很多引导重复,并从每个引导样本中提取参数。然后对其进行排序,找出向量的偏移量和第 95 个百分位数,这些就构成了我的 90% 置信区间。 |
| |
我在工作中实际做的是使用了一种改进百分位数的技术,叫做BCa,即偏差校正和加速技术。 |
| |
偏差是因为有时我们的估计是有偏差的,而这种方法会考虑到这一点。 |
| |
加速,不幸的是,“加速”这个词在这里很容易让人混淆。它与加速测试无关,而是与方法有关,而方法与调整有关。 |
| |
分布的偏度。但最终你会得到 |
| |
它会为你选择不同的百分位数值。所以,对于百分位技术,我们有第五和第九十五。 |
| |
引导法或BCa引导法可能会给出不同的结果,比如第三个百分位数和96%或其他值。这些就是你需要选择的90%置信区间。 |
| |
因此,我只想通过一个非常简单的例子来清楚地说明这一点。 |
| |
假设我有 10 个观测值,我想用它们进行引导抽样,如下所示。例如,第一个观测值 24.93 在第一个样本中出现了两次,在第二个样本中出现了一次,等等。 |
| |
25.06 出现两次。25.89 根本不出现,在这种情况下我可以这样做 100 次 |
| |
然后,对于每个引导样本,我会求平均值,比如说,我对平均值的分布感兴趣。好了,这里我得到了平均值的分布。 |
| |
我可以看看它是什么样子的。我们到了。 |
| |
它看起来呈钟形,我在这里突出显示了几个点,如果我使用百分位数技术,这些将是我的 90% 置信区间。 |
| |
这是排序后的向量,第五个百分位数是 25.84,第 95 个百分位数是 27.68。 |
| |
如果我想用BCa方法,我可能会得到一些不同的百分位数。所以这个例子是25.78和27.73。所以 |
| |
很快,BCa 方法是什么。在我们的例子中,我们会有样本…… |
| |
我们会根据压力模式进行引导。你会有多个样本,这些样本会在不同的压力模式下运行和模拟,然后 |
| |
用这些方法进行引导。这样我们就能得到先前估计值或先前参数的分布,即 logA、EA 和 sigma |
| |
正确的。 |
| C惠特曼 |
再次重申一下,这是我们的等式。 |
| |
再次强调,JMP |
| |
我现有的 JMP 版本不支持引导法。JMP Pro 支持,但我现有的版本不支持,不过幸运的是,R 支持引导法。而且我可以在 JMP 内部调用 R。这就是我选择这种方式的原因。所以我 |
| |
我可以,但R会做所有艰苦的工作。所以我想证明 |
| |
举个例子,我选择了一些已知的logA、EA和sigma的真实值。这些值是随机在一定范围内选取的。 |
| |
然后我会选择这些参数多次相同的值,每次都生成样本。例如,我三次选择-28.7作为logA true,并且 |
| |
我们从中获取数据。每个测试级别总共有五个部件,或者说六个测试级别,如果你还记得的话,三个坡道,两种不同的温度,六个级别,六乘以五等于30。 |
| |
因此,该测试总共运行了 30 个部分,并且查看 logA 帽,最大似然估计值约为 28 左右。 |
| |
所以这实际上效果很好。我可以看看……现在,对于我的下一个样本,我在这里做了三次重复实验,例如,减去5.7,当我运行我的方法,得到最大值时,结果大约在减去5.7左右。所以这个方法看起来效果很好。 |
| |
但让我们更详细地讨论一下。 |
| |
我跑到这里 |
| |
本次模拟共250次,每组5次。 |
| |
LogA true、EA true 重复了五次,我得到了 logA hat、EA 等的不同估计值。 |
| |
我还用BCa方法为每个参数以及平均失效时间(TMT)建立了置信区间。让我们来看一下,并绘制这些数据,看看它的表现如何。 |
| |
这里用 logA hat 和 logA true 做比较,我们可以看到斜率大约在 1 左右,截距与 0 没有显著差异,所以这实际上做得很好。如果我的 logA true 是 |
| |
在-15时,我的估计值大约在-15左右,或多或少。其他参数EA、n和sigma也是如此,我甚至在某个特定的p零点处也做了同样的计算。所以一切都运行良好。 |
| |
我们还想知道,BCa 方法的效果如何?事实证明,效果相当不错。 |
| |
我想……问题是BCa方法有多成功。我这里给出了一个分布。每次我正确地用括号括起已知的真值,我都会得到1。如果我没括起,我就会得到0。 |
| |
所以,对于logA,我91%的时候正确地括住了已知的真值。我选择的数值是95%,所以非常接近。我的数值在90%出头,而对于活化能、能量等等,我得到的结果也差不多。它们都在90%左右。所以这实际上是相当不错的一致性。 |
| |
现在假设我想看看如果我将引导迭代和引导次数从 100 增加到 500 会发生什么。那会是什么样子? |
| |
如果我将我的 MLE 与真实值进行绘图,你会得到大致相同的结果。 |
| |
估计结果相当不错。斜率始终在 1 左右,截距始终在 0 左右。所以,结果相当不错。 |
| |
然后如果我看一下置信区间宽度, |
| |
平均而言,我在这里得到的置信区间宽度约为 23,mu 约为 20, |
| |
值 n。因此,这些置信区间实际上有些宽。 |
| |
我想看看会发生什么。假设我把样本量增加到 50 |
| |
而不是只用5个?50个样本量不太现实,我们不可能做那么多。那样做会非常困难,而且非常耗时。 |
| |
但这是模拟,所以我可以运行任意多个部分。为了验证一下,我再次看到最大似然估计与已知的真实值非常吻合。斜率为 1,截距在零附近。 |
| |
还有BCa, |
| |
我的包围曝光准确率大约在 95% 左右,符合预期。所以这表现得相当不错,而且我的置信区间宽度, |
| |
现在低多了。所以,通过增加样本量,正如你所料,会议边界会相应降低。 |
| |
这个值最初在20多岁,现在大约是7岁。mu值也最初在20多岁,现在大约是5岁;n最初在10左右,现在大约是2.3,所以我们通过增加样本量获得了更好的表现。 |
| |
这只是显示了摘要的样子。 |
| |
所以这里我有一个针对这些不同组的成功率;n 是每个测试级别的零件数量。 |
| |
boot 是我创建的引导样本的数量。所以 5_100、5_500 和 50_500,你可以看到这实际上是相当平坦的。你没有得到 |
| |
覆盖范围大幅提升。我们测得的分辨率大概在95%左右。这基本符合你的预期。 |
| |
因此,通过改变引导程序重复次数或样本量,我不会改变太多。即使每个测试水平有五个部件,引导程序迭代次数为 100 次,BCa 也相当于取得了相当不错的成绩。 |
| |
关于宽度。 |
| |
但在这里我们看到了好处。随着引导迭代次数的增加,置信区间的宽度正在下降。除此之外, |
| |
如果增加样本量,置信区间就会大幅下降。所以所有这些行为都是可以预料到的。 |
| |
但这里的重点是,这个模拟可以让你提前知道,我的样本量应该有多大? |
| |
我可以每个条件运行三个部分吗?为了获得我想要的置信区间宽度,我需要每个条件运行五个或十个部分吗? |
| |
同样,当我进行分析时,我需要进行多少次引导迭代才能达到 110 的水平?我需要 1000 次吗?这也会让你对分析时需要做什么有所了解。 |
| |
好了,现在我们终于掌握了最大似然估计和置信区间。所以我们可以 |
| |
我们可以用安全操作区来总结我们的结果,再次 |
| |
我们得到的是可靠性图,或者说温度与功率之间的响应面。这样你就能了解部件在各种条件下的可靠性。 |
| |
这对设计师或客户来说非常有帮助。设计师想知道,当他们创造一个零件,或者模仿一个零件时,它能持久吗? |
| |
他们是否正在设计一个可以在更高温度或更高功率下运行的部件,以便平均故障时间太低。 |
| |
客户还想知道,当他们使用这个部件时,它能用多久?SOA 提供的就是这些信息。 |
| |
我这里要给出的指标是平均故障时间 (MTT)。你也可以使用其他指标。你可以使用拟合率,也可以使用“???”,但为了便于说明,我仅使用平均故障时间。 |
| |
一个更好的指标,正如我将要展示的,是对平均故障时间的较低置信区间。它能给你一个更保守的估计 |
| |
所以最终,SOA 可以让你在温度和功耗之间做出权衡。这是我们的 SOA 等值线图。 |
| |
这些等值线是以 10 为底的中位故障时间的对数。因此,我们得到了功率与温度的关系图。随着温度下降和功率下降,这些等值线会越来越大。因此,正如预期的那样,当你降低应力时,中位故障时间就会增加。 |
| |
假设我们有一个企业目标,这个企业目标是,你希望零件能够持久耐用,或者平均故障时间大于 10 到 6 小时。 |
| |
如果你看一下这张图,在我们选择的功率和温度范围内,看起来一切都很顺利。这里没有任何问题。平均故障时间很容易达到 10 到 6 小时甚至更长。 |
| |
所以,我们必须意识到,中位故障时间只是一个平均值,平均值只能反映一半的情况。我们必须采取措施承认这个估计值中的不确定性。因此,我们在实践中的做法是,对中位故障时间使用一个会议下限。 |
| |
因此您可以看到这些轮廓已经发生了变化,变得非常低,因为我们使用了较低的置信界限,这里,这条线给出了 10 的 6 小时次方。 |
| |
你可以看到,现在只是到达范围的一部分。所以,绿色区域这边,很好。对。你可以在这里安全操作,但红色区域很危险。在这里跑动不安全。这里是怪物出没的地方。你不会想在这么危险的情况下跑动。 |
| |
而且,这还能让你做出权衡。例如,假设一位设计师希望他们的部件在 80 摄氏度下运行。 |
| |
没问题,只要它们将功率水平保持在 29.5 dBm 以下即可。 |
| |
同样,假设他们想在 90 摄氏度下运行器件。只要功率足够低,比如说 27.5 dBm,就可以。没错。所以,你可以在温度和功率之间做出权衡。 |
| |
好的,现在总结一下。 |
| |
因此,我展示了恒定压力测试和步进压力测试之间的差异,并展示了如何从模拟步进压力数据中提取最大似然估计和 BCa 置信界限。 |
| |
我证明了估计值和已知真实值之间有相当好的一致性。此外, |
| |
BCa 方法效果很好,即使 n 引导只有 100 且每个测试级别有 5 个部分,我们的覆盖率也达到了 95% 左右。 |
| |
随着我们增加引导迭代次数或增加样本量,覆盖率并没有发生太大变化。然而,我们确实看到置信区间宽度发生了很大变化。 |
| |
结果表明,我们可以做出某种权衡。同样,通过模拟,我们可以知道需要运行多少次引导迭代,以及每个测试条件需要运行多少个部件。 |
| |
最后,我们采用这些最大似然估计和引导置信界限并创建了 SOA,它为客户和设计师提供了有关特定 T0/P0 组合安全性的指导。 |
| |
然后,根据可靠性图,我们就能在温度和功率之间做出权衡。 |
| |
最后,我证明了使用中位故障时间的下限置信区间 |
| |
确实为安全操作区(SOA)提供了更保守的估计。因此,本质上,使用较低的置信区间会使安全操作区(SOA)更安全一些。我的演讲到此结束。非常感谢您的宝贵时间。 |