Dymos 如何使用以前的轨迹解决方案作为初始猜测?
Dymos how to use previous trajectory solution as initial guess?
我连续多次运行解决我的轨迹问题,同时改变参数以生成图并与其他事物进行比较。我想我可以通过使用先前的解决方案作为猜测来使其更快 运行 。
我会做类似
的事情吗
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')
它将使用模拟猜测作为解决方案的初始猜测。这应该充分满足配置约束并为优化器提供更容易的解决方案。
我连续多次运行解决我的轨迹问题,同时改变参数以生成图并与其他事物进行比较。我想我可以通过使用先前的解决方案作为猜测来使其更快 运行 。 我会做类似
的事情吗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')
它将使用模拟猜测作为解决方案的初始猜测。这应该充分满足配置约束并为优化器提供更容易的解决方案。