多次发生设计变量的值超出其界限(例如,下限 0.0,优化器将设计变量值设置为 -0.004),并且约束似乎被忽略了(例如,最小值 1.0不满足输出变量的约束)。
我正在使用 openMDAO 版本 1.6.4、ScipyOptimizer、SLSQP、force_fd、step_size 1.0e-4。
关于为什么会发生这些事情的任何想法?我做错设置了吗?可能的错误?如果没有,如何避免?
任何反馈表示赞赏。
多次发生设计变量的值超出其界限(例如,下限 0.0,优化器将设计变量值设置为 -0.004),并且约束似乎被忽略了(例如,最小值 1.0不满足输出变量的约束)。
我正在使用 openMDAO 版本 1.6.4、ScipyOptimizer、SLSQP、force_fd、step_size 1.0e-4。
关于为什么会发生这些事情的任何想法?我做错设置了吗?可能的错误?如果没有,如何避免?
任何反馈表示赞赏。
没有看到任何代码,很难确定。但众所周知,SLSQP 违反了变量界限,尤其是在设计变量缩放不佳的情况下。尝试缩放事物,使您的设计变量在 0 和 1 之间变化。这应该有助于它更好地工作。
我花了相当长的时间来重新运行带有缩放变量的代码。
我得到了收敛的结果,所有设计变量的值都在它们的范围内,但是,仍然没有满足一个约束。我将参数的约束设置为 [0, 1.5],但最终结果为 1.73。
我正在考虑应用更严格的收敛标准并重新运行我的代码以查看是否会满足约束。
您认为较小的收敛标准将有助于满足所有约束吗?您的建议将不胜感激。