openmdao - Dymos 如何使用先前的轨迹解决方案作为初始猜测?
问题描述
我连续多次运行我的轨迹问题,同时改变一个参数以生成绘图并与其他事物进行比较。我想我可以通过使用以前的解决方案作为猜测来让它运行得更快。我会做类似的事情吗
p['traj.phase_1.states:v'] = prev_p.get_val['traj.phase_1.states:v']
还有一个函数可以将文件“dymos_simulation.db”加载到内存中吗?
解决方案
dymos.run_problem
旨在成为使这一过程变得简单的机制。
目前有一个 PR 解决了一些缺点,但预计它会在今天的某个时间被合并,并在接下来的一两天内包含在 dymos 0.18.0 中。同时,如果您愿意,可以针对 PR 的源分支进行测试:
https://github.com/OpenMDAO/dymos/pull/510
首先,您可以模拟出控件的初始猜测(如果您可能在模拟过程中遇到 ODE 中的奇点,则不建议这样做)。
dymos.run_problem(p, run_driver=False, simulate=True)
这将生成文件“dymos_simulation.db”。然后你可以运行
dymos.run_problem(p, run_driver=True, simulate=True, restart='dymos_simulation.db')
它将使用模拟猜测作为解决方案的初始猜测。这应该充分满足搭配约束,并为优化器提供更简单的解决方案路径。
推荐阅读
- python - pytelegrambotapi:如何检查按钮按下?
- java - 当我只有 jar 依赖项时通过 inteliij 运行项目
- solr - Solr Core 在 8.7 上不断关闭
- c - 问题要求使用指针返回字符串的一部分
- ios - SwiftUI:点击时在视图周围绘制一个矩形
- python - 随机森林和 XGB 'Regressor' 如何计算特征重要性
- python - 在 python 中附加 PATH 变量不起作用
- reactjs - 使用 npm 包将 div 转换为 React 中的图像,但它无法读取我渲染的内容?
- r - 给定data.table,对于每列上的每个子组,选择第一个非NA
- c++ - C++ 字符串计算器