pyyeti
pyyeti copied to clipboard
mean phase deviation (MPD) indicator
Dear @twmacro
Please have look at the following paper and the mean phase deviation (MPD) indicator. I think it is a useful measure alongside other modal indicators to distinguish physical modes (generally MPD < 0.3 is good):
Here's the code to implement MPD:
def mean_phase_deviation(u):
"""Mean phase deviation of mode vector u
Mean phase deviation (MPD) is the deviation in phase from the mean
phase and is a measure of mode shape complexity.
Arguments
---------
u : 1darray[complex]
Mode shape vector
Returns
-------
float
Mean phase deviation of the mode vector
References
----------
[Reynders2012] Reynders, E., Houbrechts, J., De Roeck, G., 2012.
Fully automated (operational) modal analysis. Mechanical
Systems and Signal Processing 29, 228–250.
https://doi.org/10.1016/j.ymssp.2012.01.007
"""
u = np.asarray(u)
U, s, VT = np.linalg.svd(np.c_[u.real, u.imag])
V = VT.T
w = np.abs(u)
num = u.real*V[1, 1] - u.imag*V[0, 1]
den = np.sqrt(V[0, 1]**2+V[1, 1]**2)*np.abs(u)
return np.sum(w*np.arccos(np.abs(num/den))) / np.sum(w)
Best regards, Ayubirad
Thank you very much, @Ayubirad! I have the paper now, and I'll definitely check it out. :-)
Best regards, Tim
Thank you