Structural observability analysis of large scale systems using Modelica and Python
Journal article, Peer reviewed
MetadataShow full item record
Original versionPerera, A., Lie, B., & Pfeiffer, C. (2015). Structural Observability Analysis of Large Scale Systems Using Modelica and Python. Modeling, Identification and Control, 36(1), 53-65. doi: http://dx.doi.org/10.4173/mic.2015.1.4 http://dx.doi.org/10.4173/mic.2015.1.4
State observability of dynamic systems is a notion which determines how well the states can be inferred from input-output data. For small-scale systems, observability analysis can be done manually, while for large-scale systems an automated systematic approach is advantageous. Here we present an approach based on the concept of structural observability analysis, using graph theory. This approach can be automated and applied to large-scale, complex dynamic systems modeled using Modelica. Modelica models are imported into Python via the JModelica.org-CasADi interface, and the Python packages NetworkX (for graph-theoretic analysis) and PyGraphviz (for graph layout and visualization) are used to analyze the structural observability of the systems. The method is demonstrated with a Modelica model created for the Copper production plant at Glencore Nikkelverk, Kristiansand, Norway. The Copper plant model has 39 states, 11 disturbances and 5 uncertain parameters. The possibility of estimating disturbances and parameters in addition to estimating the states are also discussed from the graph-theory point of view. All the software tools used on the analysis are freely available.