你好,
我研究的是包含两个连续因子和两个分类因子的 DOE
| 因素 |
低级 |
|
高级 |
| CB 角度 1(连续) |
10 |
|
60 |
| CB 角度 2(连续) |
10 |
|
60 |
| 横杆 1(分类) |
柔软的 |
|
难的 |
| 横杆 2(分类) |
红色的 |
黄色的 |
蓝色的 |
现在来看看限制条件:
CB 角度 1 和 CB 角度 2 <= 70
和
对于横杆 1 == 硬,CB 角度 1 == 25
1) 如果我一次尝试线性约束和不允许的组合,它会起作用(脚本第 1 部分和第 2 部分),但如果包含两个约束(脚本第 3 部分),线性约束就会消失。
2) Cross Bar 1 软硬轮组之间的平衡严重偏向软轮组。该如何解决这个问题?
如果您有解决方案,我们将不胜感激,谢谢。
你好,
如果您需要在同一设计中使用不允许的组合约束和线性约束,则可以将线性约束写为不允许的组合。以下是一些可能适合您情况的示例代码:
DOE(
Custom Design,
{Add Response( Maximize, "Y", ., ., . ),
Add Factor( Continuous, 10, 60, "CB Angle 1", 0 ),
Add Factor( Continuous, 10, 60, "CB Angle 2", 0 ),
Add Factor( Categorical, {"Red", "Yellow", "Blue"}, "CB 2", 0 ),
Add Factor( Categorical, {"Soft", "Hard"}, "CB 1", 0 ),
Set Random Seed( 277794177 ), Number of Starts( 7637 ), Add Term( {1, 0} ),
Add Term( {1, 1} ), Add Term( {2, 1} ), Add Term( {3, 1} ), Add Term( {4, 1} ),
Add Term( {1, 2} ), Add Term( {2, 2} ), Add Alias Term( {1, 1}, {2, 1} ),
Add Alias Term( {1, 1}, {3, 1} ), Add Alias Term( {1, 1}, {4, 1} ),
Add Alias Term( {2, 1}, {3, 1} ), Add Alias Term( {2, 1}, {4, 1} ),
Add Alias Term( {3, 1}, {4, 1} ), Set Sample Size( 12 ),
Disallowed Combinations(
CB 1 == "Hard" & CB Angle 1 <= 24.5 | CB 1 == "Hard" & CB Angle 1 >= 25.5 |
CB Angle 1 + CB Angle 2 > 70
), Simulate Responses( 0 ), Save X Matrix( 0 ), Make Design,
Set Run Order( Randomize ), Make Table}
);
请注意,我将“<=”更改为“>”,以使线性约束成为“不允许的”约束。
我希望这有帮助。
你好,Soren,
通常,当设计涉及几种不同类型的约束时,我的解决方案是使用候选集方法,并使用基于该候选集的定制设计平台。
创建它的一种方法是了解因子级别之间的最小增量大小(特别是对于角度,您是否能够以 1° 的精度设置角度?更多?更少?),并创建所有组合的表格。
- 我首先为每个连续因子创建了两个表,序列数据初始化从 10 到 60,步长为 1:

- 然后,我对这两个表进行笛卡尔连接(结果表中有 2601 个唯一可能的组合)。我过滤了所有角度 1 + 角度 2 > 70 的组合(剩余 1326 行)。
- 我为分类因素创建了两个表,并对两者进行了笛卡尔连接(6 个唯一组合):

- 最后,该分类因素表和过滤后的连续表之间的笛卡尔连接使我们接近最终候选集(7956 行)。
- 然后,我在此最终表上应用仅针对“硬”交叉杆 1 的最后剩余约束,以排除不遵守约束的行:对于交叉杆 1 == 硬,CB 角度 1 == 25(剩余 4086 行)。
您可以找到附件中的候选集。
然后,您可以将该候选集与“自定义设计”平台一起使用,通过从表中选择协变量因子运行,指定所需的模型和适当的运行次数:

然后,您可以仅使用候选集表中的可行运行来构建最佳设计:

附件是与您的用例相同的、建议进行 24 次运行的设计表。
我并不期望 Cross Bar 1 的两个层级之间的平衡是“固定的”,因为“软”层的实验空间比“硬”层的实验空间大得多(这是由于其约束条件)。试图用你提到的约束条件强行在两个层级之间保持平衡,可能会导致设计“不太优化”,并且其他项的估计精度也会降低。
编辑:如果您使用@Laura_Lancaster的方法或具有相同运行规模的方法,您将获得具有相同性能的相同或相似的设计。
希望这个解决方案对你有用,
谢谢劳拉。它确实有效。为什么它能和“或”命令在不允许的组合中一起用呢?我不明白,自己可能永远也不会尝试。谢谢。
嗨,Victor,太棒了!这能让我重新掌控所有同事的约束!非常感谢你的分享