试验设计,英文是Design of Experiments,简称DOE,是研究如何科学合理地安排试验的一门学问。在有限元分析和工程设计中,我们经常需要研究多个参数对结果的影响,如果每个参数都一个个试,不仅效率低,还可能漏掉重要的交互作用。试验设计就是帮我们用最少的试验次数,获得最多的信息。本文将介绍试验设计的基本概念、常用方法、应用场景和注意事项,帮助大家入门这门实用的技术。
一、试验设计概述
什么是试验设计:
- 就是研究怎么安排试验的方法学
- 用最少的试验次数,得到最多最有用的信息
- 英文是Design of Experiments,简称DOE
- 也叫实验设计、试验设计方法等
- 是统计学的一个重要分支
为什么需要试验设计:
- 一个个单因素试的话,次数太多,根本算不动
- 比如5个参数,每个3个水平,全因子就要243次试验
- 试验设计可以用很少的次数找出主要因素
- 还能发现因素之间的交互作用,单因素试验发现不了
- 效率高,信息量大,结论更可靠
试验设计的目标:
- 找出哪些因素对结果影响最大,也就是筛选因素
- 找出最优的参数组合,让结果最好
- 建立因素和结果之间的数学模型,也就是响应面
- 减少试验次数,节省时间和成本
- 评估因素的交互作用,看因素之间是不是互相影响
- 提高试验的可靠性和可重复性
应用场景:
- 参数分析和优化设计
- 代理模型的样本点设计
- 产品设计和工艺参数优化
- 质量改进和质量控制
- 灵敏度分析和参数重要性排序
- 新产品开发和配方优化
- 等等,工程和科研的很多领域都用得到
试验设计的三个基本原则:
- 重复原则:同样的条件做多次试验,用来估计试验误差
- 随机化原则:试验顺序随机安排,避免系统误差的影响
- 区组化原则:把相似的试验放在一个区组,减少无关因素的干扰
- 这三个是经典试验设计的基本原则,能提高试验的可靠性
二、常用的试验设计方法
1. 全因子设计
最全面最基础的设计。
什么是全因子设计:
- 每个因素的每个水平都互相组合一遍
- 所有可能的组合都做试验
- 信息最全面,没有遗漏
- 英文是Full Factorial Design
优点:
- 信息全面,什么效应都能看到
- 可以估计主效应和所有的交互效应
- 结果可靠,分析简单
- 是其他设计方法的基础
缺点:
- 试验次数太多了,因素多了根本做不起
- 比如10个因素2水平就要1024次
- 因素和水平稍微多一点,次数就爆炸了
- 只适合因素很少的情况
适用场景:
- 因素很少,比如2到3个因素
- 每个因素的水平也不多
- 需要全面了解所有效应的情况
- 计算资源或试验成本充足
- 作为其他设计的对比基准
2. 部分因子设计
从全因子里精选一部分。
什么是部分因子设计:
- 从全因子试验里选一部分有代表性的来做
- 用较少的试验次数估计主要的效应
- 英文是Fractional Factorial Design
怎么选的:
- 不是随便乱选的,是按照一定的数学规则选的
- 会有混杂,也就是有些效应分不清, alias
- 分辨率越高,混杂的程度越轻
- 常用的分辨率有III、IV、V级
优点:
- 试验次数比全因子少很多
- 可以估计主要的效应和低阶交互
- 适合做筛选试验,先找出重要的
- 因素多的时候优势很明显
缺点:
- 有混杂效应,高阶交互效应估计不准
- 分辨率低的话,主效应也可能和高阶交互混杂
- 需要小心选择合适的分辨率
- 分析起来比全因子稍微复杂一点
适用场景:
- 因素比较多,比如5个以上
- 主要想看主效应和低阶交互
- 筛选试验阶段,先从很多因素里找出重要的
- 初步研究阶段,还不需要太精细
3. 正交试验设计
国内工程界非常常用。
什么是正交试验设计:
- 用正交表来安排试验
- 特点是均衡分散,整齐可比
- 属于部分因子设计的一种
- 日本田口玄一推广后在工业界很流行
- 国内工程上用得特别多
正交表:
- 比如L9(3^4),就是9次试验,4个因素,每个3水平
- 还有L8、L16、L27、L18等常用的正交表
- 有现成的表可以直接查,不用自己算
- 使用起来很方便
优点:
- 试验次数少,效率高
- 均衡性好,每个因素每个水平出现次数一样
- 简单易用,有表可查,不需要太多统计基础
- 工程上特别受欢迎,普及度高
- 适合多因素多水平的情况
缺点:
- 交互效应的分析比较麻烦
- 有些正交表的交互作用有混杂
- 选择合适的正交表需要一定经验
- 不如现代的一些设计方法灵活
- 国际上现在用得不如以前多了
适用场景:
- 多因素多水平的试验和优化
- 工程优化和工艺改进
- 初步筛选和分析
- 国内企业和工厂用得很多
- 对统计基础要求不高,容易上手
4. 响应面设计
专门用来建响应面模型的。
什么是响应面设计:
- 专门用来拟合响应面模型的试验设计
- 一般是拟合二阶多项式
- 可以用来找最优的参数组合
- 英文是Response Surface Methodology,简称RSM
常用的响应面设计:
- 中心复合设计CCD:最常用的,包含因子点、轴点、中心点三部分
- Box-Behnken设计BBD:另一种常用的,没有轴向点,是球面的
- 还有其他的,比如D-最优设计、中心复合旋转设计等
优点:
- 非常适合拟合二阶响应面模型
- 可以用来找最优的条件和参数
- 试验次数不算太多,效率不错
- 分析方法很成熟,有标准流程
- 可以看因素的交互作用和曲率
缺点:
- 因素多了次数也不少
- 主要适合二阶的,更高阶的不行
- 需要先知道大致的最优区域,不然不准
- 设计的选择需要一定的经验
- 超出范围的外推不可靠
适用场景:
- 优化设计,找最优参数组合
- 建立响应面模型和经验公式
- 因素不太多的情况,一般2到5个
- 已经找到大致范围,要精细优化的时候
- 工程优化和产品开发
5. 拉丁超立方抽样
计算机实验特别常用。
什么是拉丁超立方:
- 是一种抽样方法,也可以当试验设计用
- 每个维度都分层抽样,保证每个区间都有样本
- 比纯随机抽样更均匀
- 英文是Latin Hypercube Sampling,简称LHS
特点:
- 每个因素的每个水平区间都只出现一次
- 空间填充性比较好
- 样本数可以灵活选择,想多少就多少
- 特别适合计算机实验,也就是数值模拟
优点:
- 样本数量可以灵活选,不受限制
- 空间填充性不错,比纯随机好
- 高维问题也能用
- 简单容易实现
- 适合计算机实验和代理模型
缺点:
- 是随机的,每次生成的都不一样
- 可能有的地方还是空的,均匀性不是最优
- 最优性不如一些专门的空间填充设计
- 分析的时候一般要配合代理模型
- 经典的统计分析不太适用
适用场景:
- 计算机实验,也就是数值模拟
- 代理模型的样本点设计
- 高维问题,因素很多的情况
- 不确定性量化和概率分析
- 等等,现在用得越来越多
6. 均匀设计
也是一种空间填充设计。
什么是均匀设计:
- 让样本点在空间里尽量均匀分布
- 是中国的方开泰教授和王元院士提出的
- 特别适合多因素多水平的情况
- 英文是Uniform Design
特点:
- 核心就是均匀分散,让点尽量铺满空间
- 试验次数可以等于水平数,特别省
- 因素多水平多的时候优势特别明显
- 有均匀设计表可以直接查
优点:
- 试验次数特别少,尤其是多因素多水平的时候
- 均匀性好,空间填充性不错
- 适合因素多水平多的情况
- 有表可查,使用方便
- 国内用得比较多
缺点:
- 数据分析一般用回归分析,不如正交直观
- 不如正交设计那么整齐可比
- 选择合适的表需要经验
- 国际上知名度不如拉丁超立方
- 经典的方差分析不太适用
适用场景:
- 多因素多水平的试验
- 筛选试验和初步分析
- 国内的科研和工程应用
- 计算机实验也能用
- 因素特别多的时候
7. 其他设计方法
还有很多其他的方法。
比如:
- D-最优设计:在给定样本数下让D最优,也就是信息矩阵的行列式最大
- 最优拉丁超立方:优化过的LHS,比普通LHS更均匀
- 空间填充设计:各种让点尽量均匀的设计,比如Sobol序列、Halton序列等
- 自适应设计:根据已有结果动态加点,越算越准
- 混料设计:专门用于配方设计,成分加起来是100%的情况
- 等等,方法非常多,各有各的适用场景
三、试验设计的基本步骤
1. 明确试验目的
先搞清楚到底要做什么。
要明确的:
- 试验要解决什么具体问题
- 关心的输出指标是什么,有几个指标
- 是做筛选试验还是优化试验
- 精度要求有多高
- 能做多少次试验,预算和时间有多少
- 有没有什么约束条件
为什么重要:
- 目的不同,选的设计方法完全不同
- 筛选试验和优化试验的思路不一样
- 明确目的才能选对方法,不然白费功夫
- 不要上来就做试验,先想清楚目的
2. 确定因素和水平
选哪些参数,取什么值。
怎么选因素:
- 先列出所有可能的影响因素
- 根据专业知识和经验初步筛选
- 去掉明显不重要的
- 先保留可能重要的
- 不要一开始就放太多因素
怎么选水平:
- 确定每个因素的取值范围
- 确定取几个水平
- 水平要在合理的范围内
- 水平之间的间隔要合适
注意事项:
- 因素太多的话,试验次数会指数增长
- 先做筛选,找出重要的,再深入研究
- 水平的范围要合适,太小了看不到影响,太大了可能不合理
- 水平数不要太多,一般2到3个就够了
- 可以先宽后窄,逐步逼近最优区域
3. 选择试验设计方法
选什么方法来安排。
考虑的因素:
- 试验的目的是什么,筛选还是优化
- 因素的数量有多少
- 每个因素有几个水平
- 可以做多少次试验
- 后续要用什么方法分析
- 自己对哪种方法熟悉
选择建议:
- 筛选试验:部分因子设计、正交设计、均匀设计都可以
- 优化试验:响应面设计,比如CCD、BBD
- 计算机实验和代理模型:拉丁超立方、最优LHS
- 因素很少:全因子设计也可以,信息全面
- 因素很多:先做筛选,找出重要的再细化
- 从简单的开始,不要一上来就搞复杂的
4. 安排试验并执行
具体做试验。
怎么做:
- 根据选定的设计生成具体的试验方案
- 按照试验方案安排试验顺序
- 每个试验都认真做,保证质量
- 记录好每个试验的条件和结果
- 注意控制其他可能的干扰因素
注意事项:
- 尽量随机化试验顺序,避免系统误差
- 注意数据的质量,不要有错误
- 异常值要检查,看看是怎么回事
- 记录要完整,参数和结果都要记清楚
- 有限元计算的话,要保证每个模型都算对了
5. 数据分析
分析试验结果。
常用的分析方法:
- 方差分析ANOVA:看哪些因素是显著的
- 回归分析:建立因素和结果之间的数学模型
- 主效应分析:每个因素单独怎么影响结果
- 交互作用分析:因素之间怎么互相影响
- 响应面分析:找最优的条件
- 残差分析:检查模型合不合理
- 等等,方法很多
分析什么内容:
- 哪些因素对结果影响大,哪些小
- 因素是怎么影响结果的,趋势是什么
- 有没有显著的交互作用
- 最优的参数组合是什么
- 模型准不准,拟合得好不好
- 结果的可靠性怎么样
6. 验证和确认
结果对不对,要验证。
为什么要验证:
- 试验结果是有误差的
- 模型是近似的,不是精确的
- 预测的最优条件要实际验证一下
- 确保结论是可靠的,不是偶然的
怎么验证:
- 做验证试验,用最优条件实际做一下
- 看预测值和实际值差多少
- 检查模型的拟合优度,比如R²
- 做残差分析,看有没有异常
- 交叉验证,看看模型的泛化能力
- 等等
7. 结果应用
用结果来指导实际工作。
可以用来做什么:
- 优化设计参数,让产品性能更好
- 改进工艺参数,提高质量和效率
- 建立经验公式,方便以后用
- 指导后续的研究和开发
- 找出关键因素,重点控制
- 等等
注意事项:
- 注意结果的适用范围,不要随便外推
- 要结合工程经验来判断
- 重要的结论要多验证几次
- 不要把统计显著当工程显著
- 实际应用的时候还要考虑其他因素
四、试验设计在有限元中的应用
1. 参数分析
看各个参数的影响。
怎么用:
- 选几个关键的设计参数作为因素
- 用试验设计安排计算方案
- 每个方案算一次有限元
- 然后分析每个参数对结果的影响
好处:
- 比一个个单因素试效率高多了
- 还能看到参数之间的交互作用
- 同样的次数,信息量大很多
- 结论更全面更可靠
2. 代理模型构建
我们之前讲过代理模型。
怎么用:
- 用试验设计选样本点
- 每个样本点算一次有限元
- 然后用这些样本构建代理模型
- 之后就用代理模型快速计算
为什么重要:
- 样本点选得好不好,直接影响代理模型的精度
- 好的试验设计可以用很少的点达到很高的精度
- 是代理模型的基础和前提
- 样本选不好,再厉害的模型也没用
3. 优化设计
找最优的参数组合。
怎么用:
- 先用试验设计做一批计算
- 建立响应面或者代理模型
- 然后在代理模型上做优化
- 最后用真实的有限元验证最优解
好处:
- 比直接用有限元做优化效率高很多
- 可以做全局优化,不容易陷入局部最优
- 大大减少有限元计算的次数
- 工程上非常常用
4. 灵敏度分析
看哪些参数最重要。
怎么用:
- 用试验设计安排样本点
- 计算每个样本的结果
- 然后分析每个参数的灵敏度
- 给参数按重要性排序
好处:
- 比单因素分析更全面更可靠
- 可以考虑参数之间的交互作用
- 效率更高,次数更少
- 结果更有说服力
5. 不确定性量化
我们之前也讲过。
怎么用:
- 用试验设计选样本,比如拉丁超立方
- 每个样本算一次有限元
- 然后统计结果的分布
- 算失效概率、可靠度这些
好处:
- 比纯蒙特卡洛效率高很多
- 样本更均匀,代表性更好
- 用较少的次数就能得到不错的结果
- 是不确定性量化的常用方法
五、试验设计的注意事项
1. 因素的选择
不要什么都往里放。
为什么重要:
- 因素太多,试验次数会指数级增长
- 不重要的因素放进去反而干扰分析
- 会增加计算量,还可能降低精度
- 先筛选再细化是好的策略
怎么选:
- 先根据专业知识和经验选可能重要的
- 不要贪多,先少一点
- 可以先做筛选试验
- 找出重要的因素再深入研究
- 逐步增加,不要一步到位
建议:
- 初步研究3到5个因素就差不多了
- 不要一上来就十几个因素
- 从最重要的几个开始
- 慢慢增加,逐步深入
2. 水平的选择
范围和数量要合适。
注意事项:
- 范围要合适,太小了看不到影响,太大了可能不合理或者算不出来
- 水平数不要太多,一般2到3个就够了
- 水平最好均匀分布
- 要在合理的工程范围内
- 可以先宽后窄,逐步逼近
建议:
- 筛选试验的时候范围可以大一点
- 优化试验的时候范围小一点,精细一点
- 先宽后窄,逐步缩小范围
- 不要一开始就搞得很细
3. 试验次数的选择
多少次合适。
多少合适:
- 没有固定的答案
- 和因素数、方法、目的都有关系
- 太少了信息不够,太多了浪费
- 要在精度和成本之间平衡
建议:
- 先从少的开始试试
- 不够了再加点
- 可以用自适应的方法,逐步加点
- 不要一开始就做一大堆
4. 数据质量
数据是基础。
为什么重要:
- 试验设计再好,数据不准也没用
- 垃圾进垃圾出
- 数据质量是一切的基础
- 数据错了,再怎么分析也白搭
怎么保证:
- 有限元模型要准确,先验证过
- 参数设置要正确,不要搞错
- 结果提取要对,不要提错了
- 异常值要检查,看看哪里出问题了
- 重要的结果可以多算一遍确认
5. 结果的解读
不要过度解读。
注意事项:
- 试验设计的结果是统计意义上的
- 显著不显著要看p值,不能凭感觉
- 不要把偶然的波动当规律
- 交互作用的解释要小心
- 模型是近似的,有误差的
建议:
- 要结合工程经验来判断
- 重要的结论一定要验证
- 不要只看数字,要理解背后的物理意义
- 统计显著不等于工程上重要
- 不要过度解读,实事求是
6. 方法的选择
没有最好的,只有最合适的。
怎么选:
- 根据试验目的来选
- 根据因素的数量来选
- 根据计算资源来选
- 根据自己的熟悉程度来选
- 可以几种方法对比一下
建议:
- 从简单的方法开始
- 不要追求复杂花哨的方法
- 合适的就是最好的
- 简单的方法能解决就不用复杂的
- 可以多试几种,对比结果
六、常用的试验设计工具
1. 专业统计软件
有很多专门的软件。
比如:
- Minitab:很常用的统计软件,DOE功能很强,界面友好
- Design-Expert:专门做试验设计的,功能很全,响应面做得好
- JMP:SAS公司的,可视化做得很好,交互性强
- SPSS:常用的统计软件,也有DOE功能
- 等等,很多选择
2. ANSYS中的功能
ANSYS里也有相关的。
ANSYS里的:
- DesignXplorer里有试验设计的功能
- 可以做参数分析
- 可以做响应面分析
- 可以做优化设计
- 可以做灵敏度分析
- 等等,和有限元结合得很好
3. 编程实现
自己写代码。
比如:
- Python的scipy、statsmodels、pyDOE等库
- R语言的各种DOE包
- MATLAB的统计工具箱
- 都可以做试验设计
- 灵活,可以自定义
适合的情况:
- 需要自定义的情况
- 批量处理和自动化
- 和其他流程结合
- 研究性的工作
- 等等
七、总结
试验设计是一门非常实用的学问,可以帮助我们用最少的试验次数获得最多最有用的信息,在参数分析、优化设计、代理模型构建、灵敏度分析、不确定性量化等方面都有重要的应用。常用的试验设计方法有全因子设计、部分因子设计、正交设计、响应面设计、拉丁超立方、均匀设计等,各有各的特点和适用场景,需要根据具体问题来选择。
试验设计的要点总结:
- 用科学的方法安排试验,用最少的次数获得最多的信息
- 常用方法有全因子、部分因子、正交、响应面、拉丁超立方、均匀设计等
- 基本步骤:明确目的、确定因素和水平、选方法、做试验、分析、验证、应用
- 在有限元中常用于参数分析、代理模型、优化设计、灵敏度分析、不确定性量化
- 注意因素选择、水平选择、试验次数、数据质量、结果解读、方法选择等问题
给初学者的建议:
- 先理解基本概念,知道试验设计是干什么的,有什么用
- 从简单的方法开始学,比如正交设计或者全因子设计
- 不要一上来就搞很复杂的方法,先把基础的搞懂
- 因素不要选太多,先从几个重要的开始
- 水平范围要合适,可以先宽后窄,逐步逼近
- 数据质量很重要,垃圾进垃圾出,一定要保证数据准确
- 结果要结合工程经验来解读,不要只看统计数字
- 重要的结论一定要验证,不要想当然
- 可以先用简单的工具试试手,比如正交表
- 多做实际案例,在实践中积累经验
试验设计是一个很实用的工具,掌握了之后可以大大提高工作效率,用更少的计算和试验得到更多更有用的信息。虽然需要一点统计学基础,但工程上应用的话,掌握常用的几种方法就够用了。希望本文能帮助大家入门试验设计这门实用的技术。如果有试验设计相关的经验或者问题,欢迎在评论区交流讨论。
|