扬声器 | 成绩单 |
| 惠特曼 | 好的。 嗯,非常感谢您参加我的演讲。 我的名字是查理·惠特曼。 我在 Corvo,今天我将讨论使用 R 在 JMP 中进行步骤压力建模。 |
| 首先,让我先做一个介绍。 我将谈谈压力测试、它是什么以及我们为什么这样做。 |
| 有两种基本类型。 有持续的压力和阶跃的压力;分别谈一点。 然后当我们从阶跃应力或恒定应力测试中得出结果时 |
| 是模型参数的估计。 这就是我们需要做出预测的。 因此,在压力测试中,我们对非常高压力的部分施加压力,然后利用该数据并推断使用条件,我们需要模型参数来做到这一点。 |
| 但模型参数只是故事的一半。 我们还必须承认,这些估计存在一些不确定性,我们将在置信范围内做到这一点,我将讨论我用来做到这一点的引导方法。 |
| 到最后, |
| 借助我们的最大似然估计和引导置信界限,我们可以创建称为安全操作区域的东西, |
| SOA,有点像可靠性图。 您也可以将其视为响应面。 所以我们要得到的是......找到可以安全操作您的零件的区域和不安全的区域。 然后我会得出一些结论。 |
| 那么什么是压力测试呢? 在压力测试中,您会对零件施加压力,直到发生故障。 有时你不会失败,而是会失败。有时,您必须开始、停止测试并做其他事情。 |
| 在这种情况下,您有一个传感器数据点,但模拟中使用的最大似然法考虑了传感器,因此您不必 100% 失败。 我们有能力让某些部件不发生故障。 |
| 所以你所做的就是根据一些设计的实验或一些矩阵或类似的东西,在不同的条件下对这些部分施加压力。 所以你可能会跑 |
| 你的压力可能是温度、功率、电压或类似的东西,你将在不同的条件、不同的压力下运行你的零件,然后将那些数据适合你的模型,然后推断出使用条件。 |
| mu = InA + ea/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 |
| Tambient是我们的环境温度; P为功率; R th 称为热阻抗,是一个常数。 所以,这意味着,当我设置功率时,我知道功率是多少,然后我还可以估计每个步骤的温度。 |
| 因此,我们想要做的是以某种方式从我们的阶跃应力模式中获取这些故障时间,并将其推断为使用条件。 |
| 如果我只是跑步,比如,只跑这里的时间增量 t |
| 我想推断出使用条件,我要做的就是乘以......得到等效的时间增量 t 乘以加速因子。 这是加速因子。 我有一个活化能项、温度项和功率项。 |
| 所以我要做的就是乘以 AF。 由于我要从高压力降到低压力,AF 大于 1,这只是为了说明目的,它并不比 1 大多少,但您明白了。 |
| 当我增加功率时,温度和功率会发生变化,因此 AF 随着每一步的变化而变化。 |
| 因此,如果我想获得使用条件下的等效时间,我必须进行求和。 所以我有每个部分。 |
| 它有自己的加速因子,也许还有自己的 delta t。 然后我做一个求和,这给了我同等的时间。 |
| 因此,如果我确切地知道 Ea 是什么和 n 是什么,我将使用它们来预测设备时间的表达式,我可以预测等效时间是什么。 这就是我们的想法。 |
| 事实证明……正如我所说,温度和功率是混淆的。 因此,为了进行估计,我们必须运行到两个不同的环境温度 |
| 如果环境温度足够分离,那么您实际上可以分离功率和温度的影响。 |
| 您还需要至少两个斜坡率。 因此,至少,您需要一个由升温速率和环境温度组成的二乘二矩阵。 |
| 在我所做的模拟中,我选择了三种不同的速率,如下所示。 我的功率单位为 dBm 与压力时间 |
| 我有三个不同的坡道,但速度不同。 我将有一个快速、中速和慢速的斜坡率。 在实践中,你会让这种情况一直持续下去,直到失败,但我只是在几个小时后随意切断它。 你在这里也看到我有一个天花板。 |
| 天花板是四;这是因为我们发现,如果我们任意增加压力或力量,我们就可以改变失败机制。 |
| 您要做的是确保加速条件下的故障机制与使用条件下的故障机制相同。 如果我改变 |
| 我无法进行推断的故障机制。 外推法是无效的。 |
| 因此,我们的上限为 34.4 dBm,我们甚至给自己留了一点缓冲,以确保我们不会接近这个值。 |
| 因此,我们的环境温度为 45 摄氏度,我们的启动功率为 33.5 dBm,因此我们还有另一组条件: |
| 135度。 看,你可以看到这里的模式是相同的。 我们有一个上限,他们有一个缓冲区,一切,除了我们以较低的功率开始。 所以这里我们低于 32 dBm,而之前我们超过 33 dBm。 |
| 我们这样做的原因是,如果我们不在这么高的温度下降低功率,那么如果你不小心的话,你几乎会立即出现故障,然后你就无法使用数据来做你的推断。 |
| 好吧,我们再次需要的是等效时间的表达式,正如我之前展示的那样。 就是这个表情。 这是 |
| 有点令人讨厌,我不知道如何从第一原理推导出等效使用时间条件分布的表达式是什么。 所以,当面对这样一些困难的事情时,我选择做的是使用引导程序。 |
| 那么什么是引导? |
| 因此,通过引导,我们所做的就是通过替换对数据集进行多次重新采样。 这意味着从原始观察数据集中,您可以复制原始数据集,或者观察结果可能不会全部出现。 |
| 我使用的方法称为非参数方法,因为我们不假设分布。 我们不必知道数据的基本分布。 |
| 因此,当您生成这些许多引导样本时,您可以获得参数的近似分布,这使您可以进行统计推断。 特别是,我们有兴趣对事物设定信心界限。 这就是我们需要做的。 |
| 引导的简单示例称为百分位引导。 举例来说,假设我想要某个估计的 90% 置信区间。 |
| 我要做的就是形成很多很多引导程序复制,然后从每个引导程序样本中提取参数。 然后我会对它进行排序,找出该向量的偏移和第 95 个百分位,这些将形成我的 90% 置信界限。 |
| 我在工作中实际上所做的是对百分位数的改进,一种技术。 它被称为 BCa,代表偏差纠正和加速。 |
| 偏差是因为有时我们的估计存在偏差,而该方法会考虑到这一点。 |
| 不幸的是,“加速”一词在这里令人困惑。 它与加速测试无关,它与方法有关,方法与调整有关 |
| 为分布的偏度。 但最终你...你会得到的是 |
| 它将为您选择不同的百分位值。 因此,对于百分位数技术,我们有第五位和第九十五位。 |
| bootstrap 或 BCa bootstrap 可能会给你一些不同的东西,可能会说第三个百分位数和 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 的分布 |
| 正确的。 |
| 惠特曼 | 再说一次,这是我们的等式。 |
| 再说一次,JMP |
| 我的 JMP 版本不支持引导。 JMP Pro 可以,但我的版本没有,但幸运的是 R 确实可以进行引导。 我可以从 JMP 中调用 R。 这就是为什么我选择这样做。 所以我有 |
| 我可以,但 R 会做所有艰苦的工作。 所以我想展示 |
| 举个例子,我所做的是为 logA、EA 和 sigma 选择一些已知的真实值。 我在一定范围内随机选择了它们。 |
| 然后我会选择多次为这些参数选择相同的值,并在每次这样做时生成样本。 例如,我为 logA true 选择了 3 次负 28.7, |
| 我们从中得到数据。 每个测试级别总共有五个部分,或者六个测试级别,如果你还记得的话,三个斜坡,两个不同的温度,六个级别,六乘五等于 30。 |
| 因此,此测试总共运行了 30 个部分,并且查看 logA 帽子,最大似然估计约为 28 左右。 |
| 所以这实际上效果很好。 我可以看看……现在对于我的下一个样本,我在这里做了三个重复,例如负 5.7,当我运行我的最大值方法时,它看起来如何,大约是负 5.7 左右。 所以这个方法看起来效果很好。 |
| 但让我们更详细地介绍一下。 |
| 在这里我跑了 |
| 模拟共250次,每组5次。 |
| LogA true、EA true 重复五次,我对 logA hat、EA 等得到不同的估计。 |
| 我还使用 BCa 方法对每个参数以及平均故障时间形成置信界限。 因此,让我们看看并绘制这些数据,看看它的表现如何。 |
| 这里有 logA hat 与 logA true ,我们看到斜率大约在 1 左右,截距与 0 没有显着差异,所以这实际上做得相当不错。 如果我的 logA true 是 |
| 如果是负 15,那么我就得到了大约负 15 加上或减去我的估计值。 对于其他参数 EA、n 和 sigma 也是如此,我什至在特定的 p 零 P 零处进行了测试。 所以这一切都表现得很好。 |
| 我们还想知道 BCa 方法的效果如何? 事实证明,效果非常好。 |
| 我想...问题是 BCa 方法有多成功。 这里我有一个分布。 每次我正确地将已知的真实值括起来时,我都会得到一个 1。 如果我错过了,我就得0分。 |
| 因此,对于 logA,我在 91% 的情况下正确地将已知的真实值括起来。 我95%的时间都在选择,所以我已经很接近了。 我现在是 90 多岁,我在激活、能量等方面也得到了同样的结果。他们都在 90 多岁中下。 所以这实际上是一个很好的协议。 |
| 现在假设我想看看如果增加引导迭代次数并将引导次数从 100 增加到 500 会发生什么。 那看起来像什么? |
| 如果我将 MLE 与真实值绘制出来,您会得到同样的结果。 |
| 估计相当不错。 斜率始终在 1 左右,截距始终在 0 左右。 所以这表现得很好。 |
| 然后如果我看看置信区间宽度, |
| 看,平均而言,我在这里得到的置信界限宽度约为 23,对于 mu 约为 20 左右,对于 |
| 值 n. 所以这些置信区间实际上有点宽。 |
| 我想看看会发生什么。 好吧,假设我将样本量增加到 50 |
| 而不是只使用五个? 50 不是一个现实的样本量,我们永远不可能运行那么多。 这将是非常困难的,非常耗时。 |
| 但这是模拟,所以我可以运行任意数量的部件。 因此,为了检查,我再次看到最大似然估计与已知的真实值非常吻合。 同样,斜率为 1,截距为零。 |
| 还有BCa, |
| 正如预期的那样,大约 95% 的时间我都能正确进行包围曝光。 所以这也表现得很好,而且我的信心限制了宽度, |
| 现在要低得多了。 因此,正如您所期望的那样,通过增加样本量,会议界限会相应降低。 |
| 原本是20多岁,现在是7岁左右。 这也是……mu也是20多岁,现在是5左右; n 最初约为 10,现在约为 2.3,因此我们通过增加样本量来获得更好的行为。 |
| 所以这只是显示了摘要的样子。 |
| 所以这里我有一个相对于这些不同群体的成功率; n 是每个测试级别的零件数量。 |
| boot 是我创建的引导样本的数量。 所以 5_100、5_500 和 50_500,你可以看到实际上这是相当平坦的。 你没有得到 |
| 覆盖范围有很大改善。 我们正在 90 年代中期左右得到一些东西。 这正是您所期望的。 |
| 因此,通过改变引导重复的数量或改变样本大小,我不会改变太多。 BCa 相当于做得相当不错,即使每个测试级别有 5 个部分和 100 次引导迭代。 |
| 关于宽度。 |
| 但在这里我们看到了一个好处。 因此,随着我们增加引导迭代次数,置信界限的宽度会下降。 然后最重要的是, |
| 如果增加样本量,置信界限宽度就会大幅减小。 所以所有这些行为都是预料之中的, |
| 但这里的要点是,这个模拟可以让你提前知道,我的样本量应该有多大? |
| 我可以摆脱每个条件的三个部分吗? 我是否需要为每个条件运行 5 个或 10 个零件才能获得所需的置信区间宽度? |
| 同样,当我进行分析时,我需要进行多少次引导迭代才能摆脱 110 的困扰? 我需要1000吗? 这还可以让您了解在进行分析时需要做什么。 |
| 好吧,最后,我们现在已经有了最大似然估计和置信界限。 所以我们可以做 |
| 我们可以使用安全操作区域总结我们的结果,并且再次 |
| 我们在这里得到的是可靠性图或温度与功率的响应面。 因此,您将了解该零件在各种条件下的可靠性。 |
| 这对于设计师或客户来说非常有帮助。 设计师想知道当他们创造一个零件、模仿一个零件时,它会持久吗? |
| 他们是否设计了一个在更高温度或更高功率下运行的零件,以便使平均故障时间太短。 |
| 客户还想知道当他们运行这个部件时,该部件能持续多久? SOA 为您提供的就是这些信息。 |
| 我在这里给出的指标是中位故障时间。 您可以使用其他指标。 您可以使用适合率,也可以使用 ???,但出于说明目的,我仅使用中位故障时间。 |
| 正如我将展示的,一个更好的指标是中位故障时间的置信下限。 这是给你一个更保守的估计 |
| 因此最终,SOA 将允许您在温度和功耗之间进行权衡。 这是我们的等高线图,显示了我们的 SOA。 |
| 这些等值线是以 10 为底的平均故障时间的对数。 因此,我们得到了功率与温度的关系,随着温度下降和功率下降,这些轮廓变得越来越大。 因此,当您按照预期降低压力时,失败的中值时间就会增加。 |
| 假设我们有一个公司目标,而公司目标是,您希望零件能够持续使用,或者中位故障时间大于 10 到 6 小时。 |
| 如果你看一下这张地图,在我们选择的功率和温度范围内,看起来我们是黄金般的。 这里没有问题。 中位故障时间很容易达到 10 到 6 小时或更长。 |
| 这告诉我们,我们必须认识到,中位时间故障再次是一个平均值,平均值只能说明一半的问题。 我们必须采取一些措施来承认这一估计的不确定性。 因此,我们在实践中所做的是使用较低的会议界限来限制中位故障时间。 |
| 所以你可以看到这些等值线已经发生了变化,变得低得多,因为我们使用的是置信下限,在这里,这条线给出了 10 到 6 个小时。 |
| 您可以看到,现在这只是覆盖范围的一部分。 所以在绿色这里,这很好。 正确的。 您可以在这里安全操作,但红色是危险的。 在这里跑步并不安全。 这就是怪物所在的地方。 你不想让你的部分运行得这么热。 |
| 而且,这还允许您进行权衡。 举例来说,假设一位设计师希望他们的零件在 80 摄氏度下运行。 |
| 只要将功率水平保持在 29.5 dBm 以下就可以了。 |
| 同样,假设他们想要在 90 摄氏度下运行该部件。 可以,只要功率保持足够低,比如 27.5 dBm,就可以了。 正确的。 因此,您可以在温度和功率之间进行权衡。 |
| 好吧,现在只是总结一下。 |
| 因此,我展示了恒定压力测试和阶跃压力测试之间的差异,并展示了如何从模拟阶跃压力数据中提取最大似然估计值和 BCa 置信区间。 |
| 我证明了我们的估计值和已知的真实值之间有很好的一致性。 此外, |
| BCa 方法效果非常好,即使 n boot 只有 100 个并且每个测试级别有 5 个零件,我们也有大约 95% 的覆盖率。 |
| 当我们增加引导迭代次数或增加样本量时,覆盖范围并没有太大变化。 然而,我们确实看到置信边界宽度发生了很大变化。 |
| 那里的结果表明我们可以做出某种权衡。 同样,我们可以从模拟中知道需要运行多少次引导迭代以及每个测试条件需要运行多少个部件。 |
| 最终,我们采用了这些最大似然估计和引导置信界限并创建了 SOA,它为客户和设计人员提供有关特定 T0/P0 组合的安全性的指导。 |
| 然后根据可靠性图,我们可以在温度和功率之间进行权衡。 |
| 最后,我证明了使用中位故障时间的置信下限 |
| 确实为 SOA 提供了更保守的估计。 因此,从本质上讲,使用置信下限会使 SOA(安全操作区域)更加安全。 我的演讲到此结束。 非常感谢您抽出时间。 |