I'd like to run a Control Systems simulation similar to the one demonstrated here. Since OpenMDAO seems to have nice features of component-based modeling, is it possible to run such a simulation with OpenMDAO?
More specifically, I'm trying to accomplish for now is simpler continuous-time simulation of a dynamic system and various PID controllers to a myriad combination of disturbances in different points of the system.
What I have now is done through the lsim()
function, which is available both in Scipy (lsim() doc) and Matlab (lsim() doc). However, those tools are cumbersome in the way they require the complete system to be modeled as a single lumped input-output system. The conversion when multiple input points are used is time-consuming and quite difficult to achieve depending on the complexity of the system. Also, lsim()
is not usable for non-linear problems.
Ideally, I'd also like to mix continuous-time simulation (for the plant) and discrete-time (for the controller, which I'll convert in the future, and to allow easier simulation of time delay). Another reason to desire support for non-linear behavior is to simulate hysteresis in the future.
An easy way out would be to use Simulink (as described here), but I'd rather do it in Python since I'm trying to build a solution which interacts with other Python tools.