如何在Excel中进行公差分析?

如何在Excel中进行公差分析?

下列的这个问题我想知道是否有可能做一个一维的公差分析在 Excel/VBA 中。考虑下面带有一些点的线:

在此处输入图片描述

N - 1当然,为了获得完全定义的几何形状,您至少需要独立的相对尺寸。尺寸是公差的。这意味着它们具有<nominal> ±<tolerance>性质。如果A = a ±bB = c ±d,则A + B = (a + c) ±(b + d)A - B = (a - c) ±(b + d)。我想要的是像下面这样的表格:

在此处输入图片描述

基本上定义N - 1值,然后获取其余值。在上面的例子中,如果①, ②, ③, ④给出了尺寸,则尺寸⑤, ⑥, ⑦, ⑧, ⑨, ⑩应该是可计算的。

主要问题是我不知道如何解决这个问题。我想我需要

  1. 定义一个新的公差尺寸数据类型,正如我尝试的那样这里
  2. 为上述数据类型定义添加和扣除方法以及它们在 Excel 单元格中的字符串表示
  3. 如果解决了以上两个问题,我可以手动创建并填充表格。

答案1

回答有关数据类的第一个问题

您可以使用复杂的数学运算来表示公差(最小值和最大值,而不是标准偏差)作为虚部的一部分:

A1 =COMPLEX(a, b)
A2 =COMPLEX(c, d)

添加很简单:

A3 =IMSUM(A1, A2) = (a + c) + i (b+d)

但是减法需要对减数进行共轭:

A4 =IMSUB(A1, IMCONJUGATE(A2)) = (a - c) + i (b+d)

仅用于显示目的:

A5 =SUBSTITUTE(SUBSTITUTE(A3, "+","+-"),"i","")

这对于对称公差和仅加减都有效。

现在解决未知维度矩阵:

我已经想出一种方法来确定所有尺寸,但还不能同时拖动公差。简而言之,如果您的表格如下所示:

在此处输入图片描述

其中 vi 表示从原点到点 i 的向量,那么维度可以表示为 vi - vj = 从 j 到 i 的距离。正距离表示 i > j,反之亦然。该表应读作 v_column - v_row,即列 v2 和行 v4 中的单元格是距离 v2 - v4(在此示例中应为负值)。

诀窍在于意识到对于表格中的任何未知单元格,最多有 n 种方法可以解决它,即 v3 - v2 = (v3 - v1)+(v1 - v2) = (v3 - v2)+(v2 - v2) = (v3 - v3)+(v3 - v2) = (v3 - v4)+(v4 - v2) = (v3 - v5)+(v5 - v2)。

如果你仔细观察斜体和粗体向量,你会发现斜体都是 v3 - vj (V3 列数组),而粗体都是 vi - v2 (V2 行数组),因此

TRANSPOSE(*V3 column*) + (**V2 row**) = { v3 - v2 , v3 - v2 , v3 - v2 ...}

即,要解决表中的位置 i,j,请逐个元素添加列 i(转置)和行 j,您将得到一个行数组,其中所有元素的值都与您要解决的 vi - vj 相同。但是,如果有任何“空白”/其他未知数,则此数组的元素将为空白、NaN 错误等,您必须使用 N() 和 ISVALUE() 对其进行过滤,例如:

=IFERROR(SUMPRODUCT((N(TRANSPOSE(V$2:V$6)) + TRANSPOSE(N(TRANSPOSE($V2:$Z2))))*(TRANSPOSE(ISNUMBER(V$2:V$6)) * ISNUMBER($V2:$Z2)))/SUMPRODUCT((TRANSPOSE(ISNUMBER(V$2:V$6)) * ISNUMBER($V2:$Z2))),"")

此方法使用 N() 函数将行和列数组相加,将空白转换为零。然后将数组乘以 ISNUMBER 掩码(例如 { 1, 0 ...})以丢弃空白对的“其他项”。最后将数组相加以获得 m * (vi - vj),然后除以 m(有效 (vi - vj) ​​对的数量)。必须使用 CTRL + SHIFT + ENTER 将此公式作为数组公式输入,然后将其复制并粘贴到 nxn 表中以生成已解决的表格。如果此表中有任何空白,请运行相同的算法几次,它将逐步填充空白。

现在,这个解决方案还不是理想的,因为公差还没有被计算(还没有) - 但它是值得深思的。

相关内容