aphin


Nameaphin JSON
Version 1.0 PyPI version JSON
download
home_pageNone
SummaryAutoencoder-based port-Hamiltonian Identification Networks (ApHIN) is a Python package for structure-preserving model order reduction and system identification of port-Hamiltonian systems.
upload_time2024-08-15 11:11:41
maintainerNone
docs_urlNone
authorNone
requires_python>=3.8
licenseNone
keywords structure-preserving model order reduction system identification surrogate modeling reduced order models port-hamiltonian systems
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            <!-- PROJECT SHIELDS -->

[//]: # ([![arXiv][arxiv-shield]][arxiv-url])

[//]: # ([![DOI][doi-shield]][doi-url])
[![Documentation Status][docs-shield]][docs-url]
[![MIT License][license-shield]][license-url]

# ApHIN - Autoencoder-based port-Hamiltonian Identification Networks
A data-driven framework for the identification of latent port-Hamiltonian systems [1].

![ApHIN](https://github.com/user-attachments/assets/0764f063-ced4-4b8e-af84-a7772c7d5c30)

## Abstract
Conventional physics-based modeling techniques involve high effort, e.g.~time and expert knowledge, while data-driven methods often lack interpretability, structure, and sometimes reliability. To mitigate this, we present a data-driven system identification framework that derives models in the port-Hamiltonian (pH) formulation. 
This formulation is suitable for multi-physical systems while guaranteeing the useful system theoretical properties of passivity and stability. 

Our framework combines linear and nonlinear reduction with structured, physics-motivated system identification. 
In this process, high-dimensional state data obtained from possibly nonlinear systems serves as the input for an autoencoder, which then performs two tasks: (i) nonlinearly transforming and (ii) reducing this data onto a low-dimensional manifold. In the resulting latent space, a pH system is identified by considering the unknown matrix entries as weights of a neural network. The matrices strongly satisfy the pH matrix properties through Cholesky factorizations. In a joint optimization process over the loss term, the pH matrices are adjusted to match the dynamics observed by the data, while defining a linear pH system in the latent space per construction.
The learned, low-dimensional pH system can describe even nonlinear systems and is rapidly computable due to its small size.

The method is exemplified by a parametric mass-spring-damper and a nonlinear pendulum example as well as the high-dimensional model of a disc brake with linear thermoelastic behavior.

## Features
This repository implements neural networks that identify linear port-Hamiltonian systems from (potentially high-dimensional) data[1].
* Autoencoders (AEs) for dimensionality reduction
* pH layer to identify system matrices that fullfill the definition of a linear pH system
* pHIN: identify a (parametric) low-dimensional port-Hamiltonian system directly
* ApHIN: identify a (parametric) low-dimensional latent port-Hamiltonian system based on coordinate representations found using an autoencoder
* Examples for the identification of linear pH systems from data
  * One-dimensional mass-spring-damper chain
  * Pendulum
  * discbrake model
  
## Installation

You can either clone the repository and install the package locally or install it directly from PyPI.

### PyPI

```bash
pip install aphin
```

### Local
Clone this repository and install it to your local environment as package using pip:

```bash
git clone https://github.com/Institute-Eng-and-Comp-Mechanics-UStgt/ApHIN.git
cd ApHIN
```
Then you can activate the environment in which you want to install the package, and use pip to perform the installation.
```bash
pip install -e .
```

> :warning: **Please note that you need pip version 24.0 to install the repository in editable mode. Either upgrade pip to the latest version or install it without the ```-e``` argument**

## References

[1] Johannes Rettberg, Jonas Kneifl, Julius Herb, Patrick Buchfink, Jörg Fehr, and Bernard Haasdonk. Data-driven identification of latent port-Hamiltonian systems. Arxiv, 2024.

[2] Volker Mehrmann and Benjamin Unger. Control of port-Hamiltonian differential-algebraic
systems and applications, 2022.

[3] Kathleen Champion, Bethany Lusch, J. Nathan Kutz, and Steven L. Brunton. Data-driven
discovery of coordinates and governing equations. Proceedings of the National Academy of
Sciences, 116(45):22445–22451, 2019.

[license-shield]: https://img.shields.io/github/license/Institute-Eng-and-Comp-Mechanics-UStgt/ApHIN.svg
[license-url]: https://github.com/Institute-Eng-and-Comp-Mechanics-UStgt/ApHIN/blob/main/LICENSE
[doi-shield]: https://zenodo.org/badge/DOI/
[doi-url]: https://doi.org/
[arxiv-shield]: https://img.shields.io/badge/arXiv-
[arxiv-url]: https://doi.org/
[docs-url]: https://Institute-Eng-and-Comp-Mechanics-UStgt.github.io/ApHIN
[docs-shield]: https://img.shields.io/badge/docs-online-blue.svg

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "aphin",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": null,
    "keywords": "structure-preserving model order reduction, system identification, surrogate modeling, reduced order models, port-Hamiltonian systems",
    "author": null,
    "author_email": "Jonas Kneifl <jonas.kneifl@itm.uni-stuttgart.com>, Johannes Rettberg <johannes.rettberg@itm.uni-stuttgart.com>, Julius Herb <julius.herb@mib.uni-stuttgart.com>",
    "download_url": "https://files.pythonhosted.org/packages/2a/58/d4937b0febca3b5aaed80c31099341eaa568a669f91cc5d8fc1d598a2f13/aphin-1.0.tar.gz",
    "platform": null,
    "description": "<!-- PROJECT SHIELDS -->\n\n[//]: # ([![arXiv][arxiv-shield]][arxiv-url])\n\n[//]: # ([![DOI][doi-shield]][doi-url])\n[![Documentation Status][docs-shield]][docs-url]\n[![MIT License][license-shield]][license-url]\n\n# ApHIN - Autoencoder-based port-Hamiltonian Identification Networks\nA data-driven framework for the identification of latent port-Hamiltonian systems [1].\n\n![ApHIN](https://github.com/user-attachments/assets/0764f063-ced4-4b8e-af84-a7772c7d5c30)\n\n## Abstract\nConventional physics-based modeling techniques involve high effort, e.g.~time and expert knowledge, while data-driven methods often lack interpretability, structure, and sometimes reliability. To mitigate this, we present a data-driven system identification framework that derives models in the port-Hamiltonian (pH) formulation. \nThis formulation is suitable for multi-physical systems while guaranteeing the useful system theoretical properties of passivity and stability. \n\nOur framework combines linear and nonlinear reduction with structured, physics-motivated system identification. \nIn this process, high-dimensional state data obtained from possibly nonlinear systems serves as the input for an autoencoder, which then performs two tasks: (i) nonlinearly transforming and (ii) reducing this data onto a low-dimensional manifold. In the resulting latent space, a pH system is identified by considering the unknown matrix entries as weights of a neural network. The matrices strongly satisfy the pH matrix properties through Cholesky factorizations. In a joint optimization process over the loss term, the pH matrices are adjusted to match the dynamics observed by the data, while defining a linear pH system in the latent space per construction.\nThe learned, low-dimensional pH system can describe even nonlinear systems and is rapidly computable due to its small size.\n\nThe method is exemplified by a parametric mass-spring-damper and a nonlinear pendulum example as well as the high-dimensional model of a disc brake with linear thermoelastic behavior.\n\n## Features\nThis repository implements neural networks that identify linear port-Hamiltonian systems from (potentially high-dimensional) data[1].\n* Autoencoders (AEs) for dimensionality reduction\n* pH layer to identify system matrices that fullfill the definition of a linear pH system\n* pHIN: identify a (parametric) low-dimensional port-Hamiltonian system directly\n* ApHIN: identify a (parametric) low-dimensional latent port-Hamiltonian system based on coordinate representations found using an autoencoder\n* Examples for the identification of linear pH systems from data\n  * One-dimensional mass-spring-damper chain\n  * Pendulum\n  * discbrake model\n  \n## Installation\n\nYou can either clone the repository and install the package locally or install it directly from PyPI.\n\n### PyPI\n\n```bash\npip install aphin\n```\n\n### Local\nClone this repository and install it to your local environment as package using pip:\n\n```bash\ngit clone https://github.com/Institute-Eng-and-Comp-Mechanics-UStgt/ApHIN.git\ncd ApHIN\n```\nThen you can activate the environment in which you want to install the package, and use pip to perform the installation.\n```bash\npip install -e .\n```\n\n> :warning: **Please note that you need pip version 24.0 to install the repository in editable mode. Either upgrade pip to the latest version or install it without the ```-e``` argument**\n\n## References\n\n[1] Johannes Rettberg, Jonas Kneifl, Julius Herb, Patrick Buchfink, J\u00f6rg Fehr, and Bernard Haasdonk. Data-driven identification of latent port-Hamiltonian systems. Arxiv, 2024.\n\n[2] Volker Mehrmann and Benjamin Unger. Control of port-Hamiltonian differential-algebraic\nsystems and applications, 2022.\n\n[3] Kathleen Champion, Bethany Lusch, J. Nathan Kutz, and Steven L. Brunton. Data-driven\ndiscovery of coordinates and governing equations. Proceedings of the National Academy of\nSciences, 116(45):22445\u201322451, 2019.\n\n[license-shield]: https://img.shields.io/github/license/Institute-Eng-and-Comp-Mechanics-UStgt/ApHIN.svg\n[license-url]: https://github.com/Institute-Eng-and-Comp-Mechanics-UStgt/ApHIN/blob/main/LICENSE\n[doi-shield]: https://zenodo.org/badge/DOI/\n[doi-url]: https://doi.org/\n[arxiv-shield]: https://img.shields.io/badge/arXiv-\n[arxiv-url]: https://doi.org/\n[docs-url]: https://Institute-Eng-and-Comp-Mechanics-UStgt.github.io/ApHIN\n[docs-shield]: https://img.shields.io/badge/docs-online-blue.svg\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "Autoencoder-based port-Hamiltonian Identification Networks (ApHIN) is a Python package for structure-preserving model order reduction and system identification of port-Hamiltonian systems.",
    "version": "1.0",
    "project_urls": {
        "Homepage": "https://github.com/Institute-Eng-and-Comp-Mechanics-UStgt/ApHIN",
        "Issues": "https://github.com/Institute-Eng-and-Comp-Mechanics-UStgt/ApHIN/issues"
    },
    "split_keywords": [
        "structure-preserving model order reduction",
        " system identification",
        " surrogate modeling",
        " reduced order models",
        " port-hamiltonian systems"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "17a641314683620442525fce56b03fe9d3427db7ac8fafdcbffeb8d267889b5d",
                "md5": "e3a42ea784e7c7689432e497f5c566e4",
                "sha256": "501c92580a2d5b6d503dffce35347b3f2b6d19c033340b04866067bdaaeb96cb"
            },
            "downloads": -1,
            "filename": "aphin-1.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "e3a42ea784e7c7689432e497f5c566e4",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 98007,
            "upload_time": "2024-08-15T11:11:40",
            "upload_time_iso_8601": "2024-08-15T11:11:40.383789Z",
            "url": "https://files.pythonhosted.org/packages/17/a6/41314683620442525fce56b03fe9d3427db7ac8fafdcbffeb8d267889b5d/aphin-1.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "2a58d4937b0febca3b5aaed80c31099341eaa568a669f91cc5d8fc1d598a2f13",
                "md5": "3ea31cbe3a3b453ab33fc48aac29e969",
                "sha256": "29504911af250de0ca4b5a8b7f3f50774ae9493ae33d94c55722c0e5d3e38f29"
            },
            "downloads": -1,
            "filename": "aphin-1.0.tar.gz",
            "has_sig": false,
            "md5_digest": "3ea31cbe3a3b453ab33fc48aac29e969",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 83359,
            "upload_time": "2024-08-15T11:11:41",
            "upload_time_iso_8601": "2024-08-15T11:11:41.769544Z",
            "url": "https://files.pythonhosted.org/packages/2a/58/d4937b0febca3b5aaed80c31099341eaa568a669f91cc5d8fc1d598a2f13/aphin-1.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-08-15 11:11:41",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "Institute-Eng-and-Comp-Mechanics-UStgt",
    "github_project": "ApHIN",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "aphin"
}
        
Elapsed time: 1.89148s