我试图通过将一个模拟软件与Python耦合来解决一个物理问题,我需要找出下图中每个管段的长度和直径值(任何2个黑点之间的线段是管段),使得流体从点0流动在同一时刻到达点1-5。我给予了每个管段的长度和直径的一些起始值,模拟软件求解以检查流体是否在同一时刻到达点1-5。如果不是,需要改变管段的长度和直径以确保这一点。2在同一时刻没有到达点1-5的流动被称为流动不平衡,理想情况下,我需要将这种不平衡减少到零。
现在我的问题是-我是否可以将Python与模拟软件结合使用,以建议不同管段的长度和直径值,从而确保流量在同一时刻到达点1-5?我已经知道如何通过Python脚本运行模拟软件,以及如何从软件中提取流量不平衡结果。我想知道的是一个库/Python中是否存在一个函数,该函数可以迭代地建议管段的长度和直径值,以便在每次迭代后减少流量不平衡?
请注意,不可能构建一个考虑管段长度和直径的目标函数(s)并试图最小化或最大化它以消除流量不平衡运行软件模拟是实际检查这种流量不平衡的唯一方法我知道存在优化库如scipy.optimize,但是AFAIK他们是在一个目标函数上工作的。我找不到任何东西可以根据每次迭代后流量不平衡的大小来建议管段的长度和直径的值。
1条答案
按热度按时间hgb9j2n61#
所以你可以写一个函数
然后您可以使用
如果参数的数量大于输出的数量,那么你可能需要使用注解中提到的minimize。在这种情况下,你的不平衡必须返回一个标量。