FireniceCao / pyEMA

Experimental and operational modal analysis

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

pyEMA

Experimental and operational modal analysis

Check out the documentation.

Basic usage

Make an instance of Model class:

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

Compute poles:

a.get_poles()

Determine correct poles:

The stable poles can be determined in two ways:

  1. Display stability chart (deprecated)
a.stab_chart()

or use the new function that also contains the stability chart and more:

a.select_poles()

The stability chart displayes calculated poles and the user can hand-pick the stable ones. Reconstruction is done on-the-fly. In this case the reconstruction is not necessary since the user can access the FRF matrix and modal constant matrix:

a.H # FRF matrix
a.A # modal constants matrix
  1. If the approximate values of natural frequencies are already known, it is not necessary to display the stability chart:
approx_nat_freq = [314, 864]
a.select_closest_poles(approx_nat_freq)

In this case, the reconstruction is not computed. get_constants must be called (see below).

Natural frequencies and damping coefficients can now be accessed:

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

Reconstruction:

There are two types of reconstruction possible:

  1. Reconstruction using own poles:
H, A = a.get_constants(whose_poles='own', FRF_ind='all')

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

  1. Reconstruction on c using poles from a:
c = pyema.Model(frf_matrix, frequency_array, lower=50, upper=10000, pol_order_high=60)

H, A = c.get_constants(whose_poles=a, FRF_ind=all’)

DOI Build Status

About

Experimental and operational modal analysis

License:MIT License


Languages

Language:Jupyter Notebook 70.2%Language:Python 29.4%Language:TeX 0.4%