sdypy-EMA


Namesdypy-EMA JSON
Version 0.29.1 PyPI version JSON
download
home_pageNone
SummaryExperimental and operational modal analysis.
upload_time2025-07-17 04:35:13
maintainerNone
docs_urlNone
authorNone
requires_python>=3.10
licenseNone
keywords ema experimental modal analysis oma structural dynamics
VCS
bugtrack_url
requirements tqdm numpy matplotlib scipy pyuff pyLump
Travis-CI
coveralls test coverage No coveralls.
            |pytest| |Docs Status| |DOI|


sdypy-EMA
=========

Experimental and operational modal analysis

This project is successor of the `pyEMA`_ project. pyEMA is no longer developed after version 0.26.

Basic usage
-----------

Import ``EMA`` module:
~~~~~~~~~~~~~~~~~~~~~~

.. code:: python

    from sdypy import EMA


Make an instance of ``Model`` class:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

.. code:: python

   a = EMA.Model(
       frf_matrix,
       frequency_array,
       lower=50,
       upper=10000,
       pol_order_high=60
       )

Compute poles:
~~~~~~~~~~~~~~

.. code:: python

   a.get_poles()

Determine correct poles:
~~~~~~~~~~~~~~~~~~~~~~~~

The stable poles can be determined in two ways: 

1. Display **stability chart**

.. code:: python
    
    a.select_poles()

The stability chart displayes calculated poles and the user can hand-pick the stable ones.

2. If the approximate values of natural frequencies are already known, it is not necessary to display the stability chart:

.. code:: python

    approx_nat_freq = [314, 864]     
    a.select_closest_poles(approx_nat_freq)

After the stable poles are selected, the natural frequencies and damping coefficients can now be accessed:

.. code:: python

   a.nat_freq # natrual frequencies
   a.nat_xi # damping coefficients

Reconstruction:
~~~~~~~~~~~~~~~

There are two types of reconstruction possible: 

1. Reconstruction using **own** poles (the default option):

.. code:: python

    H, A = a.get_constants(whose_poles='own')

where **H** is reconstructed FRF matrix and **A** is a matrix of modal constants.

2. Reconstruction on **c** using poles from **a**:

.. code:: python

    c = EMA.Model(frf_matrix, frequency_array, lower=50, upper=10000, pol_order_high=60)

    H, A = c.get_constants(whose_poles=a)

.. |Docs Status| image:: https://readthedocs.org/projects/sdypy-ema/badge/
   :target: https://sdypy-ema.readthedocs.io/
.. |DOI| image:: https://zenodo.org/badge/DOI/10.5281/zenodo.4016671.svg?
   :target: https://doi.org/10.5281/zenodo.4016671
.. |pytest| image:: https://github.com/sdypy/sdypy-EMA/actions/workflows/python-package.yml/badge.svg
    :target: https://github.com/sdypy/sdypa-EMA/actions


.. _sdypy: https://github.com/sdypy/sdypy

.. _pyEMA: https://github.com/ladisk/pyEMA

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "sdypy-EMA",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.10",
    "maintainer_email": "\"Janko Slavi\u010d et al.\" <janko.slavic@fs.uni-lj.si>",
    "keywords": "EMA, Experimental Modal Analysis, OMA, Structural Dynamics",
    "author": null,
    "author_email": "\"Janko Slavi\u010d et al.\" <janko.slavic@fs.uni-lj.si>",
    "download_url": "https://files.pythonhosted.org/packages/73/ed/b98fc4729e7b034f719930803c99188afae921b6dde4f3afc843e0d65f97/sdypy_ema-0.29.1.tar.gz",
    "platform": null,
    "description": "|pytest| |Docs Status| |DOI|\n\n\nsdypy-EMA\n=========\n\nExperimental and operational modal analysis\n\nThis project is successor of the `pyEMA`_ project. pyEMA is no longer developed after version 0.26.\n\nBasic usage\n-----------\n\nImport ``EMA`` module:\n~~~~~~~~~~~~~~~~~~~~~~\n\n.. code:: python\n\n    from sdypy import EMA\n\n\nMake an instance of ``Model`` class:\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n.. code:: python\n\n   a = EMA.Model(\n       frf_matrix,\n       frequency_array,\n       lower=50,\n       upper=10000,\n       pol_order_high=60\n       )\n\nCompute poles:\n~~~~~~~~~~~~~~\n\n.. code:: python\n\n   a.get_poles()\n\nDetermine correct poles:\n~~~~~~~~~~~~~~~~~~~~~~~~\n\nThe stable poles can be determined in two ways: \n\n1. Display **stability chart**\n\n.. code:: python\n    \n    a.select_poles()\n\nThe stability chart displayes calculated poles and the user can hand-pick the stable ones.\n\n2. If the approximate values of natural frequencies are already known, it is not necessary to display the stability chart:\n\n.. code:: python\n\n    approx_nat_freq = [314, 864]     \n    a.select_closest_poles(approx_nat_freq)\n\nAfter the stable poles are selected, the natural frequencies and damping coefficients can now be accessed:\n\n.. code:: python\n\n   a.nat_freq # natrual frequencies\n   a.nat_xi # damping coefficients\n\nReconstruction:\n~~~~~~~~~~~~~~~\n\nThere are two types of reconstruction possible: \n\n1. Reconstruction using **own** poles (the default option):\n\n.. code:: python\n\n    H, A = a.get_constants(whose_poles='own')\n\nwhere **H** is reconstructed FRF matrix and **A** is a matrix of modal constants.\n\n2. Reconstruction on **c** using poles from **a**:\n\n.. code:: python\n\n    c = EMA.Model(frf_matrix, frequency_array, lower=50, upper=10000, pol_order_high=60)\n\n    H, A = c.get_constants(whose_poles=a)\n\n.. |Docs Status| image:: https://readthedocs.org/projects/sdypy-ema/badge/\n   :target: https://sdypy-ema.readthedocs.io/\n.. |DOI| image:: https://zenodo.org/badge/DOI/10.5281/zenodo.4016671.svg?\n   :target: https://doi.org/10.5281/zenodo.4016671\n.. |pytest| image:: https://github.com/sdypy/sdypy-EMA/actions/workflows/python-package.yml/badge.svg\n    :target: https://github.com/sdypy/sdypa-EMA/actions\n\n\n.. _sdypy: https://github.com/sdypy/sdypy\n\n.. _pyEMA: https://github.com/ladisk/pyEMA\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "Experimental and operational modal analysis.",
    "version": "0.29.1",
    "project_urls": {
        "documentation": "https://sdypy-EMA.readthedocs.io/en/latest/index.html",
        "homepage": "https://github.com/sdypy/sdypy-EMA",
        "source": "https://github.com/sdypy/sdypy-EMA"
    },
    "split_keywords": [
        "ema",
        " experimental modal analysis",
        " oma",
        " structural dynamics"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "b628e8ef6b28f34c680b71c082d9a825f662a4444b88c8bd91478d551075f749",
                "md5": "a5a3b72dada2cb17f3adb8dc12c1b051",
                "sha256": "de04db467853e46109e1ff95ef7c005dd681fdccecfe886bf67e2c0b68dc276a"
            },
            "downloads": -1,
            "filename": "sdypy_ema-0.29.1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "a5a3b72dada2cb17f3adb8dc12c1b051",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.10",
            "size": 26497,
            "upload_time": "2025-07-17T04:35:11",
            "upload_time_iso_8601": "2025-07-17T04:35:11.942093Z",
            "url": "https://files.pythonhosted.org/packages/b6/28/e8ef6b28f34c680b71c082d9a825f662a4444b88c8bd91478d551075f749/sdypy_ema-0.29.1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "73edb98fc4729e7b034f719930803c99188afae921b6dde4f3afc843e0d65f97",
                "md5": "ce0b4901da4dd81c26eb482ba7cf4d56",
                "sha256": "d5972cb8ec23f93b53c6edf1a78c643958828790a955d87a2c29ed2706ee57de"
            },
            "downloads": -1,
            "filename": "sdypy_ema-0.29.1.tar.gz",
            "has_sig": false,
            "md5_digest": "ce0b4901da4dd81c26eb482ba7cf4d56",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.10",
            "size": 24650,
            "upload_time": "2025-07-17T04:35:13",
            "upload_time_iso_8601": "2025-07-17T04:35:13.098568Z",
            "url": "https://files.pythonhosted.org/packages/73/ed/b98fc4729e7b034f719930803c99188afae921b6dde4f3afc843e0d65f97/sdypy_ema-0.29.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-07-17 04:35:13",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "sdypy",
    "github_project": "sdypy-EMA",
    "travis_ci": true,
    "coveralls": false,
    "github_actions": true,
    "requirements": [
        {
            "name": "tqdm",
            "specs": [
                [
                    ">=",
                    "4.23.4"
                ]
            ]
        },
        {
            "name": "numpy",
            "specs": [
                [
                    ">=",
                    "1.14.3"
                ]
            ]
        },
        {
            "name": "matplotlib",
            "specs": [
                [
                    ">=",
                    "3.3.1"
                ]
            ]
        },
        {
            "name": "scipy",
            "specs": [
                [
                    ">=",
                    "1.1.0"
                ]
            ]
        },
        {
            "name": "pyuff",
            "specs": [
                [
                    ">=",
                    "2.1"
                ]
            ]
        },
        {
            "name": "pyLump",
            "specs": []
        }
    ],
    "lcname": "sdypy-ema"
}
        
Elapsed time: 0.93615s