GithubHelp home page GithubHelp logo

jonas-nicodemus / phdmd Goto Github PK

View Code? Open in Web Editor NEW
3.0 1.0 1.0 3.11 MB

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.

License: MIT License

Python 100.00%

phdmd's Introduction

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

phdmd's People

Contributors

jonas-nicodemus avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.