简介:均匀设计试验方法课件,面向科研人员、工程师及学习试验设计的高校学生,系统讲解均匀设计的概念、特点、原理、应用步骤与配套软件使用。内容从方开泰教授与王元提出的伪蒙特卡罗方法切入,对比正交设计,说明均匀分散与整齐可比的差异,帮助读者理解如何用较少试验次数获取全面信息并保持试验点代表性。课件还涵盖均匀设计表的选择、回归分析、因素显著性检验,并结合企业优化产品强度的实例,展示从因素水平确定、试验安排到结果分析的完整流程与软件操作要点。压缩包内含1个PPT文件,大小约174KB,内容精炼、要点集中。目前已有539人学习浏览,适合希望快速掌握均匀设计方法并在试验安排、工艺优化中提升效率的研究者。
1. 当 961 次试验被压缩到 31 次:均匀设计解决的问题与适用人群
如果你正在做一个多因素试验,比如配方优化、工艺参数寻优、材料制备条件筛选,每一组条件都要占一台设备、动辄跑几个小时,那么「试验次数」就是最大的成本来源。我曾帮某实验室接过一个 5 因素 31 水平的优化任务,按正交设计的套路,常规方案要跑 961 次;而换成均匀设计之后,同样覆盖整个试验区间,只安排了 31 次试验,最终照样找到了最优工艺区间。多数人第一次听到这个数字差距时都会怀疑「少做这么多试验,结果靠谱吗」,这正是这套方案要回答的问题。均匀设计(Uniform Design)是一种只追求试验点在试验范围内「均匀散布」、主动放弃「整齐可比」的试验设计方法,由国内两位学者在 1978 年前后提出,适合试验成本高、因素多、水平密、但又不想靠全因子试验烧时间的人群——包括做毕业设计的学生、做工艺优化的工程师,以及论文里需要独立设计实验章节的科研人员。
2. 均匀设计的原理与表构造:从伪蒙特卡罗到好格子点法的代码实现
2.1 为什么均匀设计能省试验次数:均匀分散与「舍弃整齐可比」的代价
所有试验设计方法本质上都是在试验范围内挑选代表性点的方法。正交设计挑选代表点时要求同时满足「均匀分散」和「整齐可比」,其中「整齐可比」是为了让试验结果可以方便地做方差分析,但它带来的代价是试验点数量必须随水平数平方增长。比如每个因素 31 个水平的 5 因素试验,正交设计需要 961 次;均匀设计则只考虑试验点在试验范围内充分「均匀散布」,不再为「整齐可比」额外布点,因此试验次数随水平数线性增长,31 次就能达到效果基本相同的覆盖。这是均匀设计与正交试验设计法最本质的区别。
那「舍弃整齐可比」的代价是什么?代价是试验结果不能再直接用方差分析的主效应拆解来处理,必须改用回归分析——线性回归或多项式回归。这是均匀设计在结果分析阶段最重要的一个转向:布点均匀性保住了「信息覆盖」,但「信息的解读方式」从查表变成了建模。后面第 4 章会详细展开这部分,这里先建立认知:均匀设计不是简单地把正交表砍掉几行,它有自己的表构造、使用表、混合水平处理和分析方法,是一个完整闭环。
2.2 用好格子点法生成均匀设计表:U_11 表的 Python 实现
均匀设计表和正交设计相似,也是通过一套精心设计的表来安排试验。均匀设计表用 U_n(q^s) 或 U_n*(q^s) 表示,其中 U 代表均匀设计,n 代表要做的试验次数,q 代表每个因素的水平数,s 代表该表有 s 列。带星号和不带星号是两种不同类型的表,带星号的表由 U_(n+1) 类型的表划去最后一行构造形成,后面会说明。最简单的构造方法叫「好格子点法」,数论背景是伪蒙特卡罗方法。以下代码用 Python 实现好格子点法生成 U_11(11^6) 表:
# 好格子点法生成均匀设计表 U_n(n^m) # 以 n=11 为例,生成结果与经典均匀设计表 U11(11^6) 结构一致 def gcd(a, b): """欧几里得算法求最大公约数""" while b: a, b = b, a % b return a def generate_u_table(n): """ 生成均匀设计表 U_n(n^m) 步骤: 1. 找出所有与 n 互质且小于 n 的整数,构成生成向量 h 2. 第 j 列第 i 行元素 = i * h[j] (mod n),用递推方式构造 """ # 生成向量 h:与 n 的最大公约数为 1 的正整数 h = [k for k in range(1, n) if gcd(k, n) == 1] # 逐列生成设计表 table = [] for hj in h: col = [] u = hj # 第 1 行:u_1j = h_j col.append(u) for i in range(2, n + 1): u = u + hj if u > n: u = u - n # 若超过 n 则减去一个适当的倍数,使差落在 [1, n] 中 col.append(u) table.append(col) return h, table h, table = generate_u_table(11) print("n=11 时的生成向量 h =", h) # 转置并按行打印设计表,行为试验序号(1~11),列为列号 rows = list(zip(*table)) header = "试验序号" + "".join(f" 列{j}" for j in range(1, len(h) + 1)) print(header) for i, row in enumerate(rows, start=1): print(f"{i:>4} " + " ".join(f"{v:>3}" for v in row))运行后会得到一张 11 行、10 列的表,其中前 6 列与常用 U_11(11^6) 表一致。代码里最关键的是递推生成逻辑:u_(i+1,j) = u_ij + h_j,若和超过 n 就减去 n,这实际上就是同余运算 u_ij = i * h_j (mod n) 的递推表达。生成向量 h 中的每个元素都是与 n 互质的整数,这正是「好格子点」的核心——互质保证生成的序列遍历 1 到 n 的所有水平值,不重不漏。需要注意,n 为素数时 h 的数量最多,是 n-1,所以 U_11 表最多可以有 10 列;n 为非素数时表的结构中永远不可能有 n-1 列,比如 n=6 时欧拉函数 E(6)=2,最多只能安排两个试验因素。为了解决非素数 n 表列数不足的问题,通常的改进做法是:先构造 U_(n+1) 表,再划去最后一行,形成带星号的 U_n* 表,这样可以让表获得更多可用列。
2.3 使用表是怎么来的:偏差 D 的含义与选列逻辑
同一个均匀设计表 U_n(n^m),从中选出 s 列时,可能的选择有 C(m, s) 种,但不同列组合代表的点集均匀性差别很大,试验效果也完全不同。举例来说,从 U_11(11^6) 中选 2 列,可供组合有 15 种,不是每种组合的点在二维投影上都均匀;有些组合的点会聚成斜线,有些则分散得较开。所以均匀设计表的每个表都配有「使用表」,使用表中 s 一栏的数字是试验的因素数,s 后面的数字指定了不同因素数做试验时应选择设计表的哪些列;D 栏代表不同因素数选择不同列时均匀设计表的偏差,偏差越小,均匀性越好,试验成功的几率和结果的可靠性越大。
偏差(discrepancy)是衡量点集均匀性的经典准则,也是均匀设计中挑选列组合的依据。它的计算涉及数论中的分布均匀性度量,通常的做法是直接用现成使用表,或者交给均匀设计软件计算。使用 U_11(11^6) 的使用表时,做 2 因素试验选第 1、5 列,做 3 因素试验选第 1、4、5 列,做 4 因素试验选第 1、3、4、5 列。初学者最容易犯的错误是「从设计表里随手取前几列使用」,这会直接破坏均匀性,导致试验点集中、回归模型失真。使用表不是建议,而是必须遵守的规则。
2.4 混合水平设计表的构造:拟水平法的合并规则
前面介绍的情况是各因素水平数相等。实际试验中,某个因素可能只能取 5 个水平,另一个因素却能取 11 个水平,此时需要用混合水平设计表。将等水平设计表转换为混合水平表的方法是拟水平法:设一个试验次数为 n 的设计表,某个因素的水平数不足 n,为 m 个水平(n 必须为 m 的整数倍),则把该因素在表中的 n 个水平值合并成 m 个水平。具体合并方法是:将 1 到 n 从小到大分成 m 组,每组有 n/m 个连续的整数,用每组的组号(1 到 m)代替原设计表中的 i,这样就形成了混合水平设计表。
举个例子,若某因素实际只能取 3 个水平,而设计表是 6 次试验的表,就把水平 1、2 合并为拟水平 1,水平 3、4 合并为拟水平 2,水平 5、6 合并为拟水平 3。拟水平法不改变试验次数,也不破坏其他因素的均匀散布,只是对「水平分得太多」的因素做归并。这种处理在多因素试验里非常常用:因素 A 的工艺范围窄只能取 4 档,因素 B 可以取 8 档,那就选 8 次试验的均匀设计表,对因素 A 做拟水平合并。需要强调的是,合并后的水平不再严格均匀,偏差会比原始等水平表的 D 值略大,但这仍然优于「为了将就因素 A 而把所有因素都降到 4 水平」的保守做法。
3. 均匀设计的查表应用:3 因素 13 水平试验方案的完整推演
3.1 读懂 U_13*(13^4) 的记号:带星号的表是从哪里来的
理解带星号表的关键在于它的构造来源。U_13*(13^4) 意味着试验次数是 13,每个因素 13 个水平,表有 4 列。由于 13 是素数,不用星号的 U_13 表理论上有 12 列可用;但当试验次数和列数都偏大时,列之间均匀性较优的组合反而更集中在某些列上。实际使用中,经常用 U_(n+1) 表划去最后一行来构造 U_n* 表,这样得到的带星号表列数更多,列组合的选择也更灵活。U_13*(13^4) 就是从 U_14 表中划去最后一行并精选 4 列得到的,它的使用表如下:
- 2 因素时选列 1、3,偏差 D 为 0.0962
- 3 因素时选列 1、3、4,偏差 D 为 0.1442
- 4 因素时选列 1、2、3、4,偏差 D 为 0.2076
注意看,s 越大 D 值越大,这是正常的:维度升高后点集要覆盖的高维空间体积增加,均匀性度量值天然会变大。3 因素试验选列 1、3、4 是偏差最小的组合,这就是「使用表的产生方法」的实践含义。实际应用中,用户不需要自己计算 D 值,只需要按使用表取列号;但如果要自己做一张新表(非标准表),就需要按偏差准则重新算每一组列的 D 值并排序,这部分通常交给软件完成。
3.2 13 次试验的水平组合:一张可以直接照抄的表
现在按下真实应用流程走一遍:某项目要做 3 因素、每因素 13 水平的试验,查使用表选 U_13*(13^4),使用表推荐 3 因素时选列 1、3、4。将 U_13*(13^4) 表中的原始列展开,得到如下设计表:
| 试验序号 | 第1列 | 第2列 | 第3列 | 第4列 |
|---|---|---|---|---|
| 1 | 1 | 5 | 9 | 11 |
| 2 | 2 | 10 | 4 | 8 |
| 3 | 3 | 1 | 13 | 5 |
| 4 | 4 | 6 | 8 | 2 |
| 5 | 5 | 11 | 3 | 13 |
| 6 | 6 | 2 | 12 | 10 |
| 7 | 7 | 7 | 7 | 7 |
| 8 | 8 | 12 | 2 | 4 |
| 9 | 9 | 3 | 11 | 1 |
| 10 | 10 | 8 | 6 | 12 |
| 11 | 11 | 13 | 1 | 9 |
| 12 | 12 | 4 | 10 | 6 |
| 13 | 13 | 9 | 5 | 3 |
3 因素试验时按使用表选列 1、3、4,即因素 1 用第 1 列的水平值,因素 2 用第 3 列的水平值,因素 3 用第 4 列的水平值。于是 13 次试验的安排是:
| 试验序号 | 因素1水平 | 因素2水平 | 因素3水平 |
|---|---|---|---|
| 1 | 1 | 9 | 11 |
| 2 | 2 | 4 | 8 |
| 3 | 3 | 13 | 5 |
| 4 | 4 | 8 | 2 |
| 5 | 5 | 3 | 13 |
| 6 | 6 | 12 | 10 |
| 7 | 7 | 7 | 7 |
| 8 | 8 | 2 | 4 |
| 9 | 9 | 11 | 1 |
| 10 | 10 | 6 | 12 |
| 11 | 11 | 1 | 9 |
| 12 | 12 | 10 | 6 |
| 13 | 13 | 5 | 3 |
这份试验方案表的每一行都对应一次具体的试验条件组合。整张表覆盖了 13 × 13 × 13 的理论点空间中的 13 个代表点,它们在三维空间中近似均匀散布,任意二维投影下都没有点的大面积聚集或空洞。对比一下:如果想做完整的三因素 13 水平全因子试验,需要 2197 次;用均匀设计压缩到 13 次,这是两个数量级的差距。
3.3 试验方案的落地填写:记录表与随机化顺序
拿到水平组合表之后,还需要做两件事才能开始试验。第一,把「水平号」翻译成「实际工艺值」。比如因素 1 是温度,13 个水平对应 50°C 到 180°C,那水平 1 就是 50°C,水平 13 就是 180°C,中间按等差或实际工艺可调档位映射;映射关系必须在试验记录表中写明,否则后期分析时回归系数无法解释。第二,考虑试验顺序。均匀设计表给出的顺序是「空间均匀顺序」,不是「时间执行顺序」。如果试验过程中存在系统漂移(设备升温、试剂活性衰减、环境温度变化),通常的做法是把 13 次试验的执行顺序重新随机化,避免空间均匀的试验点被时间上的趋势污染。我一般会让试验记录表保留三列信息:空间顺序(表内序号)、执行顺序(随机化后)、实际试验值(含单位),三列一一对应,后期做回归分析时统一按表内序号对齐数据。
4. 软件实现与数据分析:回归建模才是均匀设计的下半场
4.1 试验结果的数据预处理:中心化与编码
均匀设计的结果分析必须用回归分析,因为不再具备「整齐可比」性,不能像正交设计那样直接通过极差或方差分析拆解主效应。但回归分析对数据质量很敏感,第一步是预处理。正式分析前,通常把因素的水平值做中心化处理,也就是减去均值后再除以标准差(或做 0-1 编码),这一步能显著减少回归模型中线性项和平方项之间的共线性。我见过不少直接用原始水平值(1 到 13)去拟合二次多项式的情况,结果线性项和平方项膨胀因子飙到几十,模型系数完全无法解释,这就是吃预处理不到位的亏。
另一个容易忽略的问题是水平值的数值含义。均匀设计表中 1 到 13 是水平编号,不是真实的物理取值。分析时应该把列中的水平号替换成真实的工艺值(比如温度 50、70、90…),再决定是否做标准化。如果直接用水平号拟合,回归系数的解释会变成「每个水平档位变化带来的影响」,虽然也能用,但在汇报最优工艺值时还得再换算回去,容易出错。标准做法是先替换真实值,再做中心化,最后拟合。
4.2 线性回归与多项式回归建模:手工公式与代码实现
均匀设计的回归分析有两种常见模型:线性回归 y = b0 + b1x1 + b2x2 + b3x3,以及多项式回归,在一次性模型中额外加入平方项 x1^2、x2^2、x3^2 和交互项 x1x2、x1x3、x2x3。由于均匀设计的试验次数通常不多,多项式回归的项数要严格控制,一般不超过试验次数的一半。以 13 次试验为例,我通常先拟合一个包含全部一次项、三个平方项、三个交互项的模型,共 9 个参数,勉强够用;如果参数过多,就退回一次模型或只加平方项。
# 均匀设计试验数据的多项式回归分析(演示数据) import numpy as np import statsmodels.api as sm # 试验方案:因素水平值(来自 U13*(13^4) 选列 1、3、4) x1 = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13]) x2 = np.array([9, 4, 13, 8, 3, 12, 7, 2, 11, 6, 1, 10, 5]) x3 = np.array([11, 8, 5, 2, 13, 10, 7, 4, 1, 12, 9, 6, 3]) # 演示响应值:随机生成,真实试验中替换为实测数据 rng = np.random.default_rng(42) y = (12 + 0.6 * x1 - 0.3 * x2 + 0.2 * x3 + 0.02 * x1 * x1 - 0.01 * x2 * x3 + rng.normal(0, 1.2, 13)) X = np.column_stack([ x1, x2, x3, x1 * x2, x1 * x3, x2 * x3, x1 * x1, x2 * x2, x3 * x3 ]) X = sm.add_constant(X) # 加截距项 model = sm.OLS(y, X).fit() print(model.summary())注意这段代码用的是演示响应值,真实项目里应替换为试验实测数据。statsmodels 输出的 summary 里重点看三块:整体模型的 F 检验 p 值、每个系数的 t 检验 p 值、调整后 R²。均匀设计试验次数少,模型自由度有限,p 值小于 0.05 的项保留,不显著的项逐个剔除;不建议一次性全部保留再做「事后解释」,那样模型过拟合风险太高,对后续优化预测没有任何帮助。
4.3 偏回归平方和:谁对试验指标的影响最大
均匀设计分析中回答「哪个因素影响最大」的标准工具是偏回归平方和:把某个因素从完整模型中删掉,重新拟合,记录残差平方和上升的幅度。上升越多,说明该因素对试验指标的贡献越大。这个量比回归系数绝对值更可靠,因为系数受量纲影响,偏回归平方和则是直接比较「有没有这个因素时模型的解释能力变化」。
# 偏回归平方和:逐项删除比较残差平方和变化 def fit_ssr(X_sub, y): """拟合模型并返回残差平方和 SSE""" X_sub = sm.add_constant(X_sub) model = sm.OLS(y, X_sub).fit() return np.sum(model.resid ** 2) sse_full = fit_ssr(np.column_stack([x1, x2, x3]), y) print("完整模型 SSE =", round(sse_full, 2)) # 逐因素剔除:删掉 x1、x2、x3 后 SSE 的增量即偏回归平方和 names = ["x1", "x2", "x3"] for idx, name in enumerate(names): mask = [i for i in range(3) if i != idx] columns = np.column_stack([x1, x2, x3])[:, mask] sse_reduced = fit_ssr(columns, y) print(f"剔除 {name} 后 SSE =", round(sse_reduced, 2), f"偏回归平方和 =", round(sse_reduced - sse_full, 2))偏回归平方和的计算原理就是把全模型的解释能力和删去某一因素后的模型做对比,差值归因于被删因素。在均匀设计中,各因素间无相关关系时,偏回归平方和的大小也体现了该因素对试验指标影响的重要性。实际报告里通常把偏回归平方和归一化成百分比,画成条形图,直观展示各因素贡献排序,这是答辩和方案汇报中非常加分的一张图。
4.4 一个完整的 Python 分析过程:从 13 组数据到最优工艺条件
完整的分析流程可以归纳为:用均匀设计表确定试验方案并执行试验,把结果填入数据表;对数据进行中心化或标准化处理;拟合一次项模型,逐步加入平方项和交互项;用偏回归平方和评估因素重要性;保留显著项得到最终模型;最后对模型做优化预测。如果目标是找最优工艺条件,就对最终模型做网格搜索,在因素范围内找响应变量的极值点。
实际项目中这个流程多半要借助计算机才能完成,手工计算的量很大。均匀设计软件的作用正是把表选择、列选择、回归分析、偏回归平方和计算打包成向导式操作;但理解底层原理仍然重要——软件给出的回归方程如果不显著,问题往往不在软件,而在前期选表和试验执行环节。分析结束之后还必须做一步验证:预测最优条件下响应变量的理论值,回到试验台做重复试验,实测值与预测值的偏差在 10% 以内才算闭环。这一步是整个均匀设计方案的最后一个环节,也最容易被人省略。
5. 均匀设计常见问题排查:5 个最容易翻车的环节
5.1 现象一:试验点分布不均匀,回归模型拟合效果差
做均匀设计时直接取设计表前几列作为因素列,忽略使用表的列推荐,出来的试验方案在二维投影下经常呈现明显的条带结构,点全部挤在几条斜线上,整个试验区间覆盖并不完整。原因是均匀设计表的不同列组合均匀性差异极大,随意选列的偏差可能比使用表推荐组合大好几倍。解决方法是严格按每个表附带的使用表选择列号;如果做非标准表,必须用偏差指标计算所有列组合的均匀性,取偏差最小的组合,没有捷径。
5.2 现象二:水平数不相等时直接套等水平表
有个常踩的坑:某因素只能取 4 个实际水平,另一个因素能取 8 个水平,有人直接找一个 8 水平的设计表,把因素 A 的水平重复填进 8 个格子,结果因素 A 的试验点在空间里完全不均匀。原因是水平数不足的因素没有经过拟水平处理,重复水平破坏了表本身的均衡结构。解决方法是使用拟水平法:先把 1 到 8 分成 4 组,每组两个连续水平合并成一个拟水平,再用合并后的表安排试验。记住拟水平法的前提是设计表的试验次数必须是该因素实际水平数的整数倍,否则找不到合适的表,需要另选试验次数或调整水平划分。
5.3 现象三:回归模型只用线性项,交互作用被丢掉
均匀设计试验做完后,只拟合 y = b0 + b1x1 + b2x2 + b3*x3 这种一次模型,结果发现多个试验点的预测残差有系统性偏向——某些区域预测值偏高,另一些区域偏低。原因是均匀设计布点覆盖了整个试验区间,因素之间的交互作用真实存在于数据中,一次模型无法表达这种非线性。解决方法是把模型升级为多项式回归,加入平方项和交互项后重新拟合,并用偏回归平方和检验每一项是否显著。需要控制多项式项数,试验次数有限时优先保留平方项,交互项只加最可能存在的部分,防止模型参数过多导致过拟合。
5.4 现象四:试验点重复或边界取值,回归方程失真
试验过程中发现某几个条件太难做,于是把高水平的试验点挪到相邻低水平,或者重复做了一次中间水平的试验来「补数」。这会让均匀设计表的空间均匀结构被破坏,某些区域点密集、某些区域出现空洞,回归方程在空洞区域的预测完全不可信。原因是执行环节私自改动方案,没有意识到均匀设计表的每一行都是以「点集均匀」为前提设计的,改动任一试验点都直接影响整体均匀性。解决方法是严格按表执行;如果某条件确实现实中做不了,应该重新选一张更合适的均匀设计表或调整因素水平范围,而不是擅自替换试验点。
5.5 现象五:只看决定系数 R² 不看显著性检验
回归模型输出 R² = 0.95,看起来很漂亮,交上去被导师一句话问住:「你那两个不显著的因素放在模型里干什么?」均匀设计试验次数少,R² 虚高是常见现象,尤其是参数数量和试验次数接近时,模型可以轻易拟合所有数据点。原因是只看拟合优度而忽略 F 检验和每个系数的 t 检验。解决方法是看调整后 R² 而不是 R²,看整体回归模型的显著性 p 值,看每个因素的偏回归平方和是否统计显著,最后还要留出几次重复试验做验证,用实测数据证明模型预测能力而不是只靠拟合指标。
6. 验收与答辩:怎么证明这套均匀设计方案的合理性
6.1 验收标准与试验复现
方案是否合格,应该有明确的验收标准,不能停留在「模型跑出来了」。我一般按下面这张表逐项核对:
| 验收项 | 判定标准 | 检查方式 |
|---|---|---|
| 表选择正确性 | 因素数与水平数匹配,使用表列号正确 | 对比原始均匀设计表 |
| 试验方案完整性 | 每组试验有水平号、真实工艺值、执行顺序 | 查阅试验记录表 |
| 回归模型显著性 | 整体 F 检验 p < 0.05,调整 R² 不低于 0.7 | 方差分析表 |
| 因素贡献排序 | 偏回归平方和排序明确,与工程经验相符 | 偏回归平方和条形图 |
| 最优条件复现 | 预测值与实测值偏差在 10% 以内 | 重复试验取均值 |
其中最后一栏最容易成为答辩现场的「胜负手」。提前做 2 到 3 次重复试验,把预测值和实测值的偏差范围展示出来,比任何解释都有说服力。
6.2 答辩中被问到最多的三个问题
第一个问题:「为什么用均匀设计而不用正交设计?」标准回答思路:试验因素多、水平密,正交设计的试验次数随水平数平方增长,成本不可接受;均匀设计通过牺牲整齐可比换来了更低的试验次数,分析手段相应地从方差分析切换为回归分析。第二个问题:「你怎么保证试验点的均匀性?」回答要点是使用表中的偏差 D 值,明确指出所选列组合的 D 值是该因素数下的最小值,均匀性优于其他列组合。第三个问题:「回归模型可靠吗?」不要只报 R²,要报显著性检验结果、偏回归平方和、残差分析和验证试验偏差。这三个问题答好了,答辩的基本盘就稳了。
6.3 归档材料
一套完整的均匀设计项目应交出四份材料:设计表与使用表截图(说明表号、列号、D 值)、试验方案表(水平映射表加执行顺序)、回归分析报告(模型摘要加偏回归平方和图)、验证试验记录。归档时把四份材料放在一个文件夹里,命名统一带上项目名和日期,方便追溯。我自己的习惯是每次交付前强制走一遍验收表的全部检查项,把复现试验的数据提前放进去,再写分析结论——这个习惯帮我挡掉过不少「模型看着挺好但一复现就翻车」的尴尬局面。希望帮到你。
本文还有配套的精品资源,点击获取