我想运行类似于展示here的控制系统模拟。由于OpenMDAO似乎具有基于组件的建模的很好的功能,是否可以使用OpenMDAO运行这样的模拟?
更具体地说,我现在试图完成的是将动态系统和各种PID控制器的连续时间模拟更简单到系统不同点的无数干扰组合。
我现在所做的是通过lsim()
函数完成的,该函数在Scipy(lsim() doc)和Matlab(lsim() doc)中都可用。但是,这些工具在将整个系统建模为单个集总输入输出系统的方式上非常麻烦。当使用多个输入点时的转换是耗时的并且很难实现,这取决于系统的复杂性。此外,lsim()
不适用于非线性问题。
理想情况下,我还想混合连续时间模拟(用于工厂)和离散时间(用于控制器,我将在未来转换,并允许更容易模拟时间延迟)。希望支持非线性行为的另一个原因是模拟未来的滞后现象。
一个简单的方法是使用Simulink(如here所述),但我宁愿用Python做,因为我正在尝试构建一个与其他Python工具交互的解决方案。
答案 0 :(得分:1)
一切皆有可能!还没有人做过你要问的事情。
使用OpenMDAO完成了一些系统的瞬态建模。具体来说,我们的satellite work使用了轨道动力学的显式时间积分方案,并解决了最优控制问题。但它没有涉及控制器设计或状态空间建模。
但是,建立工厂模型和离散时间控制器应该都是可能的。所以我不明白为什么不能这样做。