ladisk / pyema Goto Github PK
View Code? Open in Web Editor NEWExperimental and operational modal analysis
License: MIT License
Experimental and operational modal analysis
License: MIT License
This enhancement proposal is related to the proper handling of residuals if the FRF is converted to a different form than measured (e.g. from accelerance to receptance).
We should have a better documentation; e.g. dimensions of FRF Matrix are not clear
https://pyema.readthedocs.io/en/latest/code_documentation.html
Line 21 in 9c088dc
Currently, the MAC
function accepts only a 2D array (of shape n_dof, n_modes
) of mode shape functions and returns a MAC matrix.
The function should be written more generally and accept two 1D mode shape arrays (of shape n_dof
) and return a single MAC value:
mac = pyEMA.tools.MAC(phi_a, phi_b)
where
>>> phi_a.shape, phi_b.shape
(n_dof, ), (n_dof, )
Different number of modes in the matrices should also be supproted:
mac = pyEMA.tools.MAC(phi_a, phi_b)
where
>>> phi_a.shape, phi_b.shape
(n_dof, n_modes_1), (n_dof, n_modes_2)
where n_modes_1 != n_modes_2
.
There is an issue with pole_picking.py
As soon as the command
[ acc.select_poles()] is ran, the error flag appears:
Nonetype Object has no attribute draw().
The same error flag has been shown regardless of what IDE I used (i.e. I've tried both Jupyter Notebook and Pycharm)
Sometimes the user add to the pyEMA.Model truncated data (e.g. starting with lower frequency and not 0). The later signal processing should handle this correctly. I guess the best/easiest way is just to concatenate with a 0 array.
Line 16 in be7ac90
Would it be possible to select poles without the shift? This would be more intuitive. (Does it interfere with the mpl interface?)
Upgrade the stability chart with an option to hide poles of a certain type (stable, unstable...)
We need autoMAC implementation to check the orthogonality of eigenvectors
Details are given in the papers by
S. R. Ibrahim
Computation of Normal Modes from Identified Complex Modes
AIAA JOURNAL, VOL. 21, NO. 3 (1983)
and
Ulrich Fuellekrug
Computation of real normal modes from complex eigenvectors
Mechanical Systems and Signal Processing 22 (2008) 57โ65
Different types of damping need to be supported
If numpy is installed via pip (and not via anaconda) the SVD algorithm does not converge:
92
93 def _raise_linalgerror_eigenvalues_nonconvergence(err, flag):
---> 94 raise LinAlgError("Eigenvalues did not converge")
95
96 def _raise_linalgerror_svd_nonconvergence(err, flag):
We should pinpoint the problem and find a solution.
Line 248 in 6a572e2
Currently, a middle-button mouse is required.
An automatic interface to uff in pyEMA would be appreciated.
Until now you always need a second module, i.e. pyuff to import .unv/.uff files.
The different license types of pyEMA (MIT license) and pyuff (part of OpenMODAL (GPL)) make this difficult sometimes.
Assume that we have a set of measured frequency response curves (i.e. Dataset 58). How can we extract normal modes and natural frequencies using pyFRF and pyEMA?
A simple self-explanatory example would be very helpful.
It takes some time to figure out that deleting the last pole from the graph, requires a holding shift as well. I do appreciate your work but others may have difficulties to notice this small detail.
Can we come up with something better?
Line 330 in de3617d
The setup.py
https://github.com/ladisk/pyEMA/blob/master/setup.py
refers to a non-existing showcase:
https://github.com/ladisk/pyEMA/blob/master/pyEMA%20Showcase.ipynb
why did we change it to:
https://github.com/ladisk/pyEMA/blob/master/LSCF_Showcase.ipynb
?
This should be synchronized
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.