Skip to content

Latest commit

 

History

History
92 lines (70 loc) · 3.94 KB

README.md

File metadata and controls

92 lines (70 loc) · 3.94 KB

arXiv DOI Documentation Status MIT License

We present a novel physics-informed system identification method to construct a passive linear time-invariant system. In more detail, for a given quadratic energy functional, measurements of the input, state, and output of a system in the time domain, we find a realization that approximates the data well while guaranteeing that the energy functional satisfies a dissipation inequality. To this end, we use the framework of port-Hamiltonian (pH) systems and modify the dynamic mode decomposition to be feasible for continuous-time pH systems. We propose an iterative numerical method to solve the corresponding least-squares minimization problem. We construct an effective initialization of the algorithm by studying the least-squares problem in a weighted norm, for which we present the analytical minimum-norm solution. The efficiency of the proposed method is demonstrated with several numerical examples.

Table of Contents

  1. Citing
  2. Installation
  3. Usage
  4. Documentation
  5. License
  6. Contact

Citing

If you use this project for academic work, please consider citing our publication:

R. Morandin, J. Nicodemus, and B. Unger
Port-Hamiltonian Dynamic Mode Decomposition
SIAM Journal on Scientific Computing 2023 45:4, A1690-A1710

Installation

A python environment is required with at least Python 3.10.

Install dependencies via pip:

pip install -r requirements.txt

Usage

There are two executable scripts main.py, reduction.py and a configuration file config.py in the src directory.

  • main.py execute the pHDMD algorithm for the current experiments, defined in config.py.
  • reduction.py executes the pHDMD algorithm with model reduction step for the MIMO Mass-Spring-Damper experiment, defined in config.py. The algorithm is executed for different reduced orders, subsequently the H2 and Hinf errors are plotted of the reduced orders.

Documentation

Documentation is available online or you can build it yourself from inside the docs directory by executing:

make html

This will generate HTML documentation in docs/build/html. It is required to have the sphinx dependencies installed. This can be done by

pip install -r requirements.txt

within the docs directory.

License

Distributed under the MIT License. See LICENSE for more information.

Contact

Jonas Nicodemus - [email protected]

Benjamin Unger - [email protected]
Riccardo Morandin - [email protected]

Project Link: https://github.com/Jonas-Nicodemus/phdmd